(57)【特許請求の範囲】
【請求項１】
出発地・帰着地が異なる複数のトラックを用いて複数の配送先に配送するための配送計画を立案する配送計画支援装置であって、
配送先のデータを記憶した顧客データベースと、
配送に用いるトラック毎の属性を記憶したトラックデータベースと、
前記顧客データベースに基づいて顧客間の移動コストに相当する距離データベースを算出する距離データベース算出手段と、
前記トラックデータベースと前記距離データベースとに基づいて、出発地・帰着地毎に配送先間のセービング値のマトリックスを計算するセービングマトリックス算出手段と、
前記セービングマトリックスからセービング値最大の配送先の組み合わせを１次検索し、検索された配送先の組み合わせの中でセービング値を最小にする出発地・帰着地を担当するトラックを２次検索する検索手段と、
前記２次検索された配送先が属するルートを合併した場合に制約条件を満たすか否かの判断を行ない、合併可能と判断したときに、それぞれの配送先が属するルートを合併し、かつ、前記１次検索された配送先の組み合わせに相当するセービングマトリックスの要素を０にする合併判断手段と、
を備えたことを特徴とする配送計画支援装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は配送計画の立案をセービング法アルゴリズムによって解決するシステムにおいて、出発地・帰着地が異なる複数のトラック（貨物自動車）を対象とした配送計画支援装置に関する。なお、本発明における「配送」とは、荷物を配達する意味の外に、荷物を集めたり、空の容器を回収したりするような総合的な集配行為を総称している。
【０００２】
【従来の技術】
配送計画支援システムでは、シミュレーテッドアニーリング法や遺伝子アルゴリズムやセービング法と呼ばれるアルゴリズムが用いられている。中でも、セービング法は比較的容易に精度の良い解が得られるため一般によく用いられている。しかし、セービング法では、全てのトラックが出発地・帰着地が一種類（すなわち、複数のトラックが同じ出発地から出発して同じ帰着地に帰るもの。出発地と帰着地自体は同じ場所でも異なる場所でもよい）である場合に限った解法である。このため、出発地・帰着地がトラックによって異なる場合、例えば配送センター所属の自家用車以外の傭車を用いるような場合であって、ＡトラックはＡ出発地・帰着地で、ＢトラックはＢ出発地・帰着地であるような場合には、それぞれの出発地・帰着地が車両によって異なるため、それらの出発地・帰着地の条件を考慮した配送計画の最適化をセービング法によって行なうのは困難であった。セービング法を単純に複数の出発地・帰着地に対応させる方法としては、出発地・帰着地毎にセービングマトリックスを用意し、それらの全体検索によって合併候補を検索する方法が考えられる。しかし、この方法では、或るトラックに対してより遠くにある配送先を優先して合併するというセービング法の特性から、それぞれのトラックが自身の出発地・帰着地からより遠い配送先を担当することになるという不合理が生じる。そのため、トラックが自身の帰着地に近い配送先を優先的に配送するなどのように、出発地・帰着地の違いを考慮した最適な配送計画を立案することが困難であった。
【０００３】
【発明が解決しようとする課題】
上記のように、従来のセービング法をそのまま適用して、出発地・帰着地が異なる複数のトラックを用いて複数の配送先に配送するための配送計画を立案した場合には、出発地・帰着地からより遠い配送先を担当する場合があるという不合理が生じ、最適な配送計画を立案することが出来ないという問題があった。
【０００４】
本発明は上記のごとき従来技術の問題を解決するためになされたものであり、出発地・帰着地が異なる複数のトラックを用いて複数の配送先に配送するための配送計画について、基本的にはセービング法を適用しながら、各トラックが自身の出発地・帰着地に近い配送先を優先的に配送するような最適配送計画を立案することの出来る配送計画支援装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記の目的を達成するため、本発明においては、特許請求の範囲に記載するように構成している。すなわち本発明においては、出発地・帰着地毎に複数のセービングマトリックスを算出し、その中のセービング値を最大とする配送先の組み合わせ候補を検索し、その内で、セービング値が最も小さくなるトラック、すわち、出発地・帰着地が配送先に最も近いトラックに合併候補を割り当てる。これにより、従来のセービング法と同じ配車を行ないながら、合併候補が、より出発地・帰着地が近いトラックに自動的に割り当てられる。そして合併の制約条件（例えばトラックの最大積載量を越えない条件等）を満たしている場合には、それぞれの配送先が属するルートを合併する。このように、従来のセービング法を、出発地・帰着地毎の複数セービングマトリックスに拡大するだけで、セービング値を基にした出発地・帰着地が異なる複数のトラックを含んだ場合の最適な配車が可能となる。
なお、出発地・帰着地が異なる複数のトラックとは、トラック毎に出発地・帰着地が異なることを意味し、或るトラックにおける出発地と帰着地自体は同じでも異なって（例えば出発地と異なる位置に帰着する車庫があるような場合）いてもよい。
【０００６】
【発明の効果】
本発明においては、出発地・帰着地が異なる複数のトラックを用いて複数の配送先に配送するための配送計画について、基本的には比較的容易に精度のよい解が得られるセービング法を用いながら、従来のセービング法では最適配送計画が立案出来なかった、トラック自身の出発地・帰着地周辺の配送先を優先的に配送させる、という最適配送計画を立案することが可能になる、という効果が得られる。
【０００７】
また、本発明においては、基本的にはセービング法を用いるため、例えば距離などのノード間の移動コストだけで出発地・帰着地を考慮した配車を行なうことが可能であり、かつ、セービング値の検索などは従来の検索装置をそのまま用いることができ、セービングマトリックスを出発地・帰着地が異なるトラック毎に複数持たせ、検索エンジンを複数のセービングマトリックス用に拡張するだけで本発明を実施することができるので、容易に実施可能である。
【０００８】
【発明の実施の形態】
図１は本発明の一実施の形態の構成を示すブロック図、図２は配送経路の一例を示す図である。
図１において、１は顧客データベースを記憶する顧客データベースメモリである。顧客データベースは配送先の顧客情報であり、配送先の位置（所在地の町名、番地や緯度、経度等）、時間的制約（納品時間等）、荷量などを記憶する。距離データベース算出部２は、上記の顧客データベースに基づいて、複数の顧客間の移動コストを計算し、それを距離データベースとして距離データベースメモリ３に記憶する。なお、移動コストは顧客間の移動距離、移動時間、燃料費、人件費等を含む値であるが、簡略化する場合には、例えば顧客間の移動距離のみで代表することも出来る。４はトラックデータベースを記憶するトラックデータベースメモリであり、トラック毎に、最大積載量、出発地・帰着地の位置、稼働時間、出発可能時間などの情報を記憶する。上記の顧客データベースおよびトラックデータベースは、予め各メモリに記憶させておく。
【０００９】
上記の距離データベース算出部２および後記のセービング値算出部５、検索部７、合併判断部８は、例えば図２に示すように、配送センタ１０等に設置された配送計画支援装置１１の機能に相当する。配送計画支援装置１１は例えばコンピュータで構成される。また、上記の顧客データベースメモリ１、距離データベースメモリ３、トラックデータベースメモリ４および後記のセービングマトリックスメモリ６は、例えば上記コンピュータ内のハードディスク装置などに相当する。なお、図２において、白丸は各配送先（顧客）を示し、それらを結ぶ黒線は配送経路を示している。
【００１０】
次に、セービング値算出部５は、距離データベースとトラックデータベースとに基づいて、出発地・帰着地が異なるトラック毎にセービングマトリックスを計算する。
【００１１】
次に、検索部７は、セービングマトリックス中のセービング値の最大値を与える配送先の組み合わせを検索（１次検索）する。例えば、セービングマトリックス中のセービング値としてＳｍｎが最大であった場合、配送先ノードｍとノードｎが合併候補となる。しかし、出発地・帰着地が異なる複数のトラックを含む場合に、従来のように上記のノードｍとノードｎをそのまま合併候補としたのでは、それぞれが出発地・帰着地からより遠い配送先を担当するという矛盾した結果となる。そのため、一台のトラックが担当するノードの塊はそのままにして、その塊に対して出発地・帰着地が近いトラックに割り当てを変更する必要がある。出発地・帰着地が近いとはセービング値が小さいことを意味する。そこで、従来どおり、セービング値の最大を与えるＳｍｎのノードｍとノードｎを合併候補とするが、２次検索によって、実際にそのノードの配送を担当するトラックはノードｍとノードｎの組み合わせ中でセービング値が最も小さいトラックとする。これによって、それぞれのトラックがそれぞれの出発地・帰着地に近い配送ノード群を担当し、かつそれぞれの塊は従来のセービング法どおり妥当な組み合わせとなる解が得られる。
【００１２】
次に、合併判断部８においては、そのトラックに合併候補のノードを合併した場合にそれぞれの制約条件を満たすかどうかを判断する。例えば、合併によってトラックの最大積載量をオーバーしないか等をチェックする。制約条件が守られる場合は実際に合併を行なう。そうでない場合は合併を行なわない。合併するしないにかかわらず、合併候補のセービング値を全て０にリセットし、次回以降に合併候補とならないようにする。
【００１３】
以下、上記のセービングマトリックスの作成および検索、合併の内容について詳細に説明する。
図３は、通常のセービング法によるセービング値の計算方法を説明するための図であり、（ａ）は出発地と帰着地が同一場所の場合、（ｂ）は出発地と帰着地が異なる場合を示す。
まず、図３（ａ）に示すように、出発地と帰着地が同じ場合に、出発地ｎｏｄｅ０（ノード０）から、配送先ｎｏｄｅｉ（ノードｉ）とｎｏｄｅｊ（ノードｊ）に配送を行なう場合を考える。それぞれのｎｏｄｅ間の距離をｄ０ｉ、ｄ０ｊ、ｄｉｊとすれば、ピストン輸送（単純に出発地から各配送先に行って戻る）した場合に対して、ｎｏｄｅ０→ｎｏｄｅｉ→ｎｏｄｅｊと巡回した場合における節約距離は、下記（数１）式で示される。
0003666312.tif 000002
上記（数１）の値をセービング値と呼ぶ。
【００１４】
すべてのｎｏｄｅｉ、ｎｏｄｅｊの組み合わせについてセービング値を計算したセービングマトリックスを作成し、セービング値の大きい順にノードを合併していくと、最適に近い配車が可能となる。たとえば、Ｍａｘ（Ｓ）＝Ｓｉｊとしたとき、ｎｏｄｅｉ、ｎｏｄｅｊをひとつのトラックで運ぶようなルートに合併する。その際、合併によってトラックの条件（最大積載量など）が守れない場合は合併しないので、Ｓｉｊ＝０として合併候補から外す。
【００１５】
また、図３（ｂ）に示すように、出発地と帰着地が異なる場合のセービング値は下記（数２）式に示すように拡張できる。なお、図３（ｂ）において、ｎｏｄｅｍ（ノードｍ）は出発地ｎｏｄｅ０とは異なる帰着地である。
0003666312.tif 000003
これは、出発地と帰着地は異なるが、出発地と帰着地が一種類だけの場合のセービングマトリックスとなる。しかし、トラック毎に出発地・帰着地が異なる場合は、それぞれのトラックでセービング値の計算式が異なるため、このままでは使用できない。
【００１６】
上記のように、従来のセービング法においては、Ｍａｘ（Ｓ）＝Ｓｉｊｋの場合、すなわち、トラックｋがｎｏｄｅｉとｎｏｄｅｊを巡回した場合にセービング値が最大となる場合に、ｎｏｄｅｉとｎｏｄｅｊをトラックｋで配送するルートに組み込むようになっている。この方法では、セービング値の式からもわかるように、より遠くで互いが近くにあるノードの塊が一つのルートに合併されるようになる。したがって、出発地・帰着地が異なる複数のトラックを用いる場合には、例えば図４に示すような極端なノードの偏りがある場合、それぞれのトラックが遠い方のエリアを担当するという矛盾した結果が生まれる。なお、図４において、複数の黒点は配送先ノードを示し、丸印ＡとＢは出発地・帰着地を示す。すなわち、トラックＡは出発地Ａから出発して区域ＢＢ内で配送して帰着地Ａに帰り、トラックＢは出発地Ｂから出発して区域ＡＡ内で配送して帰着地Ｂに帰る場合を示す。
【００１７】
上記のような問題を解決するため、ｎｏｄｅｉとｎｏｄｅｊを一塊にするという方法は妥当であるから、ｎｏｄｅｉとｎｏｄｅｊのルートに近い出発地・帰着地をもつトラック、すなわちセービング値の最小のトラックにこのノードを割り当てる。例えば、図５に示すように区域ＡＡはトラックＡが担当し、区域ＢＢはトラックＢが担当することにより、各ノードの塊はそのままで、それぞれが出発地に近いトラックで配送されるようになる。
【００１８】
図６は、演算方法の一実施の形態を示すフローチャートである。
図６において、まず、ステップＳ１では、顧客データベースとトラックデータベースを作成し、それぞれメモリに記憶する。次に、ステップＳ２では、上記の顧客データベースに基づいて距離データベースを作成する。距離データベースは正確には、顧客間の移動距離、移動時間、燃料費、人件費等を含む移動コストであるが、簡略化する場合には、例えば顧客間の移動距離のみで代表することも出来る。
【００１９】
次に、ステップＳ３では、距離データベースとトラックデータベースとに基づいて、出発地・帰着地が異なるトラック毎にセービングマトリックスを計算する。図７は各トラック毎のセービングマトリックスを各１枚として概念的に示した図である。セービング値の計算は、前記図３（ｂ）に示したように、例えば、出発地をｎｏｄｅ０、帰着地をｎｏｄｅｍ、各配送先をｎｏｄｅｉとｎｏｄｅｊ、それぞれのノード間の移動コスト（距離データ）を図示のようにｄ０ｉ、ｄｉｊ、ｄｍｊ、ｄ０ｊ、ｄｍｉとした場合に、ｎｏｄｅｉとｎｏｄｅｊのセービング値Ｓｉｊは、下記（数３）式に示すようになる。
Ｓｉｊ＝Ｍａｘ（ｄｍｉ＋ｄ０ｊ−ｄｉｊ，ｄｍｊ＋ｄ０ｉ−ｄｉｊ）…（数３)
次に、ステップＳ４では、図８に示すように、セービングマトリックス中のセービング値の最大値を与える配送先の組み合わせを検索（１次検索）する。例えば、セービングマトリックス中のセービング値としてＳｍｎが最大であった場合、配送先ノードｍとノードｎが合併候補となる。
【００２０】
しかし、従来のように出発地・帰着地が異なる複数のトラックを含む場合に上記のノードｍとノードｎを合併候補としたのでは、前記図４に示したように、それぞれが出発地・帰着地からより遠い配送先を担当するという矛盾した結果となる。この場合、一塊のノード群を一台のトラックが配送する点に関しては効率的だと考えられるが、それを担当するトラックが従来のセービング法のままでは、より遠い出発地・帰着地に属するものになるという点が問題である。そこで、一台のトラックが担当するノードの塊はそのままにして、その塊に対して出発地・帰着地が近いトラックに割り当てを変更する必要がある。出発地・帰着地が近いとはセービング値が小さいことを意味する。そこで、従来どおり、セービング値の最大を与えるＳｍｎのノードｍとノードｎを合併候補とするが、ステップＳ６では、ノードｍとノードｎの組み合わせ中でセービング値が最も小さいトラックｔを検索する。これにより、前記図５に示したように、それぞれのトラックがそれぞれの出発地・帰着地に近い配送ノード群を担当し、かつそれぞれの塊は従来のセービング法どおり妥当な組み合わせとなる解が得られる。
【００２１】
次に、ステップＳ７では、そのトラックに合併候補のノードを合併した場合にそれぞれの制約条件を満たすかどうかを判断する。例えば、合併によってトラックの最大積載量を超過しないか等をチェックする。制約条件が守られる場合はステップＳ８で実際に合併を行なう。そうでない場合は合併を行なわない。そして合併するしないにかかわらず、ステップＳ９で合併候補のセービング値を全て０にリセットし、次回以降に合併候補とならないようにする。そしてステップＳ４へ戻り、最大セービング値検索以下の処理を繰り返す。
【００２２】
ステップＳ５では、Ｓｍｎ＝０か否かを判断する。すなわち、全ての合併候補を検査し、セービング値が全て０となったときに配車計画を終了し、ステップＳ１０で結果を出力する。
【００２３】
なお、ｎｏｄｅｉとｎｏｄｅｊの両方がすでにトラックに割り当てられている場合は、それぞれのトラックで巡回した場合で条件のよいほうのトラックに合併する。帰着時刻の早さを条件に加えれば、より帰着地に近いトラックがその配送ルートを受け持つことになる。条件が全く同じ場合は優先順位の高いトラック（たとえば４トン車優先など）を用いる。
【００２４】
本発明においては、出発地だけが異なる場合、帰着地だけが異なる場合、および両方異なる場合の全ての場合に適用できる。なお、出発地も帰着地も同じという従来の場合にも当然適用できる。
【図面の簡単な説明】
【図１】本発明の一実施の形態の構成を示すブロック図。
【図２】配送経路の一例を示す図。
【図３】セービング値の計算方法を説明するための図。
【図４】配送計画の矛盾点を説明するための概念図。
【図５】本発明における配送計画の一例を示す概念図。
【図６】演算方法の一実施の形態を示すフローチャート。
【図７】セービングマトリックスの一例図。
【図８】セービングマトリックスから合併候補を検索する方法を説明するための図。
【符号の説明】
１…顧客データベースメモリ          ２…距離データベース算出部
３…距離データベースメモリ          ４…トラックデータベースメモリ
５…セービング値算出部              ６…セービングマトリックスメモリ
７…検索部                          ８…合併判断部
１０…配送センタ                    １１…配送計画装置
【図１】
0003666312.tif 000004
【図２】
0003666312.tif 000005
【図３】
0003666312.tif 000006
【図４】
0003666312.tif 000007
【図５】
0003666312.tif 000008
【図６】
0003666312.tif 000009
【図７】
0003666312.tif 000010
【図８】
0003666312.tif 000011