(57)【要約】      （修正有）【課題】矩形容器に円筒物品を詰め込む場合に最密に充填することが可能な算出及び間仕切り生成方法、その装置及びそのプログラムを提供する。【解決手段】コンピュータを用いて、円筒物体の断面形状である円の半径と矩形容器の底面の二辺の比に基づいて、長辺が１である１：β(β＞０)の辺を有する矩形に最密配置できる円の問題へと変換し、長辺が１である１：βの辺を有する矩形において最密配置できる円の最大半径と配置を算出し、元の問題へ逆変換することで円の最大半径と配置を算出し、最密配置できる円の最大半径と配置に基づいて、矩形容器又は他の円筒物体により固定配置される円の座標情報と、固定配置されない自由円のリストを出力し、出力された自由円の配置を決定し、円の配置に基づいて、間仕切りを生成し、間仕切りの形状データを出力する。【選択図】図３
2014168867.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを用いて複数の円筒物体を矩形容器内へ最密配置し、間仕切りを生成するための算出及び間仕切り生成方法であって、
前記円筒物体の断面形状である円の半径と矩形容器の底面の二辺の比に基づいて、長辺が１である１：β(β＞０)の辺を有する矩形に最密配置できる円の問題へと変換し、長辺が１である１：βの辺を有する矩形において最密配置できる円の最大半径と配置を算出し、元の問題へ逆変換することで円の最大半径と配置を算出する最密配置算出ステップと、
最密配置できる円の最大半径と配置に基づいて、矩形容器又は他の円筒物体により固定配置される円の座標情報と、固定配置されない自由円のリストを出力する自由円出力ステップと、
出力された自由円の配置を決定する自由円配置決定ステップと、
円の配置に基づいて、間仕切りを生成し、間仕切りの形状データを出力する間仕切り形状データ出力ステップと、
を有する円筒物体最密配置算出及び間仕切り生成方法。
【請求項２】
請求項１記載の円筒物体最密配置算出及び間仕切り生成方法であって、
前記円筒物体の断面形状である円の半径と、前記矩形容器内に配置する前記円筒物体の個数と、前記矩形容器の底面の辺の比を入力する入力ステップを、さらに有することを特徴とする円筒物体最密配置算出及び間仕切り生成方法。
【請求項３】
請求項１記載の円筒物体最密配置算出及び間仕切り生成方法であって、
前記円筒物体の断面形状である円の半径と、前記矩形容器の底面の二辺の長さを入力するステップをさらに有し、前記最密配置算出するステップにおいて、二辺の長さに基づいて比を算出する、円筒物体最密配置算出及び間仕切り生成方法。
【請求項４】
出力された自由円配置決定ステップは、矩形容器の２辺、又は他の円筒物体と接するように配置を決定するステップである、請求項１記載の円筒物体最密配置算出及び間仕切り生成方法。
【請求項５】
最密配置算出ステップは、円の半径を大きくしながら、乱数により詰込パタンを生成し、矩形からはみ出す円については矩形内において円同士が重ならないような配置を求めることで、最大半径と配置を算出するステップである、請求項１記載の円筒物体最密配置算出及び間仕切り生成方法。
【請求項６】
複数の円筒物体を矩形容器内へ最密配置し、間仕切りを生成するための算出及び間仕切り生成装置であって、
前記円筒物体の断面形状である円の半径と矩形容器の底面の二辺の比に基づいて、長辺が１である１：β(β＞０)の辺を有する矩形に最密配置できる円の問題へと変換し、長辺が１である１：βの辺を有する矩形において最密配置できる円の最大半径と配置を算出し、元の問題へ逆変換することで円の最大半径と配置を算出する最密配置算出手段と、
最密配置できる円の最大半径と配置に基づいて、矩形容器又は他の円筒物体により固定配置される円の座標情報と、固定配置されない自由円のリストを出力する自由円出力手段と、
出力された自由円の配置を決定する自由円配置決定手段と、
円の配置に基づいて、間仕切りを生成し、間仕切りの形状データを出力する間仕切り形状データ出力手段と、
を有する最密配置算出及び間仕切り生成装置。
【請求項７】
複数の円筒物体を矩形容器内へ最密配置し、間仕切りを生成するために、
前記円筒物体の断面形状である円の半径と矩形容器の底面の二辺の比に基づいて、長辺が１である１：β(β＞０)の辺を有する矩形に最密配置できる円の問題へと変換し、長辺が１である１：βの辺を有する矩形において最密配置できる円の最大半径と配置を算出し、元の問題へ逆変換することで円の最大半径と配置を算出する最密配置算出ステップと、
最密配置できる円の最大半径と配置に基づいて、矩形容器又は他の円筒物体により固定配置される円の座標情報と、固定配置されない自由円のリストを出力する自由円出力ステップと、
出力された自由円の配置を決定する自由円配置決定ステップと、
円の配置に基づいて、間仕切りを生成し、間仕切りの形状データを出力する間仕切り形状データ出力ステップと、
をコンピュータに実行させるための円筒物体最密配置算出及び間仕切り生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、円筒物体を矩形容器への最密配置を算出し間仕切りを生成する円筒物体の最密配置算出及び間仕切り方法に関する。
【背景技術】
【０００２】
物流において、消費者へ輸送するときには矩形のケース単位で運ばれて来たものを、必要な個数だけ詰め替える作業を行っているが、従来、これらの詰込みは主に人の経験によって行われてきた。輸送効率を上げるには、必要な形状に最大の充填率で詰込を行う必要があるが、最大の充填率での詰込は人間が直感的にできるものではないため、最大の充填率での詰込が必ずしも行われて来なかった。
【０００３】
ここで、底面が正方形の矩形容器に円筒物品を詰め込む場合を例に挙げて説明する。図１は、最密充填した場合、円筒物品がｎ＝１５個(ｎは個数)入る矩形容器の一例を示す図面である。(ａ)のように、ここで示した底面が正方形の矩形容器に、柱状物品を最密充填した場合、１５個の柱状物品が入る。しかし、人間が直感的に詰め込んだ場合、整列して詰め込むと(ｂ)のように９個しか詰め込むことができず、残った隙間には詰め込むことができない。また、交互にずらして詰め込んだとしても(ｃ)のように１２個しか詰め込むことができない。さらに、一辺から詰め込んでいったとしても、１２個しか詰め込むことができず、最密充填の解である１５個を、人間が直感的に理解することは困難である。
【０００４】
特に円筒物品を矩形の容器に詰め込む場合、最大の充填率で詰め込むだけでなく、中での配置の不安定性や、強度の問題を考慮する必要がある。特許文献１では、複数の柱状物品の収容容器について提案されているが、矩形容器への詰め込みについては、特に有効な算出方法は提案されていなかった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−６８１７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このように、従来、段ボールやプラスチックケース、コンテナ、通い箱といった矩形容器に柱状物品を詰め込む場合に、最大の充填率での詰込方法は提案されてこなかった。また、最密充填のための間仕切りについても提案されていなかった。
【０００７】
本発明は、上述した状況に鑑み、矩形容器に柱状物品を詰め込む場合に最密に充填することが可能な算出及び間仕切り生成方法、その装置及びそのプログラムを提供するものである。
【課題を解決するための手段】
【０００８】
本発明に係る円筒物体最密配置算出及び間仕切り生成方法は、コンピュータを用いて複数の円筒物体を矩形容器内へ最密配置するための算出方法であって、円筒物体の断面形状である円の半径と矩形容器の底面の二辺の比に基づいて、長辺が１である１：β(β＞０)の辺を有する矩形に最密配置できる円の問題へと変換し、長辺が１である１：βの辺を有する矩形において最密配置できる円の最大半径と配置を算出し、元の問題へ逆変換することで円の最大半径と配置を算出する最密配置算出ステップと、最密配置できる円の最大半径と配置に基づいて、矩形容器又は他の円筒物体により固定配置される円の座標情報と、固定配置されない自由円のリストを出力する自由円出力ステップと、出力された自由円の配置を決定する自由円配置決定ステップと、
円の配置に基づいて、間仕切りを生成し、間仕切りの形状データを出力する間仕切り形状データ出力ステップと、を有する。
【０００９】
また、好ましくは、円筒物体の断面形状である円の半径と、前記矩形容器内に配置する前記円筒物体の個数と、前記矩形容器の底面の辺の比を入力する入力ステップを、さらに有する円筒物体最密配置算出及び間仕切り生成方法である。
【００１０】
また、円筒物体の断面形状である円の半径と、前記矩形容器の底面の二辺の長さを入力するステップをさらに有し、前記最密配置算出するステップにおいて、二辺の長さに基づいて比を算出する円筒物体最密配置算出及び間仕切り生成方法である。
【００１１】
さらに好ましくは、出力された自由円配置決定ステップは、矩形容器の２辺、又は他の円筒物体と接するように配置を決定するステップである円筒物体最密配置算出及び間仕切り生成方法である。
【００１２】
また、最密配置算出ステップは、円の半径を大きくしながら、乱数により詰込パタンを生成し、矩形からはみ出す円については矩形内において円同士が重ならないような配置を求めることで、最大半径と配置を算出するステップである円筒物体最密配置算出及び間仕切り生成方法であってもよい。
【００１３】
本発明に係る最密配置算出及び間仕切り生成装置は、複数の円筒物体を矩形容器内へ最密配置し、間仕切りを生成するための算出装置であって、円筒物体の断面形状である円の半径と矩形容器の底面の二辺の比に基づいて、長辺が１である１：β(β＞０)の辺を有する矩形に最密配置できる円の問題へと変換し、長辺が１である１：βの辺を有する矩形において最密配置できる円の最大半径と配置を算出し、元の問題へ逆変換することで円の最大半径と配置を算出する最密配置算出手段と、最密配置できる円の最大半径と配置に基づいて、矩形容器又は他の円筒物体により固定配置される円の座標情報と、固定配置されない自由円のリストを出力する自由円出力手段と、出力された自由円の配置を決定する自由円配置決定手段と、円の配置に基づいて、間仕切りを生成し、間仕切りの形状データを出力する間仕切り形状データ出力手段と、を有する。
【００１４】
本発明に係る円筒物体最密配置算出及び間仕切り生成プログラムは、複数の円筒物体を矩形容器内へ最密配置し、間仕切りを生成するために、円筒物体の断面形状である円の半径と矩形容器の底面の二辺の比に基づいて、長辺が１である１：β(β＞０)の辺を有する矩形に最密配置できる円の問題へと変換し、長辺が１である１：βの辺を有する矩形において最密配置できる円の最大半径と配置を算出し、元の問題へ逆変換することで円の最大半径と配置を算出する最密配置算出ステップと、最密配置できる円の最大半径と配置に基づいて、矩形容器又は他の円筒物体により固定配置される円の座標情報と、固定配置されない自由円のリストを出力する自由円出力ステップと、
出力された自由円の配置を決定する自由円配置決定ステップと、円の配置に基づいて、間仕切りを生成し、間仕切りの形状データを出力する間仕切り形状データ出力ステップと、をコンピュータに実行させるための円筒物体最密配置算出及び間仕切り生成プログラムである。
【発明の効果】
【００１５】
本発明によれば、円筒物品を矩形容器に最密充填詰込のための配置を算出し、間仕切りを提供することができるため、輸送効率を向上させることができる。特に、詰め込む円筒物品の半径や個数が決まっていて、収納する矩形容器の底面の２辺の比率が規定されている場合には、最小体積の箱を選定することができる。また、詰め込む円筒物品の半径と収納する矩形容器のサイズが決まっている場合には、最密充填での個数を算出することができるため、その矩形容器において詰込可能な最大個数を詰め込むことが可能である。
【００１６】
また、重心なども考慮して配置を算出するため、高い充填率でかつ安定した配置で詰め込むことが可能となる。
【図面の簡単な説明】
【００１７】
【図１】最密充填した場合、円筒物品が１５個入る矩形容器の一例を示す図面である。
【図２】本発明の実施の形態に係る円筒物体の矩形容器への最密配置算出及び間仕切り生成方法を実現するためのハードウェア構成の一例を示すブロック図である。
【図３】本発明の算出方法の第一の実施形態に係る基本処理に係るフローチャートである。
【図４】図３のステップＳ３０１の詳細処理に係るフローチャートである。
【図５】図４における局所探索処理を示すフローチャートである。
【図６】最密充填パタンの算出における各円の様子の一例を示す図である。
【図７】ステップＳ５０６で出力される詰込パタンと自由円のリストの例を説明する図である。
【図８】最密充填間仕切りの算出方法を示すフローチャートである。
【図９】図８のステップＳ８０２における処理の詳細を説明するフローチャートである。
【図１０】円筒物体の詰込及び詰込のための間仕切りの一例を示す図面である。
【図１１】本発明の第二の実施に係る基本処理手順に係るフローチャートである。
【発明を実施するための形態】
【００１８】
図２は、本発明の実施の形態に係る円筒物体の矩形容器への最密配置算出及び間仕切り生成方法を実現するためのハードウェア構成の一例を示すブロック図である。図２において、円筒物体の矩形容器への最密配置算出及び間仕切り生成方法を実現するハードウェア構成は、従前から存在する汎用的なハードウェア構成で実現できる。すなわち、円筒物体の矩形容器への最密配置算出及び間仕切り生成装置１を形成するコンピュータは、図１に示したようにＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、外部記憶装置１０４、通信インターフェース１０５、入出力インターフェース１０６と接続されたスピーカ１０７とキーボード１０８、及び表示装置として設けられたディスプレイ１０９を、バスに接続して構成される。
【００１９】
一連の処理をソフトウェアにより実行させる場合には、例えば、最密配置算出手段、自由円出力手段、自由円配置決定手段、及び間仕切り形状データ出力手段は、外部記憶装置１０４として磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリなどよりなるリムーバブルメディアに円筒物体最密配置算出及び間仕切り生成プログラムとして記憶され、ＣＰＵ１０１で実行させることで、各種の機能を実行させる。なお、ネットワークからコンピュータへ円筒物体最密配置算出及び間仕切り生成プログラムをインストールし、また、装置本体に予め組み込まれた状態、例えば、プログラムが記録されているＲＯＭ１０２などで構成してもよい。
【００２０】
（第一の実施の形態に関する説明）
これから図面を用いて、本発明の算出方法の第一の実施形態に係る処理手順について説明する。そこで、まず、図３を用いて、本発明の算出方法の第一の実施形態に係る基本処理手順に係るフローチャートについて説明する。
【００２１】
第一の実施形態においては、詰込対象となる複数の同型の円筒物体について、その直径を有する複数の円とみなし、これら円を断面にもつ所定のｎ個の円筒を、与えられた長辺と短辺の比率を持つ矩形形状で最小のものに詰込むという問題に帰着させる。実際には、上記コンピュータを用いて、複数の円筒をできるだけ小さい与えられた比を有する矩形状の箱に詰込んで、その際の詰込パタンおよびそれの間仕切りの生成を可能とするための有効な算出方法である。
【００２２】
図３に示す基本処理においては、入力情報としては、詰込対象となる同一円筒物体の個数ｎと円筒物体の断面形状をそれぞれの外形に対応したｎ個の円ｃ1、ｃ2、…、ｃnの半径Robj、円筒の高さＨ、及び十分小さい正数である終了基準値εが与えられる。終了基準値εは、詰込みに用いるマニピュレータ等の自動機械の位置決め精度や詰込み状態の仕様に基づいて与えられる。また、作成する間仕切りの厚みdsectionが与えられる。なお、円筒の高さＨは、間仕切り作成用に与えられる。
【００２３】
また、出力情報としては、ｎ個の円ｃ1、ｃ2、…、ｃnを互いに重ならないように詰め込める、なるべく小さい矩形容器の底面の内形寸法(L，La)、円ｃ1、ｃ2、…、ｃnの詰込パタンすなわちそれらの中心の位置情報、自由円のＩＤリストが出力され、また、高さがＨ、厚みがdsectionの間仕切りの形状データが出力される。箱の内形寸法は、箱の内壁を間仕切りとして使う場合は(L−dsection，La−dsection)を底面の矩形の内形寸法とし、間仕切りが壁にめり込む部分は削除して0.5dsection分短く算出する。箱の内壁を間仕切りとして使わない場合は、壁に当たる部分の間仕切りを考慮して、(L＋dsection，La＋dsection)を底面の矩形の内形寸法とする。
【００２４】
図３に示すステップＳ３０１においては、最密充填パタンの算出を行う。すなわち、はじめに所定の縦横比率を有する矩形形状に円筒物体をｎ個詰め込むための最密充填詰込パタンＰとその際に生じる自由円のリストＬを算出する。このステップの詳細については、後述する。次にステップＳ３０２においては、最密充填詰込パタンに基づいて、最密充填間仕切りの算出を行う。このステップの詳細については、後述する。すなわち、最密充填詰込を可能とし、物体をきちんと保持することを可能とする間仕切りを算出する。
【００２５】
ここでは、図３のステップＳ３０１の詳細について、図４を用いて説明する。図４に示すステップＳ４０１において、まず、等価な問題に変換して計算を開始する。矩形容器の底面の内径寸法(L，La)の二辺の比に基づいて、長辺が１である１：β(β＞０)の辺を有する矩形Ｄに最密充填できる円の最大半径とその配置を求める問題に変換して、計算を開始する。実際の円筒の半径Robjに0.5dsectionを足したものを実際の半径と見なして最密充填の配置を求める。
【００２６】
まず、長辺が１の矩形に含まれるように計算上の半径ｒを設定し、円ｃ1、ｃ2、…、ｃnを互いに重ならないように平面上に配置する。この半径ｒは、初めはこの値の下限とみなせる十分小さい値を用いれば良い。例えば
【数１】
2014168867.tif 000003
の値が設定される。
【００２７】
ステップＳ４０２、ステップＳ４０３及びステップＳ４０４においては、半径がｒの１より大きい倍率ｔをかけた半径、すなわち、半径ｒより大きい計算上の一時的な目標円半径Ｒを定める。すなわち、ステップＳ４０２、ステップＳ４０３及びステップＳ４０４のＮからなるループでは、少なくとも、複数の円ｃ1、ｃ2、…、ｃnのうちのひとつの円が矩形Ｄからはみ出すような目標円半径Ｒを定める。
【００２８】
まず、ステップＳ４０２では、半径ｒより大きい閾値Ｔ、及び標準偏差、σを指定して目標円半径Ｒを定める。半径ｒは、長辺が１の矩形に含まれるような計算上の半径であり、目標円半径Ｒは、矩形に全ての円が含まれるように計算する過程での一時的な半径である。閾値Ｔは無駄に計算を進めることのないように指定する値であって、この値の上限とみなせる十分大きい値に基づいて定められる。また、初回の処理においては初期標準偏差σ0が与えられる。初期標準偏差σ0は矩形の中に含まれる円の中心点の座標を乱数から生成するためのものであって、矩形の中にほぼ収まるような円の配置パタンを求めるように与える。円の中心点の座標を円が存在しうる区間内の一様乱数として生成するか、初期配置なので矩形の内側により収まりやすいような矩形の中心を平均とし与えられた標準偏差で広がる正規分布を用いる。従って、円の中心の座標を、乱数を発生させて求める際には、短辺と長辺もしくはそれぞれより小さい初期標準偏差σ0＝(σ0x,σ0y)を各対応する座標によって定める。
【００２９】
ステップＳ４０３では、初期標準偏差σ0を与え、乱数により初期充填パタンＰを作る。ここでは、ステップＳ４０２で定めた半径Ｒをもつ複数の円ｃ1〜ｃnが、長辺が１の矩形に入るような円の各中心座標を乱数により生成して初期充填パタンを作成する。円の中心点の座標を、初期配置なので矩形の内側により収まりやすいような矩形の中心を平均とし与えられた標準偏差σ0で広がる正規分布を用いて生成する。円の中心の座標を、乱数を発生させて求める際には、短辺と長辺それぞれより小さい初期標準偏差σ0＝(σ0x,σ0y)を各対応する座標によって定める。
【００３０】
ステップＳ４０４では、ステップＳ４０３で生成した初期充填パタンＰにおいて矩形Ｄからはみだしている円があれば(Ｓ４０４のＹ)、局所探索処理へうつり、はみ出している円がなければ、ステップＳ４０５へとうつる。
【００３１】
ステップＳ４０５では、初期充填パタンＰを生成した場合の半径Ｒを新たな半径ｒとする処理を行い、ステップＳ４０２へと戻る。
【００３２】
次に、矩形Ｄからはみ出す円がある場合、ステップＳ４０６へとうつり、ステップＳ４０６においては、局所探索処理を行う。ステップＳ４０３で作成された充填パタンＰで配置された円ｃ1、ｃ2、…、ｃnが矩形Ｄの中に入るように配置を変更していく。すなわち、ここでは、矩形Ｄからはみ出している任意のひとつの円ｃiから、距離の大きい順に円ｃi以外の円を取り出し、(σで与えられる)それぞれの円の近傍で位置を変えて詰込を行う。すなわち、
【数２】
2014168867.tif 000004
ここで、Pcjは円ｃi以外の円ｃjの中心点を表し、δxとδyは、それぞれ元の中心点（x0j，y0j）のxとyの座標を平均、分散をσ2とする正規分布である。この正規分布δxとδyを用いて、円ｃjをランダムに選び再配置する。なお、このステップＳ４０６の処理については、後述する。
【００３３】
次に、ステップＳ４０７においては、上記ステップＳ４０６における円ｃi詰込みが成功し最大半径が更新されたか否かを判定し、成功の場合はステップＳ４０３に戻り(ステップＳ４０７のＹ)、さもなければステップＳ４０８に進む(ステップＳ４０７のＮ)。ステップＳ４０３に戻ると、ステップＳ４０４において他にはみ出している円があるか否をチェックし、これがあれば再度ステップＳ４０６の局所探索処理を行い、なければステップＳ４０５を経てＳ４０２に戻り、上記と同様の処理を行うことになる。
【００３４】
一方、ステップＳ４０８においては、計算途中の現在の半径ｒと、詰込が成功しなかった上記目標円半径Ｒとの中間の大きさの円半径を、新たに目標円半径Ｒに定める。次に、ステップＳ４０９において、上記ステップＳ４０８の処理に用いられた円半径ｒ及び目標円半径Ｒのそれぞれの半径の差が上記終了基準値ε以下か否かを判定し、この差が終了基準値εより大きければ上記ステップＳ４０３に戻って上記と同様の処理を繰り返し(ステップＳ４０９のＮ)、この差が終了基準値ε以下であればステップＳ４１０に進む(ステップＳ４０９のＹ)。
【００３５】
ステップＳ４１０においては、この半径Ｒを最終的な結果として、元の等価な問題に逆変換し、矩形の寸法(底面の矩形の長辺および短辺)、高さ)としてこれを入出力インターフェース１０６に出力する。また、このときの包含円Ｃ及び各円ｃ1、ｃ2、…、ｃnの位置情報も入出力インターフェース１０６を介して例えばディスプレイ１０９に出力する。なお、これに限らず、プリンタを介した紙上への印字であってもよい。なお、上記閾値Ｔ及び終了基準値εを適宜、変更してもよい。
【００３６】
次に、上記図４のステップＳ４０６の局所探索処理について、図５を用いて説明を加える。図５は、図４における局所探索処理を示すフローチャートである。
【００３７】
図５に示す局所探索処理においては、入力情報として、ｎ個の円ｃiの半径ｒと、それらの中心Ｐi＝(ｘi、ｙi)、ｉ＝１、２、…、ｎが与えられる。但し、ｎ個の円ｃiは互いに重なることはなく、また最後の円ｃnは矩形Ｄからはみ出しているとする。なお、この他にもはみ出している円があってもよい。
【００３８】
また、出力情報としては、矩形Ｄからはみ出させることなく、矩形Ｄ内へ円を詰込むことができたなら成功結果としてそれを実現するｎ個の円の中心位置が出力され、できないなら失敗結果としてその旨示すメッセージが出力される。
【００３９】
まず、ステップＳ５０１においては、平均が各円の現在の中心位置ｐi0(i=1，…，n)、分散σ2(標準偏差σ)の正規分布
【数３】
2014168867.tif 000005
に基づいて移動した配置ｐiを求める。ステップＳ５０２においては、交わりを無くす方向Δｐiに円を動かして重なりの無い配置を求める。ステップＳ５０３においては、上記探索処理にて移動候補位置があれば移動し、かつ、目標関数の変化が終了基準値ε以上であればＳ５０５に進む(ステップＳ１Ｃ５０３のＹ)。それ以外であれば(ステップＳ５０３のＮ)、失敗回数ｎｆを１つ増やし(ステップＳ５０４)、ステップＳ５０１に戻って再試行する。試行が成功するか、この失敗回数が計算上の失敗回数の上限ｎｆを超えるかまで、このような処理が行われた後、ステップＳ５０５に進む。
【００４０】
次に、ステップＳ５０５においては、上記ステップＳ５０１〜ステップＳ５０４からなるループ処理にてできた矩形Ｄ内に対しての詰込による目標関数(半径)の変化が終了基準値ε以上かを判定し、そうであればステップＳ５０６に進み、そうでなければステップＳ５０７に進む。
【００４１】
そして、ステップＳ５０６においては、目標関数の変化がε以上であって、上記詰込の試行により詰込が成功すれば、目標関数の値と矩形容器の底面の内形寸法(L，La)、円ｃ1、ｃ2、…、ｃnの詰込パタンすなわちそれらの中心の位置情報、自由円のＩＤリストが出力する(ステップＳ５０５のＹ)。ステップＳ５０７においては、詰込ができなければ、その旨を示すメッセージを出力する(ステップＳ５０５のＮ)。なお、上記詰込の成功時には、それを実現するｎ個の円の中心位置が出力される。そして、これらステップＳ５０１〜ステップＳ５０７からなる一連の処理が終了すれば、図４に示すこれに続く処理(Ｓ４０７)に進む。
【００４２】
図６は、最密充填パタンの算出における各円の様子の一例を示す図である。図６(ａ)は図４のステップＳ４０３における矩形内の円の初期状態を示しており、与えられたｎ個の円ｃiの初期配置と、それらを囲む矩形Ｄが示されている。このように、初期における円の半径は所定数の円が矩形容器に入るのに十分に小さい半径で設定される。
【００４３】
図６(ｂ)は、図４のステップＳ４０４のＹの場合に対応しており、目標円半径を求める処理の途中の状態を示しており、円同士が重なっており、矩形からはみ出している円が存在する状態である。現在得られている半径ｒより少し大きい目標円半径Ｒが示されている。この場合、図４のステップＳ４０６の局所探索処理へうつることとなる。
【００４４】
図６(ｃ)は、図６(ｂ)で示したように円同士が重なっており、矩形からはみ出した状態があることから、個々の円の重なりのない配置をもとめる処理を行った様子を示しており、図５のステップＳ５０２に対応している。
【００４５】
図６(ｄ)は、図５のステップＳ５０３のＹに対応しており、局所探索処理において、矩形の中に所定数の円がすべて配置された最終状態を示している。
【００４６】
このように、円筒形の詰込対象が詰込む箱からはみ出した場合、箱に入る小さい半径から始めてランダムな配置で詰込、そこからできるだけ半径の大きなものに変更し、局所的な計算についてはそこでの非線形最適化計算を繰り返し計算することにより、複数の円筒を箱に詰込む際の最小の箱の形状および大きさが、効率的に取得される。
【００４７】
図７は、ステップＳ５０６で出力される詰込パタンと自由円のリストの例を説明する図である。矩形へ所定数の円を詰め込むことに成功した場合の詰込パタンが図７で示す詰込パタンであった場合、図７のパタンがステップＳ５０６で出力される詰込パタンＰとなる。この詰込パタンＰの図そのものがディスプレイに出力、又はプリンタに出力されるように構成してもよい。また、詰込パタンＰとして、ｎ個の円ｃ1、ｃ2、…、ｃnを互いに重ならないように詰め込める、なるべく小さい矩形容器の底面の内形寸法(L，La)、円ｃ1、ｃ2、…、ｃnの詰込パタンすなわちそれらの中心の位置座標情報、自由円の円ＩＤ(例えば、円ｃ3とｃ9など)リストが出力される。
【００４８】
更に、図８及び図９を用いて、最密充填間仕切りの算出(図３ステップＳ３０２)の詳細について説明する。まず、最密充填間仕切りの算出方法全体を、図８を用いて説明する。図８は、最密充填間仕切りの算出方法を示すフローチャートである。
【００４９】
図８に示す最密充填間仕切りの算出においては、入力情報として、最密充填のパタンの算出における出力である。つまり、成功の最密充填パタンである詰込パタンＰと自由円のリストＬを入力とする。ここでは詰込パタンＰは円の中心の位置座標情報である。
【００５０】
ステップＳ８０１では、まず最密充填パタンである詰込パタンＰに自由円が含まれているか判定する。つまり、自由円のリストＬに自由円の情報がなければ、Ｎｏとなり、ステップＳ８０３へ進み、自由円の情報がある場合は、Ｙｅｓとなり、ステップＳ８０２へと進む。ステップＳ８０２においては、自由円の配置を行う。すなわち、自由円ｃjが、矩形Ｄ内で他の円と重ならずに、かつ、２つ以上の円に接するような移動候補位置を探索する。詳しくは、この探索処理では、図９に示す自由円の配置処理が行われる。自由円の配置処理では、円ｃjが矩形Ｄ内で他の円と重ならずに、詰込まれるような移動候補位置を探索する。これについては後述する。
【００５１】
そして、ステップＳ８０３においては、自由円が含まれていないため、最密充填パタンｐについて、ボロノイ図を求めるよう計算する。そして、算出したボロノイ図に基づいて間仕切りを算出する。次にステップＳ８０４では、ステップＳ８０２で作成した間仕切り又はステップＳ８０３で作成した間仕切りの生成が成功したかを判定する。間仕切りの生成が成功している場合は、Ｙｅｓとなり、ステップＳ８０５へと進み、間仕切りの生成ができていない場合は、Ｎｏとなり、ステップＳ８０６へと進む。
【００５２】
次に、ステップＳ８０５においては、上記間仕切りの算出が成功すれば、間仕切りの形状データを出力し(ステップＳ８０４のＹ)、詰込ができなければ、その旨示すメッセージを出力する(ステップＳ８０４のＮ)。なお、上記成功時には、それを実現する間仕切りを構成する形状データが出力される。例えば、３Ｄプリンタによって、間仕切りの形状データが出力される。なお、これに限らず、ディスプレイなどの表示装置上に間仕切りの形状データを表示させてもよい。そして、これらステップＳ８０１〜ステップＳ８０６からなる一連の処理が終了すれば、図３に示すこれに続く処理(ステップＳ３０３)に戻る。
【００５３】
次に、ステップＳ８０２の詳細について、図９を用いて説明する。図９は、図８のステップＳ８０２における処理の詳細を説明するフローチャートである。ステップＳ８０２においては、自由円の配置を行う。すなわち、自由円ｃjが、矩形Ｄ内で他の円と重ならずに、かつ、２つ以上の円に接するような移動候補位置を探索する。詳しくは、この探索処理では、図９に示す自由円の配置処理が行われる。自由円の配置処理では、円ｃjが矩形Ｄ内で他の円と重ならずに、詰込まれるような移動候補位置を探索する。
【００５４】
そして、ステップＳ９０１においては、自由円のリストＬが空でなければ、その最初の自由円を取出して、それを箱の隅に配置できるかを判定する。空であれば、ステップＳ９０７の処理を行う。
【００５５】
次に、上記自由円を隅に配置することが成功すれば(ステップＳ９０１のＹ)、ステップＳ９０５において、隅に自由円を配置し、それに外接する正方形の辺を壁側から各々延長する。隅に自由円を配置できなければ(ステップＳ９０１のＮ)、ステップＳ９０２において、端でない位置で他の２円に接触する位置候補に配置しボロノイ図を求める。ステップＳ９０３においては、配置した自由円に外接正方形を構成し、ボロノイ図との交点を求める。ステップＳ９０４においては、この外接正方形の辺上の中点を含む側に交点と端点を結び、その端点から他の交点まで線分を延長することにより、自由円を保持する間仕切りを構成する。ステップＳ９０６においては、自由円のリストの最初の要素を除く。そして、上記ステップＳ９０１〜ステップＳ９０６からなるループ処理により間仕切りの形状データを出力し(ステップＳ９０７)、図８に示すこれに続く処理(ステップＳ８０５)に戻る。本自由円の配置処理は、具体的には自由円以外の円の中心からの距離と容器からの距離を計算することによるシミュレーション処理によって行われる。
【００５６】
図１０は、円筒物体の詰込及び詰込のための間仕切りの一例を示す図面である。図１０(ａ)及び図１０(ｂ)は円の詰込の一例を示す図であり、図１０(ｃ)及び図１０(ｄ)はそれぞれ、円の詰込に対する間仕切り(ボロノイ図もしくはその修正図)である。図１０(ａ)に示される点群に対するボロノイ図は、図１０(ｃ)に示す通りである。このような考え方に基づく、間仕切りの算出方法は以下の図８及び図９に示す通りである。図９のステップＳ９０５においては、上記最密充填パタンＰの円の中心に対するボロノイ図を作る。
【００５７】
このように、本実施形態によると、コンピュータを用いて、複数の同型の円筒物体を、計算上小さくした半径のそれをランダムに配置し、半径を膨らませながら、大局的にはランダムな配置を用いて、局所的にはその近傍での条件付き非線形最適化計算を繰り返し行うことにより、与えられた比を有する矩形形状に最密充填可能な最小の箱の形状と大きさが効率的に取得できる。物体を保持可能な最密充填を行うための間仕切りを生成することができる。
【００５８】
なお、上記実施形態では、矩形の形状と大きさを出力するだけでなく、各線材の配置を示す情報を出力するようにしてもよい。また、εの値は、上記実施形態で示した値に限定されず、本発明の主旨の範囲で適宜変更可能である。
【００５９】
（第二の実施の形態に関する説明）
次に本発明の第二の実施形態にかかる処理手順について説明する。図１１は本発明の第二の実施に係る基本処理手順に係るフローチャートである。
【００６０】
第二の実施形態においては、詰込対象となる複数の同型の円筒物体について、その直径を有する複数の円とみなし、これら円を断面にもつｎ個の円筒を、与えられた矩形形状の容器にできるだけ詰込むという問題に帰着させる。実際には、コンピュータを用いて、複数の円筒をできるだけ多く、与えられた矩形状の箱に詰込んで、その際の詰込パタンおよびそれの間仕切りの作成を可能とするための有効な算出方法である。
【００６１】
また、必ずしも最密充填をしない場合の間仕切りも算出可能で、普通に詰めたのでは所望の個数を詰込めないもしくは困難な場合に、この間仕切りを利用して不安定に物が動くことを抑止して、詰込む順序を考えずに通常の詰め方より多くの物体をコンパクトに詰込むことを可能とする。
【００６２】
図１１に示す処理においては、入力情報としては、詰込対象となる同一円筒物体の断面形状をそれぞれの外形に対応したｎ個の円ｃ1、ｃ2、…、ｃnの半径Robj、及び十分小さい正数である終了基準値εが与えられる。また、作成する間仕切りの厚みdsectionが与えられる。円筒の高さＨは、間仕切り作成のために与えられる。
【００６３】
また、出力情報としては、ｎ個の円ｃ1、ｃ2、…、ｃnを互いに重ならないように詰め込める円ｃ1、ｃ2、…、ｃnの詰込パタンすなわちそれらの中心の位置情報、自由円のＩＤリストが出力される。また、その詰込用の間仕切りを作成する場合には、高さがＨ、厚みがdsectionの間仕切りの形状データが出力される。箱の内形寸法は、箱の内壁を間仕切りとして使う場合は(L−dsection，La−dsection)を底面の矩形の内形寸法とし、間仕切りが壁にめり込む部分は削除して0.5dsection分短く算出する。箱の内壁を間仕切りとして使わない場合は、壁に当たる部分の間仕切りを考慮して、(L＋dsection，La＋dsection)を底面の矩形の内形寸法とする。
【００６４】
図１１に示すステップＳ１１０１では、ステップＳ１１０５で解く問題のＮを与える。つまり、矩形容器に最密で詰め込むパタンを算出するにあたっての円筒物品の初期個数を設定する。Ｎは、１、もしくは与えられたデータから決まる下限の個数とされる。ステップＳ１１０２では、与えられた個数に基づいて最密充填パタンの算出を行う。すなわち、最密充填詰込パタンＰと自由円のリストＬを算出する。算出方法については、第一の実施の形態において図４及び図５に基づいて説明した方法と同様であるため、ここでは省略する。
【００６５】
次に、ステップＳ１１０４においては、パタンＰとリストＬの算出が成功したかどうかを判定する。パタンの算出が成功すれば、ステップＳ１１０３に進み、詰め込む個数Ｎを一つ増やして問題を解くことを試みる。失敗した場合には、Ｎが１であればＮ−１＝０の最密充填パタン(すなわち解なし)、Ｎが２以上であればＮ−１についての最密充填パタンと自由円のリストを用いてステップＳ１１０５に進む。ステップＳ１１０５においては、最密充填間仕切りの生成を行う。本算出方法は、第一の実施の形態において図８及び図９に基づいて説明した方法と同様であるため、ここでは省略する。ステップＳ１１０５では、最密充填詰込を可能とし、物体をきちんと保持することを可能とする間仕切りを生成する。
【００６６】
ステップＳ１１０６においては、最密充填間仕切りの生成が成功したかどうかを判定する。出力として最密充填パタンが生成されれば成功とし(ステップＳ１１０６のＹ)、ステップＣ１１０７において間仕切りの形状データを出力する。パタンが生成されなければ(ステップＳ１１０６のＮ)、ステップＳ１１０８において失敗としてメッセージを返す。
【００６７】
このように、個数を１つずつ増やしながら最密充填パタンを生成し、失敗したところで、最密充填パタンの生成を終了し、間仕切りを生成するようにすることで、与えられた矩形容器に対し、詰め込める最大個数での間仕切りを生成することができる。
【００６８】
また、与えられた個数Ｎが与えられている矩形容器の最密充填個数に満たない場合であっても、与えられた個数において重心が偏ることのない、安定した詰込パタンによる間仕切りを生成可能となる。所望の詰込み個数Ｎで、与えられた矩形に含まれる比率の最小矩形(外形)、その中への配置、その間仕切りを用いることで、不安定に動かない間仕切りを生成できる。例えば、重心の偏りが少ない場合には、与えられた矩形の2辺を使って間仕切りを生成する。また、重心の偏りが大きい場合にはそれが与えられた矩形の重心に最も近くなるように間仕切りの位置を決定し、最小矩形の間仕切りの外形に当たる４点を与えられた矩形と結ぶ４辺を間仕切りに追加して間仕切りを構成すればよい。
【符号の説明】
【００６９】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  外部記憶装置
１０５  通信インターフェース
１０６  入出力インターフェース
１０７  マウス
１０８  キーボード
１０９  ディスプレイ
【図１】
2014168867.tif 000006
【図２】
2014168867.tif 000007
【図３】
2014168867.tif 000008
【図４】
2014168867.tif 000009
【図５】
2014168867.tif 000010
【図６】
2014168867.tif 000011
【図７】
2014168867.tif 000012
【図８】
2014168867.tif 000013
【図９】
2014168867.tif 000014
【図１０】
2014168867.tif 000015
【図１１】
2014168867.tif 000016