(57)【要約】【課題】  複数の物流センターが多段階に接続された物流網で、トラック車立ての輸送コストをベースとして最適な輸送スケジュールを作成する技術を提供することを目的とする。【解決手段】  荷物の出荷元と最終配送先から輸送途中で中継する物流センター、すなわち中継拠点を決定するために、出荷元と配送先毎の中継拠点の情報を格納し、各荷物の情報から、その中継拠点の情報に従って、二つの物流センター間の輸送単位に分割し、その分割した単位でトラックに割り当ててスケジュールの作成を行う。荷物を中継する物流センター間の輸送単位で輸送スケジュールの作成を行うので、複数の物流センターが含まれる物流網上の輸送スケジュールを作成することができる。【選択図】  図１
2007191296.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも入出力装置と処理装置と記憶装置とを有し、複数の物流センターを含む物流網で集荷先拠点から配送先拠点への荷物の輸送を行う車両の輸送スケジュールを作成する幹線物流網スケジュール作成システムであって、
複数の物流センターと集荷・配送拠点の位置情報を含む拠点情報を登録する拠点情報登録手段と、
各荷物の荷物量、集配送先拠点、および集荷・配送の時間制約を含む荷物情報を登録する荷物情報登録手段と、
集荷先と配送先の組合せ毎に、物流網上で該集荷先からどの拠点を中継して該配送先へ輸送するかを示す中継拠点情報を登録する中継拠点情報登録手段と、
物流センターが有するトラックなどの輸送車両数、およびそれらの輸送車両の積載量上限の情報を含む輸送車両情報を登録する輸送車両情報登録手段と、
前記拠点間の移動時間を含む距離テーブル情報を登録する距離テーブル登録手段と、
前記荷物情報に登録された各荷物について、その荷物の集荷先と配送先に対応する中継拠点情報を参照し、その荷物の輸送の中継を行う各物流センターごとの情報に分割して分割荷物情報を生成する荷物情報分割手段と、
登録した拠点情報、輸送車両情報、および距離テーブル情報、並びに、前記荷物情報分割手段で生成した分割荷物情報に基づいて、前記分割荷物を輸送車両に割当てて輸送スケジュールを作成する輸送スケジュール作成手段と、
作成した輸送スケジュールを出力する結果出力手段と
を備えたことを特徴とする幹線物流網スケジュール作成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物流分野におけるトラック等の輸送スケジューリング作成を計算機で行う技術に関するものであり、具体的には計算機を利用した輸送計画の作成システムに関するものである。
【背景技術】
【０００２】
物流分野におけるトラック輸送等のスケジュールを計算機で作成するには、例えば非特許文献１に記載されているような線形計画法などの数理的な計算に基づくものや、スィープ法やNI法と言ったヒューリスティクスに基づくもの、また、非特許文献２に記載されているようなタブーサーチ、SA法(Simulated Annealing：焼きなまし法)、GA(Genetic Algorithm：遺伝的アルゴリズム)などメタヒューリスティクスと呼ばれる確率的手法を適用したものなど、多数の方式が用いられている。
【０００３】
これらの方式を具体的に物流分野に適用した技術で代表的なものとしては、例えば、下記特許文献１及び特許文献２に記載のものが知られている。
【０００４】
特許文献１に記載のものは、複数の配送先への荷物輸送のスケジュール作成を効率化する方式である。この方式では、各荷物の届け先が複数の塊に割付けられ、該塊内での各届け先を結ぶ配送ルートを作成する。これにより、エリア全体での配送時間の短縮を図るものである。
【０００５】
特許文献２に記載のものは、工場や物流センター、配送先などの拠点間の物流網の作成に、線形計画法や整数計画法などの数理的技法を適用したものである。この方式では、該文献の図に示されているように、工場や倉庫、配送先などの拠点をグラフのノードとして、ノード間のアークを荷物が流れるグラフで輸送を表現する。各アークには単位荷物量あたりの輸送コストや、そのアーク上を輸送できる上限荷物量、また、途中の物流センターの中継可能な荷物量上限などを与え、これを線形計画法や整数計画法でモデル化して問題を解き、荷物の出発地から最終目的地まで、どのような経路で輸送すれば物流網全体の輸送コストが最小になるかを決定する。
【非特許文献１】久保幹雄著「ロジスティクス工学」朝倉書店、2001年６月
【非特許文献２】柳浦睦憲、茨木秀俊著「組合せ最適化  −メタ戦略を中心として  −」朝倉書店、2001年1月
【特許文献１】特開平8-115495号公報
【特許文献２】特開2000-182179号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術では、トラックは物流センターもしくはトラックそれぞれで決められた車庫に所属していることを仮定している。つまりトラックは、車庫を出発して物流センターまで走行し、その物流センターで荷物を積載し配送先を巡回して、出発した物流センターに戻る輸送形態を想定したものである。ここでは、物流センターから配送先への配送で説明しているが、集荷先から物流センターへの集荷を行う場合も同様である。
【０００７】
しかし、現実の大規模な輸送網では、単に物流センターから配送先まで輸送するだけでなく、物流網の中に複数の物流センターが存在し、その物流センター間で行われる幹線輸送が全体の物流の中で大きな比重を占めている。これは一カ所の物流センターからの配送もしくは集荷ではなく、複数の物流センター間での輸送である。つまり、最終配送先とその送付元が決まれば、複数の物流センターを経由して輸送される。このような輸送形態に対して、特許文献１に記載のような従来技術では、対応することができない。
【０００８】
特許文献２に記載の技術は輸送の最適化を行うものである。しかし、この方法では線形計画法などの数理的技法を用いているため、輸送コストは荷物量あたりの単価を荷物量に掛けて求めている。このため、実際の大規模物流網のスケジュール作成で要求されるトラック台数の確定や、そのトラックの走行ルートの作成までは行うことができていない。また、当然輸送コストを最小にする解を求めるが、コストの計算はトラック台数が含まれていないため輸送コスト算出の精度が悪いという問題点がある。
【０００９】
本発明の目的は、複数の物流センターが多段階に接続された物流網で、トラック車立ての輸送コストをベースとして最適な輸送スケジュールを作成する技術を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明は、少なくとも入出力装置と処理装置と記憶装置とを有し、複数の物流センターを含む物流網で集荷先拠点から配送先拠点への荷物の輸送を行う車両の輸送スケジュールを作成する幹線物流網スケジュール作成システムであって、複数の物流センターと集荷・配送拠点の位置情報を含む拠点情報を登録する拠点情報登録手段と、各荷物の荷物量、集配送先拠点、および集荷・配送の時間制約を含む荷物情報を登録する荷物情報登録手段と、集荷先と配送先の組合せ毎に、物流網上で該集荷先からどの拠点を中継して該配送先へ輸送するかを示す中継拠点情報を登録する中継拠点情報登録手段と、物流センターが有するトラックなどの輸送車両数、およびそれらの輸送車両の積載量上限の情報を含む輸送車両情報を登録する輸送車両情報登録手段と、前記拠点間の移動時間を含む距離テーブル情報を登録する距離テーブル登録手段と、前記荷物情報に登録された各荷物について、その荷物の集荷先と配送先に対応する中継拠点情報を参照し、その荷物の輸送の中継を行う各物流センターごとの情報に分割して分割荷物情報を生成する荷物情報分割手段と、登録した拠点情報、輸送車両情報、および距離テーブル情報、並びに、前記荷物情報分割手段で生成した分割荷物情報に基づいて、前記分割荷物を輸送車両に割当てて輸送スケジュールを作成する輸送スケジュール作成手段と、作成した輸送スケジュールを出力する結果出力手段とを備えたことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、出荷元と配送先毎の中継拠点の情報を備え、各荷物の情報から、その中継拠点の情報に従って、二つの物流センター間の輸送単位に分割し、その分割した単位でトラックに割り当ててスケジュールの作成を行うので、複数の物流センターが含まれる物流網上の輸送スケジュールを作成することができる。すなわち、複数の物流センターが多段階に接続された物流網で、トラック車立ての輸送コストをベースとして最適な輸送スケジュールを作成することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を図面に従って説明する。
【００１３】
図１は、本実施形態のシステムを示す全体構成図である。本システムは、入力装置（１０１）、プリンタなどの出力装置（１０２）、ディスプレイなどの表示装置（１０３）、処理装置（１０４）、および記憶装置（１０９）を備える。処理装置（１０４）は、入力処理部（１０６）、輸送スケジュール作成部（１０７）、および結果出力部（１０８）を実現する一連のプログラム（１０５）を実行する。また、記憶装置（１０９）には、拠点情報（１１０）、拠点間中継情報（１１１）、荷物情報（１１２）、分割荷物情報（１１３）、輸送車両情報（１１４）、距離テーブル（１１５）、道路地図（１１６）、および、これらから作成される輸送スケジュール情報（１１７）が格納される。
【００１４】
図２は、記憶装置（１０９）に格納される情報の一例を示したものである。
【００１５】
拠点情報（１１０）には、主に物流センターや荷物の配送先拠点の位置を示すデータが格納されている。拠点情報（１１０）の１レコードには、配送先や物流センターなどの拠点を一意に識別する拠点ID（２０１）、その拠点の名称（２０２）、その拠点の住所（２０３）、および、その拠点の緯度（２０４）と経度（２０５）などが格納される。
【００１６】
拠点間中継情報（１１１）には、荷物の送付元である発拠点から送付先である着拠点に荷物を輸送する場合に、その荷物が途中で経由する中継拠点つまり物流センターの情報が格納されている。拠点間中継情報（１１１）の１レコードには、発拠点（２０６）、着拠点（２０７）、中継拠点数（２０８）、および、それら中継拠点のID（２０９〜２１２）が格納される。中継拠点数（２０８）は、発拠点（２０６）から着拠点（２０７）まで荷物を輸送する場合に経由する中継拠点の数（すなわち、拠点1（２０９）から拠点N（２１２）までの拠点の数であるN）である。なお、発拠点と着拠点は厳密に言えば「中継」拠点ではないが、便宜上、含めるものとする（すなわち、拠点1（２０９）は発拠点とし、拠点N（２１２）は着拠点とする）。
【００１７】
荷物情報（１１２）の１レコードには、荷物を一意に識別する荷物ID（２１３）、その荷物の送付元である発拠点のID（２１４）、その荷物の送り先である着拠点のID（２１５）、その荷物の荷物量（２１６）、発拠点から出荷可能になる時間を示す出荷時刻（２１７）、着拠点への到着の締め切り時刻を示す納入時刻（２１８）、および荷積み荷おろし作業時間（２１９）が格納される。この荷物情報（１１２）の数が、輸送すべき荷物数になる。
【００１８】
分割荷物情報（１１３）は、荷物情報（１１２）に登録された荷物を発拠点から幾つかの拠点を中継して着拠点まで配送する際の各経路において荷積みおよび荷下ろし毎に分割して格納する情報である。例えば、発拠点Aから中継拠点BとCを経由して着拠点Dに荷物が輸送される場合には、AからB、BからC、CからDの経路をとるので、(1)Aでの荷積み、(2)Bでの荷下ろし、(3)Bでの荷積み、(4)Cでの荷下ろし、(5)Cでの荷積み、(6)Dでの荷下ろしの合計6個の分割荷物情報のレコードが作成されることになる。分割荷物情報（１１３）の１レコードには、荷物ID（２２０）、枝番（２２１）、拠点ID（２２２）、荷物量（２２３）、および発時刻または着時刻（２２４）が格納される。枝番（２２１）は、１つの荷物IDに対して０，１，２，…のように順に付けていくものとする。荷物ID（２２０）と枝番（２２１）で「分割荷物ID」を構成し、この分割荷物IDで分割荷物情報の１レコードが特定できるようにしている。枝番が偶数（０，２，４，…）のレコードは拠点ID（２２２）における荷積みを表し、枝番が奇数（１，３，５，…）のレコードは拠点ID（２２２）における荷下ろしを表している。荷積みの場合、発着時刻（２２４）はその荷物の出荷時刻（出荷可能になる時間）を示し、荷下ろしの場合、発着時刻（２２４）はその荷物の納入時刻（到着の締め切り時刻）を示す。なお、荷物情報（１１２）などから分割荷物情報（１１３）を作成する具体的な手順は、図６にて説明する。
【００１９】
輸送車両情報（１１４）には、各拠点の保有する車両の情報が格納される。具体的には、拠点ID（２２５）、その拠点の保有車両数（２２６）、およびその保有車両の最大積載荷物量（２２７）が格納される。
【００２０】
距離テーブル（１１５）には、ルート生成で必要になる、各拠点間のトラックなどの輸送便での走行距離に関する情報が格納される。距離テーブル（１１５）の１レコードには、出発拠点の拠点ID（２２８）、到着拠点の拠点ID（２２９）、それらの拠点間の距離（２３０）、およびそれらの拠点間を輸送車両で走行する場合の所要時間（２３１）が格納される。
【００２１】
なお、不図示だが、道路地図（１１６）は、上記距離テーブル（１１５）の作成に必要な拠点間距離の計算や結果の出力に用いるための輸送区域の道路情報である。
【００２２】
図３は、輸送スケジュール作成部（１０７）で作成される輸送スケジュール情報（１１７）の一例を示している。輸送スケジュール情報（１１７）は、本発明に係る方法によって作成される輸送計画中で輸送車両が巡回する拠点や、その順序を示す情報を格納する。その１レコードには、車両No（３０１）、発拠点ID（３０２）、その車両に割当てられた分割荷物の数（３０３）、および割り当てられた分割荷物ID（３０４〜３０５）が格納される。ここでの分割荷物とは、図２（ｄ）で説明したように、（１１３）で与えられている分割荷物情報の１レコードを指し、この例では荷積み荷おろしをそれぞれ１つの分割荷物としている。各分割荷物を図３の輸送スケジュール情報（１１７）のように各車両に割当てることにより、複数の物流センター間で行われる幹線輸送を含めた輸送スケジュールが作成されたことになる。
【００２３】
図４は、図１中の処理装置（１０４）が実行するプログラム（１０５）の概要を示すフローチャートである。まず入力処理ステップ（４０１）で、拠点情報（１１０）、拠点間中継情報（１１１）、荷物情報（１１２）、輸送車両情報（１１４）等の輸送スケジュールを作成するために必要な情報をユーザが入力（登録）する。この処理の詳細は図５で後述する。次の輸送スケジュール作成処理ステップ（４０２）では、入力処理ステップで与えられた条件に合致する輸送スケジュールを作成する。ここで輸送スケジュールの作成とは、入力された全ての荷物を、それぞれの発拠点から着拠点に届けるトラック（車両）が従うスケジュールを決定することを指す。この処理の詳細は図７で後述する。次に、結果出力処理ステップ（４０３）では、作成したルートを出力する。この処理の詳細は図１０で後述する。
【００２４】
図５は、図４中の入力処理ステップ（４０１）の詳細を示すフローチャートである。まず、拠点情報登録ステップ（５０１）で、拠点情報（１１０）の登録を行う。次に、荷物情報登録ステップ（５０２）で、荷物情報（１１２）の登録を行う。次に、輸送車両情報登録ステップ（５０３）で、輸送車両情報（１１４）の登録を行う。次に、距離テーブル生成処理（５０４）で、拠点間の距離とトラックによる走行所要時間を道路地図（１１６）を参照して生成し、距離テーブル（１１５）を生成する。なお、道路地図（１１６）は予め用意されているものとする。次に、中継情報登録処理ステップ（５０５）で、拠点間中継情報（１１１）の登録を行う。次に、荷物情報分割処理（５０６）で、荷物情報（１１２）と拠点間中継情報（１１１）を用いて分割荷物情報（１１３）を作成する。この処理の詳細は図６で後述する。
【００２５】
図６は、図５中の荷物情報分割処理（ステップ５０６）の詳細を示すフローチャートである。まず、変数I,Jにそれぞれ1を代入する（ステップ６０１）。Iは分割前の荷物情報レコード（１１２）を指すインデクスを表す。すなわち、Iを１から荷物数まで順にカウントアップしながら、I番目の荷物情報レコードに対して、以下のステップ６０２〜６１９を実行していく。Jは分割荷物情報（１１３）として追加するレコードのインデクスを表す。
【００２６】
IがNよりも大きければ処理を終える（ステップ６０２）。ここで変数Nには、予め荷物情報レコード（１１２）として登録されている荷物数が設定されている。IがN以下の場合には、以下の処理を行う。
【００２７】
変数CTに、I番目の荷物の発拠点ID（２１４）および着拠点ID（２１５）と同一の発拠点ID（２０６）および着拠点ID（２０７）を持つ拠点間中継情報レコード（１１１）を取り出して格納する（ステップ６０３）。次に、変数Pに、CT中の中継拠点数（２０８）を格納する（ステップ６０４）。現在分割しようとしている中継拠点のインデクスを表す変数kには初期値として0を設定する（ステップ６０５）。kがP-1以上の場合は（ステップ６０６）、当該荷物に関して、CTに格納した拠点間中継情報レコード（１１１）中の最後の拠点まで処理を終えたということであるから、次の荷物を処理するため、変数Iに1を加えて（ステップ６１９）、ステップ６０２に戻る。ステップ６０６でkがP-1より小さい場合には、以下の処理を行う。
【００２８】
以下のステップ６０７〜６１７では、分割荷物情報（１１３）にJ番目およびJ+1番目の２つのレコードを追加する。なお、拠点間中継情報レコードを格納する変数CTは構造体であり、図２（ｂ）の拠点1（２０９）はCT.base[0]に、拠点2（２１０）はCT.base[1]に、…、拠点N（２１２）はCT.base[N-1]に、それぞれ格納されるものとする。また、nload[J]は図２（ｄ）に示した分割荷物情報のJ番目のレコード（１１３）の構造体、load[I]は図２（ｃ）に示した荷物情報のI番目のレコード（１１２）の構造体を示す。構造体nload[J]の要素は、nload[J].idが荷物ID（２２０）、nload[J].bが枝番（２２１）、nload[J].baseが拠点ID（２２２）、nload[J].wが荷物量（２２３）、nload[J].stimeが発着時刻（２２４）を、それぞれ表す。同様に、構造体load[I]の要素は、load[I].idが荷物ID（２１３）、load[I].baseが着拠点ID（２１５）、load[I].wが荷物量（２１６）、load[I].stimeが出荷時刻（２１７）、load[I].etimeが納入時刻（２１８）、load[I].sagyoが荷積み作業時間と荷下ろし作業時間（２１９）を、それぞれ表す。
【００２９】
まず、J番目とJ+1番目の分割荷物情報レコードの荷物IDに、I番目の荷物情報レコードの荷物IDを設定する（ステップ６０７）。J番目の分割荷物情報レコードの枝番には2k、J+1番目の分割荷物情報レコードの枝番には2k+1の値を、それぞれ設定する（ステップ６０８）。J番目とJ+1番目の分割荷物情報レコードの荷物量には、I番目の荷物情報レコードの荷物量を設定する（ステップ６０９）。J番目の分割荷物情報レコードの拠点IDには拠点間中継情報CTのk番目の拠点IDを（ステップ６１０）、J+1番目の分割荷物情報レコードの拠点IDには拠点間中継情報CTのk+1番目の拠点IDを（ステップ６１１）、それぞれ設定する。
【００３０】
kが0の場合には（ステップ６１２）、いま処理対象である中継拠点が発拠点であるということであるから、J番目の分割荷物情報レコードの発着時刻に、I番目の荷物情報レコードの出荷時刻を設定する（ステップ６１３）。kが0でない場合には（ステップ６１２）、J番目の分割荷物情報レコードの発着時刻に、J-1番目の分割荷物情報レコードの発着時刻に対してI番目の荷物情報レコードの作業時間および予め定められている余裕時間を加えた時刻を、設定する（ステップ６１４）。J-1番目の分割荷物情報レコードは荷下ろし側の分割荷物を示しているので、その発着時刻はその荷物の当該中継拠点への納入時刻を示している。従って、該納入時刻に、I番目の荷物情報レコードの荷積み作業時間と余裕時間を加えた時刻が、J番目の分割荷物情報レコード（荷積み側）の発着時刻（出荷時刻）になる。
【００３１】
J+1番目の分割荷物情報レコードの拠点IDがI番目の荷物情報レコードの着拠点IDと等しい場合には（ステップ６１５）、当該拠点が配送先の最後（着拠点）ということであるから、J+1番目の分割荷物情報レコードの発着時刻にI番目の荷物情報レコードの納入時刻を設定する（ステップ６１６）。ステップ６１５でNoの場合には、J+1番目の分割荷物情報レコード（荷下ろし側）の発着時刻（納入時刻）に、J番目の分割荷物情報レコードの発着時刻に対して発拠点から着拠点までの走行所要時間および作業時間を加えた時刻を、設定する（ステップ６１７）。J番目の分割荷物情報レコードは荷積み側の分割荷物を示しているので、その発着時刻は出荷時刻を示している。従って、該出荷時刻に、発拠点nload[J].baseから着拠点nload[J+1].baseまでの拠点間走行所要時間と、I番目の荷物情報レコードの荷下ろし作業時間とを加えた時刻が、J+1番目の分割荷物情報レコード（荷下ろし側）の発着時刻（納入時刻）になる。なお、ステップ６１４と同様に、ステップ６１７でも余裕時間を加算してもよい。
【００３２】
次に、変数kに1を、Jに2をそれぞれ加え（ステップ６１８）、ステップ６０６に戻る。
【００３３】
図７は、図４中の輸送スケジュール作成処理（ステップ４０２）の詳細を示す処理フローである。
【００３４】
一般的に輸送スケジュールの作成は組み合わせ問題であり、非特許文献１や非特許文献２に説明されているような、ヒューリスティクスを用いた技法や、GA、タブーサーチ、SA法などのメタヒューリスティクスに分類される技法が適用されている。本実施形態では、メタヒューリスティクスの中のランダムリスタート法を適用している。つまり、ランダムな条件下で初期解（スケジュール）を作成し、それを改良処理でより良いスケジュールに改良する。この初期解の作成と改良を複数回繰り返し、その中で最良のスケジュールを選択するものである。
【００３５】
まず、変数Iに1を設定し、Best_ValueにMax_Valueを設定する（ステップ７０１）。ここでMax_Valueは、使用する計算機で表現可能な最大の数値を表す。次に、IがN以下の場合（ステップ７０２）、次の処理を繰り返す。ここで、Nは、ランダムリスタートで初期解の作成と、その初期解の改良を行う回数であり、予め定められている定数である。
【００３６】
まず初期解の作成を行う（ステップ７０３）。この処理の詳細は図８で説明する。次に、作成した初期解の改良を行う（ステップ７０４）。この処理の詳細は図９で説明する。次に、スケジュール結果の評価を行う（ステップ７０５）。この評価とは、スケジュール結果から、使用するトラック台数およびその走行距離から輸送に要する概算のコストを求める処理である。この計算方法は、トラック台数だけで評価する方法や、輸送車両の総走行距離で評価する方法、また、トラック台数と予め定めた輸送車両一台あたりの固定費の積と、総走行距離と予め定めた単位距離あたりの変動費の積の和で評価する方法などが挙げられる。ステップ７０５で算出された評価結果（評価値）は、変数Eに代入される。この評価値が小さい方が、より評価が高いことを意味する。
【００３７】
次に、評価結果が格納されている変数EとBest_Valueの値を比較し（ステップ７０６）、EがBest_Valueよりも小さい場合には、Eの値をBest_Valueに代入し（ステップ７０７）、作成したスケジュール結果をBest_Scheduleに記録する（ステップ７０８）。次に、変数Iに1を加え（ステップ７０９）、ステップ７０２に戻る。ステップ７０６でEがBest_Value以上なら、ステップ７０９に進む。ステップ７０２でIがN以上になれば処理を終える。
【００３８】
図８は、図７中の初期解作成処理（ステップ７０３）の詳細を示す処理フローである。この処理では、各分割荷物を何れかのトラックに割当てる初期解を作成する。
【００３９】
まず、すべての分割荷物情報レコード（１１３）から荷積み側のレコードを取り出して配列Lに格納する（ステップ８０１）。この処理は、分割荷物情報レコードの枝番が偶数のものを選ぶことで行う。次に、配列Lに格納されている分割荷物情報レコードをランダムな順序に並べ換える（ステップ８０２）。変数Pに配列Lに格納した分割荷物数を、分割荷物情報インデクスを表す変数Iに1を、それぞれ設定する（ステップ８０３）。IとPの値を比較し（ステップ８０４）、Iが大きければ処理を終える。IがP以下の間は、次の一連の処理を行う。
【００４０】
まず、変数Tに、既に分割荷物を割り当てたトラックの台数を格納する（ステップ８０５）。次に、トラックに分割荷物を割り当てたときの距離増分の最小値を格納する変数VにMax_Value、距離増分が最小となるときのトラックのインデクスを表す変数Xに0、荷物割り当てをチェックしようとしているトラックのインデクスを表す変数Jに1を、それぞれ代入する（ステップ８０６）。JとTを比較し（ステップ８０７）、JがT以下の場合には、既に分割荷物が割り当てられているJ台目のトラックに、L[I]に格納されている分割荷物とそれに対応する荷下ろし側分割荷物の積載が可能かチェックする（ステップ８０８）。つまり、当該分割荷物を当該トラックに積載した場合に、トラックの積載量上限を超えることなく、かつ各荷物の集荷時間および配送時間が守れるかを、チェックする。もしステップ８０８で積載可能と判断された場合には、その荷積み荷おろし分割荷物をJ台目のトラックに積載することによる、J台目のトラックの走行距離増分を変数Dに設定する（ステップ８０９）。DとVの値を比較し（ステップ８１０）、DがVよりも小さくなければ、Jに1を加え（ステップ８１２）て、ステップ８０７に戻り、次のトラックのチェックに移る。ステップ８０９でDの値が小さい場合には、XにJを、VにDの値をそれぞれ設定し（ステップ８１１）、Jに１を加え（ステップ８１２）、ステップ８０７に戻る。
【００４１】
ステップ８０７でJがTの値を超えた場合には、まず変数Xの値が0かチェックする（ステップ８１３）。０でない場合には、分割荷物L[I]とそれに対応する荷下ろし側分割荷物を積載可能なトラックが見つかっているので、その分割荷物をX番目のトラックに積載し（ステップ８１７）、変数Iに1を加え（ステップ８１６）、ステップ８０４に戻り、次の分割荷物の処理に移る。ステップ８１３で変数Xの値が0の場合には、既に分割荷物の割り当てを行っているトラックで分割荷物を積載可能なものが無かったということであるから、分割荷物L[I]の拠点の保有するトラックを一台輸送用に割り当て、分割荷物L[I]と対応する荷下ろし側分割荷物を積載し（ステップ８１４）、変数Tに1を加え（ステップ８１５）、ステップ８１６に進み、次の分割荷物の処理に移る。
【００４２】
図９は、図７中の改良処理（ステップ７０４）の詳細を示す処理フローである。
【００４３】
まず、変数Iに1を代入する（ステップ９０１）。次にIが10に満たない場合（ステップ９０２）に、以下の処理を行う。
【００４４】
まず、荷物が割り当てられている全トラックの積載率を算出する（ステップ９０３）。変数Rに1から5までの整数をランダムに一つ選択して設定する（ステップ９０４）。次に、積載率がR番目に悪いトラックに積載されている分割荷物を削除し、配列Lに追加する（ステップ９０５）。次に、配列Lに登録されている分割荷物の発拠点と着拠点を巡回しているトラック全てを削除し、それらのトラックに積載されていた分割荷物を配列Mに格納する（ステップ９０７）。次に、配列Lに配列Mの内容を加える（ステップ９０７）。次に、この配列Lに格納されている分割荷物の再スケジュールを行う（ステップ９０８）。つまり、配列Lに格納されている分割荷物情報に対して、図８の詳細フローで示した方法により積載するトラックを割り当てる。次に、変数Iに1を加え（ステップ９０９）、ステップ９０２に戻る。Iが10以上になったら（ステップ９０２）、終了する。
【００４５】
図１０は、図４中の結果出力処理（ステップ４０３）の詳細を示すフローである。まず、各トラックの通過拠点とルートを地図上に表示し（ステップ１００１）、次に、作成したスケジュールに対して、必要なトラック台数、総走行距離などの評価値を算出して表示する（ステップ１００２）。印刷の指示があれば、上記の情報を印刷装置に印刷する（ステップ１００３）。
【図面の簡単な説明】
【００４６】
【図１】本実施形態のシステムを示す全体構成図である。
【図２】本実施形態で用いるデータの構造を示す図である。
【図３】本実施形態で用いるスケジュール情報のデータ構造を示す図である。
【図４】本実施形態の全体的な処理を示すフローチャート図である。
【図５】本実施形態の入力処理の詳細を示すフローチャート図である。
【図６】本実施形態の荷物情報分割処理の詳細を示すフローチャート図である。
【図７】本実施形態の輸送スケジュール作成処理の詳細を示すフローチャート図である。
【図８】本実施形態の初期解作成処理の詳細を示すフローチャート図である。
【図９】本実施形態の改良処理の詳細を示すフローチャート図である。
【図１０】本実施形態の結果出力処理の詳細を示すフローチャート図である。
【符号の説明】
【００４７】
１０１…入力装置、１０２…出力装置、１０３…表示装置、１０４…処理装置、１０９…記憶装置、１０６…入力処理部、１０７…輸送スケジュール作成部、１０８…結果出力部、１０５…プログラム、１１０…拠点情報、１１１…拠点間中継情報、１１２…荷物情報、１１３…分割荷物情報、１１４…輸送車両情報、１１５…距離テーブル、１１６…道路地図、１１７…輸送スケジュール情報。
【図１】
2007191296.tif 000003
【図２】
2007191296.tif 000004
【図３】
2007191296.tif 000005
【図４】
2007191296.tif 000006
【図５】
2007191296.tif 000007
【図６】
2007191296.tif 000008
【図７】
2007191296.tif 000009
【図８】
2007191296.tif 000010
【図９】
2007191296.tif 000011
【図１０】
2007191296.tif 000012