(57)【要約】【課題】輸送スケジュール作成において、輸送時間制約を含む多数の制約条件の充足と共に、必要車両台数が抑制を同時に満足する必要がある。【解決手段】輸送スケジュールを作成する際に、輸送拠点の位置情報を入力し、荷物の荷物量、輸送先、輸送指定時間含む荷物情報と、輸送車両の積載量限界を含む輸送車両情報を入力し、拠点の地理的位置、輸送指定時間等の制約条件を解析して、同一車両での輸送が不可能な荷物を予め算出するとともに、複数車両の輸送ルートからなる輸送スケジュール構築時に、構築途上の複数輸送ルートに、新たな輸送先を追加する場合に、追加対象の車両の走行距離増分が、その輸送先追加前の走行距離の一定割合を越えない場合にだけ追加を行うことで、スケジュール作成中の車両ルートに、既に割当てられている輸送先拠点から遠距離の拠点への輸送割当てを防止する。【選択図】  図１
2005043974.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも入出力装置と処理装置と記憶装置を有し、物流センターから輸送先拠点への荷物輸送を行う複数車両の、各車両への輸送担当荷物の割当と、各車両の輸送ルートを作成する輸送スケジュール作成システムであって、物流センターや、輸送先などの拠点の位置情報を入力する拠点情報登録ステップと、各荷物の荷物量、輸送先拠点・配送時間制約を含む荷物情報を入力する荷物情報登録ステップと、トラックなどの輸送車両の積載量限界などを含む輸送車両情報を入力する輸送便情報登録ステップと、同一車両で巡回可能な輸送拠点を入力する輸送エリア情報登録ステップと、拠点の地理的位置や各拠点の輸送時間制約などの制約条件を解析し、同一車両での巡回が不可能な荷物の情報を示す排他荷物情報を生成する制約条件解析ステップと、これらの情報からトラックなどの輸送車両の輸送スケジュールを作成する輸送スケジュール作成ステップと、作成した輸送スケジュールを出力するスケジュール出力ステップとを備えた輸送スケジュール作成方法であり、輸送スケジュール作成ステップは、ＧＡ（Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍ：遺伝的アルゴリズム）を用い、つまり、輸送スケジュールを複数生成する初期集団作成ステップと、その初期スケジュール集団を突然変異及び交差処理等の遺伝的操作を適用して改良するスケジュール改良スッテプからなり、更に、初期集団作成ステップとスケジュール改良ステップにおいて、各車両への荷物割当時に制約条件解析ステップにおいて作成された排他荷物情報を参照して、同一車両に積載可能な荷物を決定することを特徴とする輸送スケジュール作成方法及びシステム。
【請求項２】
請求項１記載の輸送スケジュール作成ステップに適用した遺伝的アルゴリズムは、輸送対象の荷物を一意に識別するＩＤを設け、そのＩＤを輸送に利用する車両の巡回順序で一次元に並べた遺伝子構造を用い、その交差処理においてはランダムに二つの遺伝子を選択して、その交差位置を決め、一方の遺伝子の交差位置よりも前に記録されている輸送スケジュールと、その輸送スケジュールに含まれていない荷物を、もう一方の遺伝子中に現れる順序に従って、先に記した一方の遺伝子の交差位置よりも前方の輸送スケジュールに含まれている車両のルートへＮＩ法（Ｎｅａｒｅｓｔ  Ｉｎｓｅｒｔｉｏｎ  Ｍｅｔｈｏｄ：最近隣挿入法）で追加した場合の、その輸送車両の距離の増分が、その輸送車両の、その荷物追加前の走行距離の一定割合を越えない場合にだけ追加し、追加できない荷物は、他の追加可能な荷物の追加処理の後に、再度、その時点の輸送スケジュールに含まれている輸送車両のルートへＮＩ法を用いて追加し、制約条件を満足する輸送車両がない場合には輸送車両のスケジュールへの追加を行うことを特徴とする請求項１記載の輸送スケジュール作成方法及びシステム。
【請求項３】
請求項２記載の遺伝子構造を用いた遺伝的アルゴリズムにおける突然変異操作において、ランダムに選択した遺伝子に記録されている一つの荷物を選択し、その荷物の輸送先拠点および、更にランダム距離を一つ選択して、先に選択した輸送先拠点から、その距離以内の集配送先の荷物を、遺伝子から削除し、これら荷物を輸送スケジュールに含まれている輸送車両のルートへＮＩ法（Ｎｅａｒｅｓｔ  Ｉｎｓｅｒｔｉｏｎ  Ｍｅｔｈｏｄ：最近隣挿入法）で追加した場合に、その輸送車両の走行距離の増分が、その輸送車両の元の走行距離の一定割合を越えない場合にだけ再度追加し、追加できない荷物は、他の追加可能な荷物の追加処理の後に、再度、その時点で、輸送スケジュールに含まれている輸送車両のルートへＮＩ法を用いて追加し、制約条件を満足する輸送車両がない場合には輸送車両のスケジュールへの追加を行うことを特徴とする請求項１記載の輸送スケジュール作成方法及びシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、物流分野におけるスケジューリング作成を計算機で行う方法および装置、システム、プログラムに関するものであり、具体的には計算機を利用した物流計画の作成方法に関するものである。
【０００２】
【従来の技術】
物流システムでの、輸送スケジュール作成技術としては、いわゆる巡回セールスマン問題やビークルルーティング問題に相当する一定地域内に存在する顧客先の効率的な巡回計画を作成する技術はすでに開発されている（特開平５−１３５０７０号公報「配送スケジューリング装置」）。
【０００３】
例えば、特開平１０−１２４５８８号公報「地理情報に基づくスケジュール作成装置」は地理情報と共に、顧客先間の最短経路決定にニューラルネットを用いることで、最適なスケジュール作成を行っている。
【０００４】
また、特開平８−１１５４９５号公報「自動配車装置」では、多数の配送先をクラスタリングして、各クラスター内で輸送ルートを作成する方式を実現している。
【０００５】
更に、特開平９−３０５６６９号公報「配送計画方法と装置」は、トラックの積載量制約と稼働時間制約を守った上で効率的な配車計画を作成するために、いわゆるスウィープ法（増井忠幸他著「ロジスティクスのＯＲ」槇書店  １９９８年）に基づく技法を用いている。
【０００６】
更に、小規模な輸送ルートを高速に作成する方法として、２ｏｐｔ法やＬＫ法などのアルゴリズムも開発されてきている（茨木俊秀「離散最適化法とアルゴリズム」岩波書店  １９９３年）。
【０００７】
【特許文献１】
特開平５−１３５０７０号公報
【特許文献２】
特開平１０−１２４５８８号公報
【特許文献３】
特開平８−１１５４９５号公報
【特許文献４】
特開平９−３０５６６９号公報
【非特許文献１】
増井忠幸他著「ロジスティクスのＯＲ」槇書店  １９９８年
【非特許文献２】
茨木俊秀「離散最適化法とアルゴリズム」岩波書店  １９９３年
【０００８】
【発明が解決しようとする課題】
トラック輸送などを対象とした物流のスケジュール作成は、一般にトラックなどの機材や物流センターなどの設備利用効率の向上や運用に関わる人員の業務効率向上を通して物流コストの削減を目的としている。また、サプライチェーンマネージメントと進展に伴い、ジャスト・イン・タイムでの輸送も求められている。更に、実際のトラックの運用を考えると、スケジュール作成時には、トラックの運行エリアや、利用車種の制限、利用車庫など様々な制約条件を考慮しなければならない。
【０００９】
また、実際の運用では、顧客からの受注や、トラックや物流センターの要員の確保にも時間的余裕が必要なため、スケジュール作成に要する時間も限られている。このため、輸送車両のスケジュール作成を自動化するためには、単にスケジュールの最適性だけでなく、実用的な応答性能も要求される。
【００１０】
しかし、物流スケジュールの作成は、数学的には巡回セールスマン問題やビークルルーティング問題に分類される問題であり、実用的な処理時間内に厳密解を求めることが不可能である。従って、高精度の近似解法が必要とされる。
【００１１】
しかしながら、単純なスィープ法やセービング法などの近似解法では、最適解から数十％誤差を含む解が生成されることもあり、実用化は困難である。このため、タブーサーチやＳＡ（Ｓｉｍｕｌａｔｅｄ  Ａｎｎｅａｌｉｎｇ）法、ＧＡ（Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍ：遺伝的アルゴリズム）などの最適化技法を適用した解法が提案されている。
【００１２】
これらの技法を適用しても、先に記したような制約条件がある場合には、スケジュール作成時に、これら多数の制約条件のチェックが必要となり、応答性能上の問題が発生する。
【００１３】
【課題を解決するための手段】
上記問題を解決するために、請求項１に関わる発明は、少なくとも入出力装置と処理装置と記憶装置を有し、物流センターから輸送先拠点への荷物輸送を行う複数車両の、各車両への輸送担当荷物の割当と、各車両の輸送ルートを作成する輸送スケジュール作成システムであって、物流センターや、輸送先などの拠点の位置情報を入力する拠点情報登録ステップと、各荷物の荷物量、輸送先拠点・配送時間制約を含む荷物情報を入力する荷物情報登録ステップと、トラックなどの輸送車両の積載量限界などを含む輸送車両情報を入力する輸送便情報登録ステップと、同一車両で巡回可能な輸送拠点を入力する輸送エリア情報登録ステップと、拠点の地理的位置や各拠点の輸送時間制約などの制約条件を解析し、同一車両での巡回が不可能な荷物の情報を示す排他荷物情報を生成する制約条件解析ステップと、これらの情報からトラックなどの輸送車両の輸送スケジュールを作成する輸送スケジュール作成ステップと、作成した輸送スケジュールを出力するスケジュール出力ステップとを備えた輸送スケジュール作成方法であり、輸送スケジュール作成スッテプは、ＧＡ（Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍ：遺伝的アルゴリズム）を用い、つまり、輸送スケジュールを複数生成する初期集団作成ステップと、その初期スケジュール集団を突然変異及び交差処理等の遺伝的操作を適用して改良するスケジュール改良スッテプからなり、更に、初期集団作成ステップとスケジュール改良ステップにおいて、各車両への荷物割当時に制約条件解析ステップにおいて作成された排他荷物情報を参照して、同一車両に積載可能な荷物を決定することを特徴とする。
【００１４】
請求項２に係る発明は、請求項１記載の輸送スケジュール作成ステップに適用した遺伝的アルゴリズムにおいて、輸送対象の荷物を一意に識別するＩＤを設け、そのＩＤを輸送に利用する車両の巡回順序で一次元に並べた遺伝子構造を用い、その交差処理においてはランダムに二つの遺伝子を選択して、その交差位置を決め、一方の遺伝子の交差位置よりも前に記録されている輸送スケジュールと、その輸送スケジュールに含まれていない荷物を、もう一方の遺伝子中に現れる順序に従って、先の一方の遺伝子の交差位置よりも前方の輸送スケジュールに含まれている車両のルートへＮＩ法（Ｎｅａｒｅｓｔ  Ｉｎｓｅｒｔｉｏｎ  Ｍｅｔｈｏｄ：最近隣挿入法）で追加した場合の、その輸送車両の距離の増分が、その輸送車両の、その荷物追加前の走行距離の一定割合を越えない場合にだけ追加し、追加できない荷物は、他の追加可能な荷物の追加処理の後に、再度、その時点の輸送スケジュールに含まれている輸送車両のルートへＮＩ法を用いて追加し、制約条件を満足する輸送車両がない場合には輸送車両のスケジュールへの追加を行うことを特徴とする。
【００１５】
請求項３に係る発明は、請求項１記載の輸送スケジュール作成ステップに適用した遺伝的アルゴリズムの突然変異操作において、ランダムに選択した遺伝子に記録されている一つの荷物を選択し、その荷物の輸送先拠点および、更にランダム距離を一つ選択して、先に選択した輸送先拠点から、その距離以内の集配送先の荷物を、遺伝子から削除し、これら荷物を輸送スケジュールに含まれている輸送車両のルートへＮＩ法（Ｎｅａｒｅｓｔ  Ｉｎｓｅｒｔｉｏｎ  Ｍｅｔｈｏｄ：最近隣挿入法）で追加した場合に、その輸送車両の走行距離の増分が、その輸送車両の元の走行距離の一定割合を越えない場合にだけ再度追加し、追加できない荷物は、他の追加可能な荷物の追加処理の後に、再度、その時点で、輸送スケジュールに含まれている輸送車両のルートへＮＩ法を用いて追加し、制約条件を満足する輸送車両がない場合には輸送車両のスケジュールへの追加を行うことを特徴とする。
【００１６】
【発明の実施の形態】
以下、本発明の一実施例を図面を用いて説明する。
【００１７】
本実施形態では、輸送は物流センターに所属する複数台の輸送車両（トラック等）が物流センターを出発して、複数の輸送先拠点への荷物を行うスケジュールの作成を想定している。この実施例は、荷物の配送を想定しているが、当然複数の拠点から物流センターに荷物を集める、集荷スケジュールの作成にも適用できるものである。
【００１８】
図１は、本発明のシステムの構成図である。
【００１９】
本システムは、入力装置（１０１）、プリンタなどの出力装置（１０２）、ディスプレイなどの表示装置（１０３）、処理装置（１０４）、記憶装置（１０５）を備える。
【００２０】
処理装置（１０４）は、入力処理部（１０７）、制約条件解析処理部（１０８）、輸送スケジュール作成部（１０９）および結果出力部（１１０）を含む一連のプログラム（１０６）を実行する。
【００２１】
また、記憶装置（１０５）には、拠点情報（１１１）、荷物情報（１１２）、輸送車両情報（１１３）、輸送エリア定義情報（１１４）、距離テーブル（１１５）、道路地図（１１６）、排荷物情報（１１７）及び、これらから作成される。輸送ルート情報（１１８）が格納される。また、輸送ルート作成に用いる、遺伝子情報（１１９）及び車両管理情報（１２０）も格納される。
【００２２】
図２は図１の記憶装置（１０５）に格納される拠点情報（１１１）の一例を示している。
【００２３】
拠点情報（１１１）には、物流センターや荷物の集配送先拠点の位置情報を格納する。具体的には、物流センターや輸送先拠点を一意に識別する拠点ＩＤ（２０１）、拠点の名称（２０２）、拠点の住所（２０３）、拠点の位置を示す緯度（２０４）と経度（２０５）等が格納される。
【００２４】
図３は図１の記憶装置（１０５）に格納される荷物情報（１１２）の一例を示している。
【００２５】
荷物情報（１１２）には、輸送の対象となる各荷物に関する情報を格納する。具体的には、個々の荷物に１から順次付与した荷物インデックス（３０１）、荷物を一意に識別する荷物ＩＤ（３０２）、物流センターから配送先に送る荷物か、荷物の輸送先を示す拠点ＩＤ（３０３）、荷量（３０４）、その輸送先への車両の到着指定時間帯を示す時間制約（３０５）からなる。
【００２６】
図４は図１の記憶装置（１０５）に格納される輸送車両情報（１１３）の一例を示している。
【００２７】
輸送車両情報（１１３）には、利用可能な車両の積載重量に関する能力や限界、また、車両の稼働時間についての情報を格納する。具体的には、輸送車両情報には、車両を一意に識別するために１から順次付与した車両Ｎｏ（４０１）、その種類の車両の積載重量限界値（４０２）、および、その車両の物流センターからの出発時間（４０３）と配送業務を終える終了時間（４０４）からなる。
【００２８】
図５は図１の記憶装置（１０５）に格納される輸送エリア定義情報（１１４）の一例を示している。
【００２９】
エリア定義情報（１１４）には、各拠点のエリアＩＤを登録する。このエリアＩＤが同一であることは、同一のエリアＩＤを付与された拠点は、同一の輸送車両で巡回が可能であることを表す。つまり、輸送スケジュール作成時に、異なるエリアＩＤを有する拠点の荷物は同一の輸送車両には割当てない。
【００３０】
具体的には、エリア定義情報には、拠点ＩＤ（５０１）と、そのエリアＩＤ（５０２）を登録する。また、本実施例では、このエリア定義情報に登録されていない拠点は、どのエリアを巡回する輸送車両でも輸送可能として扱う。
【００３１】
図６は図１の記憶装置（１０５）に格納される排他荷物情報（１１７）の一例を示している。
【００３２】
排他荷物情報（１１７）は、制約条件解析処理部（１０８）により、輸送先拠点の地理的位置や輸送時間制約等の制約条件を解析し、同一車両での輸送が不可能な荷物の情報が設定されている。つまり、荷物インデックスがＩとＪの荷物が同一車両に混載して輸送ができない場合には、この排他荷物情報を表すテーブルの（Ｉ，Ｊ）要素と（Ｊ，Ｉ）要素には１を設定する。それ以外の要素には０を設定する。
【００３３】
図７は図１の記憶装置（１０５）に格納される距離テーブル（１１５）の一例を示している。
【００３４】
距離テーブル（１１７）には、二つの拠点のＩＤ（７０１と７０２）及び、その拠点ＩＤ１（７０１）から拠点ＩＤ２（７０２）への輸送車両による走行距離（７０３）及び走行所要時間（７０４）を格納する。
【００３５】
図８は図１の記憶装置（１０５）に格納される輸送ルート情報（１１８）の一例を示している。
【００３６】
輸送ルート情報（１１８）は、本発明に係わる方法によって作成される輸送スケジュールで車両が巡回する拠点と、その車両の巡回順序を示す情報を格納する。具体的には車両Ｎｏ（８０１）、車両の巡回拠点数（８０２）、や輸送先拠点の拠点ＩＤ（８０３）と、その拠点への到着時間（８０４）、その拠点との輸送を行う荷物のインデックス（８０５）を格納する。また、合計荷物量（８１０）や総走行距離（８１１）を格納する。
【００３７】
図９の遺伝子情報（１１６）は輸送スケジュール作成部（１０９）で用いる遺伝的アルゴリズムによる輸送スケジュール作成で用いる遺伝子表現の一例を示している。遺伝子には、トラックなどの輸送車両で配送する荷物の荷物インデックス（９０１）がそれぞれ格納される。
【００３８】
車両管理情報（１２０）には、輸送スケジュール作成部（１０９）で用いる遺伝子情報（１１９）の車両への対応関係を示す情報を格納する。遺伝子情報（１１９）は、単に荷物インデックスを一次元に並べた配列であり、どの荷物がどの車両に積載されているかは記録されていない。この車両管理情報には、各車両に積載される荷物が、遺伝子情報のどの部分に対応しているかを示すために、以下の情報を車両毎に格納する。つまり車両を一意に識別する車両Ｎｏ（９０４）、その車両に積載する荷物の遺伝子上での開始位置を示す遺伝子開始位置（９０５）、終了位置を示す遺伝子終了位置（９０６）からなる。
【００３９】
図１０は、図１中の処理装置（１０４）が実行するプログラム（１０６）の概要を示すフローチャートである。まず入力処理ステップ（１００１）で、拠点情報（１１１）、荷物情報（１１２）、輸送車両情報（１１３）、輸送エリア定義情報（１１４）等の輸送計画を作成するために必要な情報をユーザが入力する。この処理の詳細は図１１に後述する。次の制約条件解析処理（１００２）では、輸送先拠点の地理的位置や輸送時間制約等の制約条件を解析し、排他荷物情報（１１７）を生成する。この処理の詳細は、図１２に後述する。次の輸送スケジュール作成ステップ（１００３）では、入力処理ステップ（１００１）によって得られた情報から、最適と考えられる輸送計画を決定する。ここで輸送計画の決定とは、入力された全ての荷物を配送先に届けることが可能なトラックが従うべき荷物のトラックへの割り当てとスケジュール（輸送スケジュール情報）を決定することを指す。この処理の詳細は図１３に後述する。次に、結果出力処理ステップ（１００４）では、作成したスケジュールを、その評価とともに出力する。この処理の詳細は図２３で後述する。
【００４０】
図１１は、図１０中の入力処理ステップ（１００１）の詳細を示すフローチャートである。まず、拠点情報登録ステップ（１１０１）で、拠点情報（１１１）の登録を行う。次に、荷物情報登録ステップ（１００２）で、荷物情報（１１２）の登録を行う。次に輸送車両情報登録ステップ（５０４）で、輸送車両情報  （１１３）の登録を行う。次に輸送エリア登録処理（１１０４）で、輸送エリア定義情報（１１４）の登録を行う。次に距離テーブル生成処理（１１０５）で拠点間の距離とトラックによる走行所要時間を道路地図（１１６）を参照して生成する。なお、道路地図（１１６）はカーナビゲーションで利用されるような道路及びその道路間の接続関係や距離情報が格納されているものが予め用意されているものとする。
【００４１】
図１２は図１０中の制約条件解析処理（１００２）の詳細を示すフローチャートである。ここでは、各拠点の地理的条件や、荷物毎に指定されている時間制約を解析して、同一車両に混載して輸送できない荷物を決定し、排他荷物情報（１１７）を生成する。こ具体的には、まず、排他荷物情報を初期化する（１２０１）。つまり、二次元配列である排他荷物情報の全要素に０を代入する。以下、排他荷物情報は二次元配列ＸＬ［Ｉ，Ｊ］と記述する。次に、二つの荷物を同一車両に混載した場合に、制約違反が生ずるか否かを以下の処理により判定する。
【００４２】
まず、変数Ｉに１を代入する（１２０２）。次にＩの値と荷物情報に登録されている荷物数を表す変数Ｌ＿ＭＡＸを比較する（１２０３）。ＩがＬ＿ＭＡＸよりも大きい場合には処理を終える、ＩがＬ＿ＭＡＸ以下の場合には、以下の処理を行う。まず、変数ＪにＩ＋１を代入する（１２０４）。次に、ＪとＬ＿ＭＡＸを比較する（１２０５）。もしＪがＬ＿ＭＡＸよりも大きければ、ステップ１２２０に進み、変数Ｉに１を加え（１２２０）、次ステップ１２０３に戻り処理を繰り返す。
【００４３】
ステップ１２０５でＪがＬ以下ならば、荷物情報（１１２）の荷物インデックス（３０１）がＩとＪの荷物の同一車両への混載が制約条件違反を生じるか否かを判定するために以下の処理を行う。
【００４４】
まず、荷物ＩとＪの荷物の輸送先拠点の輸送エリア定義に登録されているエリアＩＤが異なっているかチェックする（１２０６）。もし、二つの拠点共にエリアＩＤが登録されていて、両者のエリアＩＤが異なる場合にだけこの条件は成立する。本実施例では、少なくとも片方の拠点のエリアＩＤが登録されていない場合には、そのエリア情報が登録されていない拠点は、他のエリアＩＤの拠点を巡回する輸送車両の荷物と混載可能であるとしているので、上記以外の場合には条件は成立しない。
【００４５】
次に、二つの拠点を巡回する車両が、車両の走行時間上限内で走行可能か判定する。つまり、変数Ｄ１に物流センターと荷物Ｉの輸送先拠点の走行所要時間を距離テーブルを参照して代入する（１２０７）。次に、変数Ｄ１にセンターと荷物Ｊの輸送先拠点の走行所要時間を同じようにして代入する（１２０８）。次に、変数Ｄ３に荷物Ｉと荷物Ｊの輸送先拠点間の走行所要時間を同じようにして代入する（１２０９）。次に、変数ＤにＤ１とＤ２とＤ３の和を代入する（１２１０）。次に、変数Ｄの値とトラックの走行時間上限を比較する（１２１１）。Ｄがトラック走行時間上限を超過している場合には（ステップ１２１１でＮｏの場合）、排他情報テーブルの（Ｉ，Ｊ）要素と（Ｊ，Ｉ）要素に１を代入し（１２１７，１２１８）して、次の荷物の組合せに移る。
【００４６】
ステップ１２１１の判定でＹｅｓの場合には、二つの荷物がそれぞれの輸送指定時間枠内に輸送可能か調べるために以下の処理を行う。まず変数ＢＩに荷物Ｉの輸送指定時間枠の開始時刻を代入する（１２１２）。
【００４７】
次に、変数ＥＩに荷物Ｉの輸送指定時間枠の終了時刻を代入する（１２１３）。次に、変数ＢＪに荷物Ｊの輸送指定時間枠の開始時刻を代入する（１２１４）。次に、変数ＥＪに荷物Ｊの輸送指定時間枠の終了時刻を代入する（１２１５）。
【００４８】
次に、Ｄ３が（ＥＪ−ＢＩ）以下またはＤ３が（ＥＩ−ＢＪ）以下かチェックする（１２１６）。条件が成立しない場合には、ステップ１２１７，１２１８で排他荷物情報の（Ｉ，Ｊ）及び（Ｊ，Ｉ）要素に１を設定する。ステップ１２１６で条件が成立した場合には、荷物Ｉと荷物Ｊは時間制約からだけでは同一車両での輸送が不可能とは判定できないので、排他荷物情報の（Ｉ，Ｊ）及び（Ｊ，Ｉ）要素は０のまま、次の処理に移る。
【００４９】
次に、変数Ｊに１を加え（１２１９）ステップ１２０５に戻る。ステップ１２０５の判定結果がＹｅｓの場合にはステップ１２２０に進み変数Ｉに１を加えステップ１２０３に戻る。
【００５０】
図１３は、図１０中の輸送スケジュール作成処理（１００３）の詳細を示すフローチャートである。このスケジュール作成処理は、ＧＡ（遺伝的アルゴリズム）に従っている。まず、ランダム性を含んだ方法によって、それぞれが異なる初期解集団を作成する（１３０１）。この処理の詳細は図１９に後述する。次に、変数Ｉに１を代入する（１３０２）。次に遺伝的処理による解集団の改良を行う（１３０３）。この処理の詳細は図２０で後述する。（１３０３）の処理によって、解集団の少なくとも一部分は変化し、（１３０３）〜（１３０５）の処理の繰り返しによって解集団は徐々に最適な解へ近づいて行く。（１３０２）の処理の後、集団の評価を行う（１３０４）。評価はルート情報から算出される車両の走行距離や利用車両台数などさまざまな要素に対し行われ、その結果によって解集団中の個々の解に対して順位がつけられる。この評価結果が上位の解を、次世代の解として選択する（１３０５）。次に変数Ｉに１を加える（１３０６）。
【００５１】
Ｉが予め設定されているＧＡの処理世代数Ｇ＿ＭＡＸを越えるか、次世代の集団中の最良解の評価値が予め与えられている目標値よりも良いかチェックする（１３０７）。もし条件が成立すれば、現在の解集団で最良の解を出力して（１３０８）処理を終える。ステップ１３０７で条件が成立しなければ、ステップ１３０３に戻り遺伝的処理による解集団の改良を繰り返す。
【００５２】
図１４は、図１３の遺伝的アルゴリズムを用いた輸送スケジュール作成処理の初期解集団の作成（１３０１）、解集団の改良処理（１３０３）で用いる荷物の輸送スケジュールへの荷物の追加処理の詳細を示すフローチャートである。この処理は、複数台の輸送車両からなる輸送スケジュールに、一つの荷物の集配送を追加する処理である。
【００５３】
配列Ｌに、追加する荷物の荷物インデックスが登録されているとする。また、配列Ｌに登録されている荷物数は変数Ｌ＿ＭＡＸに登録されているとする。まず、変数Ｉに１を代入する（１４０１）。次にＩとＬ＿ＭＡＸを比較する（１４０２）。ＩがＬ＿ＭＡＸ以下の場合（１４０２でＮｏの場合）には、以下の処理を行う。まず荷物Ｌ［Ｉ］を輸送可能な車両があるかチェックする（１４０３）。この処理の詳細は図１５で説明する。ステップ１４０３の処理で、輸送可能な車両がある場合には、荷物Ｌ［Ｉ］をその車両に追加し（１４０５）、Ｌ［Ｉ］に−１を代入して（１４０６）、変数Ｉに１を加え（１４０７）、ステップ１４０２に戻り次の荷物の処理に移る。ステップ１４０４でＮｏの場合には、ステップ１４０７に移る。
【００５４】
ステップ１４０２の判定がＹｅｓの場合には、ステップ１４０８に移り、変数Ｉに１を代入する。
【００５５】
次に、変数ＩとＬ＿ＭＡＸの値を比較する（１４０９）。ＩがＬ＿ＭＡＸより大きい場合には、処理を終える。ＩがＬ＿ＭＡＸ以下の場合には以下の処理を行う。
【００５６】
まず、Ｌ［Ｉ］が−１と等しいかチェックする（１４１０）。等しい場合には、Ｌ［Ｉ］は既に車両への割当て済みなのでステップ１４１５に進み変数Ｉに１を加え次の荷物の処理に移る。
【００５７】
ステップ１４１０でＬ［Ｉ］が−１と等しくない場合には、次の処理を行う。
【００５８】
まず、荷物Ｌ［Ｉ］を輸送可能な車両があるかチェックする（１４１１）。この処理の詳細は図１６で説明する。
【００５９】
もし追加可能な車両があれば、その車両に荷物Ｌ［Ｉ］を追加する（１４１３）。追加可能な車両が無い場合には、新たな車両を、荷物Ｌ［Ｉ］の輸送用に割当てる（１４１４）。次に、変数Ｉに１を加え（１４１５）、ステップ１４０９に戻り、次の荷物の処理に移る。
【００６０】
図１５は図１４中のステップ１４０３の処理の詳細を示すフローチャートである。
【００６１】
この処理では、追加対象の荷物を積載可能な輸送車両を探索し、もしある場合には変数Ｔｒｕｃｋにその車両の番号及び荷物の積載位置を変数Ｐに代入する。もし無い場合にはＰには−１が設定される。
【００６２】
Ｍａｘ＿Ｔｒｕｃｋには、既に荷物の輸送を割当て済みの輸送車両数が設定されているものとする。
【００６３】
まず、変数Ｋに１を代入し、変数Ｄには、利用する計算機で表現できる最大の整数Ｍａｘ＿Ｖａｌｕｅを設定し、変数ＴｒｕｃｋとＰには−１を設定する（１５０１）。次に、変数ＫとＭａｘ＿Ｔｒｕｃｋの値を比較する（１５０２）。もしＫがＭａｘ＿Ｔｒｕｃｋよりも大きければ、処理を終える。
【００６４】
ＫがＭａｘ＿Ｔｒｕｃｋ以下の場合には、次の処理を行う。まず、Ｋ番目の輸送車両に荷物の追加が可能か否かをチェックする（１５０３）。この処理の詳細は図１７に後述する。追加可能な場合には、ステップ１５０３の処理で設定される、その車両の運行時間の増分Ｄ＿ＭＩＮと変数Ｄの値を比較する（１５０５）。もしＤが大きければ、ＤにはＤ＿ＭＩＮの値を代入し、ＴｒｕｃｋにはＫ、ＰにはＰｏｓを代入する（１５０６）。変数Ｄ＿ＭＩＮ及びＰｏｓにはステップ１５０３の処理で値が設定される。ＤがＤ＿ＭＩＮ以下ならば、ステップ１５０７に移り次の車両のチェックを行う。
【００６５】
図１６は図１４中のステップ１４１１の処理の詳細を示すフローチャートである。
【００６６】
この処理では、追加対象の荷物を積載可能な輸送車両を探索し、もしある場合には変数Ｔｒｕｃｋにその車両の番号及び荷物の積載位置を変数Ｐに代入する。もし無い場合にはＰには−１が設定される。
【００６７】
Ｍａｘ＿Ｔｒｕｃｋには、既に荷物の輸送を割当て済みの輸送車両数が設定されているものとする。
【００６８】
まず、変数Ｋに１を代入し、変数Ｄには、利用する計算機で表現できる最大の整数Ｍａｘ＿Ｖａｌｕｅを設定し、変数ＴｒｕｃｋとＰには−１を設定する（１６０１）。次に、変数ＫとＭａｘ＿Ｔｒｕｃｋの値を比較する（１６０２）。もしＫがＭａｘ＿Ｔｒｕｃｋよりも大きければ、処理を終える。
【００６９】
ＫがＭａｘ＿Ｔｒｕｃｋ以下の場合には、次の処理を行う。まず、Ｋ番目の輸送車両に荷物の追加が可能か否かをチェックする（１６０３）。この処理の詳細は図１８に後述する。追加可能な場合には、ステップ１６０３の処理で設定される、その車両の運行時間の増分Ｄ＿ＭＩＮと変数Ｄの値を比較する（１６０５）。もしＤが大きければ、ＤにはＤ＿ＭＩＮの値を代入し、ＴｒｕｃｋにはＫ、ＰにはＰｏｓを代入する（１６０６）。変数Ｄ＿ＭＩＮ及びＰｏｓにはステップ１６０３の処理で値が設定される。ＤがＤ＿ＭＩＮ以下ならば、ステップ１６０７に移り次の車両のチェックを行う。
【００７０】
図１７は、図１５のフロー図中のステップ１５０３の詳細を示すフローである。
【００７１】
この処理では、スケジュールに追加する荷物の荷物インデックスを変数Ｌに代入してあるものとする。また、荷物Ｌが追加可能か判定する対象の車両番号が設定されているとする。この処理が終わると、荷物Ｌの輸送が車両Ｔ＿Ｎｏで可能であった場合には、変数Ｐｏｓに追加位置が設定され、Ｄ＿ＭＩＮに、その荷物の追加による車両の走行時間の増分値が設定される。追加できなかった場合には、Ｐｏｓには−１、Ｄ＿ＭＩＮにはＭａｘ＿Ｖａｌｕｅが設定される。変数まず、変数Ｚに荷物Ｌの輸送先拠点のＩＤを代入する（１７０１）。次に、変数Ｖに荷物Ｌの荷量を代入する（１７０２）。次に変数Ｐｏｓに−１を、Ｄ＿ＭＩＮに利用する計算機で表現可能な最大数（Ｍａｘ＿Ｖａｌｕｅと表記する）を設定する（１７０３）。次に変数Ｉに車両管理情報（１２０）を参照して、Ｔ＿Ｎｏ番目の車両の遺伝子開始位置を設定する（１７０４）。次に変数ＴＨにＴ＿Ｎｏ番目のの車両の総走行時間を代入する（１７０５）。次に、荷物ＬとＴ＿Ｎｏ番目の車両に積載されている荷物が同一車両で輸送不可能でないかを排他荷物情報を参照して判定する（１７０６）。つまり、荷物ＬとＴ＿Ｎｏ番目の車両に積載されている荷物の荷物インデックスを用いて、二次元配列である排他荷物情報を参照して、その要素が１の場合には同一車両では輸送できないと判定する。ステップ１７０６のチェックで載せあわせが不可能と判定された場合には、処理を終える（１７０７）。それ以外の場合には、以下の処理を行う。
【００７２】
次に、変数Ｉの値と、その車両の遺伝子終了位置＋１の値を比較する（１７０８）。Ｉが大きい場合には、処理を終える。Ｉが前記の値を超えていない場合には、次の処理を行う。
【００７３】
まず、ＩがＴ＿Ｎｏ番目の車両の遺伝子開始位置と比較する（１７０９）。等しい場合には、変数Ｘには車両が出発する物流センターを表す拠点ＩＤを代入する（１７１１）。等しくない場合には、その車両の遺伝子情報中の（Ｉ−１）番目の荷物の集配送先の拠点ＩＤを代入する（１７１０）。次に、ＩとＴ＿Ｎｏ番目の車両の遺伝子終了位置＋１の値と比較する。もし等しければ、変数Ｙには物流センターの拠点ＩＤを代入する（１７１４）。等しくない場合には、ＹにＴ＿Ｎｏ番目の車両のＩ番目の荷物の集配送先拠点のＩＤを代入する（１７１３）。
【００７４】
次に、荷量Ｖの荷物Ｌを、Ｉ番目の車両のＸ番目の輸送荷物とＹ番目の輸送荷物の間に積載可能かチェックする（１７１５）。つまり、追加対象荷物が、配送荷物の場合には、車両が出発する物流センターから、Ｘ番目の輸送荷物の集配送先拠点までの間で、その車両の荷量にＬを加えた値が、その車両の最大積載量を超過しないかチェックする。また、その荷物が集荷荷物の場合には、その車両のＹ番目の荷物の集配送先拠点から、物流センターに戻るまでの間の各集配送先拠点での積載荷量にＬを加えた値が、その車両の最大積載量を超過していないかをチェックする。
【００７５】
次にＴ＿ＤｅｌｔａにＸとＺ間の所要時間と、ＺとＹ間の所要時間の和からＸとＹ間の所要時間を差し引いた値を代入する（１７１６）。次に、その車両のＹ以降の荷物の輸送で巡回する集配送先の車両到着時間にＤｅｌｔａ＿Ｔを加えた値が、時間制約を破らないかチェックする（１７１７）。図１７ではＴＩＭＥ（Ｘ，Ｙ）で拠点ＸからＹへの車両の走行所用時間を表している。次に、Ｔ＿ＤｅｌｔａがＴＨの０．２５倍を超えていないかチェックする（１７１８）。超えている場合には、処理を終える。超えていない場合には、以下の処理を行う。
【００７６】
次Ｄ＿ＭＩＮとＴ＿Ｄｅｌｔａを比較する（１７１９）。Ｔ＿Ｄｅｌｔａが小さければ、Ｄ＿ＭＩＮにＴ＿Ｄｅｌｔａの値を代入し、ＰｏｓにＩの値を代入する（１７２０）。
【００７７】
次に、Ｉに１を加え（１７２１）、ステップ１７０８に戻り次の追加位置のチェックに移る。
【００７８】
図１８は、図１６のフロー図中のステップ１６０３の詳細を示すフローである。
【００７９】
この処理では、スケジュールに追加する荷物の荷物インデックスを変数Ｌに代入してあるものとする。また、荷物Ｌが追加可能か判定する対象の車両番号が設定されているとする。この処理が終わると、荷物Ｌの輸送が車両Ｔ＿Ｎｏで可能であった場合には、変数Ｐｏｓに追加位置が設定され、Ｄ＿ＭＩＮに、その荷物の追加による車両の走行時間の増分値が設定される。追加できなかった場合には、Ｐｏｓには−１、Ｄ＿ＭＩＮにはＭａｘ＿Ｖａｌｕｅが設定される。変数まず、変数Ｚに荷物Ｌの輸送先拠点のＩＤを代入する（１８０１）。次に、変数Ｖに荷物Ｌの荷量を代入する（１８０２）。次に変数Ｐｏｓに−１を、Ｄ＿ＭＩＮに利用する計算機で表現可能な最大数（Ｍａｘ＿Ｖａｌｕｅと表記する。）を設定する（１８０３）。次に変数Ｉに車両管理情報（１２０）を参照して、Ｔ＿Ｎｏ番目の車両の遺伝子開始位置を設定する（１８０４）。次に、荷物ＬとＴ＿Ｎｏ番目の車両に積載されている荷物が同一車両で輸送不可能でないかを排他荷物情報（）を参照して判定する（１８０５）。つまり、荷物ＬとＴ＿Ｎｏ番目の車両に積載されている荷物の荷物インデックスを用いて、二次元配列である排他荷物情報を参照して、その要素が１の場合には同一車両では輸送できないと判定する。ステップ１８０５のチェックで載せあわせが不可能と判定された場合には、処理を終える（１８０６）。それ以外の場合には、以下の処理を行う。
【００８０】
次に、変数Ｉの値と、その車両の遺伝子終了位置＋１の値を比較する（１８０７）。Ｉが大きい場合には、処理を終える。Ｉが前記の値を超えていない場合には、次の処理を行う。
【００８１】
まず、ＩがＴ＿Ｎｏ番目の車両の遺伝子開始位置と比較する（１８０８）。等しい場合には、変数Ｘには車両が出発する物流センターを表す拠点ＩＤを代入する（１８１０）。等しくない場合には、その車両の遺伝子情報中の（Ｉ−１）番目の荷物の集配送先の拠点ＩＤを代入する（１８０９）。次に、ＩとＴ＿Ｎｏ番目の車両の遺伝子終了位置＋１の値と比較する。もし等しければ、変数Ｙには物流センターの拠点ＩＤを代入する（１８１３）。等しくない場合には、ＹにＴ＿Ｎｏ番目の車両のＩ番目の荷物の集配送先拠点のＩＤを代入する（１８１２）。
【００８２】
次に、荷量Ｖの荷物Ｌを、Ｉ番目の車両のＸ番目の輸送荷物とＹ番目の輸送荷物の間に積載可能かチェックする（１８１４）。つまり、追加対象荷物が、配送荷物の場合には、車両が出発する物流センターから、Ｘ番目の輸送荷物の集配送先拠点までの間で、その車両の荷量にＬを加えた値が、その車両の最大積載量を超過しないかチェックする。また、その荷物が集荷荷物の場合には、その車両のＹ番目の荷物の集配送先拠点から、物流センターに戻るまでの間の各集配送先拠点での積載荷量にＬを加えた値が、その車両の最大積載量を超過していないかをチェックする。
【００８３】
次にＴ＿ＤｅｌｔａにＸとＺ間の所要時間と、ＺとＹ間の所要時間の和からＸとＹ間の所要時間を差し引いた値を代入する（１８１５）。次に、その車両のＹ以降の荷物の輸送で巡回する集配送先の車両到着時間にＤｅｌｔａ＿Ｔを加えた値が、時間制約を破らないかチェックする（１８１６）。図１７ではＴＩＭＥ（Ｘ，Ｙ）で拠点ＸからＹへの車両の走行所用時間を表している。次Ｄ＿ＭＩＮとＴ＿Ｄｅｌｔａを比較する（１８１７）。Ｔ＿Ｄｅｌｔａが小さければ、Ｄ＿ＭＩＮにＴ＿Ｄｅｌｔａの値を代入し、ＰｏｓにＩの値を代入する（１８１８）。
【００８４】
次に、Ｉに１を加え（１８１９）、ステップ１８０７に戻り次の追加位置のチェックに移る。
【００８５】
図１９は図１３中の初期解集団生成処理（１３０１）の詳細を示すフローチャートである。
【００８６】
なお、一つの解には複数の車両の巡回スケジュールが登録されている。また、解集団は複数の解を含んでいる。
【００８７】
変数ＳＩＺＥには、予め初期集団に登録する遺伝子の個体数を設定しておく。また、変数ＬＥＮにはルートに登録される配送先拠点の数を設定しておく。
【００８８】
まず、変数Ｉに０を代入する（１９０１）。次にＩがＳＩＺＥよりも小さい間、（１９０３）から（１９０６）の処理を繰り返してＳＩＺＥで指定された個数の遺伝子を生成する。
【００８９】
まず、各要素に値が設定されていない空の遺伝子を記憶するエリアを生成する（１９０３）。
【００９０】
次に、荷物情報の荷物をランダムな順序に並べかえた配列Ｔを作成する（１９０４）。
【００９１】
次に、空の遺伝子に、配列Ｔに登録した荷物を、この順序で図１４に示した追加手順により順次追加する（１９０５）。
【００９２】
次に変数Ｉに１を加えて（１９０６）次の初期解の作成に移る。
【００９３】
図２０は、図１３中の解集団の改良（１３０３）の詳細を示すフローチャートである。遺伝的処理は、解集団の変化、改良を行うＧＡの中心的な処理である。
【００９４】
まず、変数ＳＩＺＥに解集団に登録されている解の個数を代入する（２００１）。次にＣ＿ＮＵＭにＳＩＺＥに予め設定されている交差率を掛けて、その値を超えない最大整数を代入する（２００２）。次に、変数Ｉに１を代入する。ＩがＣ＿ＮＵＭ以下の場合には、次の処理を繰り返して交差処理を行う（２００４）。
【００９５】
まず、解集団から異なる二つの解（遺伝子）を選択する（２００５）。
【００９６】
次に、選択した二つの解（遺伝子）を元に、交差処理を行い、交差処理で新たに生成された解（遺伝子）を解集団に加える（２００６）。
【００９７】
この交差処理の詳細は、図２１で詳細を説明する。
【００９８】
次に、Ｉに１を加え（２００７）ステップ２００４に戻り次の交差処理に移る。
【００９９】
ステップ２００４でＩがＣ＿ＮＵＭを超過していれば、次に突然変異処理に移る。つまり、変数Ｍ＿ＮＵＭにＳＩＺＥに予め設定されている突然変異率を掛け、その値を超えない最大整数を代入する（２００８）。
【０１００】
次に、変数Ｉに１を代入する（２００９）。
【０１０１】
次に、ＩがＭ＿ＮＵＭの値以下の間、次の処理を繰り返す（２０１０）。
【０１０２】
まず、解集団から、ランダムに一つの解（遺伝子）を選択する（２０１１）。
【０１０３】
次に選択した解に突然変異処理を行い、その解（遺伝子）を解集団に加える（２０１２）。この処理の詳細は図２２で説明する。
【０１０４】
次に変数Ｉから１を加え（２２１３）、ステップ２２１０に戻り処理を続ける。
【０１０５】
図２１は、図２０中の交差処理（２００６）の詳細を示すフローチャートである。
【０１０６】
まず、変数Ｎに各解（遺伝子）に登録されている荷物数を代入する（２１０１）。
【０１０７】
次に、交差対象の二つの解（遺伝子）を配列Ｇ１，Ｇ２にコピーする（２１０２）。次に、交差点を決定するために、２以上Ｎ−１以下の整数をランダムに生成して変数Ｐに代入する（２１０３）。
【０１０８】
次に、Ｇ１のＰ番目以降の荷物データインデックスを削除する（２１０４）。つまり削除対象の要素に−１を代入する。次に変数Ｉに１を代入する（２１０５）。
【０１０９】
次に、ＩがＮ以下の間（２１０６）、次の処理を行う。
【０１１０】
Ｇ２［Ｉ］が配列Ｇ１中には含まれていないかチェックする（２１０７）。もし、含まれていない場合には、その荷物情報を図１４に示した処理手順によりＧ１の輸送スケジュール中に追加する（２１０８）。
【０１１１】
次に、変数Ｉに１を加え（２１０９）、次の処理に移る。
【０１１２】
ステップ２１０７で条件が成立しない場合には、ステップ２１０９に移り次の処理に移る。
【０１１３】
ステップ２１０６でＩがＮを越えれば処理を終える。
【０１１４】
図２２は図２０中の突然変異処理（２０１２）の詳細を示すフローチャートである。
【０１１５】
まず、突然変異処理対象の解（遺伝子）を配列Ｇ［］にコピーする（２２０１）。次に、物流センターから最も遠い集配送先拠点と、物流センターからの距離を変数Ｌに代入する（２２０２）。
【０１１６】
変数Ｒに０と０．３の範囲の実数をランダムに生成して代入する（２２０３）。
【０１１７】
次に、変数Ｌ１に変数Ｌの値とＲの値の積を代入する（２２０４）。
【０１１８】
次に、遺伝子上での突然変異箇所を定めるために、変数Ｐに１以上Ｎ以下の整数をランダムに選択して代入する（２２０５）。
【０１１９】
次に、変数Ｉに０、Ｊに０を代入する（２２０６）。
【０１２０】
変数ＫにはＧ［Ｐ］の値、つまり荷物情報のインデックス値を代入する（２２０７）。
【０１２１】
ＩがＮ以下の間（２２０８）、次の処理を繰り返す。
【０１２２】
インデックスがＫの荷物の集配送先拠点とＧ［Ｉ］の荷物の集配送先拠点の距離がＬ１以下かチェックする（２２０９）。
【０１２３】
条件が成立する場合には、Ｔ［Ｊ］にＧ［Ｉ］の値を代入し、Ｇ［Ｉ］には−１を代入する（２２１０）。
【０１２４】
次に、変数Ｊに１を加え（２２１１）、Ｉにも１を加え（２２１２）、ステップ２２０８に戻り処理を続ける。
【０１２５】
ステップ２２０８でＩの値がＮの値を超えた場合には、配列Ｇの中で値が−１の要素を削除して、前方に詰め合わせる（２２１３）。
【０１２６】
次に、配列Ｔに格納されているＪ個の荷物の集配送先拠点を先頭から順次図７に示した処理手順により配列Ｇの輸送スケジュールの中に追加する（２２１４）。
【０１２７】
図２３は図１０中の結果出力処理（１００４）の詳細を示すフローチャートである。まず各輸送便の通過拠点を地図上に表示する（２３０１）。次に、輸送スケジュール作成処理によって得られたスケジュールとその所用車両台数や走行距離などの値とともに表やグラフを作成し、表示する（２３０２）。次に印刷指示があればグラフや表を印刷する（２７０３）。
【０１２８】
【発明の効果】
以上説明したように、本発明によれば、輸送スケジュール作成時に充足しなければならない、制約条件を事前に解析し、これら制約条件の違反により互いに同一車両では輸送できない二つの荷物の組を予め作成することで、各車両の輸送ルート作成時に、上記の排他的な荷物の組み合わせ発生を回避することで、スケジュール作成時に、同一車両への荷物乗せ合わせの組み合わせを削減することができ、これによりスケジュール作成の応答速度向上を実現できる。更に、ＧＡを適用したスケジュール作成方法において、交差処理や突然変異処理において、作成途上のスケジュールに、荷物追加を行う場合、既存輸送ルートへの荷物輸送の追加による、その輸送ルートの走行距離の増分が、既存ルートの走行距離の一定割合を超過する場合には、その荷物輸送の追加を行わないことで、既存ルートに遠方の輸送先拠点を追加することを抑制することで、輸送車量間の走行距離の差異を減少させると共に、一度全ての荷物輸送先拠点の追加を試みた後、上記条件により追加できなかった荷物だけを再度追加し、この段階で輸送車両が不足した場合に、輸送車両の追加を行うことで、不要な輸送車両の追加を抑制する。
【図面の簡単な説明】
【図１】本発明のシステム構成図である。
【図２】本発明の記憶装置に含まれる拠点情報の構成を示す図である。
【図３】本発明の記憶装置に含まれる荷物情報の構成を示す図である。
【図４】本発明の記憶装置に含まれる輸送車両情報の構成を示す図である。
【図５】本発明の記憶装置に含まれるエリア定義情報の構成を示す図である。
【図６】本発明の記憶装置に含まれる排他荷物情報の構成を示す図である。
【図７】本発明の記憶装置に含まれる距離テーブルの構成を示す図である。
【図８】本発明の記憶装置に含まれる輸送ルート情報の構成を示す図である。
【図９】本発明の記憶装置に含まれる遺伝的アルゴリズムを用いた輸送スケジュール作成に用いる、遺伝子情報の構成を示す図である。
【図１０】本発明の全体的な処理の流れを示すフローチャートである。
【図１１】本発明の入力処理を示すフローチャートである。
【図１２】本発明の制約条件解析処理を示すフローチャートである。
【図１３】本発明の輸送スケジュール作成処理を示すフローチャートである。
【図１４】本発明の輸送スケジュール作成で用いる、輸送スケジュールへの荷物追加処理のフローチャートである。
【図１５】本発明の荷物追加処理で用いる、追加車両チェック１処理のフローチャートである。
【図１６】本発明の荷物追加処理で用いる、追加車両チェック２処理のフローチャートである。
【図１７】本発明の追加車両チェック処理１で用いる、荷物追加チェック処理１のフローチャートである。
【図１８】本発明の追加車両チェック処理２で用いる、荷物追加チェック処理２のフローチャートである。
【図１９】本発明の初期集団生成処理のフローチャートである。
【図２０】本発明の遺伝的処理の概要を示すフローチャートである。
【図２１】本発明の交差処理を示すフローチャートである。
【図２２】本発明の突然変異処理を示すフローチャートである。
【図２３】本発明の結果出力処理を示すフローチャートである。
【符号の説明】
１０１…入力装置、１０２…出力装置、１０３…表示装置、１０４…処理装置、１０５…記憶装置、１０６…プログラム、１０７…入力処理部、１０８…制約条件解析処理部、１０９…輸送スケジュール作成部、１１０…結果出力部、１１１…拠点情報、１１２…荷物情報、１１３…輸送車両情報、１１４・・・距離テーブル、１１５…道路地図、１１６・・・排他荷物情報、１１７…輸送ルート情報、１１８…遺伝子情報、１１９…車両管理情報。
【図１】
2005043974.tif 000003
【図２】
2005043974.tif 000004
【図３】
2005043974.tif 000005
【図４】
2005043974.tif 000006
【図５】
2005043974.tif 000007
【図６】
2005043974.tif 000008
【図７】
2005043974.tif 000009
【図８】
2005043974.tif 000010
【図９】
2005043974.tif 000011
【図１０】
2005043974.tif 000012
【図１１】
2005043974.tif 000013
【図１２】
2005043974.tif 000014
【図１３】
2005043974.tif 000015
【図１４】
2005043974.tif 000016
【図１５】
2005043974.tif 000017
【図１６】
2005043974.tif 000018
【図１７】
2005043974.tif 000019
【図１８】
2005043974.tif 000020
【図１９】
2005043974.tif 000021
【図２０】
2005043974.tif 000022
【図２１】
2005043974.tif 000023
【図２２】
2005043974.tif 000024
【図２３】
2005043974.tif 000025