以下、図面と共に本発明に係る輸送組み合わせ列挙システム、輸送組み合わせ列挙方法及び輸送組み合わせ列挙プログラムの実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
図1に本実施形態に係る輸送組み合わせ列挙システム10を示す。輸送組み合わせ列挙システム10は、複数の輸送から、予め設定された条件を満たす輸送の組み合わせを列挙するシステム(装置)である。列挙する組み合わせの候補となる複数の輸送は、輸送対象となる物品(荷物)毎に予め設定された出発地(始点)から予め設定された到着地(終点)へ運ぶことである。出発地及び到着地は、輸送毎に予め設定されている。出発地及び到着地は、例えば、物品の荷主の拠点である。また、出発地及び到着地は、それ以外の場所であってもよい。本実施形態では。輸送は、トラック等の車両によって行われる。但し、輸送は、車両以外の手段によって行われてもよい。
複数の輸送を組み合わせて1台の車両で実行することで効率的な輸送が可能となる。複数の輸送は互いに異なる荷主(例えば、異なる物流企業)に係るものであってもよい。即ち、互いに異なる荷主の物品について、共同輸送を行うものであってもよい。
輸送組み合わせ列挙システム10は、荷主から、これから行われる輸送に係る情報を予め取得しておき、当該情報に基づいて輸送の組み合わせを列挙(算出)して、荷主に提示する。荷主は、提示された自身に係る輸送を含む、輸送の組み合わせを参照して共同輸送を行うか否か、また、どの組み合わせでの共同輸送を行うかを判断することができる。
物流業界では、人手不足が顕在化しつつあり、より少ない車両でより多くの物品を運ぶことができる共同輸送の必要性が高まっている。輸送組み合わせ列挙システム10による輸送の組み合わせの列挙及び荷主への提示が行われることで、共同輸送のマッチングを行うことができる。
本実施形態では、輸送組み合わせ列挙システム10は、逐次輸送を対象として輸送の組み合わせを列挙する。逐次輸送は、1台の車両で複数の輸送を逐次的に処理するものである。従って、逐次輸送に係る輸送の組み合わせは、出発地から到着地への移動を輸送毎に重複せずに行う組み合わせである。
図2に逐次輸送の例を模式的に示す。図2に示す例は、3つの輸送r1,r2,r3を組み合わせた三角輸送である。この例では、車両は、輸送r1の出発地b1で物品を積み移動を開始する。続いて、車両は、輸送r1の到着地t1に移動して物品を降ろす。続いて、車両は、輸送r1の到着地t1から輸送r2の出発地b2に移動して物品を積む。続いて、車両は、輸送r2の到着地t2に移動して物品を降ろす。続いて、車両は、輸送r2の到着地t2から輸送r3の出発地b3に移動して物品を積む。続いて、車両は、輸送r3の到着地t3に移動して物品を降ろす。続いて、車両は、輸送r3の到着地t3から輸送r1の出発地b1(移動の開始地点)に移動して移動を終了する。逐次輸送では、輸送の到着地から別の輸送の出発地までの移動は空車回送である。
本実施形態では、輸送組み合わせ列挙システム10は、逐次輸送での3つの輸送の組み合わせを列挙する。但し、組み合わせに含まれる個々の輸送の数は3つに限られず任意の数としてもよい。
また、本実施形態では、輸送組み合わせ列挙システム10は、混載輸送を対象として輸送の組み合わせを列挙する。混載輸送は、1台の車両で複数の輸送に係る物品を混載して同時に運ぶものである。従って、混載輸送に係る輸送の組み合わせは、出発地から到着地への移動を輸送間で重複して行ってもよい組み合わせである。
図5に混載輸送の例を模式的に示す。図5に示す例は、3つの輸送r1,r2,r3を組み合わせたものである。この例では、車両は、輸送r3の出発地b3で物品を積み移動を開始する。続いて、車両は、輸送r3の出発地b3から輸送r2の出発地b2に移動して更に物品を積む。続いて、車両は、輸送r2の出発地b2から輸送r1の出発地b1に移動して更に物品を積む。続いて、車両は、輸送r1の到着地t1に移動して、輸送r1に係る物品を降ろす。続いて、車両は、輸送r1の到着地t1から輸送r2の到着地t2に移動して、輸送r2に係る物品を降ろす。続いて、車両は、輸送r2の到着地t2から輸送r3の到着地t3に移動して、輸送r3に係る物品を降ろす。続いて、車両は、輸送r3の到着地t3から輸送r3の出発地b3(移動の開始地点)に移動して移動を終了する。
また、図9に別の混載輸送の例を模式的に示す。図9に示す例は、2つの輸送r1,r2を組み合わせたものである。車両の移動は、2つの輸送r1,r2を組み合わせた場合も、輸送の数が少ないだけで3つの輸送r1,r2,r3を組み合わせた場合と同様に行われる。
本実施形態では、輸送組み合わせ列挙システム10は、混載輸送での3つ又は2つの輸送の組み合わせを列挙する。但し、組み合わせに含まれる個々の輸送の数は3つ又は2つに限られず任意の数としてもよい。
輸送組み合わせ列挙システム10は、複数の輸送から、予め設定された条件を満たす輸送の組み合わせを列挙する。予め設定された条件は、輸送の組み合わせを効率的かつ適切にするためのものである。予め設定された条件は、輸送の組み合わせが逐次輸送であるか、又は混載輸送であるかによって設定される。条件の具体的内容については後述する。
輸送組み合わせ列挙システム10は、後述するように距離の公理等による、輸送の組み合わせの背後に潜む不等式を活用して、正確さを犠牲にすることなく、輸送の組み合わせを探索する範囲を絞り込む。用いられる距離の公理は、例えば、別の地点を経由して目的地に向かう距離は、目的地に直接向かう距離以上になるというものである。上記の不等式は、未確定の情報がある場合にも成り立つものである。従って、輸送組み合わせ列挙システム10は、輸送の組み合わせについて未確定の情報がある場合であっても、輸送の組み合わせを探索する範囲を絞り込むことができる。また、輸送組み合わせ列挙システム10は、後述する工夫したデータ構造及び探索の走査順序を用いることで、高速な列挙を実現する。
上述したように総当たりの組み合わせに対して条件の合致を判断すると、計算量が膨大となり、迅速な組み合わせの提示が困難である。輸送組み合わせ列挙システム10は、上記の絞り込みを行うことで、条件を満たす輸送の組み合わせを効率的に列挙することができる。その結果、共同輸送のマッチングのための輸送の組み合わせの候補を迅速に提示することができる。
輸送組み合わせ列挙システム10は、具体的には、CPU(Central Processing Unit)、メモリ等のハードウェアを含むコンピュータによって構成されている。輸送組み合わせ列挙システム10の後述する各機能は、これらの構成要素がプログラム等により動作することによって発揮される。なお、輸送組み合わせ列挙システム10は、一つのコンピュータで実現されてもよいし、複数のコンピュータがネットワークにより互いに接続されて構成されるコンピュータシステムにより実現されていてもよい。
引き続いて、本実施形態に係る輸送組み合わせ列挙システム10の機能について説明する。図1に示すように、輸送組み合わせ列挙システム10は、取得部11と、算出部12と、除外部13と、列挙部14とを備えて構成される。
取得部11は、組み合わせの元となる複数の輸送のそれぞれについて、出発地及び到着地を示す情報を含む輸送情報を取得する取得手段である。算出部12は、取得部11によって取得された輸送情報に基づいて、組み合わせの候補となる輸送を新たに組み合わせに含めた場合の予め設定された条件に係る上界又は下界を算出する算出手段である。除外部13は、算出部12によって算出された上界又は下界に基づいて、上記の場合の組み合わせを、列挙する組み合わせの候補から除外する除外手段である。列挙部14は、除外部13によって除外された候補以外から、予め設定された条件を満たす輸送の組み合わせを列挙する列挙手段である。
以下、逐次輸送の組み合わせを算出する場合と、混載輸送の組み合わせを算出する場合とのそれぞれの場合についての各機能部11~14の機能を説明する。まず、逐次輸送の組み合わせを算出する場合の機能を説明し、その後、混載輸送の組み合わせを算出する場合の機能を説明する。
逐次輸送の場合の条件は、組み合わせに含まれる互いに異なる輸送間の移動を含む総移動距離に係る条件を含む。本実施形態では、総移動距離を総走行距離と呼ぶ。当該条件は、例えば、輸送の組み合わせの総走行距離が、上限T以下というものである。総走行距離の上限Tは正の値(T>0)である。上限Tの値は、予め輸送組み合わせ列挙システム10に記憶されており、後述するように輸送の組み合わせの列挙に利用される。
図2に示す3つの輸送r1,r2,r3の組み合わせの場合、総走行距離は、各輸送r1,r2,r3の出発地b1,b2,b3から到着地t1,t2,t3までの距離である実車距離d1,d2,d3及び輸送間の距離e1,e2,e3の和d1+d2+d3+e1+e2+e3である。ここで、輸送間の距離e1,e2,e3は、輸送r1,r2,r3の到着地t1,t2,t3から、次の輸送r2,r3,r1の出発地b2,b3,b1までの距離e1,e2,e3である。
また、逐次輸送の場合の条件は、組み合わせに含まれる互いに異なる輸送間の移動を含む総移動距離に対する輸送のみの移動距離の割合である実移動率に係る条件を含む。輸送のみの移動距離は、車両に輸送対象の物品が積載されている際の移動距離である。本実施形態では、実移動率を実車率と呼ぶ。当該条件は、例えば、輸送の組み合わせの実車率が、目標L以上であるというものである。実車率の目標Lは0以上かつ1以下の値(L∈[0,1])である。実車率の目標Lの値は、予め輸送組み合わせ列挙システム10に記憶されており、後述するように輸送の組み合わせの列挙に利用される。図2に示す3つの輸送r1,r2,r3の組み合わせの場合、実車率は、総走行距離d1+d2+d3+e1+e2+e3に対する、実車距離(の和)d1+d2+d3の比である。
逐次輸送の場合、順番が決まっている3つの輸送r1,r2,r3では、何れの輸送から開始しても、総走行距離及び実車率は同じである(円順列)。従って、これらの2つの条件のみを考慮する場合には、順番が決まった3つの輸送r1,r2,r3を列挙すればよい。但し、三角輸送の出発点によっては、輸送の組み合わせに係る運賃が異なることもあるため、運賃を考慮する場合等は上記の限りではない。
取得部11は、例えば、以下のように輸送情報を取得する。輸送組み合わせ列挙システム10には、組み合わせの元となる複数の輸送のそれぞれについて、輸送情報が予め入力されてデータベースで記憶されている。輸送情報の輸送組み合わせ列挙システム10への入力は、例えば、輸送組み合わせ列挙システム10を利用するユーザ(例えば、共同輸送を行いたい荷主)、又は輸送組み合わせ列挙システム10の管理者によって行われる。
各輸送にはそれぞれにID等が設けられて、各輸送が識別できるようになっている。各輸送の輸送情報は、例えば、出発地及び到着地の座標(例えば、出発地及び到着地の緯度経度の情報)を示す情報を含む。但し、輸送情報は、必ずしも座標を示す情報である必要はなく、以下の機能部に用いられる、出発地及び到着地を示す情報を含むものであればよい。
取得部11は、上記のように輸送組み合わせ列挙システム10に予め記憶されている輸送情報を取得する。取得部11は、取得した輸送情報を算出部12に出力する。
算出部12は、取得部11によって取得された輸送情報に基づいて、組み合わせの候補となる輸送を新たに組み合わせに含めた場合の当該候補の出発地までの新たな移動距離を算出して、当該移動距離に基づいて当該候補をソートする。算出部12は、算出した新たな移動距離に基づいて、上記の場合の、当該組み合わせにおける当該候補の出発地までの総移動距離を総移動距離に係る上界又は下界として算出する。算出部12は、算出した新たな移動距離及び前記総移動距離の上限値に基づいて、上記の場合の、実移動率に係る上界又は下界を算出する。
算出部12は、組み合わせの候補となると共に出発地が同一である輸送の移動距離に基づいて当該候補を更にソートする。算出部12は、算出した新たな移動距離及び組み合わせの候補となる輸送の移動距離に基づいて、上記の場合の、実移動率に係る上界又は下界を算出する。
除外部13は、ソートした順番に、上記の場合の組み合わせを、列挙する組み合わせの候補から除外するか否かを判断し、除外すると判断したら、判断に係る組み合わせ、及びソートした順番に基づく判断以外に係る組み合わせを、列挙する組み合わせの候補から除外する。本実施形態では、輸送の組み合わせを、列挙する組み合わせの候補から除外することを枝刈りと呼ぶ。
具体的には、算出部12、除外部13及び列挙部14による処理は、以下のように行われる。算出部12は、組み合わせの基準となる輸送(ターゲットとして固定される輸送)を示す情報を取得する。算出部12は、例えば、ユーザ(例えば、共同輸送を行いたい荷主)からマッチング依頼として入力される情報を受け付けて当該情報を取得する。算出部12、除外部13及び列挙部14による処理によって、基準となる輸送を含む、輸送の組み合わせが列挙される。なお、輸送組み合わせ列挙システム10における輸送の組み合わせの列挙において、必ずしも基準となる輸送が用いられる必要はない。
本実施形態では、基準となる輸送を図2に示す輸送r1として説明する。上述したように、逐次輸送であり上記の条件のみを考慮する場合、輸送の組み合わせは円順列となっているので、基準となる輸送が、輸送r2又は輸送r3あっても条件に係る値(総走行距離及び実車率)は変わらない。そのため、基準となる輸送を輸送r1とした場合のみでの列挙が行われればよい。
以降の算出部12、除外部13及び列挙部14による処理は、以下のアルゴリズムに従って行われる。以下では、算出部12、除外部13及び列挙部14の機能を上記のアルゴリズムとあわせて説明する。
1. C←φ
2. for b2 in 拠点リスト:
3. 枝刈り1
4. for r2 in b2出発の輸送リスト:
5. 枝刈り2
6. for b3 in 拠点リスト:
7. 枝刈り3
8. for r3 in b3出発の輸送リスト:
9. 枝刈り4
10. if L≦実車率 and 総走行距離≦T
11. C←C∪{(r1,r2,r3)}
12.Cを出力
まず、列挙部14は、列挙する輸送の組み合わせの集合Cを空集合とする(アルゴリズムの1に相当)。
図3(a)に示すように、算出部12は、取得部11から入力した輸送情報に基づいて、輸送r1の到着地t1から、輸送r2としての組み合わせの候補である別の輸送の出発地までの距離e1を算出する。この距離e1は、組み合わせの候補である別の輸送を新たに組み合わせに含めた場合の当該候補の出発地までの新たな移動距離である。異なる又は同一の輸送の出発地及び到着地間の移動距離の算出は、従来と同様に行われればよい(以降についても同様である)。算出部12は、上記の算出を、組み合わせの候補である全ての別の輸送について行う。算出部12は、算出した移動距離e1が短い順に、組み合わせの候補である別の輸送をソートする。即ち、算出部12は、出発地が輸送r1の到着地t1に近い順に別の輸送をソートする。なお、算出部12は、マッチング依頼を入力する前に予め、全ての輸送の組み合わせについて輸送間の移動距離を算出して、算出した移動距離に基づく上記のソートを行っておいてもよい。また、出発地及び到着地(拠点)の少なくとも何れかが、複数の輸送間で共通する場合には、出発地及び到着地の少なくとも何れかに当該複数の輸送を対応付けて、出発地及び到着地の少なくとも何れか毎(拠点毎)に移動距離を算出してもよい。上記の事前の移動距離の算出及びソートは、以降の輸送間の移動距離に基づいてソートする場合でも同様である。
続いて、ソートされた順番かつ別の輸送の出発地(拠点)b2毎に以下の処理が行われる(アルゴリズムの2~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り1)が行われる(アルゴリズムの3に相当)。算出部12は、輸送r1の移動距離d1と、算出した距離e1との和d1+e1を総走行距離の下界として算出する。なお、輸送r1の移動距離d1については、輸送情報に各輸送の情報として含まれていてもよいし、算出部12が、輸送情報から算出してもよい(以降の輸送の移動距離についても同様である)。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
d1+e1>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図2に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた総走行距離の下界は、ソートされた順番の値となるためである。
また、算出部12は、算出した距離e1と総走行距離の上限Tとから、以下の値を実車率の上界として算出する。
続いて、除外部13は、算出部12によって算出された実車率の上界と、実車率の目標Lとを比較して、以下の式を満たすか否かを判断する。
上記の実車率の上界は、e1に関して単調減少である。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図2に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた実車率の上界は、e1に関して単調減少であり、ソートされた順番の値となるためである。
また、算出部12は、別の輸送の出発地から輸送r1の出発地b1までの距離(図3(a)に示す距離x)を算出する。算出部12は、輸送r1の移動距離d1と、算出した距離e1と、算出した距離xとの和d1+e1+xを総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
d1+e1+x>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図2に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いたd1+e1+xは、必ずしもソートされた順番の値とならないためである。以上が、枝刈り1である。
続いての枝刈りは、上記のアルゴリズムに示すように、輸送の組み合わせのr2として上記の別の輸送の出発地b2(拠点)毎に行われる。算出部12は、別の輸送の移動距離d2が長い順に、組み合わせの候補である別の輸送をソートする。なお、算出部12は、マッチング依頼を入力する前に予め、輸送の移動距離に基づく上記のソートを行っておいてもよい。上記の事前のソートは、以降の輸送の移動距離に基づいてソートする場合でも同様である。続いて、ソートされた順番かつ別の輸送毎に以下の処理が行われる(アルゴリズムの4~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り2)が行われる(アルゴリズムの5に相当)。
図3(b)に示すように、算出部12は、算出した距離e1と輸送の移動距離d1,d2とから、以下の値を実車率の上界として算出する。当該実車率の上界の算出は、ある地点からの別の地点へ向かう移動距離と、別の地点からある地点へ向かう逆方向の移動距離とが同一である(距離が対称である)ことを前提とするものである(以下に示すd3の上界の式でこの距離の対称性が必要となる)。
続いて、除外部13は、算出部12によって算出された実車率の上界と、実車率の目標Lとを比較して、以下の式を満たすか否かを判断する。
上記の実車率の上界は、d2に関して単調増加である。
上記の値が実車率の上界であることは以下のように示される。
また、上記のd3,e2,e3に関しての単調性は以下のように示される。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図2に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた実車率の上界は、d2に関して単調増加であり、ソートされた順番の値となるためである。
また、算出部12は、別の輸送の到着地から輸送r1の出発地b1までの距離(図3(b)に示す距離x)を算出する。算出部12は、輸送r1の移動距離d1と、算出した距離e1と、別の輸送の移動距離d2と、算出した距離xとの和d1+e1+d2+xを総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
d1+e1+d2+x>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図2に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いたd1+e1+d2+xは、必ずしもソートされた順番の値とならないためである。以上が、枝刈り2である。
上記の枝刈りによって除外されなかった別の輸送を輸送r2として、続いて、輸送r1と輸送r2との組み合わせに対して、続いて、以下のように輸送r3についての枝刈りが行われる。続いての枝刈りは、輸送r1と輸送r2との組み合わせ毎に行われる。
図4(a)に示すように、算出部12は、取得部11から入力した輸送情報に基づいて、輸送r2の到着地t2から、輸送r3としての組み合わせの候補である別の輸送の出発地までの距離e2を算出する。この距離e2は、組み合わせの候補である別の輸送を新たに組み合わせに含めた場合の当該候補の出発地までの新たな移動距離である。算出部12は、上記の算出を、組み合わせの候補である全ての別の輸送について行う。算出部12は、算出した移動距離e2が短い順に、組み合わせの候補である別の輸送をソートする。即ち、算出部12は、出発地が輸送r2の到着地t2に近い順に別の輸送をソートする。
続いて、ソートされた順番かつ別の輸送の出発地(拠点)b3毎に以下の処理が行われる(アルゴリズムの6~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り3)が行われる(アルゴリズムの7に相当)。算出部12は、輸送r1の移動距離d1と、算出した距離e1と、輸送r2の移動距離d2と、算出した距離e2との和d1+e1+d2+e2を総走行距離の下界として算出する。なお、ここでのe1は、枝刈りの対象となっている輸送r1と輸送r2との組み合わせについて算出されたものである。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
d1+e1+d2+e2>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図2に示す輸送r3として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた総走行距離の下界は、ソートされた順番の値となるためである。
また、算出部12は、算出した距離e1,e2と総走行距離の上限Tとから、以下の値を実車率の上界として算出する。
続いて、除外部13は、算出部12によって算出された実車率の上界と、実車率の目標Lとを比較して、以下の式を満たすか否かを判断する。
上記の実車率の上界は、e2に関して単調減少である。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図2に示す輸送r3として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた実車率の上界は、e2に関して単調減少であり、ソートされた順番の値となるためである。
また、算出部12は、別の輸送の出発地から輸送r1の出発地b1までの距離(図4(a)に示す距離x)を算出する。算出部12は、輸送r1の移動距離d1と、算出した距離e1と、輸送r3の移動距離d2と、算出した距離e2と、算出した距離xとの和d1+e1+d2+e2+xを総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
d1+e1+d2+e2+x>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図2に示す輸送r3として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いたd1+e1+d2+e2+xは、必ずしもソートされた順番の値とならないためである。以上が、枝刈り3である。
続いての枝刈りは、上記のアルゴリズムに示すように、輸送の組み合わせのr3として上記の別の輸送の出発地b3(拠点)毎に行われる。算出部12は、別の輸送の移動距離d3が長い順に、組み合わせの候補である別の輸送をソートする。続いて、ソートされた順番かつ別の輸送毎に以下の処理が行われる(アルゴリズムの8~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り4)が行われる(アルゴリズムの9に相当)。
図4(b)に示すように、算出部12は、算出した距離e1,e2と輸送の移動距離d1,d2,d3とから、以下の値を実車率の上界として算出する。
続いて、除外部13は、算出部12によって算出された実車率の上界と、実車率の目標Lとを比較して、以下の式を満たすか否かを判断する。
上記の実車率の上界は、d3に関して単調増加である。
上記の値が実車率の上界であることは以下のように示される。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図2に示す輸送r3として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた実車率の上界は、d3に関して単調増加であり、ソートされた順番の値となるためである。以上が、枝刈り4である。
除外部13は、上記の枝刈り1~4によって除外されなかった輸送r1,r2,r3の組み合わせを示す情報を列挙部14に出力する。列挙部14は、除外部13から入力された情報によって示される輸送r1,r2,r3の組み合わせに対して、総走行距離及び実車率を算出し、算出した総走行距離及び実車率がそれぞれ予め設定された条件を満たすか否かを判断する(アルゴリズムの10に相当)。
具体的には、列挙部14は、輸送r3の到着地t3から、輸送r1の出発地b1までの距離e3を算出する。続いて、列挙部14は、輸送r1,r2,r3の組み合わせの総走行距離であるd1+d2+d3+e1+e2+e3を算出する。なお、上記の算出には、取得部11によって取得された輸送情報及び算出部12によって算出された距離が用いられてもよい。列挙部14は、算出した総走行距離と、総走行距離の上限Tとを比較して、総走行距離に係る条件である以下の式を満たすか否かを判断する。
総走行距離≦T
また、列挙部14は、輸送r1,r2,r3の組み合わせの実車率である以下の値を算出する。
列挙部14は、算出した実車率と、実車率の目標Lとを比較して、実車率に係る条件である以下の式を満たすか否かを判断する。
実車率≦L
列挙部14は、上記2つの式を何れも満たすと判断した輸送r1,r2,r3の組み合わせを示す情報を、列挙する輸送の組み合わせの集合Cに含める(アルゴリズムの11に相当)。
算出部12、除外部13及び列挙部14は、上記の処理を(アルゴリズムの2~11に相当、繰り返しを示す部分はアルゴリズムの2,4,6,8)を輸送r2,r3の候補となる別の輸送がなくなるまで行う。
上記の繰り返しが終了したら、列挙部14は、列挙する輸送の組み合わせの集合Cに含まれる全ての輸送r1,r2,r3の組み合わせを示す情報を、条件を満たす全ての輸送の組み合わせとして列挙(全列挙)する(アルゴリズムの12に相当)。例えば、列挙部14は、荷主の端末に、荷主の輸送r1に組み合わせ可能な輸送として、輸送r2,r3の情報を送信する。なお、列挙部14による列挙の態様、即ち、情報の出力の態様としては、上記のものに限られず任意の態様であってもよい(以下についても同様である)。また、列挙部14は、条件を満たす輸送の組み合わせから、一定の輸送の組み合わせ(例えば、実車率が大きいものから、予め設定した数の組み合わせ)を示す情報を出力してもよい。以上が、逐次輸送の組み合わせを算出する場合の輸送組み合わせ列挙システム10の機能である。
引き続いて、混載輸送の組み合わせを算出する場合の輸送組み合わせ列挙システム10の機能を説明する。まず、図5に示す3つの輸送r1,r2,r3の組み合わせを算出する場合の機能を説明し、その後、図9に示す2つの輸送r1,r2の組み合わせを算出する場合の機能を説明する。
混載輸送の場合の条件は、組み合わせに含まれる輸送に係る総移動距離に係る条件を含む。本実施形態では、総移動距離を総走行距離と呼ぶ。当該条件は、例えば、輸送の組み合わせの総走行距離が、上限T以下というものである。総走行距離の上限Tは正の値(T>0)である。上限Tの値は、予め輸送組み合わせ列挙システム10に記憶されており、後述するように輸送の組み合わせの列挙に利用される。
図5に示す3つの輸送r1,r2,r3の組み合わせの場合、総走行距離は、輸送間の距離x2,x1,z1,z2、全ての物品が積載されている際の距離d1及び全ての物品が降ろされた後、輸送の組み合わせの開始地点に移動する距離d3の和x2+x1+d1+z1+z2+d3である。ここで、輸送間の距離x2は、最初に物品が積載される輸送r3の出発地b3から次に物品が積載される輸送r2の出発地b2までの距離x2である。輸送間の距離x1は、輸送r2の出発地b2から次に物品が積載される輸送r1の出発地b1までの距離x1である。全ての物品が積載されている際の距離d1は、輸送r1の出発地b1から輸送r1の物品が降ろされる到着地t1までの距離d1である。
輸送間の距離z1は、輸送r1の到着地t1から輸送r2の物品が降ろされる到着地t2までの距離z1である。輸送間の距離z2は、輸送r2の到着地t2から輸送r3の物品が降ろされる到着地t3までの距離z2である。輸送の組み合わせの開始地点に移動する距離d3は、輸送r3の到着地t3から輸送の組み合わせの開始地点である輸送r3の出発地b3までの距離d3である。
また、混載輸送の場合の条件は、組み合わせに含まれる個々の輸送の移動距離の和に対する、組み合わせの移動距離の割合である移動短縮率に係る条件を含む。組み合わせに含まれる個々の輸送の移動距離の和は、組み合わせに含まれる個々の輸送の出発地から到着地までの距離の和である。即ち、組み合わせに含まれる個々の輸送の移動距離の和は、非協力時の往路距離である。本実施形態では、組み合わせの移動距離は、輸送の組み合わせにおいて最初に物品が積載される輸送の出発地から、最後に物品が降ろされる輸送の到着地までの移動距離である。即ち、組み合わせの移動距離は、協力時の往路距離である。
本実施形態では、移動短縮率を片道短縮率とする。当該条件は、例えば、輸送の組み合わせの片道短縮率が、目標U以下であるというものである。片道短縮率の目標Uは0以上かつ1以下の値(U∈[0,1])である。片道短縮率の目標Uの値は、予め輸送組み合わせ列挙システム10に記憶されており、後述するように輸送の組み合わせの列挙に利用される。図2に示す3つの輸送r1,r2,r3の組み合わせの場合、片道短縮率は、非協力時の往路距離d1+d2+d3に対する、協力時の往路距離x2+x1+d1+z1+z2の比である。
取得部11は、上述した逐次輸送の場合と同様に輸送情報を取得して算出部12に出力する。
算出部12は、取得部11によって取得された輸送情報に基づいて、組み合わせの候補となる輸送を新たに組み合わせに含めた場合の当該候補の出発地からの、又は当該候補の出発地までの新たな移動距離を算出して、当該移動距離に基づいて当該候補をソートする。算出部12は、算出した新たな移動距離に基づいて、上記の場合の、当該組み合わせにおける当該候補の出発地からの、又は当該候補の出発地までの総移動距離を総移動距離に係る上界又は下界として算出する。算出部12は、算出した新たな移動距離及び組み合わせの候補となる輸送の移動距離に基づいて、上記の場合の、当該組み合わせにおける移動短縮率に係る上界又は下界を算出する。
算出部12は、組み合わせの候補となると共に出発地が同一である輸送の移動距離に基づいて当該候補を更にソートする。算出部12は、算出した新たな移動距離及び組み合わせの候補となる輸送の移動距離に基づいて、上記の場合の、当該組み合わせにおける移動短縮率に係る上界又は下界を算出する。
除外部13は、ソートした順番に、上記の場合の組み合わせを、列挙する組み合わせの候補から除外するか否かを判断し、除外すると判断したら、判断に係る組み合わせ、及びソートした順番に基づく判断以外に係る組み合わせを、列挙する組み合わせの候補から除外する。
具体的には、算出部12、除外部13及び列挙部14による処理は、以下のように行われる。算出部12は、上述した逐次輸送の場合と同様に、組み合わせの基準となる輸送(ターゲットとして固定される輸送)を示す情報を取得する。算出部12、除外部13及び列挙部14による処理によって、基準となる輸送を含む、輸送の組み合わせが列挙される。なお、輸送組み合わせ列挙システム10における輸送の組み合わせの列挙において、必ずしも基準となる輸送が用いられる必要はない。
混載輸送の場合、基準となる輸送が、図5に示す輸送r1,r2,r3の何れになるかによって条件に係る値(総走行距離及び片道短縮率)が変わる。算出部12、除外部13及び列挙部14による処理は、基準となる輸送が、図5に示す輸送r1,r2,r3のそれぞれになる場合毎に行われる。まず、基準となる輸送が、図5に示す輸送r1になる場合について説明する。
以降の算出部12、除外部13及び列挙部14による処理は、以下のアルゴリズムに従って行われる。以下では、算出部12、除外部13及び列挙部14の機能を上記のアルゴリズムとあわせて説明する。
1. C←φ
2. for b2 in 拠点リスト:
3. 枝刈り1
4. for r2 in b2出発の輸送リスト:
5. 枝刈り2
6. for b3 in 拠点リスト:
7. 枝刈り3
8. for r3 in b3出発の輸送リスト:
9. 枝刈り4
10. if 片道短縮率≦U and 総走行距離≦T
11. C←C∪{(r1,r2,r3)}
12.Cを出力
まず、列挙部14は、列挙する輸送の組み合わせの集合Cを空集合とする(アルゴリズムの1に相当)。
図6(a)に示すように、算出部12は、取得部11から入力した輸送情報に基づいて、輸送r2としての組み合わせの候補である別の輸送の出発地から、輸送r1の出発地b1までの距離x1を算出する。この距離x1は、組み合わせの候補である別の輸送を新たに組み合わせに含めた場合の当該候補の出発地からの新たな移動距離である。算出部12は、上記の算出を、組み合わせの候補である全ての別の輸送について行う。算出部12は、算出した移動距離x1が短い順に、組み合わせの候補である別の輸送をソートする。即ち、算出部12は、出発地が輸送r1の出発地b1に近い順に別の輸送をソートする。
続いて、ソートされた順番かつ別の輸送の出発地(拠点)b2毎に以下の処理が行われる(アルゴリズムの2~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り1)が行われる(アルゴリズムの3に相当)。算出部12は、算出した距離x1と、輸送r1の移動距離d1との和x1+d1を総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x1+d1>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた総走行距離の下界は、ソートされた順番の値となるためである。
また、算出部12は、算出した距離x1と輸送r1の移動距離d1とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、x1に関して単調増加である。
上記の値が片道短縮率の下界であることは以下のように示される。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、x1に関して単調増加であり、ソートされた順番の値となるためである。
また、算出部12は、別の輸送の出発地から輸送r1の到着地t1までの距離(図6(a)に示す距離y)を算出する。算出部12は、算出した距離x1と、輸送r1の移動距離d1と、算出した距離yとの和x1+d1+yを総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x1+d1+y>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いたx1+d1+yは、必ずしもソートされた順番の値とならないためである。以上が、枝刈り1である。
続いての枝刈りは、上記のアルゴリズムに示すように、輸送の組み合わせのr2として上記の別の輸送の出発地b2(拠点)毎に行われる。算出部12は、別の輸送の移動距離d2が長い順に、組み合わせの候補である別の輸送をソートする。続いて、ソートされた順番かつ別の輸送毎に以下の処理が行われる(アルゴリズムの4~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り2)が行われる(アルゴリズムの5に相当)。
図6(b)に示すように、算出部12は、算出した距離x1と輸送の移動距離d1,d2とから、以下の値を片道短縮率の下界として算出する。
なお、min(A,B)は、A及びBの値のうちの小さい方の値を関数値とする関数である。続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、d2に関して単調減少である。
上記の値が片道短縮率の下界であることは以下のように示される。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、d2に関して単調減少であり、ソートされた順番の値となるためである。
また、算出部12は、輸送r1の到着地t1から別の輸送の到着地までの距離(図6(b)に示す距離z1)を算出する。算出部12は、算出した距離x1,z1と輸送の移動距離d1,d2とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、d2に関して単調減少である上記の片道短縮率の下界よりタイト(少なくとも小さくない値)である。
上記の値が片道短縮率の下界であることは以下のように示される。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いた値は、必ずしもソートされた順番の値とならないためである。
また、算出部12は、算出した距離x1と、輸送r1の移動距離d1と、算出した距離z1と、別の輸送の移動距離d2との和x1+d1+z1+d2を総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x1+d1+z1+d2>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いたx1+d1+z1+d2は、必ずしもソートされた順番の値とならないためである。以上が、枝刈り2である。
上記の枝刈りによって除外されなかった別の輸送を輸送r2として、続いて、輸送r1と輸送r2との組み合わせに対して、続いて、以下のように輸送r3についての枝刈りが行われる。続いての枝刈りは、輸送r1と輸送r2との組み合わせ毎に行われる。
図6(c)に示すように、算出部12は、輸送r3としての組み合わせの候補である別の輸送の出発地から、輸送r2の出発地b2までの距離x2を算出する。この距離x2は、組み合わせの候補である別の輸送を新たに組み合わせに含めた場合の当該候補の出発地からの新たな移動距離である。算出部12は、上記の算出を、組み合わせの候補である全ての別の輸送について行う。算出部12は、算出した移動距離x2が短い順に、組み合わせの候補である別の輸送をソートする。即ち、算出部12は、出発地が輸送r2の出発地b2に近い順に別の輸送をソートする。
続いて、ソートされた順番かつ別の輸送の出発地(拠点)b3毎に以下の処理が行われる(アルゴリズムの6~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り3)が行われる(アルゴリズムの7に相当)。算出部12は、算出した距離x1,x2,z1と、輸送r1の移動距離d1との和x2+x1+d1+z1を総走行距離の下界として算出する。なお、ここでのx1は、枝刈りの対象となっている輸送r1と輸送r2との組み合わせについて算出されたものである。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x2+x1+d1+z1>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r3として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた総走行距離の下界は、ソートされた順番の値となるためである。
また、算出部12は、算出した距離x1,x2,z1と輸送r1,r2の移動距離d1,d2とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、x2に関して単調増加である。
上記の値が片道短縮率の下界であることは以下のように示される。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r3として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、x2に関して単調増加であり、ソートされた順番の値となるためである。
また、算出部12は、輸送r2の到着地t2から別の輸送の出発地までの距離(図6(c)に示す距離y)を算出する。算出部12は、算出した距離x1,x2,z1,yと輸送の移動距離d1,d2とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、x2に関して単調増加である上記の片道短縮率の下界よりタイト(少なくとも小さくない値)である。
上記の値が片道短縮率の下界であることは、図6(d)及び以下のように示される。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r3として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いた値は、必ずしもソートされた順番の値とならないためである。
また、算出部12は、算出した距離x1,x2と、輸送r1の移動距離d1と、算出した距離z1,yとの和x2+x1+d1+z1+yを総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x2+x1+d1+z1+y>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r3として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いたx2+x1+d1+z1+yは、必ずしもソートされた順番の値とならないためである。以上が、枝刈り3である。
続いての枝刈りは、上記のアルゴリズムに示すように、輸送の組み合わせのr3として上記の別の輸送の出発地b3(拠点)毎に行われる。算出部12は、別の輸送の移動距離d3が長い順に、組み合わせの候補である別の輸送をソートする。続いて、ソートされた順番かつ別の輸送毎に以下の処理が行われる(アルゴリズムの8~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り4)が行われる(アルゴリズムの9に相当)。
算出部12は、算出した距離x1,x2,z1と輸送の移動距離d1,d2,d3とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、d3に関して単調減少である。
上記の値が片道短縮率の下界であることは以下のように示される。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r3として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、d3に関して単調減少であり、ソートされた順番の値となるためである。以上が、枝刈り4である。
除外部13は、上記の枝刈り1~4によって除外されなかった輸送r1,r2,r3の組み合わせを示す情報を列挙部14に出力する。列挙部14は、除外部13から入力された情報によって示される輸送r1,r2,r3の組み合わせに対して、総走行距離及び片道短縮率を算出し、算出した総走行距離及び実車率がそれぞれ予め設定された条件を満たすか否かを判断する(アルゴリズムの10に相当)。
具体的には、列挙部14は、輸送r2の到着地t2から、輸送r3の到着地t3までの距離z2を算出する。続いて、列挙部14は、輸送r1,r2,r3の組み合わせの総走行距離であるx2+x1+d1+z1+z2+d3を算出する。なお、上記の算出には、取得部11によって取得された輸送情報及び算出部12によって算出された距離が用いられてもよい。列挙部14は、算出した総走行距離と、総走行距離の上限Tとを比較して、総走行距離に係る条件である以下の式を満たすか否かを判断する。
総走行距離≦T
また、列挙部14は、輸送r1,r2,r3の組み合わせの片道短縮率である以下の値を算出する。
列挙部14は、算出した片道短縮率と、片道短縮率の目標Uとを比較して、片道短縮率に係る条件である以下の式を満たすか否かを判断する。
片道短縮率≦U
列挙部14は、上記2つの式を何れも満たすと判断した輸送r1,r2,r3の組み合わせを示す情報を、列挙する輸送の組み合わせの集合Cに含める(アルゴリズムの11に相当)。
算出部12、除外部13及び列挙部14は、上記の処理を(アルゴリズムの2~11に相当、繰り返しを示す部分はアルゴリズムの2,4,6,8)を輸送r2,r3の候補となる別の輸送がなくなるまで行う。
上記の繰り返しが終了したら、列挙部14は、列挙する輸送の組み合わせの集合Cに含まれる全ての輸送r1,r2,r3の組み合わせを示す情報を、基準となる輸送が、図5に示す輸送r1になる場合に条件を満たす全ての輸送の組み合わせとして列挙(全列挙)する(アルゴリズムの12に相当)。例えば、列挙部14は、荷主の端末に、荷主の輸送r1に組み合わせ可能な輸送として、輸送r2,r3の情報を送信する。また、列挙部14は、条件を満たす輸送の組み合わせから、一定の輸送の組み合わせ(例えば、片道短縮率が小さいものから、予め設定した数の組み合わせ)を示す情報を出力してもよい。
続いて、基準となる輸送が、図5に示す輸送r2になる場合について説明する。以降の算出部12、除外部13及び列挙部14による処理は、以下のアルゴリズムに従って行われる。以下では、算出部12、除外部13及び列挙部14の機能を上記のアルゴリズムとあわせて説明する。
1. C←φ
2. for b1 in 拠点リスト:
3. 枝刈り1
4. for r1 in b1出発の輸送リスト:
5. 枝刈り2
6. for b3 in 拠点リスト:
7. 枝刈り3
8. for r3 in b3出発の輸送リスト:
9. 枝刈り4
10. if 片道短縮率≦U and 総走行距離≦T
11. C←C∪{(r1,r2,r3)}
12.Cを出力
まず、列挙部14は、列挙する輸送の組み合わせの集合Cを空集合とする(アルゴリズムの1に相当)。
図7(a)に示すように、算出部12は、取得部11から入力した輸送情報に基づいて、輸送r2の出発地b2から、輸送r1としての組み合わせの候補である別の輸送の出発地までの距離x1を算出する。この距離x1は、組み合わせの候補である別の輸送を新たに組み合わせに含めた場合の当該候補の出発地までの新たな移動距離である。算出部12は、上記の算出を、組み合わせの候補である全ての別の輸送について行う。算出部12は、算出した移動距離x1が短い順に、組み合わせの候補である別の輸送をソートする。即ち、算出部12は、出発地が輸送r2の出発地b2に近い順に別の輸送をソートする。
続いて、ソートされた順番かつ別の輸送の出発地(拠点)b1毎に以下の処理が行われる(アルゴリズムの2~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り1)が行われる(アルゴリズムの3に相当)。算出部12は、算出した距離x1と、輸送r2の移動距離d2との和x1+d2を総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x1+d2>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた総走行距離の下界は、ソートされた順番の値となるためである。
また、算出部12は、算出した距離x1と輸送r1の移動距離d1とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、x1に関して単調増加である。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、x1に関して単調増加であり、ソートされた順番の値となるためである。
また、算出部12は、別の輸送の出発地から輸送r2の到着地t2までの距離(図7(a)に示す距離y)を算出する。算出部12は、算出した距離x1,yと、輸送r2の移動距離d2との和x1+y+d2を総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x1+y+d2>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いたx1+y+d2は、必ずしもソートされた順番の値とならないためである。以上が、枝刈り1である。
続いての枝刈りは、上記のアルゴリズムに示すように、輸送の組み合わせのr1として上記の別の輸送の出発地b1(拠点)毎に行われる。算出部12は、別の輸送の移動距離d1が短い順に、組み合わせの候補である別の輸送をソートする。続いて、ソートされた順番かつ別の輸送毎に以下の処理が行われる(アルゴリズムの4~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り2)が行われる(アルゴリズムの5に相当)。
図7(b)に示すように、算出部12は、算出した距離x1と輸送の移動距離d1,d2との和x1+d1+d2を総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x1+d1+d2>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた総走行距離の下界は、ソートされた順番の値となるためである。
また、算出部12は、算出した距離x1と輸送の移動距離d1,d2とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、d1に関して単調増加である。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、d1に関して単調増加であり、ソートされた順番の値となるためである。
また、算出部12は、別の輸送の到着地から輸送r2の到着地t2までの距離(図7(b)に示す距離z1)を算出する。算出部12は、算出した距離x1と、別の輸送の移動距離d1と、算出した距離z1と、輸送r2の移動距離d2との和x1+d1+z1+d2を総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x1+d1+z1+d2>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いたx1+d1+z1+d2は、必ずしもソートされた順番の値とならないためである。以上が、枝刈り2である。
上記の枝刈りによって除外されなかった別の輸送を輸送r1として、続いて、輸送r1と輸送r2との組み合わせに対して、続いて、以下のように輸送r3についての枝刈りが行われる。続いての枝刈りは、輸送r1と輸送r2との組み合わせ毎に行われる。
図7(c)に示すように、算出部12は、輸送r3としての組み合わせの候補である別の輸送の出発地から、輸送r2の出発地b2までの距離x2を算出する。この距離x2は、組み合わせの候補である別の輸送を新たに組み合わせに含めた場合の当該候補の出発地からの新たな移動距離である。算出部12は、上記の算出を、組み合わせの候補である全ての別の輸送について行う。算出部12は、算出した移動距離x2が短い順に、組み合わせの候補である別の輸送をソートする。即ち、算出部12は、出発地が輸送r2の出発地b2に近い順に別の輸送をソートする。
続いて、ソートされた順番かつ別の輸送の出発地(拠点)b3毎に以下の処理が行われる(アルゴリズムの6~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り3)が行われる(アルゴリズムの7に相当)。算出部12は、算出した距離x1,x2,z1と、輸送r1の移動距離d1との和x2+x1+d1+z1を総走行距離の下界として算出する。なお、ここでのx1は、枝刈りの対象となっている輸送r1と輸送r2との組み合わせについて算出されたものである。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x2+x1+d1+z1>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r3として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた総走行距離の下界は、ソートされた順番の値となるためである。
また、算出部12は、算出した距離x1,x2,z1と輸送r1,r2の移動距離d1,d2とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、x2に関して単調増加である。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r3として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、x2に関して単調増加であり、ソートされた順番の値となるためである。
また、算出部12は、輸送r2の到着地t2から別の輸送の出発地までの距離(図7(c)に示す距離y)を算出する。算出部12は、算出した距離x1,x2と、輸送r1の移動距離d1と、算出した距離z1,yとの和x2+x1+d1+z1+yを総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x2+x1+d1+z1+y>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r3として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いたx2+x1+d1+z1+yは、必ずしもソートされた順番の値とならないためである。以上が、枝刈り3である。
続いての枝刈りは、上記のアルゴリズムに示すように、輸送の組み合わせのr3として上記の別の輸送の出発地b3(拠点)毎に行われる。算出部12は、別の輸送の移動距離d3が長い順に、組み合わせの候補である別の輸送をソートする。続いて、ソートされた順番かつ別の輸送毎に以下の処理が行われる(アルゴリズムの8~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り4)が行われる(アルゴリズムの9に相当)。
算出部12は、算出した距離x1,x2,z1と輸送の移動距離d1,d2,d3とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、d3に関して単調減少である。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r3として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、d3に関して単調減少であり、ソートされた順番の値となるためである。以上が、枝刈り4である。
除外部13は、上記の枝刈り1~4によって除外されなかった輸送r1,r2,r3の組み合わせを示す情報を列挙部14に出力する。列挙部14は、除外部13から入力された情報によって示される輸送r1,r2,r3の組み合わせに対して、総走行距離及び片道短縮率を算出し、算出した総走行距離及び実車率がそれぞれ予め設定された条件を満たすか否かを判断する(アルゴリズムの10に相当)。
具体的には、列挙部14は、輸送r2の到着地t2から、輸送r3の到着地t3までの距離z2を算出する。続いて、列挙部14は、輸送r1,r2,r3の組み合わせの総走行距離であるx2+x1+d1+z1+z2+d3を算出する。なお、上記の算出には、取得部11によって取得された輸送情報及び算出部12によって算出された距離が用いられてもよい。列挙部14は、算出した総走行距離と、総走行距離の上限Tとを比較して、総走行距離に係る条件である以下の式を満たすか否かを判断する。
総走行距離≦T
また、列挙部14は、輸送r1,r2,r3の組み合わせの片道短縮率である以下の値を算出する。
列挙部14は、算出した片道短縮率と、片道短縮率の目標Uとを比較して、片道短縮率に係る条件である以下の式を満たすか否かを判断する。
片道短縮率≦U
列挙部14は、上記2つの式を何れも満たすと判断した輸送r1,r2,r3の組み合わせを示す情報を、列挙する輸送の組み合わせの集合Cに含める(アルゴリズムの11に相当)。
算出部12、除外部13及び列挙部14は、上記の処理を(アルゴリズムの2~11に相当、繰り返しを示す部分はアルゴリズムの2,4,6,8)を輸送r1,r3の候補となる別の輸送がなくなるまで行う。
上記の繰り返しが終了したら、列挙部14は、列挙する輸送の組み合わせの集合Cに含まれる全ての輸送r1,r2,r3の組み合わせを示す情報を、基準となる輸送が、図5に示す輸送r2になる場合に条件を満たす全ての輸送の組み合わせとして列挙(全列挙)する(アルゴリズムの12に相当)。例えば、列挙部14は、荷主の端末に、荷主の輸送r2に組み合わせ可能な輸送として、輸送r1,r3の情報を送信する。上記の列挙は、上述した、基準となる輸送が、図5に示す輸送r1になる場合とあわせて行われてもよい。
続いて、基準となる輸送が、図5に示す輸送r3になる場合について説明する。以降の算出部12、除外部13及び列挙部14による処理は、以下のアルゴリズムに従って行われる。以下では、算出部12、除外部13及び列挙部14の機能を上記のアルゴリズムとあわせて説明する。
1. C←φ
2. for b1 in 拠点リスト:
3. 枝刈り1
4. for r1 in b1出発の輸送リスト:
5. 枝刈り2
6. for b2 in 拠点リスト:
7. 枝刈り3
8. for r2 in b2出発の輸送リスト:
9. 枝刈り4
10. if 片道短縮率≦U and 総走行距離≦T
11. C←C∪{(r1,r2,r3)}
12.Cを出力
まず、列挙部14は、列挙する輸送の組み合わせの集合Cを空集合とする(アルゴリズムの1に相当)。
図8(a)に示すように、算出部12は、取得部11から入力した輸送情報に基づいて、輸送r3の出発地b3から、輸送r1としての組み合わせの候補である別の輸送の出発地までの距離xを算出する。算出部12は、上記の算出を、組み合わせの候補である全ての別の輸送について行う。算出部12は、算出した移動距離xが短い順に、組み合わせの候補である別の輸送をソートする。即ち、算出部12は、出発地が輸送r3の出発地b3に近い順に別の輸送をソートする。
続いて、ソートされた順番かつ別の輸送の出発地(拠点)b1毎に以下の処理が行われる(アルゴリズムの2~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り1)が行われる(アルゴリズムの3に相当)。算出部12は、算出した距離xと、輸送r3の移動距離d3との和x+d3を総走行距離の下界として算出する。当該総走行距離の下界の算出は、空車で帰る距離が輸送r3の逆方向の移動距離d3´であり、かつ、当該移動距離d3´と輸送r3の(順方向の)移動距離d3とが同一であることを前提とするものである。但し、輸送r3の逆方向の移動距離d3´が、輸送r3の(順方向の)移動距離d3と異なる場合、d3´を算出して、当該総走行距離の下界の算出の算出において、d3に代えてd3´を用いてもよい。これは、基準となる輸送が輸送r3になる場合の以下の総走行距離の下界でも同様である。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x+d3>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた総走行距離の下界は、ソートされた順番の値となるためである。
また、算出部12は、算出した距離xと総走行距離の上限Tとから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、xに関して単調増加である。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、x1に関して単調増加であり、ソートされた順番の値となるためである。
また、算出部12は、別の輸送の出発地から輸送r3の到着地t2までの距離(図8(a)に示す距離y)を算出する。算出部12は、算出した距離x,yと、輸送r3の移動距離d3との和x+y+d3を総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x+y+d3>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いたx+y+d3は、必ずしもソートされた順番の値とならないためである。以上が、枝刈り1である。
続いての枝刈りは、上記のアルゴリズムに示すように、輸送の組み合わせのr1として上記の別の輸送の出発地b1(拠点)毎に行われる。算出部12は、別の輸送の移動距離d1が短い順に、組み合わせの候補である別の輸送をソートする。続いて、ソートされた順番かつ別の輸送毎に以下の処理が行われる(アルゴリズムの4~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り2)が行われる(アルゴリズムの5に相当)。
図8(b)に示すように、算出部12は、算出した距離xと輸送の移動距離d1,d3との和x+d1+d3を総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x+d1+d3>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた総走行距離の下界は、ソートされた順番の値となるためである。
また、算出部12は、輸送の移動距離d1,d3とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、d1に関して単調増加である。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、d1に関して単調増加であり、ソートされた順番の値となるためである。
また、算出部12は、別の輸送の到着地から輸送r3の到着地t3までの距離(図8(b)に示す距離z)を算出する。算出部12は、算出した距離xと、別の輸送の移動距離d1と、算出した距離zと、輸送r3の移動距離d3との和x+d1+z+d3を総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x+d1+z+d3>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いたx+d1+z+d3は、必ずしもソートされた順番の値とならないためである。以上が、枝刈り2である。
上記の枝刈りによって除外されなかった別の輸送を輸送r1として、続いて、輸送r1と輸送r3との組み合わせに対して、続いて、以下のように輸送r2についての枝刈りが行われる。続いての枝刈りは、輸送r1と輸送r3との組み合わせ毎に行われる。
図8(c)に示すように、算出部12は、輸送r2としての組み合わせの候補である別の輸送の出発地から、輸送r1の出発地b1までの距離x1を算出する。この距離x1は、組み合わせの候補である別の輸送を新たに組み合わせに含めた場合の当該候補の出発地からの新たな移動距離である。また、算出部12は、輸送r3の出発地b3から、別の輸送の出発地までの距離x2を算出する。この距離x2は、組み合わせの候補である別の輸送を新たに組み合わせに含めた場合の当該候補の出発地までの新たな移動距離である。算出部12は、上記の算出を、組み合わせの候補である全ての別の輸送について行う。算出部12は、算出した移動距離x2が短い順に、組み合わせの候補である別の輸送をソートする。即ち、算出部12は、出発地が輸送r3の出発地b3に近い順に別の輸送をソートする。
続いて、ソートされた順番かつ別の輸送の出発地(拠点)b2毎に以下の処理が行われる(アルゴリズムの6~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り3)が行われる(アルゴリズムの7に相当)。算出部12は、算出した距離x,x2,zと、輸送r1,r3の移動距離d1,d3とから、以下の値を総走行距離の下界として算出する。
max(x,x2)+d1+z+d3
なお、max(A,B)は、A及びBの値のうちの大きい方の値を関数値とする関数である。また、ここでのx,zは、枝刈りの対象となっている輸送r1と輸送r3との組み合わせについて算出されたものである。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
max(x,x2)+d1+z+d3>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた総走行距離の下界は、ソートされた順番の値となるためである。
また、算出部12は、算出した距離x2と輸送r1,r3の移動距離d1,d3とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、x2に関して単調増加である。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、x2に関して単調増加であり、ソートされた順番の値となるためである。
また、算出部12は、算出した距離x1,x2と、輸送r1の移動距離d1と、算出した距離zと、輸送r3の移動距離d3との和x2+x1+d1+z+d3を総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x2+x1+d1+z+d3>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いたx2+x1+d1+z+d3は、必ずしもソートされた順番の値とならないためである。以上が、枝刈り3である。
続いての枝刈りは、上記のアルゴリズムに示すように、輸送の組み合わせのr2として上記の別の輸送の出発地b2(拠点)毎に行われる。算出部12は、別の輸送の移動距離d2が長い順に、組み合わせの候補である別の輸送をソートする。続いて、ソートされた順番かつ別の輸送毎に以下の処理が行われる(アルゴリズムの8~11のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り4)が行われる(アルゴリズムの9に相当)。
算出部12は、算出した距離x1,x2,zと輸送の移動距離d1,d2,d3とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、d3に関して単調減少である。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図5に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、d3に関して単調減少であり、ソートされた順番の値となるためである。以上が、枝刈り4である。
除外部13は、上記の枝刈り1~4によって除外されなかった輸送r1,r2,r3の組み合わせを示す情報を列挙部14に出力する。列挙部14は、除外部13から入力された情報によって示される輸送r1,r2,r3の組み合わせに対して、総走行距離及び片道短縮率を算出し、算出した総走行距離及び実車率がそれぞれ予め設定された条件を満たすか否かを判断する(アルゴリズムの10に相当)。
具体的には、列挙部14は、輸送r1の到着地t1から、輸送r2の到着地t2までの距離z1を算出する。また、列挙部14は、輸送r2の到着地t2から、輸送r3の到着地t3までの距離z2を算出する。続いて、列挙部14は、輸送r1,r2,r3の組み合わせの総走行距離であるx2+x1+d1+z1+z2+d3を算出する。なお、上記の算出には、取得部11によって取得された輸送情報及び算出部12によって算出された距離が用いられてもよい。列挙部14は、算出した総走行距離と、総走行距離の上限Tとを比較して、総走行距離に係る条件である以下の式を満たすか否かを判断する。
総走行距離≦T
また、列挙部14は、輸送r1,r2,r3の組み合わせの片道短縮率である以下の値を算出する。
列挙部14は、算出した片道短縮率と、片道短縮率の目標Uとを比較して、片道短縮率に係る条件である以下の式を満たすか否かを判断する。
片道短縮率≦U
列挙部14は、上記2つの式を何れも満たすと判断した輸送r1,r2,r3の組み合わせを示す情報を、列挙する輸送の組み合わせの集合Cに含める(アルゴリズムの11に相当)。
算出部12、除外部13及び列挙部14は、上記の処理を(アルゴリズムの2~11に相当、繰り返しを示す部分はアルゴリズムの2,4,6,8)を輸送r1,r2の候補となる別の輸送がなくなるまで行う。
上記の繰り返しが終了したら、列挙部14は、列挙する輸送の組み合わせの集合Cに含まれる全ての輸送r1,r2,r3の組み合わせを示す情報を、基準となる輸送が、図5に示す輸送r3になる場合に条件を満たす全ての輸送の組み合わせとして列挙(全列挙)する(アルゴリズムの12に相当)。例えば、列挙部14は、荷主の端末に、荷主の輸送r2に組み合わせ可能な輸送として、輸送r1,r3の情報を送信する。上記の列挙は、上述した、基準となる輸送が、図5に示す輸送r1,r3になる場合とあわせて行われてもよい。以上が、3つの輸送r1,r2,r3の組み合わせでの混載輸送の組み合わせを算出する場合の輸送組み合わせ列挙システム10の機能である。
引き続いて、図9に示す2つの輸送r1,r2の組み合わせを算出する場合の輸送組み合わせ列挙システム10の機能を説明する。2つの輸送を組み合わせる混載輸送の場合と、上述した3つの輸送を組み合わせる混載輸送の場合と同様に総走行距離に係る条件(総走行距離の上限T)、及び片道短縮率に係る条件(片道短縮率の目標U)が設けられる。2つの輸送r1,r2の場合の各条件に係る値は、3つの輸送r1,r2,r3の場合と同様の考え方で算出される。
取得部11は、上述した3つの輸送の場合と同様に輸送情報を取得して算出部12に出力する。算出部12は、基本的には上述した3つの輸送の場合と同様に組み合わせの候補となる輸送のソート及び条件に係る上界又は下界の算出を行う。除外部13は、基本的には上述した3つの輸送の場合と同様に、条件に係る上界又は下界に基づいて、組み合わせの候補となる輸送を新たに組み合わせに含めた場合の組み合わせを、列挙する組み合わせの候補から除外する。
具体的には、算出部12、除外部13及び列挙部14による処理は、以下のように行われる。算出部12は、上述した3つの輸送の場合と同様に組み合わせの基準となる輸送(ターゲットとして固定される輸送)を示す情報を取得する。算出部12、除外部13及び列挙部14による処理によって、基準となる輸送を含む、輸送の組み合わせが列挙される。なお、輸送組み合わせ列挙システム10における輸送の組み合わせの列挙において、必ずしも基準となる輸送が用いられる必要はない。
算出部12、除外部13及び列挙部14による処理は、基準となる輸送が、図9に示す輸送r1,r2のそれぞれになる場合毎に行われる。まず、基準となる輸送が、図9に示す輸送r1になる場合について説明する。
以降の算出部12、除外部13及び列挙部14による処理は、以下のアルゴリズムに従って行われる。以下では、算出部12、除外部13及び列挙部14の機能を上記のアルゴリズムとあわせて説明する。
1. C←φ
2. for b2 in 拠点リスト:
3. 枝刈り1
4. for r2 in b2出発の輸送リスト:
5. 枝刈り2
6. if 片道短縮率≦U and 総走行距離≦T
7. C←C∪{(r1,r2)}
8. Cを出力
まず、列挙部14は、列挙する輸送の組み合わせの集合Cを空集合とする(アルゴリズムの1に相当)。
図10(a)に示すように、算出部12は、取得部11から入力した輸送情報に基づいて、輸送r2としての組み合わせの候補である別の輸送の出発地から、輸送r1の出発地b1までの距離x1を算出する。この距離x1は、組み合わせの候補である別の輸送を新たに組み合わせに含めた場合の当該候補の出発地からの新たな移動距離である。算出部12は、上記の算出を、組み合わせの候補である全ての別の輸送について行う。算出部12は、算出した移動距離x1が短い順に、組み合わせの候補である別の輸送をソートする。即ち、算出部12は、出発地が輸送r1の出発地b1に近い順に別の輸送をソートする。
続いて、ソートされた順番かつ別の輸送の出発地(拠点)b2毎に以下の処理が行われる(アルゴリズムの2~7のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り1)が行われる(アルゴリズムの3に相当)。算出部12は、算出した距離x1と、輸送r1の移動距離d1との和x1+d1を総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x1+d1>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図9に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた総走行距離の下界は、ソートされた順番の値となるためである。
また、算出部12は、算出した距離x1と輸送r1の移動距離d1とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、x1に関して単調増加である。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図9に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、x1に関して単調増加であり、ソートされた順番の値となるためである。
また、算出部12は、別の輸送の出発地から輸送r1の到着地t1までの距離(図10(a)に示す距離y)を算出する。算出部12は、算出した距離x1と、輸送r1の移動距離d1と、算出した距離yとの和x1+d1+yを総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x1+d1+y>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図9に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いたx1+d1+yは、必ずしもソートされた順番の値とならないためである。以上が、枝刈り1である。
続いての枝刈りは、上記のアルゴリズムに示すように、輸送の組み合わせのr2として上記の別の輸送の出発地b2(拠点)毎に行われる。算出部12は、別の輸送の移動距離d2が長い順に、組み合わせの候補である別の輸送をソートする。続いて、ソートされた順番かつ別の輸送毎に以下の処理が行われる(アルゴリズムの4~7のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り2)が行われる(アルゴリズムの5に相当)。
算出部12は、算出した距離x1と輸送の移動距離d1,d2とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、d2に関して単調減少である。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図9に示す輸送r2として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、d2に関して単調減少であり、ソートされた順番の値となるためである。以上が、枝刈り2である。
除外部13は、上記の枝刈り1,2によって除外されなかった輸送r1,r2の組み合わせを示す情報を列挙部14に出力する。列挙部14は、除外部13から入力された情報によって示される輸送r1,r2の組み合わせに対して、総走行距離及び片道短縮率を算出し、算出した総走行距離及び実車率がそれぞれ予め設定された条件を満たすか否かを判断する(アルゴリズムの6に相当)。
具体的には、列挙部14は、輸送r1の到着地t1から、輸送r2の到着地t2までの距離z1を算出する。続いて、列挙部14は、輸送r1,r2の組み合わせの総走行距離であるx1+d1+z1+d2を算出する。なお、上記の算出には、取得部11によって取得された輸送情報及び算出部12によって算出された距離が用いられてもよい。列挙部14は、算出した総走行距離と、総走行距離の上限Tとを比較して、総走行距離に係る条件である以下の式を満たすか否かを判断する。
総走行距離≦T
また、列挙部14は、輸送r1,r2の組み合わせの片道短縮率である以下の値を算出する。
列挙部14は、算出した片道短縮率と、片道短縮率の目標Uとを比較して、片道短縮率に係る条件である以下の式を満たすか否かを判断する。
片道短縮率≦U
列挙部14は、上記2つの式を何れも満たすと判断した輸送r1,r2の組み合わせを示す情報を、列挙する輸送の組み合わせの集合Cに含める(アルゴリズムの7に相当)。
算出部12、除外部13及び列挙部14は、上記の処理を(アルゴリズムの2~7に相当、繰り返しを示す部分はアルゴリズムの2,4)を輸送r2の候補となる別の輸送がなくなるまで行う。
上記の繰り返しが終了したら、列挙部14は、列挙する輸送の組み合わせの集合Cに含まれる全ての輸送r1,r2の組み合わせを示す情報を、基準となる輸送が、図9に示す輸送r1になる場合に条件を満たす全ての輸送の組み合わせとして列挙(全列挙)する(アルゴリズムの8に相当)。例えば、列挙部14は、荷主の端末に、荷主の輸送r1に組み合わせ可能な輸送として、輸送r2の情報を送信する。
続いて、基準となる輸送が、図9に示す輸送r2になる場合について説明する。以降の算出部12、除外部13及び列挙部14による処理は、以下のアルゴリズムに従って行われる。以下では、算出部12、除外部13及び列挙部14の機能を上記のアルゴリズムとあわせて説明する。
1. C←φ
2. for b1 in 拠点リスト:
3. 枝刈り1
4. for r1 in b1出発の輸送リスト:
5. 枝刈り2
6. if 片道短縮率≦U and 総走行距離≦T
7. C←C∪{(r1,r2)}
8. Cを出力
まず、列挙部14は、列挙する輸送の組み合わせの集合Cを空集合とする(アルゴリズムの1に相当)。
図10(b)に示すように、算出部12は、取得部11から入力した輸送情報に基づいて、輸送r2の出発地b2から、輸送r1としての組み合わせの候補である別の輸送の出発地までの距離x1を算出する。この距離x1は、組み合わせの候補である別の輸送を新たに組み合わせに含めた場合の当該候補の出発地までの新たな移動距離である。算出部12は、上記の算出を、組み合わせの候補である全ての別の輸送について行う。算出部12は、算出した移動距離x1が短い順に、組み合わせの候補である別の輸送をソートする。即ち、算出部12は、出発地が輸送r2の出発地b2に近い順に別の輸送をソートする。
続いて、ソートされた順番かつ別の輸送の出発地(拠点)b1毎に以下の処理が行われる(アルゴリズムの2~7のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り1)が行われる(アルゴリズムの3に相当)。算出部12は、算出した距離x1と、輸送r2の移動距離d2との和x1+d2を総走行距離の下界として算出する。当該総走行距離の下界の算出は、空車で帰る距離が輸送r2の逆方向の移動距離d2´であり、かつ、当該移動距離d2´と、輸送r2の(順方向の)移動距離d2とが同一であることを前提とするものである。但し、輸送r2の逆方向の移動距離d2´が、輸送r2の(順方向の)移動距離d2と異なる場合、d2´を算出して、当該走行距離の下界の算出の算出において、d2に代えてd2´を用いてもよい。これは、基準となる輸送が輸送r2になる場合の以下の総走行距離の下界でも同様である。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x1+d2>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図9に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた総走行距離の下界は、ソートされた順番の値となるためである。
また、算出部12は、算出した距離x1と輸送r1の移動距離d1とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、x1に関して単調増加である。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図9に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、x1に関して単調増加であり、ソートされた順番の値となるためである。
また、算出部12は、別の輸送の出発地から輸送r2の到着地t2までの距離(図10(b)に示す距離y)を算出する。算出部12は、算出した距離x1,yと、輸送r2の移動距離d2との和x1+y+d2を総走行距離の下界として算出する。続いて、除外部13は、算出部12によって算出された総走行距離の下界と、総走行距離の上限Tとを比較して、以下の式を満たすか否かを判断する。
x1+y+d2>T
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図9に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。この場合、除外部13は、それ以降の順番の別の輸送についての除外を行わない。判断に用いたx1+y+d2は、必ずしもソートされた順番の値とならないためである。以上が、枝刈り1である。
続いての枝刈りは、上記のアルゴリズムに示すように、輸送の組み合わせのr1として上記の別の輸送の出発地b1(拠点)毎に行われる。算出部12は、別の輸送の移動距離d1が短い順に、組み合わせの候補である別の輸送をソートする。続いて、ソートされた順番かつ別の輸送毎に以下の処理が行われる(アルゴリズムの4~7のfor文での繰り返しに相当)。まず、以下のように枝刈り(枝刈り2)が行われる(アルゴリズムの5に相当)。
算出部12は、算出した距離x1と輸送の移動距離d1,d2とから、以下の値を片道短縮率の下界として算出する。
続いて、除外部13は、算出部12によって算出された片道短縮率の下界と、片道短縮率の目標Uとを比較して、以下の式を満たすか否かを判断する。
上記の片道短縮率の下界は、d1に関して単調増加である。
上記の式を満たしていると判断した場合、除外部13は、別の輸送を図9に示す輸送r1として含めた組み合わせは、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。上記の判断に係る算出部12による値の算出、及び除外部13による判断は、ソートされた順番で行われる。除外部13は、一旦、列挙する組み合わせの候補から除外したら、それ以降の順番の別の輸送についても、条件を満たさないものとして列挙する組み合わせの候補から除外(枝刈り)する。判断に用いた片道短縮率の下界は、d1に関して単調増加であり、ソートされた順番の値となるためである。以上が、枝刈り2である。
除外部13は、上記の枝刈り1,2によって除外されなかった輸送r1,r2の組み合わせを示す情報を列挙部14に出力する。列挙部14は、除外部13から入力された情報によって示される輸送r1,r2の組み合わせに対して、総走行距離及び片道短縮率を算出し、算出した総走行距離及び実車率がそれぞれ予め設定された条件を満たすか否かを判断する(アルゴリズムの6に相当)。
具体的には、列挙部14は、輸送r1の到着地t1から、輸送r2の到着地t2までの距離z1を算出する。続いて、列挙部14は、輸送r1,r2の組み合わせの総走行距離であるx1+d1+z1+d2を算出する。なお、上記の算出には、取得部11によって取得された輸送情報及び算出部12によって算出された距離が用いられてもよい。列挙部14は、算出した総走行距離と、総走行距離の上限Tとを比較して、総走行距離に係る条件である以下の式を満たすか否かを判断する。
総走行距離≦T
また、列挙部14は、輸送r1,r2の組み合わせの片道短縮率である以下の値を算出する。
列挙部14は、算出した片道短縮率と、片道短縮率の目標Uとを比較して、片道短縮率に係る条件である以下の式を満たすか否かを判断する。
片道短縮率≦U
列挙部14は、上記2つの式を何れも満たすと判断した輸送r1,r2の組み合わせを示す情報を、列挙する輸送の組み合わせの集合Cに含める(アルゴリズムの11に相当)。
算出部12、除外部13及び列挙部14は、上記の処理を(アルゴリズムの2~7に相当、繰り返しを示す部分はアルゴリズムの2,4)を輸送r1の候補となる別の輸送がなくなるまで行う。
上記の繰り返しが終了したら、列挙部14は、列挙する輸送の組み合わせの集合Cに含まれる全ての輸送r1,r2の組み合わせを示す情報を、基準となる輸送が、図9に示す輸送r2になる場合に条件を満たす全ての輸送の組み合わせとして列挙(全列挙)する(アルゴリズムの8に相当)。例えば、列挙部14は、荷主の端末に、荷主の輸送r2に組み合わせ可能な輸送として、輸送r1,r3の情報を送信する。上記の列挙は、上述した、基準となる輸送が、図9に示す輸送r1になる場合とあわせて行われてもよい。以上が、2つの輸送r1,r2の組み合わせでの混載輸送の組み合わせを算出する場合の輸送組み合わせ列挙システム10の機能である。
輸送組み合わせ列挙システム10において、逐次輸送での輸送の組み合わせを算出するか、混載輸送での輸送の組み合わせを算出するかは、予め設定されていてもよい。また、上述した例は、3つの輸送を組み合わせた逐次輸送、並びに3つ又は2つの輸送を組み合わせた混載輸送であったが、それ以外の数の輸送の組み合わせを列挙してもよい。また、1つの組み合わせに含まれる輸送の数についても、予め設定されていてもよい。
また、輸送の組み合わせに係る条件について上記以外のものが用いられてもよい。例えば、輸送の組み合わせに係る運賃に係る条件を用いてもよい。また、混載輸送の場合に互いに混載できない輸送を考慮してもよい。
また、輸送の組み合わせを示す情報を出力する際に、輸送の組み合わせに係る情報を算出して出力してもよい。例えば、組み合わせに合致した輸送の組み合わせに係る運賃を算出して、算出した運賃を示す情報を出力してもよい。なお、三角輸送の場合、輸送の組み合わせの出発点によって、輸送の組み合わせに係る運賃が異なるので、出発点毎の運賃を算出して出力してもよい。以上が、本実施形態に係る輸送組み合わせ列挙システム10の機能である。
引き続いて、図11のフローチャートを用いて、本実施形態に係る輸送組み合わせ列挙システム10で実行される処理(輸送組み合わせ列挙システム10が行う動作方法)である輸送組み合わせ列挙方法を説明する。
本処理では、取得部11によって、組み合わせの元となる複数の輸送のそれぞれについて輸送情報が取得される(S01、取得ステップ)。続いて、算出部12によって、輸送の組み合わせに条件に応じて、組み合わせの候補となる輸送がソートされる(S02、算出ステップ)。続いて、算出部12によって、輸送情報に基づいて、組み合わせの候補となる輸送を新たに組み合わせに含めた場合の条件に係る上界又は下界が算出される(S03、算出ステップ)。続いて、除外部13によって、上記の上界又は下界に基づいて、上記の場合の組み合わせが、列挙する組み合わせの候補から除外される(S04、除外ステップ)。続いて、列挙部14によって、除外された候補以外から、条件を満たす輸送の組み合わせが判断される(S05、列挙ステップ)。
上記のS02~S05の処理は、上述したアルゴリズムのように組み合わせの候補となる個々の輸送毎等に繰り返し行われる。全ての組み合わせについて、除外部13による除外又は列挙部14による条件の合致の判断が行われると、続いて、列挙部14によって、条件を満たす輸送の組み合わせが列挙される(S06、列挙ステップ)。以上が、本実施形態に係る輸送組み合わせ列挙システム10で実行される処理である。
本実施形態では、算出された上界又は下界に基づいて、輸送の組み合わせが、列挙する組み合わせの候補から除外される。従って、総当たりの組み合わせに対して条件の合致を判断することなく、条件を満たす輸送の組み合わせを列挙することができる。即ち、本実施形態によれば、一定の条件を満たす輸送の組み合わせを効率的に算出することができる。
また、輸送の組み合わせは、出発地から到着地への移動を輸送毎に重複せずに行う組み合わせ、例えば、上述した実施形態のような逐次輸送であってもよい。また、輸送の組み合わせは、出発地から到着地への移動を輸送間で重複して行ってもよい組み合わせ、例えば、上述した実施形態のような混載輸送であってもよい。この場合、上述したように輸送をソートして、ソートに基づく除外が行われてもよい。このような構成とすることで、算出されたに係る上界又は下界を用いて、また、組み合わせの候補のソート結果に基づいて、上記の除外を行うことができる。従って、一定の条件を満たす輸送の組み合わせを確実かつ効率的に列挙することができる。
例えば、単純な総当たりと比べて、三角輸送の探索の場合は4,000倍速く、混載輸送の探索の場合は1,500倍速く、条件を満たす組み合わせを正確に列挙することができる。三角輸送の探索の場合の上記の値は、17,000本の輸送に対して、実車率が85%以上になる組み合わせのうち実車率が大きいものから100件を正確に列挙する処理を、異なる1,000件のマッチング依頼に対してそれぞれ実行した場合の応答時間を基に算出されたものである。混載輸送の探索の場合の上記の値は、17,000本の輸送に対して、片道短縮率が45%以下になる組み合わせのうち片道短縮率が小さいものから100件を正確に列挙する処理を、異なる1,000件のマッチング依頼に対してそれぞれ実行した場合の応答時間を基に算出されたものである。
このように処理を高速化できることで、1ユーザからの複数のマッチング依頼、又は複数ユーザからの相次ぐマッチング依頼に瞬時に応答することができる。
但し、組み合わせの除外は、必ずしも上述した実施形態と同様に行われる必要はなく、距離の公理等を用いた除外の基準によって、条件に係る上界又は下界に基づいて行われるものであればよい。また、1つの輸送の組み合わせに逐次輸送と混載輸送との両方が含まれる輸送の組み合わせの列挙に上述した実施形態の除外(枝刈り)が用いられてもよい。
引き続いて、上述した一連の輸送組み合わせ列挙システム10による処理を実行させるための輸送組み合わせ列挙プログラムを説明する。図12に示すように、輸送組み合わせ列挙プログラム100は、コンピュータに挿入されてアクセスされる、あるいはコンピュータが備える、コンピュータ読み取り可能な記録媒体110に形成されたプログラム格納領域111内に格納される。記録媒体110は、非一時的な記録媒体であってもよい。
輸送組み合わせ列挙プログラム100は、取得モジュール101と、算出モジュール102と、除外モジュール103と、列挙モジュール104とを備えて構成される。取得モジュール101と、算出モジュール102と、除外モジュール103と、列挙モジュール104とを実行させることにより実現される機能は、上述した輸送組み合わせ列挙システム10の取得部11と、算出部12と、除外部13と、列挙部14との機能とそれぞれ同様である。
なお、輸送組み合わせ列挙プログラム100は、その一部又は全部が、通信回線等の伝送媒体を介して伝送され、他の機器により受信されて記録(インストールを含む)される構成としてもよい。また、輸送組み合わせ列挙プログラム100の各モジュールは、1つのコンピュータでなく、複数のコンピュータのいずれかにインストールされてもよい。その場合、当該複数のコンピュータによるコンピュータシステムよって上述した一連の処理が行われる。