(57)【要約】【課題】  従来技術では、トラックが一つの物流センターを出発して配送先を巡回し、また物流センターに戻るという運行形態を想定していた。本発明は、トラックが物流センターを出発後、他の物流センターにも立ち寄って荷物を積み込む運行形態にも対応できる輸送スケジュールの作成技術を提供することを目的とする。【解決手段】  物流センターや配送先などの拠点情報を登録し、更に輸送対象の全荷物について、その荷物を積載する拠点とその配送先拠点を登録し、これらの荷物を輸送するスケジュールを次のようにして作成する。まず、拠点情報から互いに距離の離れている拠点を選択し、それらの拠点に係る荷物に対して、その荷物を積載する物流センターからその配送先拠点までピストン輸送を行う車両を割り当て、残りの荷物を、順次これらの車両に追加することで輸送スケジュールを作成する。【選択図】  図１
2006240794.tif 000002
【特許請求の範囲】
【請求項１】
物流センターから配送先拠点へ荷物を輸送する車両の輸送スケジュールを作成する輸送スケジュール作成システムであって、
複数の物流センターおよび配送先の拠点の位置を示す拠点情報を入力する拠点情報登録手段と、
配送する各荷物の荷物量および各荷物を積載する物流センターとその配送先拠点の情報を含む荷物情報を入力する荷物情報登録手段と、
荷物を輸送する車両の積載量限界の情報を含む輸送車両情報を入力する輸送車両情報登録手段と、
前記拠点情報、荷物情報、および輸送車両情報を用いて、輸送車両の輸送スケジュールを作成する輸送スケジュール作成手段と、
作成した輸送スケジュールを出力するスケジュール出力手段と
を備え、
前記輸送スケジュール作成手段は、
前記荷物情報に登録されている全荷物について、各荷物の荷量と、その荷物の積載拠点と配送先拠点間の距離との積を求め、その積の総和を算出し、該総和を、前記車両の平均積載量と走行距離の上限の平均値との積で割り、その結果に基づいてシード拠点数を算出するシード拠点数算出手段と、
前記拠点情報に登録されている拠点から、相互間の距離が遠距離にある拠点を優先し、かつランダム性を含んだ方法により、前記シード拠点数だけシード拠点を選出するシード拠点選出手段と、
前記シード拠点ごとに、そのシード拠点へ配送する荷物の荷物情報を取り出し、その荷物だけを積載・配送する車両を１台割り当て、これによりシード拠点数だけ車両を割り当てた輸送スケジュールを作成するシード拠点挿入手段と、
前記シード拠点挿入手段で割り当てられなかった荷物について、その荷物の積載拠点と配送先拠点とを、その時点までに作成されている輸送スケジュールの各車両の巡回ルート中に挿入した場合の当該車両の走行距離の増分が最小になる車両を探索するとともに、探索された車両の巡回ルート中で前記走行距離の増分が最小になるような位置に前記荷物の積載拠点と配送先拠点を挿入し、また、そのような車両がなかった場合は新たな車両を輸送スケジュールに追加し、その車両の巡回ルートに前記荷物の積載拠点と配送先拠点を挿入する荷物挿入手段と
を備えることを特徴とする輸送スケジュール作成システム
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物流分野におけるスケジューリング作成を計算機で行う技術に関するものである。
【背景技術】
【０００２】
物流システムでの輸送スケジュール作成技術としては、いわゆる巡回セールスマン問題やビークルルーティング問題に相当する一定地域内に存在する顧客先の効率的な巡回計画を作成する技術が考えられている（特許文献１）。
【０００３】
例えば、特許文献２には、地理情報と共に、顧客先間の最短経路決定にニューラルネットを用いることで、最適なスケジュール作成を行う技術が開示されている。また、特許文献３には、多数の配送先をクラスタリングして、各クラスター内で輸送ルートを作成する方式が開示されている。更に、特許文献４には、トラックの積載量制約と稼働時間制約を守った上で効率的な配車計画を作成する方式が開示されている。
【特許文献１】特開平5-135070号「配送スケジューリング装置」
【特許文献２】特開平10-124588号「地理情報に基づくスケジュール作成装置」
【特許文献３】特開平8-115495号「自動配車装置」
【特許文献４】特開平9-305669号「配送計画方法と装置」
【発明の開示】
【発明が解決しようとする課題】
【０００４】
トラックなどを用いた輸送では、大規模なサプライチェーンマネージメントの実現のために、単に一つの物流センターを中核とした配送だけでなく、複数の物流センターを用いた配送も実施されている。つまり、一台のトラックが、一つの物流センターを出発して、配送先だけを巡回して、出発した物流センターに戻るだけではなく、配送先の巡回途中で、更に異なる物流センターにも寄り、再度、荷物の積み込みを行うという形態である。
【０００５】
トラックなどを用いた輸送スケジュールは、従来、人間が作成していた。しかし、当日の注文等が決定してから、実際の配送を行うまで十分時間が取れないことが多く、基本的な輸送スケジュールを毎日調整するだけであったり、トラックごとの運行地域を予め決めていたりして、必ずしも効率の良い輸送スケジュールを実現できていなかった。
【０００６】
また、コンピュータを用いて輸送スケジュールを作成する技術も上述の特許文献１〜４に示すように多数提案されているが、これらの技法・システムでは、トラックが一つの物流センターを出発して、配送先を巡回し、また物流センターに戻るという運行形態を想定していた。このため、トラックが物流センターを出発後、他の物流センターにも立ち寄るという運行形態には対応できなかった。
【０００７】
本発明は、トラックが物流センターを出発後、他の物流センターにも立ち寄って荷物を積み込む運行形態にも対応できる輸送スケジュールの作成技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、本発明では、物流センターや配送先などの拠点情報を登録し、更に輸送対象の全荷物について、その荷物を積載する拠点とその配送先拠点を登録し、これらの荷物を輸送するスケジュールを次のようにして作成する。まず、拠点情報から互いに距離の離れている拠点を選択し、それらの拠点に係る荷物に対して、その荷物を積載する物流センターからその配送先拠点までピストン輸送を行う車両を割り当て、残りの荷物を、順次これらの車両に追加することで輸送スケジュールを作成する。このピストン輸送を始めに割り当てる拠点のことをシード拠点と呼ぶ。
【０００９】
上記処理においては、シード拠点の選出にランダム性を持たせるとともに、シード拠点に選出されなかった拠点への荷物のスケジュールへの追加順序もランダムに変更する。この様なランダム性のある方法によるスケジュール作成を複数回行い、その中で最良のスケジュールを選択することで、輸送に必要な車両台数や、車両の走行距離が短く輸送コストの低いスケジュールを作成する。
【００１０】
また、上記のシード拠点に選出されなかった拠点への荷物を、既に割り当てた車両に追加する場合、各車両の走行距離上限や積載量上限などを守った上で、その荷物を積載する物流センターと、その荷物の配送先拠点を、車両のルートに組み込んだ場合の、その車両の走行距離の増分が最小になる車両を選択し、その最小になる巡回ルート中の位置に追加を行う。
【発明の効果】
【００１１】
本発明によれば、トラックが物流センターを出発後、他の物流センターにも立ち寄って荷物を積み込む運行形態にも対応でき、そのような場合でも効率的な輸送を行う輸送スケジュール作成を行うことができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施形態を図面を用いて説明する。
【００１３】
本実施形態の荷物の輸送では、複数の物流センターに所属する複数台の車両（トラック等）が物流センターを出発して、複数の拠点（配送先）への荷物の配送を行うとともに、それらの車両が他の物流センターにも立ち寄り更に荷物の積み込みを行う運行形態を想定している。なお、この実施形態では、トラックによる配送（物流センターにある荷物を配送先に配送すること）を例として説明するが、当然、集荷、または集荷と配送を同時に行う運行形態にも対応できるものである。
【００１４】
図１は、本実施形態のシステムの構成図である。本システムは、入力装置(101)、プリンタなどの出力装置(102)、ディスプレイなどの表示装置(103)、処理装置(104)、および記憶装置(109)を備える。処理装置(104)は、入力処理部(106)、輸送スケジュール作成部(107)、および結果出力部(108)を含む一連のプログラム(105)を実行する。また、記憶装置(109)には、拠点情報(110)、荷物情報(111)、輸送車両情報(112)、距離テーブル(113)、道路地図(114)、および、これらの情報から輸送スケジュール作成部（107）で作成される輸送スケジュール情報(115)が格納される。
【００１５】
図２は、図１の記憶装置(109)に格納される情報の具体的なデータ構造の例を示す。
【００１６】
拠点情報(110)には、物流センターや荷物の配送先拠点の位置情報を格納する。具体的には、物流センターや配送先拠点を一意に識別する拠点ID(201)、拠点が物流センターか配送先かを表す拠点の種別（202）、拠点の名称(203)、拠点の住所(204)、および拠点の位置を示す緯度(205)と経度(206)等が格納される。
【００１７】
荷物情報(111)には、輸送の対象となる各荷物に関する情報を格納する。具体的には、個々の荷物に1から順次付与した荷物インデックス(207)、荷物を一意に識別する荷物ID(208)、荷物の積み込みを行う物流センターを示すセンター拠点ID(209)、荷物の配送先を示す拠点ID(210)、および荷量(211)等が格納される。
【００１８】
輸送車両情報(112)には、利用可能な車両（トラック）の積載重量に関する能力や限界、車両の稼働時間、および走行距離の上限についての情報を格納する。具体的には、車両を一意に識別するために1から順次付与した車両No(212)、その種類の車両の積載上限(213)、その車両の物流センターからの出発時間(214)と配送業務を終える終了時間(215)、および、一日に走行可能な距離の上限（216）等が格納される。
【００１９】
距離テーブル(115)には、輸送スケジュール作成で必要になる、拠点間のトラックなどの輸送車両での走行距離・時間に関する情報を格納する。具体的には、出発拠点のID(216)と到着拠点のID(217)、その拠点間の距離(218)と拠点間の走行所要時間(219)等が格納される。
【００２０】
図３は、本発明の輸送スケジュール作成部(107)で作成される輸送スケジュール情報(115)の一例を示す図である。輸送スケジュール情報(115)には、本実施形態の方法によって作成される輸送スケジュールで車両が巡回する拠点と、その車両の巡回順序を示す情報を格納する。具体的には、まず、車両No(301)と、その車両が巡回するセンター拠点数(302)を格納する。次に、巡回する各物流センターごとに、そのセンター拠点ID(303)、その物流センターへの到着時刻(304)、その物流センターから次の物流センターまでに配送する荷物数(305)、その荷物数分の荷物IDとその荷物の到着時間の繰返し(306と307、…、308と309)を格納する。また、合計荷物量(317)や総走行距離(318)を格納する。
【００２１】
図３の輸送スケジュール情報(115)は、この車両がセンター拠点ID1(303)の物流センターで所定の荷物を積んでから出発して（センター到着時刻1(304)には出発時刻を格納しておくと良い）、荷物ID1(306)の荷物を到着時間1(307)で配送し、…、荷物IDk(308)の荷物を到着時間k(309)で配送し、次にセンター拠点ID2(310)の物流センターにセンター到着時刻2(311)に到着し、ここで必要な荷物を積み、荷物IDk+1(313)の荷物を到着時間k+1(314)で配送し、…、荷物IDn(315)の荷物を到着時間n(316)で配送し、…という輸送スケジュールを表している。荷物数(305)はセンター拠点ID1(303)の物流センターからセンター拠点ID2(310)の物流センターまでに配送する荷物ID1(306)〜荷物IDk(308)の荷物の数であり、荷物数(312)はセンター拠点ID2(310)の物流センターから次の物流センターまでに配送する荷物IDk+1(313)〜荷物IDn(315)の荷物の数である。センター拠点ID1(303)の物流センターでどの荷物を積み、センター拠点ID2(310)の物流センターでどの荷物を積み、…というように、各物流センターでどの荷物を積み込むかは、この輸送スケジュールで当該車両が配送する荷物ID（306,308,313,315,…)をすべて抽出し、図２の荷物情報を参照すれば、それらの荷物がどのセンター拠点IDの物流センターで積み込むかが分かる。
【００２２】
図４は、図１中の処理装置(104)が実行するプログラム(105)の概要を示すフローチャートである。まず入力処理ステップ(401)で、拠点情報(110)、荷物情報(111)、輸送車両情報(112)等の輸送計画を作成するために必要な情報を入力する。この処理の詳細は図５で後述する。次の輸送スケジュール作成処理ステップ(402)では、入力処理ステップ(401)によって得られた情報から、最適と考えられる輸送計画を決定する。ここで輸送計画の決定とは、入力された全ての荷物を配送先に届けることが可能なトラックが従うべき荷物のトラックへの割り当てと、それらのトラックが巡回するルート(図３の輸送スケジュール情報)を決定することを指す。この処理の詳細は図６で後述する。次に、結果出力処理ステップ(403)では、作成した輸送スケジュールを、その評価とともに出力する。この処理の詳細は図１３で後述する。
【００２３】
図５は、図４中の入力処理ステップ(401)の詳細を示すフローチャートである。まず、拠点情報登録ステップ(501)で、拠点情報(110)の登録を行う。これは、配送すべき荷物の配送先と、それらの荷物を積み込む物流センターの位置を示す拠点情報(110)をすべて設定する処理である。次に、荷物情報登録ステップ(502)で、荷物情報(111)の登録を行う。これは、配送すべきすべての荷物に関する荷物情報(111)を設定する処理である。次に、輸送車両情報登録ステップ(503)で、輸送車両情報(115)の登録を行う。これは、使用可能なすべての車両に関する輸送車両情報(112)を設定する処理である。次に、距離テーブル生成処理ステップ(504)で、拠点間の距離とトラックによる走行所要時間を道路地図(114)を参照して生成する。なお、道路地図(114)はカーナビゲーションで利用されるような道路およびその道路間の接続関係や距離情報が格納されているものが予め用意されているものとする。
【００２４】
図６は、図４中の輸送スケジュール作成処理ステップ(402)の詳細を示すフローチャートである。輸送スケジュールの作成は、計算量の問題から厳密解を求めることは困難である。このため、各種の近似解法が用いられる。スケジュール問題の近似解法には、ランダムリスタート法、GA(遺伝的アルゴリズム)、タブーサーチ、SA法など各種のメタヒューリスティクスと呼ばれる技法（参考文献：柳浦睦憲他「組み合せ最適化」朝倉書店  2001年）が適用されている。本実施形態におけるスケジュール作成の方式は、特定の近似解法に束縛されるものではない。ここでは、ランダムリスタート法に適用した場合の処理形態を説明する。これは、ランダム性を含んだ方法による解の作成を、複数回繰り返し、その中で最良の解を選択するものである。
【００２５】
この処理では、まず、変数Iに1を、E_MinにMax_Valueを代入する(601)。ここで、Max_Valueは、使用する計算機で扱える最大の数値を示す。次に、予め決められている繰り返し回数Loop_NumberとIの値を比較する（602）。もし、IがLoop_Numberよりも大きければ処理を終える。IがLoop_Number以下の場合には、次の処理を繰り返す。
【００２６】
まず、スケジュール案を作成する（603）。この処理の詳細は図７で説明する。次に、そのスケジュール案の評価値を算出し変数Eに代入する（604）。この評価値算出とは、スケジュール案作成処理(603)で作成された輸送スケジュールで必要なトラックの台数や、それらトラックの走行距離から決まる輸送コストを求める処理である。具体的には、作成したスケジュール案に含まれている各車両について、その固定コストと、変動コストと走行時間の積の和を求め、それらのコストを全て合計して変数Eに代入する(604)。次に、EとE_Minの値を比較する（605）。もしEが小さければ、スケジュール案作成処理(603)で作成したスケジュール案を記憶装置(109)の輸送スケジュール情報(115)に記録する。次に、Iに1を加え（607）、次の処理に移る。繰り返し回数Loop_Numberだけ処理を繰り返すうちに、最も評価の高いスケジュール案が、輸送スケジュール情報(115)に設定されることになる。
【００２７】
図７は、図６中の輸送スケジュール案作成処理（603）の詳細を示すフローチャートである。この処理は、物流センターや配送先拠点から、ランダム性を含む方法により、いくつかのシード拠点を選出し、まず、それらの配送先と物流センターを往復するトラックを割り当て、次に、シード拠点に選択されなかった配送先を、それらのトラックルートに順次追加し、輸送スケジュール案を作成する。具体的には、以下の処理を行う。まず、シード拠点として選出する拠点数を算出する（701）。この処理の詳細は図８で説明する。次に、ステップ701で算出した数の拠点を選出する（702）。この処理の詳細は図９で説明する。次に、ステップ702で選出したシード拠点への荷物の輸送を行うトラックを割り当てるシード拠点挿入処理（703）を行う。この処理の詳細は図１０で説明する。次に、シード拠点に選ばれなかった配送先への荷物を、上記シード拠点挿入処理(703)で作成したトラックのルートに追加する荷物挿入処理（704）を行う。この処理の詳細は図１１で説明する。
【００２８】
図８は、図７中のシード拠点数算出処理(701)の詳細を示すフローチャートである。これは、配送する荷物の荷量と、その荷物の輸送距離との積を求めるとともに、平均して一台のトラックで運べる荷量の平均積載量と一日の平均の走行距離との積を求め、これらから最低限荷物の輸送に必要なトラック台数を求め、それをシード拠点数とするものである。具体的には次の処理を行う。まず、変数Iに1を、Tに0を代入する(801)。次に、Iが記憶装置の荷物情報に登録されている荷物数以下かチェックする（802）。ここで、変数LoadNには、荷物情報(111)に登録されている荷物数が予め格納されている。次に、I番目の荷物の荷量と、その荷物を積み込む物流センターと配送先拠点との間の距離との積を求め、変数Tに加える（803）。次に、Iに1を加え（804）、次の荷物の処理に移る。全ての荷物の処理が終わったら、Tを、使用する全トラックの平均積載量と平均走行距離（走行距離の上限の平均）との積で割り、その商を超えない最大整数を求め、その値を変数SEED_Maxに代入する（805）。この値がシード拠点数である。
【００２９】
図９は、図７中のシード拠点選出処理(702)の詳細なフローチャートである。この処理では、図８の処理で求められた数だけ、拠点情報(110)に登録されている拠点を選択し、シード拠点とする。このシード拠点選出処理では、まず、物流センターを一つランダムにシード拠点として選択し、次に、このシード拠点からの距離の降順に残りの拠点を並べる。そしてシード拠点からの距離の上位三拠点から一拠点をランダムに選択し、この拠点をシード拠点に加える。次に、シード拠点に選択されていない拠点に対して、これらシード拠点の距離の最小値を求め、次にこの距離の降順にソートし、再度上位3拠点から一拠点をランダムに選択する。この処理を繰り返し、図８の処理で求めたシード拠点数の数だけ、シード拠点を選出する。具体的には、次の処理を行う。
【００３０】
まず、変数SEEDNに1を代入する（901）。次に、拠点情報(110)に登録されている物流センターを一つランダムに選択して、SEED[0]に代入する（902）。次に、SEEDNとSEED_Maxを比較する(903)。SEEDNがSEED_Max以下なら次の処理を行う。まず、変数Iに1を代入する（904）。次に、記憶装置の拠点情報(110)に登録されている拠点数を表す変数P_MaxとＩの値を比較する(905)。もしＩが大きくなければ、次の処理を行う。まず、I番目の拠点が既に、配列SEED[]に登録されているか調べる（906）。もし登録されている場合には、P[I]およびD[I]に-1を代入する(909)。そうでない場合には、P[I]には、I番目の拠点の拠点IDを代入し（907）、次に、この拠点と、既に配列SEED[]に登録されている拠点との距離の中の最小値をD[I]に代入する(908)。ステップ908または909の後、Ｉに1を加え（910）、次の拠点の処理に移る。
【００３１】
ステップ905でIがP_Maxを超えていれば、配列P[]とD[]を、D[]の値をソートキーとして降順にソートする（911）。次に、1以上3以下の整数をランダムに選択してSに代入する(912)。次に、P[S]の値をSEED[I]に代入し、SEEDNに1を加える（913）。その後、ステップ903に戻り、ステップ903以降の処理をSEEDNがSEED_Maxを超えるまで繰り返す。
【００３２】
図１０は、図７中のシード拠点挿入処理(703)の詳細なフローチャートである。この処理では、図９のシード拠点選択処理で求めたシード拠点と物流センターとを往復するだけのトラックを割り当てる。具体的には以下の処理を行う。
【００３３】
まず、変数Iに1を代入し、Used_TruckにSEED_Maxの値を代入する（1001）。次に、IとSEED_Maxを比較する（1002）。Iが大きければ処理を終える。IがSEED_Max以下であれば、次の処理を行う。まず、SEED[I]の値が-1であれば(1003)、Iに1を加え（1005）、ステップ1002に戻り、次のシード拠点の挿入処理に移る。ステップ1003でSEED[I]の値が-1でなければ、SEED[I]の拠点へ配送する荷物を一つ荷物情報(111)から取り出して、その荷物だけを積載したトラックを割り当てる（1004）。但し、SEED[I]が物流センターの場合、その物流センターから配送する荷物を一つ選んで上記の処理を行う。常に配送先拠点をシード拠点とするように処理してもよい。
【００３４】
図１１は、図７中の荷物挿入処理(704)の詳細なフローチャートである。この処理では、図１０のシード拠点挿入処理でトラックに割り当てられた荷物以外の荷物を、順次トラックに割り当てる。シード拠点挿入処理で割り当てたトラックだけでは配送が行えない場合には、新たなトラックの追加割り当てを行う。具体的な処理手順は以下の通りである。
【００３５】
まず、荷物情報(111)に登録されている、図１０で説明したシード拠点挿入処理でトラックを割り当てた荷物以外の荷物の荷物IDを、全て配列L[]に格納する(1101)。次に、このL[]に格納されたトラックの割り当てが行われていない荷物の数をL_Maxに代入する(1102)。次に、配列L[]の要素をランダムに並べ換える(1103)。次に、Ｉに1を代入し(1104)、IとL_Maxを比較する(1105)。IがL_Maxを超えていなければ、荷物L[I]をスケジュールに追加する。つまり、荷物L[I]を輸送するトラックを割り当てる(1106)。この処理は図１２で説明する。次に、Iに1を加え（1107）、次の荷物の処理に移る。
【００３６】
図１２は、図１１中のステップ1106の詳細を示すフローチャートである。この処理では、新たにスケジュールに追加する荷物を積載・配送可能なトラックを探索するとともに、その荷物の追加による、トラックの走行距離増分が最小になるトラックを選出し、荷物を追加する。もし、追加可能なトラックがない場合には新しいトラックをスケジュールに追加する。具体的には、以下の処理を行う。
【００３７】
まず、追加対象の荷物の荷物IDをLに代入する(1201)。次に、Delta_MinにMax_Valueを代入する（1202）。次に、変数Ｉに1を、Truckに-1を代入する（1203）。次に、IとUsed_Truckの値を比較する（1204）。IがUsed_Truck以下の場合には、次の処理を行う。まず、T_NoにIを代入し(1205)、荷物LがT_No番目のトラックで輸送可能かチェックする(1206)。更に、輸送可能な場合、その荷物を、そのトラックに割り当てた場合のトラック走行距離の増分を求める（1206）。この処理の詳細は図１３で説明する。図１３の処理では、荷物の追加が可能な場合には変数Flgに1が設定され、追加できない場合には0が設定される。また、トラックの走行距離の増分値がDeltaに設定される。更に、そのトラックの巡回ルート中で、その荷物を積載する物流センターが何番目に立ち寄る拠点であるのかの順番を示す値が変数Sに設定され、その荷物の配送先拠点が何番目に立ち寄る拠点であるのかの順番を示す値が変数Pに設定される。
【００３８】
ステップ1206の処理から返ってきたFlgの値が0の場合には(1207)、Ｉに1を加え（1210）、次のトラックのチェックに移る。ステップ1206の処理から返ってきたFlgの値が１の場合には(1207)、Delta_MinとDeltaを比較し(1208)、Deltaが小さければ、TruckにT_Noの値を代入し、Startにsの値を代入し、PosにPの値を代入し、Delta_MinにDeltaの値を代入する（1209）。これにより、この時点で、荷物Lを追加することによるトラックの走行距離増分が最小になるようなトラックがTruck番目のトラックであり、そのトラックの巡回ルート中のStart番目にその荷物Lを積む物流センターの拠点IDを追加し（既に存在する場合もある）、さらにそのトラックの巡回ルート中のPos番目にその荷物Lの配送先拠点IDを追加すべきであるということになる。
【００３９】
ステップ1204でIがUsed_Truckを超せば、割り当て済みのトラック全てに対して、新しい荷物の追加チェックが終わったので、次の処理を行う。もし、Truckの値が負の場合には(1211)、追加可能なトラックが無かったということなので、新しいトラックを割り当て（1213）、そのトラックに荷物Lを追加する（1214）。更に、割り当て済みトラック台数を表す変数Used_Truckに1を加える(1215)。
【００４０】
ステップ1211でTruckの値が正の場合には、荷物Lを追加可能なトラックが見つかったということなので、変数Truckで指定されているトラックに荷物Lを追加する（1212）。具体的には、そのトラックの巡回ルート中のStart番目にその荷物Lを積む物流センターの拠点IDを追加し、Pos番目にその荷物Lの配送先拠点IDを追加する。ただし、巡回ルート中のStart番目に既にその荷物Lを積む物流センターの拠点IDが存在する場合（後述する図１３でステップ1307を経た場合）があるから、その場合は物流センターの拠点IDを追加は不要である。
【００４１】
図１３は、図１２中のステップ1206の詳細を示すフローチャートである。この処理では、指定された荷物を指定されたトラックに追加した場合、トラックの積載量の上限が守れるかをチェックするとともに、指定された荷物を積載する物流センターと、その荷物の配送先拠点を、トラックの巡回ルート中で、トラックの走行距離の増加が最小になる位置に追加した場合の、トラックの走行距離の増分および追加位置を求める。具体的には、次の処理を行う。
【００４２】
まず、T_No番目のトラックの走行距離を求め、変数TDに代入する（1301）。次に、荷物Lを積載する物流センターのセンター拠点IDを変数Sに、配送先拠点の拠点IDを変数Dに代入する(1302)。次に、Flgに0、DeltaにMax_Valueを代入する（1303）。次に、T_No番目のトラックの最大積載量と、T_No番目のトラックに積載している荷物の総積載量と荷物Lの荷量の和とを、比較する(1304)。もし、最大積載量が小さければ、そのトラックには積載できないので処理を終える。最大積載量に余裕があれば、以下の処理を行う。
【００４３】
まず、物流センターSがT_No番目のトラックのルートに既に含まれているか否かをチェックする（1305）。含まれている場合には、Delta_Sに0を代入するとともに、物流センターSが挿入されている巡回ルート中の位置を求め、その位置をSに代入する(1307)。物流センターSが巡回ルートに含まれていなかった場合には、まず、当該物流センターSをそのトラックの巡回ルート中に追加した場合、そのトラックの走行距離の増分が最小になる挿入位置を求め、巡回ルート中でのその位置（順番）を変数Sに代入する（1306）。ステップ1306または1307の後、Sに格納した挿入位置よりも後方で、配送先Dを巡回ルート中に追加した場合の、そのトラックの走行距離の増分が最小になる挿入位置を求め、巡回ルート中でその位置（順番）を変数Pに代入し、その走行距離の増分をDelta_Dに代入する(1308)。次に、TDとDelta_SとDelta_Dとの和が、T_No番目のトラックの走行距離の上限以下であるかチェックする（1309）。もし走行距離の上限を超えていれば処理を終える。走行距離の上限を超過していなければ、Flgに1を代入し、DeltaにDelta_SとDelta_Dとの和を代入し（1310）、処理を終える。
【００４４】
図１４は、図４中の結果出力処理(403)の詳細を示すフローチャートである。まず各輸送便の通過拠点とルートを地図上に表示する(1401)。次に、輸送スケジュール作成処理によって得られた輸送スケジュールをその評価値とともに表やグラフで表示する(1402)。印刷指示があればそのグラフや表を印刷する(1403)。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施形態のシステム構成図である。
【図２】本実施形態の記憶装置に含まれるデータの構成を示す図である。
【図３】本実施形態の記憶装置に含まれる輸送スケジュール情報の構成を示す図である。
【図４】全体的な処理の流れを示すフローチャートである。
【図５】入力処理を示すフローチャートである。
【図６】輸送スケジュール作成処理を示すフローチャートである。
【図７】輸送スケジュール作成で用いる、輸送スケジュール案の作成処理のフローチャートである。
【図８】シード拠点数算出処理のフローチャートである。
【図９】シード拠点選出処理のフローチャートである。
【図１０】シード拠点挿入処理のフローチャートである。
【図１１】荷物挿入処理のフローチャートである。
【図１２】荷物追加処理のフローチャートである。
【図１３】荷物追加チェック処理のフローチャートである。
【図１４】結果出力処理のフローチャートである。
【符号の説明】
【００４６】
１０１...入力装置、１０２...出力装置、１０３...表示装置、１０４...処理装置、１０５...プログラム、１０６...入力処理部、１０７...輸送スケジュール作成部、１０８...結果出力部、１０９...記憶装置、１１０...拠点情報、１１１...荷物情報、１１２...輸送車両情報、１１３...距離テーブル、１１４...道路地図、１１５...輸送スケジュール情報。
【図１】
2006240794.tif 000003
【図２】
2006240794.tif 000004
【図３】
2006240794.tif 000005
【図４】
2006240794.tif 000006
【図５】
2006240794.tif 000007
【図６】
2006240794.tif 000008
【図７】
2006240794.tif 000009
【図８】
2006240794.tif 000010
【図９】
2006240794.tif 000011
【図１０】
2006240794.tif 000012
【図１１】
2006240794.tif 000013
【図１２】
2006240794.tif 000014
【図１３】
2006240794.tif 000015
【図１４】
2006240794.tif 000016