IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2023-163839情報処理装置、情報処理プログラム、および情報処理方法
<>
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図1
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図2
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図3
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図4
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図5
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図6
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図7
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図8
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図9
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図10
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図11
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図12
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図13
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図14
  • 特開-情報処理装置、情報処理プログラム、および情報処理方法 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023163839
(43)【公開日】2023-11-10
(54)【発明の名称】情報処理装置、情報処理プログラム、および情報処理方法
(51)【国際特許分類】
   G06Q 10/047 20230101AFI20231102BHJP
【FI】
G06Q10/04 310
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022075025
(22)【出願日】2022-04-28
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】伊東 佑人
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA04
(57)【要約】
【課題】最短経路探索法では、ノード数が増えるとイテレーション部分の処理時間が長くなってしまい、最適な経路を選択するまでに時間を要す。
【解決手段】情報処理装置は、VRPの第1の条件を満たす第1の経路の各ノード間の辺の各々のコストに基づいて、各ノードの賞金を算出し、辺を組み合わせて、出発地点から各ノードに到着し、複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、最善経路に辺を追加して、第2の条件を満たす第3の経路を生成し、コストおよび賞金に基づいて、第2の経路および第3の経路の被約費用を算出し、第3の経路の被約費用が第2の経路の被約費用より小さい場合、最善経路を第3の経路に更新し、最善経路の更新に所定回数以上寄与しなかった辺は、各経路への追加対象から除外し、出発地点に戻る最善経路のうち被約費用が最も小さい経路を経路候補として選択する。
【選択図】図13
【特許請求の範囲】
【請求項1】
配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、
前記第1の経路の各ノード間の辺の各々のコストに基づいて、前記各ノードの第1指標を算出し、
前記辺を組み合わせて、出発地点から前記各ノードに到着し、前記複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、
前記第2の経路に前記辺を追加して、前記第2の条件を満たす第3の経路を生成し、
前記コストおよび前記第1指標に基づいて、前記第2の経路および前記第3の経路の前記コストと前記第1指標の合計値との差分である第2指標を算出し、
前記第3の経路の前記第2指標が、前記第3の経路と同一のノードに到着する前記第2の経路の前記第2指標より小さい場合、前記最善経路を前記第3の経路に更新し、
前記最善経路の更新に所定回数以上寄与しなかった前記辺は、各経路への追加対象から除外し、
前記出発地点に戻るまで前記最善経路への前記辺の追加、前記第2指標の算出、および前記最善経路の更新を繰り返し、
前記出発地点に戻る前記最善経路のうち前記第2指標が最も小さい経路を経路候補として選択する
処理を実行する制御部を有し、
前記第1指標は、前記配送計画問題を線形緩和した問題において前記コストを減少させる度合いを示す指標であることを特徴とする情報処理装置。
【請求項2】
配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、
前記第1の経路の各ノード間の辺の各々のコストに基づいて、前記各ノードの第1指標を算出し、
前記辺を組み合わせて、出発地点から前記各ノードに到着し、前記複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、
前記第2の経路に前記辺を追加して、前記第2の条件を満たす第3の経路を生成し、
前記コストおよび前記第1指標に基づいて、前記第2の経路および前記第3の経路の前記コストと前記第1指標の合計値との差分である第2指標を算出し、
前記第3の経路の前記第2指標が、前記第3の経路と同一のノードに到着する前記第2の経路の前記第2指標より小さい場合、前記最善経路を、前記第3の経路のうち最も前記第2指標が小さい前記第3の経路に更新し、
前記最善経路の更新に所定回数以上寄与しなかった前記辺は、各経路への追加対象から除外し、
前記出発地点に戻るまで前記最善経路への前記辺の追加、前記第2指標の算出、および前記最善経路の更新を繰り返し、
前記出発地点に戻る前記最善経路を経路候補として出力する
処理を実行する制御部を有し、
前記第1指標は、前記配送計画問題を線形緩和した問題において前記コストを減少させる度合いを示す指標であることを特徴とする情報処理装置。
【請求項3】
配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、
前記第1の経路の各ノード間の辺の各々のコストに基づいて、前記各ノードの第1指標を算出し、
前記辺を組み合わせて、出発地点から前記各ノードに到着し、前記複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、
前記第2の経路に前記辺を追加して、前記第2の条件を満たす第3の経路を生成し、
前記コストおよび前記第1指標に基づいて、前記第2の経路および前記第3の経路の前記コストと前記第1指標の合計値との差分である第2指標を算出し、
前記第3の経路の前記第2指標が、前記第3の経路と同一のノードに到着する前記第2の経路の前記第2指標より小さい場合、前記最善経路を前記第3の経路に更新し、
前記最善経路の更新に所定回数以上寄与しなかった前記辺は、各経路への追加対象から除外し、
前記出発地点に戻るまで前記最善経路への前記辺の追加、前記第2指標の算出、および前記最善経路の更新を繰り返し、
前記出発地点に戻る前記最善経路のうち前記第2指標が最も小さい経路を経路候補として選択する
処理をコンピュータに実行させ、
前記第1指標は、前記配送計画問題を線形緩和した問題において前記コストを減少させる度合いを示す指標であることを特徴とする情報処理プログラム。
【請求項4】
配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、
前記第1の経路の各ノード間の辺の各々のコストに基づいて、前記各ノードの第1指標を算出し、
前記辺を組み合わせて、出発地点から前記各ノードに到着し、前記複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、
前記第2の経路に前記辺を追加して、前記第2の条件を満たす第3の経路を生成し、
前記コストおよび前記第1指標に基づいて、前記第2の経路および前記第3の経路の前記コストと前記第1指標の合計値との差分である第2指標を算出し、
前記第3の経路の前記第2指標が、前記第3の経路と同一のノードに到着する前記第2の経路の前記第2指標より小さい場合、前記最善経路を、前記第3の経路のうち最も前記第2指標が小さい前記第3の経路に更新し、
前記最善経路の更新に所定回数以上寄与しなかった前記辺は、各経路への追加対象から除外し、
前記出発地点に戻るまで前記最善経路への前記辺の追加、前記第2指標の算出、および前記最善経路の更新を繰り返し、
前記出発地点に戻る前記最善経路を経路候補として出力する
処理をコンピュータに実行させ、
前記第1指標は、前記配送計画問題を線形緩和した問題において前記コストを減少させる度合いを示す指標であることを特徴とする情報処理プログラム。
【請求項5】
配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、
前記第1の経路の各ノード間の辺の各々のコストに基づいて、前記各ノードの第1指標を算出し、
前記辺を組み合わせて、出発地点から前記各ノードに到着し、前記複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、
前記最善経路に前記辺を追加して、前記第2の条件を満たす第3の経路を生成し、
前記コストおよび前記第1指標に基づいて、前記第2の経路および前記第3の経路の前記コストと前記第1指標の合計値との差分である第2指標を算出し、
前記第3の経路の前記第2指標が、前記第3の経路と同一のノードに到着する前記第2の経路の前記第2指標より小さい場合、前記最善経路を前記第3の経路に更新し、
前記最善経路の更新に所定回数以上寄与しなかった前記辺は、各経路への追加対象から除外し、
前記出発地点に戻るまで前記最善経路への前記辺の追加、前記第2指標の算出、および前記最善経路の更新を繰り返し、
前記出発地点に戻る前記最善経路のうち前記第2指標が最も小さい経路を経路候補として選択する
処理をコンピュータが実行し、
前記第1指標は、前記配送計画問題を線形緩和した問題において前記コストを減少させる度合いを示す指標であることを特徴とする情報処理方法。
【請求項6】
配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、
前記第1の経路の各ノード間の辺の各々のコストに基づいて、前記各ノードの第1指標を算出し、
前記辺を組み合わせて、出発地点から前記各ノードに到着し、前記複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、
前記最善経路に前記辺を追加して、前記第2の条件を満たす第3の経路を生成し、
前記コストおよび前記第1指標に基づいて、前記第2の経路および前記第3の経路の前記コストと前記第1指標の合計値との差分である第2指標を算出し、
前記第3の経路の前記第2指標が、前記第3の経路と同一のノードに到着する前記第2の経路の前記第2指標より小さい場合、前記最善経路を、前記第3の経路のうち最も前記第2指標が小さい前記第3の経路に更新し、
前記最善経路の更新に所定回数以上寄与しなかった前記辺は、各経路への追加対象から除外し、
前記出発地点に戻るまで前記最善経路への前記辺の追加、前記第2指標の算出、および前記最善経路の更新を繰り返し、
前記出発地点に戻る前記最善経路を経路候補として選択する
処理をコンピュータが実行し、
前記第1指標は、前記配送計画問題を線形緩和した問題において前記コストを減少させる度合いを示す指標であることを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理プログラム、および情報処理方法に関する。
【背景技術】
【0002】
組み合わせ最適化問題の1つに配送計画問題(「車両経路問題」などともいう。VRP:Vehicle Routing Problem)がある。例えば、VRPでは、デポ(Depot)と呼ばれる特定の施設に待機する複数の運搬車によって、デポから荷物の搬送先、例えば、顧客位置に荷物を運搬し、再びデポに戻ること、あるいは、顧客位置の荷物をデポに運搬することを考慮する。以下の説明では、運搬車を「vehicle」と表記する。顧客位置を「ノード」や「nd」と表記する。また、デポを「ノード0」や「nd0」と表記する場合がある。
【0003】
VRPの所与のデータとして、ノードの数、ノード間をvehicleで移動する移動時間、デポから各ノードに(または、各ノードからデポに)運搬される必要のある荷物量、vehicleが各ノードを訪れられる時間帯、各vehicleの最大積載量、各vehicleをある時間運行させたときに係るコストなどがある。なお、コストとはvehicleを運行した際に要する人件費やvehicleの使用料などの金銭的なものに限らず、配送を行うために要する負荷を示す指標である。以下の説明では、運搬が必要な荷物量を「需要」と表記する。vehicleが各ノードを訪れられる時間帯を「time window」と表記する。
【0004】
上記のデータが与えられた場合に、各vehicleのコストの和を最小化するように、各vehicleの経路を求める問題が、VRPとなる。
【0005】
各vehicleの経路には、該当するvehicleが、どのノードをどの時刻に訪れるのかといった情報や、該当するvehicleが訪れた各ノードに(または各ノードから)運搬する荷物の量といった情報が含まれる。以下の説明では、該当するvehicleが訪れた各ノードに(または各ノードから)運搬する荷物量を「供給」と表記する。
【0006】
図1は、vehicleの経路を説明するための図である。図1に示す例では、デポ10と、ノード1~12(nd1~12)が含まれる。図1の説明では、vehicleがノードを訪れた時間、供給の図示を省略する。例えば、vehicle1の経路を経路Ro1とし、vehicle2の経路を経路Ro2とし、vehicle3の経路を経路Ro3とする。
【0007】
経路Ro1は、vehicle1が、デポ10、nd1~4を訪れる経路である。経路Ro2は、vehicle2が、デポ10、nd5~8を訪れる経路である。経路Ro3は、vehicle3が、デポ10、nd9~12を訪れる経路である。
【0008】
例えば、VRPを解く戦略として、経路を生成するステップ(Step1)と、経路を選択するステップ(Step2)とがある。Step1では、各vehicleの経路として、問題の条件を満たす経路を、可能な限り生成する。問題の条件には、time windowや、最大積載量の条件が設定される。
【0009】
Step2では、Step1で生成された経路の中から、全てのノードの需要を満たす経路の組で、各経路のコストの和、すなわち総コストが最小となる経路の組を選択する。例えば、Step2の処理は、イジングマシンなどの最適化装置によって実行される。
【0010】
総コストを下げるための最善の経路候補を生成する従来手法として、最短経路探索法がある。図2は、従来の最短経路探索法のアルゴリズムを説明するための図である。また、図2において破線で囲まれた部分が1つのイテレーションである。最短経路探索法では、各イテレーションで次のような処理を行う。デポを出発して各ノードに到着する経路の中で暫定的な最善の経路が、前のイテレーションで既に得られているとする。各ノード間の辺を順番に走査して、暫定的な最善経路にその辺を追加することで、より良い経路になるかを判定し、より良い経路になっていれば辺を追加した後の経路を暫定的な最善経路として更新する。このイテレーションを複数回繰り返し、デポに戻る経路の中での最善経路として最後に更新されたものを経路候補として出力する。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2021-165196号公報
【特許文献2】特開2021-111237号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、最短経路探索法では、ノード数が増えると辺の数はノード数の二乗で増えるため、一回のイテレーション部分の処理時間が長くなってしまい、最適化装置が最適な経路を選択するまでの時間も増加する。
【0013】
1つの側面では、本発明は、最適化装置が最適な経路を選択するまでに要する時間を削減できる情報処理装置、情報処理プログラム、および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0014】
1つの態様において、情報処理装置は、配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、第1の経路の各ノード間の辺の各々のコストに基づいて、各ノードの第1指標を算出し、辺を組み合わせて、出発地点から各ノードに到着し、複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、最善経路に辺を追加して、第2の条件を満たす第3の経路を生成し、コストおよび第1指標に基づいて、第2の経路および第3の経路のコストと第1指標の合計値との差分である第2指標を算出し、第3の経路の第2指標が、第3の経路と同一のノードに到着する第2の経路の第2指標より小さい場合、最善経路を第3の経路に更新し、最善経路の更新に所定回数以上寄与しなかった辺は、各経路への追加対象から除外し、出発地点に戻るまで最善経路への辺の追加、第2指標の算出、および最善経路の更新を繰り返し、出発地点に戻る最善経路のうち第2指標が最も小さい経路を経路候補として選択し、第1指標は、配送計画問題を線形緩和した問題においてコストを減少させる度合いを示す指標である。
【発明の効果】
【0015】
1つの側面では、最適化装置が最適な経路を選択するまでに要する時間を削減できる。
【図面の簡単な説明】
【0016】
図1図1は、vehicleの経路を説明するための図である。
図2図2は、従来の最短経路探索法のアルゴリズムを説明するための図である。
図3図3は、実施例1にかかる情報処理装置100の構成例を示す図である。
図4図4は、実施例1にかかる距離/移動時間データ131に記憶されるデータの一例を示す図である。
図5図5は、実施例1にかかる需要データ132に記憶されるデータの一例を示す図である。
図6図6は、実施例1にかかるtime windowデータ133に記憶されるデータの一例を示す図である。
図7図7は、実施例1にかかる経路生成処理の流れの一例を示すフローチャートである。
図8図8は、実施例1にかかる経路の組の生成の一例を示す図である。
図9図9は、実施例1にかかる賞金の算出の一例を示す図である。
図10図10は、被約費用が最小の経路を求めるための最短経路探索法のアルゴリズムを説明するための図である。
図11図11は、実施例1にかかる最短経路探索法による経路生成の一例を示す図である。
図12図12は、実施例1にかかる最短経路探索法のアルゴリズムを説明するための図である。
図13図13は、実施例1にかかる経路更新に寄与しなかった辺の除外を説明するための図である。
図14図14は、実施例1にかかる最善経路更新処理の流れの一例を示すフローチャートである。
図15図15は、情報処理装置100のハードウェア構成例を説明するための図である。
【発明を実施するための形態】
【0017】
以下に、本実施形態にかかる情報処理装置、情報処理プログラム、および情報処理方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により本実施形態が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例0018】
[情報処理装置100の機能構成]
まず、本実施形態の実行主体となる情報処理装置100の機能構成について説明する。情報処理装置100は、VRPにおいて最適な経路を選択するための最適化装置である。図3は、実施例1にかかる情報処理装置100の構成例を示す図である。図3に示すように、情報処理装置100は、通信部120、記憶部130、および制御部140を有する。
【0019】
通信部120は、例えば、ネットワーク50を介して他の情報処理装置との間の通信を制御する処理部であり、例えば、ネットワークインタフェースカードなどの通信インタフェースである。
【0020】
記憶部130は、各種データや、制御部140が実行するプログラムを記憶する記憶装置の一例であり、例えば、メモリやハードディスクなどである。記憶部130は、距離/移動時間データ131、需要データ132、およびtime windowデータ133などを記憶する。
【0021】
距離/移動時間データ131は、例えば、デポを含むノード間の距離や、ノード間ごとのvehicleによる移動時間に関するデータを記憶する。図4は、実施例1にかかる距離/移動時間データ131に記憶されるデータの一例を示す図である。図4に示すように、距離/移動時間データ131は、例えば、ノード間ごとに、距離およびvehicleによる移動時間を記憶する。例えば、図4の例では、デポとノード1との間の距離は3km(キロメートル)で、vehicleによる移動時間は15分であることを示す。なお、図4の例では、ノード2までしか示されていないが、距離/移動時間データ131は、ノード3以降のデータを記憶してよい。また、距離/移動時間データ131に記憶されるデータは、ノード間ごとの距離およびvehicleによる移動時間のどちらか一方であってもよい。
【0022】
需要データ132は、例えば、デポを含む各ノードに対して運搬が必要な荷物量に関するデータを記憶する。図5は、実施例1にかかる需要データ132に記憶されるデータの一例を示す図である。図5に示すように、需要データ132は、例えば、運搬元から運搬先へ運搬が必要な荷物量を記憶する。例えば、図5の例では、デポからノード1へ運搬が必要な荷物量は5kg(キログラム)であることを示す。なお、需要データ132に記憶される荷物量は、荷物の個数など、他の単位であってもよい。また、図5の例では、3つのノード間に対する需要しか示されていないが、需要データ132は、さらに多くのノード間に対するデータを記憶してよい。
【0023】
time windowデータ133は、例えば、デポを含む各ノードに訪れることができる時間帯に関するデータを記憶する。図6は、実施例1にかかるtime windowデータ133に記憶されるデータの一例を示す図である。図6に示すように、time windowデータ133は、例えば、デポを含む各ノードの最早到達時刻および最終到達時刻を記憶する。例えば、図6の例では、ノード1には、17:00~19:00の間に訪れることができることを示す。換言すると、最早到達時刻から最終到達時刻の間の時間帯にしか対象のノードには訪れることができない制約があることを示す。また、デポについては、出発地点であるため、最早到達時刻は無く、最終到達時刻、図6の例では20:00までに戻らなければならない制約があることを示す。なお、図6の例では、ノード2までしか示されていないが、time windowデータ133は、ノード3以降のデータを記憶してよい。
【0024】
なお、記憶部130に記憶される上記各種情報はあくまでも一例であり、記憶部130は、上記情報以外にも様々な情報を記憶できる。
【0025】
図3の説明に戻り、制御部140は、情報処理装置100全体を司る処理部であり、例えば、プロセッサなどである。制御部140は、生成部141、演算部142、および出力部143を備える。なお、各処理部は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【0026】
生成部141は、例えば、VRPに含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成する。また、生成部141は、例えば、第1の経路の各ノード間の辺を組み合わせて、出発地点から各ノードに到着し、当該複数の条件のうち第2の条件を満たす第2の経路を、暫定的な最善経路として生成する。さらに、生成部141は、例えば、生成された第2の経路に辺を追加して、当該第2の条件を満たす第3の経路を生成する。そして、生成部141は、生成された経路が出発地点に戻るまで、最善経路への辺の追加を繰り返す。なお、VRPに含まれる複数の条件や、第1の条件および第2の条件とは、例えば、vehicleの最大積載量、各ノードに対して運搬が必要な荷物量や、各ノードに訪れることができる時間帯など、VRPにおける各種制約である。
【0027】
また、生成部141は、例えば、次の式(1)で表されるような目的関数を生成する。
【0028】
【数1】
式(1)において、rは経路のインデックス、Rは経路の集合、Cは経路rのコストを示す。また、xは経路rを選択するか否かを0または1で表す変数を示し、x=0の場合、経路rが選択されない、x=1の場合、経路rが選択される、ことを示す。
【0029】
演算部142は、例えば、生成部141によって生成された第1の経路の各ノード間の辺の各々のコストに基づいて、各ノードの賞金を算出する。最短経路探索法における賞金の算出については後述する。また、演算部142は、例えば、当該コスト、および算出された賞金に基づいて、生成部141によって生成された第2の経路や第3の経路の被約費用を算出する。被約費用についても後述する。
【0030】
また、演算部142は、例えば、当該第3の経路の被約費用が、第3の経路と同一のノードに到着する第2の経路の被約費用より小さい場合、最善経路を第3の経路に更新する。なお、同一のノードに到着する第2の経路の被約費用より小さい第3の経路が複数ある場合、その中で被約費用が最も小さい第3の経路で最善経路が更新されてよい。特に、被約費用が最も小さい経路以外でも、例えば、vehicleの積載容量に余裕がある経路など、最終的にデポに戻るまでの経路を生成した場合に、結果的に最善経路になり得る場合もあるが、そのためには多くの経路を保持し続ける必要がある。さらに、処理対象の経路もその分、増大するため、処理時間が長くなってしまい、最適な経路を選択するまでに時間を要してしまう。
【0031】
また、最善経路の更新に所定回数以上寄与しなかった辺は、各経路への追加対象から除外するように制御される。これにより、最短経路探索法において、除外された辺の分の処理時間が削減できるため、情報処理装置100が最適な経路を選択するまでに要する時間を削減できる。なお、演算部142も、生成部141によって生成された経路が出発地点に戻るまで、生成された経路の被約費用の算出、および最善経路の更新を繰り返す。
【0032】
なお、演算部142は、生成部141によって生成された目的関数と、次の式(2)で表されるような制約式とを用いて、制約式を満たしつつ、目的関数の値を最小化するようなxの値を算出し、経路の集合から最適な経路の組を選択する。
【0033】
【数2】
式(2)において、iはノードのインデックス、Dはノードiでの需要、Sr、iは経路rのノードiでの供給を示す。
【0034】
出力部143は、例えば、生成部141によって生成され、演算部142によって更新された、出発地点に戻る最善経路を経路候補として出力する。なお、最善経路を経路候補として複数保持している場合、出力部143は、被約費用が最も小さい経路を経路候補として選択して出力できる。なお、演算部142によって出力されるデータは、例えば、どの経路が選択されたかを表すビット列のみである。そのため、出力部143は、例えば、当該ビット列と、生成された経路のデータとを合わせて、選択された経路のデータを経路候補として出力する。
【0035】
[機能詳細]
次に、情報処理装置100によって実行される、VRPにおける経路生成処理についてより具体的に説明する。図7は、実施例1にかかる経路生成処理の流れの一例を示すフローチャートである。
【0036】
まず、情報処理装置100は、VRPの所定条件を満たし、需要を満たす経路の組を生成する(ステップS101)。なお、VRPの所定条件とは、例えば、vehicleの最大積載量、各ノードに対して運搬が必要な荷物量や、各ノードに訪れることができる時間帯など、VRPにおける各種制約である。
【0037】
ステップS101における経路の組の生成について、より詳細に説明する。図8は、実施例1にかかる経路の組の生成の一例を示す図である。図8の例は、1つのデポ10から、それぞれが1kgの需要を持つ4つのノード1~4(nd1~4)に対し、vehicleが運搬を行う場合のコストを最小化するような経路の組を生成するものである。なお、図8の例ではvehicleのコストをvehicleの移動距離とする。また、vehicleの最大積載量は2kgとする。そのため、vehicleが1回の運搬で訪れることができるノード数は2つ以下(デポは含まず)となり、例えば、図8の下段に示すように、求解過程で経路1~3の経路の組が生成される。
【0038】
図7の説明に戻り、次に、情報処理装置100は、「既に生成された経路の集合から、総コストを最小化する経路の組を選ぶ問題」を線形緩和した問題を解く(ステップS102)。ステップS102は、線形緩和した問題の双対問題を解くものであり、次に生成される経路がどのノードを訪れれば、線形緩和した問題の最適値(以下、「総コストの近似値」という)を下げられるかの第1指標(以下、「賞金」という)を求めるものである。
【0039】
ステップS102における賞金の算出について、より詳細に説明する。図9は、実施例1にかかる賞金の算出の一例を示す図である。図9の例は、図8で生成された経路1~3の経路の組から、各ノードの賞金を算出するものである。図9の上段に示すように、経路1~3のコストは、それぞれ、c=18km、c=18km、c=16kmとする。
【0040】
また、総コストはできる限り小さい方がよいため、図9の中段に示すように、xを、経路iを選択するかどうかを表す変数として、最小化するべき目的関数は、c+c+cとなる。また、各ノードを訪問する経路を1つ以上選ぶ必要があるため、xに対する制約式は、x≧1、x≧1、x+x≧1、x+x≧1となる。また、x~xは、実数値である必要があるため、x,x,x≧0となる。
【0041】
一方、賞金は大きい方が線形緩和した問題の総コストの近似値を下げることができるため、図9の下段に示すように、yを各ノードの賞金を表す変数として、最大化するべき目的関数は、y+y+y+yとなる。また、経路1~3の各コストから、yに対する制約式は、y+y≦c=18km、y+y≦c=18km、y+y≦c=16kmとなる。また、y~yは、実数値である必要があるため、y,y,y,y≧0となる。そして、このようなyに対する制約式を満たしつつ、目的関数y+y+y+yの値を最大化するようなyの各値を求めると、(y,y,y,y)=(18,18,0,0)が最適解となる。
【0042】
なお、図8および図9の例では、vehicleのコストをvehicleの移動距離としたが、一般的なVRPのように、vehicleのコストをvehicleの移動距離および運行時間としてもよい。この場合、例えば、次の式(3)で表されるような関数により求まる値を経路iのコストcに代入する。
【0043】
【数3】
【0044】
図7の説明に戻り、次に、情報処理装置100は、ステップS102で得られた指標、すなわち賞金をもとに、総コストの近似値を下げる経路でVRPの条件を満たす経路を求める(ステップS103)。ステップS103で経路が求められた場合(ステップS104:Yes)、情報処理装置100は、当該経路を、既に生成された経路の集合に追加し(ステップS105)、ステップS102に戻り、処理を繰り返す。一方、ステップS103で経路が求められない場合(ステップS104:No)、図7に示す経路生成処理は終了する。ステップS103は、次に生成する経路として、第2指標である被約費用の値が最小の経路を求めるものである。被約費用は(コスト-訪問するノードの賞金の値の和)として求められる。ステップS103でも、引き続き、vehicleのコストをvehicleの移動距離として処理を進める。また、図9で用いた各コストや、求めた賞金を用いると、デポ10からノード1、ノード2の順(またはその逆)に訪問し、デポ10に戻る経路が、被約費用=16(コスト)-36(賞金の和)=-20となり、被約費用が最小になる。そのため、このような被約費用が最小の経路をどう求めるかが問題となる。
【0045】
図10は、被約費用が最小の経路を求めるための最短経路探索法のアルゴリズムを説明するための図である。図10のアルゴリズムは、図2の従来の最短経路探索法のアルゴリズムにおける最善経路の条件が、被約費用が最小として、経路を求めるものである。なお、図10においても、破線で囲まれた部分が1つのイテレーションである。
【0046】
図10に示すアルゴリズムを、図11を用いて説明する。図11は、実施例1にかかる最短経路探索法による経路生成の一例を示す図である。まず、図10に示すアルゴリズムの最初のイテレーションにおいて、デポ10から各ノードに向かう経路で被約費用が最小の経路が求められる。図11の左側に示す経路が、図10に示すアルゴリズムの最初のイテレーションが終わった後の経路である。図11の左側に示すように、図10に示すアルゴリズムの最初のイテレーションにおいて、被約費用=5(コスト)-18(賞金の和)=-13となる、デポ10からノード1への経路と、デポ10からノード2への経路とが被約費用が最小の経路として求められる。それぞれの経路は、図11の左側に示すように、例えば、path[1]=[0,1]、およびpath[2]=[0,2]として示される。
【0047】
そして、図11の右側に示すように、次のイテレーションにおいて、例えば、ノード1からノード2への辺(1,2)を見る時、デポ10からノード1への経路(path[1])に対してノード2を追加し、path_temp[2]=[0,1,2]が生成される。このデポ10からノード1、ノード2の順に訪問する経路(path_temp[2])は、デポ10からノード2への経路(path[2])と同様、デポ10を出発しノード2に到着する経路である。そこで、path_temp[2]の被約費用を算出し、path_temp[2]の被約費用と比較し、path_temp[2]の方が小さい場合は、ノード2に到着する経路の最善経路としてpath[2]を、path_temp[2]に更新する。すなわち、path[2]=[0,1,2]となる。実際に、path_temp[2]の被約費用を算出すると、被約費用=16(コスト)-36(賞金の和)=-20となり、path[2]の被約費用の-13より小さくなる。このように、イテレーションにおいて、次のノードへの辺が追加され、生成された経路の被約費用と、同一のノードに到着する他の経路の被約費用とが比較され、被約費用が小さい方の経路が最善経路として更新される。
【0048】
しかしながら、図10に示すように、イテレーション部分の処理は、全ての辺の集合に対して、デポを含む各ノード間の辺を順番に走査して、経路に辺を追加して経路を生成、被約費用の算出および比較、最善経路の更新を繰り返し行うものである。そのため、VRPのノード数が多くなると、処理時間は単純計算で2乗の割合で増加してしまうことになる。そこで、本実施形態では、最善経路の更新に所定回数以上寄与しなかった辺を、その後の処理対象から除外することで、処理時間を削減する。
【0049】
図12は、実施例1にかかる最短経路探索法のアルゴリズムを説明するための図である。図12においても、破線で囲まれた部分が1つのイテレーションである。図12のイテレーション部分の処理は、図10のものと比較して、最善経路の更新に寄与しなかった場合(if分のelse部分)にその回数をカウントし、当該回数が所定の閾値(Thres)未満の場合のみ処理されるようになっている。なお、当該閾値の値や、その条件(以下とするか、未満とするかなど)は、任意に変更でき、図12の例などに限定されない。
【0050】
図13は、実施例1にかかる経路更新に寄与しなかった辺の除外を説明するための図である。図13の例は、所定の閾値を1回として、1回以上、最善経路の更新に寄与しなかった辺をその後の処理から除外するようにしている。図13の左側が、各イテレーション時に走査する辺、すなわち処理対象の辺を示す。図13の右側は、各イテレーション部分の処理により、辺が追加され生成された経路を示す。図13の左側に示すように、3回目のイテレーションでは、1回以上、最善経路の更新に寄与しなかった辺が除外され、4辺のみ走査し処理されるようになっている。なお、図13に示すものはあくまでも一例であり、各イテレーションにおいて、どの順番で辺を走査して処理するかにより、得られる経路や除外される辺は異なる場合がある。
【0051】
[処理の流れ]
次に、情報処理装置100によって実行される最善経路更新処理の流れを説明する。図14は、実施例1にかかる最善経路更新処理の流れの一例を示すフローチャートである。図14に示す最善経路更新処理は、図12に示すアルゴリズムを流れに沿ってより詳細に示したものである。
【0052】
まず、情報処理装置100は、VRPにおける、デポを含む各ノードに対し、変数を設定する(ステップS201)。ステップS201は、いわゆるプログラムにおける初期値の設定処理である。各値の初期値設定は、例えば、図14に示すような設定であるが、これらに限定されない。
【0053】
次に、情報処理装置100は、イテレーション数が所定の閾値未満であるか判定する(ステップS202)。ステップS202は、図12に示すイテレーション部分の処理が無限に繰り返されないよう、少なくとも、デポを出発し、再びデポに戻るまでの経路が生成されるまでの処理を繰り返す程度に、イテレーション部分の処理回数を制限するものである。イテレーション数が所定の閾値以上の場合(ステップS202:No)は、path[0]の訪問順の経路を出力し(ステップS215)、図14に示す最善経路更新処理は終了する。
【0054】
一方、イテレーション数が所定の閾値未満の場合(ステップS202:Yes)、情報処理装置100は、処理対象とする辺のセット(edge_set)に、最善経路の更新に寄与しなかった回数が所定の閾値(Thres)未満の辺の集合を設定する(ステップS203)。なお、最善経路の更新に寄与しなかった回数は、例えば、num_times_wo_update[(i,j)]に格納され、初期値は0回である。
【0055】
次に、情報処理装置100は、ステップS203で設定した辺のセットから1つの辺を選択する(ステップS204)。なお、ステップS204は、イテレーションにおける繰り返し処理であるため、ステップS204で選択される辺は、ステップS203で設定した辺のセットからまだ選択されていない辺である。厳密には、後続の処理で処理済みの辺は辺のセットから除外されるため、ステップS204での選択対象にはならない。
【0056】
次に、情報処理装置100は、ステップS204で選択された辺を追加する経路(path[i])の有無を判定する(ステップS205)。なお、ステップS204で選択された辺を追加する経路とは、例えば、ステップS204で選択された辺の始点ノードiを訪問する経路(path[i])である。追加する経路がない場合(ステップS205:No)は、ステップS212へ進む。
【0057】
一方、追加する経路がある場合(ステップS205:Yes)、情報処理装置100は、当該経路にステップS204で選択された辺を追加して経路を生成する(ステップS206)。生成された経路は、path_tmp[j]に設定される。
【0058】
次に、情報処理装置100は、ステップS206で辺を追加して生成された経路(path_tmp[j])がVRPの所定の条件を満たすか判定する(ステップS207)。ここで、VRPの所定の条件とは、例えば、vehicleの最大積載量、各ノードに対して運搬が必要な荷物量や、各ノードに訪れることができる時間帯など、VRPにおける各種制約である。所定の条件を満たさない場合(ステップS207:No)、情報処理装置100は、ステップS206で追加した辺の最善経路の更新に寄与しなかった回数(num_times_wo_update[(i,j)])をカウントアップし(ステップS211)、ステップS212へ進む。
【0059】
一方、ステップS206で辺を追加して生成された経路がVRPの所定の条件を満たす場合(ステップS207:Yes)、情報処理装置100は、当該経路の被約費用を算出する(ステップS208)。算出された被約費用は、reduced_cost_tmp[j]に設定される。
【0060】
次に、情報処理装置100は、ステップS208で算出された被約費用(reduced_cost_tmp[j])を、ステップS206で辺を追加して生成された経路と同一のノードに到着する最善経路の被約費用(reduced_cost[j])と比較する(ステップS209)。ステップS208で算出された被約費用の方が小さい場合(ステップS209:No)、情報処理装置100は、ステップS206で追加した辺の最善経路の更新に寄与しなかった回数(num_times_wo_update[(i,j)])をカウントアップする(ステップS211)。そして、ステップS211の実行後、ステップS212へ進む。
【0061】
一方、ステップS208で算出された被約費用の方が大きい場合(ステップS209:Yes)、情報処理装置100は、最善経路(path[j])を、ステップS206で辺を追加して生成された経路(path_tmp[j])に更新する(ステップS210)。また、情報処理装置100は、最善経路の被約費用(reduced_cost[j])も、ステップS208で算出された被約費用(reduced_cost_tmp[j])に更新する。
【0062】
次に、情報処理装置100は、処理対象とする辺のセット(edge_set)から、ステップS204で選択された辺を除外する(ステップS212)。
【0063】
次に、情報処理装置100は、処理対象とする辺のセット(edge_set)に、まだ辺があるか判定する(ステップS213)。処理対象とする辺のセットに、まだ辺がある場合(ステップS213:No)、ステップS204に戻り、次の辺が選択され、ステップS204からステップS213の処理を繰り返す。
【0064】
一方、処理対象とする辺のセットに、辺がない場合(ステップS213:Yes)、情報処理装置100は、イテレーション数をカウントアップし(ステップS214)、ステップS202に戻り、イテレーション数が所定の閾値以上になるまで、ステップS202からステップS214の処理を繰り返す。
【0065】
[効果]
上述したように、情報処理装置100は、配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、第1の経路の各ノード間の辺の各々のコストに基づいて、各ノードの賞金を算出し、辺を組み合わせて、出発地点から各ノードに到着し、複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、第2の経路に辺を追加して、第2の条件を満たす第3の経路を生成し、コストおよび賞金に基づいて、第2の経路および第3の経路の被約費用を算出し、第3の経路の被約費用が、第3の経路と同一のノードに到着する第2の経路の被約費用より小さい場合、最善経路を第3の経路に更新し、最善経路の更新に所定回数以上寄与しなかった辺は、各経路への追加対象から除外し、出発地点に戻るまで最善経路への辺の追加、被約費用の算出、および最善経路の更新を繰り返し、出発地点に戻る最善経路のうち被約費用が最も小さい経路を経路候補として選択する。
【0066】
このように、情報処理装置100は、最善経路の更新に寄与しなかった辺を、その後の処理対象から除外することで、最適な経路を選択するまでに要する時間を削減できる。
【0067】
また、情報処理装置100は、配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、第1の経路の各ノード間の辺の各々のコストに基づいて、各ノードの賞金を算出し、辺を組み合わせて、出発地点から各ノードに到着し、複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、第2の経路に辺を追加して、第2の条件を満たす第3の経路を生成し、コストおよび賞金に基づいて、第2の経路および第3の経路の被約費用を算出し、第3の経路の被約費用が、第3の経路と同一のノードに到着する第2の経路の被約費用より小さい場合、最善経路を、第3の経路のうち最も被約費用が小さい第3の経路に更新し、最善経路の更新に所定回数以上寄与しなかった辺は、各経路への追加対象から除外し、出発地点に戻るまで最善経路への辺の追加、被約費用の算出、および最善経路の更新を繰り返し、出発地点に戻る最善経路を経路候補として出力する。
【0068】
このように、情報処理装置100は、最善経路の更新に寄与しなかった辺を、その後の処理対象から除外することで、最適な経路を選択するまでに要する時間を削減できる。また、情報処理装置100は、最善経路として、最も被約費用が小さい経路を保持するため、最も被約費用が小さい経路以外の経路を保持し続ける場合と比較して、処理時間を削減できる。
【0069】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更できる。また、実施例で説明した具体例、分布、数値などは、あくまで一例であり、任意に変更できる。
【0070】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成できる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)、および当該CPUやGPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0071】
[ハードウェア]
図15は、情報処理装置100のハードウェア構成例を説明するための図である。
図15に示すように、情報処理装置100は、通信インタフェース100a、HDD(Hard Disk Drive)100b、メモリ100c、プロセッサ100dを有する。また、図15に示した各部は、バスなどで相互に接続される。
【0072】
通信インタフェース100aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD100bは、図3に示した機能を動作させるプログラムやDBを記憶する。
【0073】
プロセッサ100dは、図3に示した各処理部と同様の処理を実行するプログラムをHDD100bなどから読み出してメモリ100cに展開することで、図3などで説明した各機能を実行するプロセスを動作させるハードウェア回路である。すなわち、このプロセスは、情報処理装置100が有する各処理部と同様の機能を実行する。具体的には、プロセッサ100dは、生成部141および演算部142などと同様の機能を有するプログラムをHDD100bなどから読み出す。そして、プロセッサ100dは、生成部141および演算部142などと同様の処理を実行するプロセスを実行する。
【0074】
このように情報処理装置100は、図3に示した各処理部と同様の処理を実行するプログラムを読み出して実行することで動作制御処理を実行する情報処理装置として動作する。また、情報処理装置100は、媒体読取装置によって記録媒体からプログラムを読み出し、読み出されたプログラムを実行することで上述した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、情報処理装置100によって実行されることに限定されるものではない。例えば、他の情報処理装置がプログラムを実行する場合や、情報処理装置100と他の情報処理装置とが協働してプログラムを実行するような場合にも、本実施形態を同様に適用できる。
【0075】
また、図3に示した各処理部と同様の処理を実行するプログラムは、インターネットなどのネットワークを介して配布できる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行できる。
【実施例0076】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0077】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0078】
(付記1)配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、
前記第1の経路の各ノード間の辺の各々のコストに基づいて、前記各ノードの第1指標を算出し、
前記辺を組み合わせて、出発地点から前記各ノードに到着し、前記複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、
前記第2の経路に前記辺を追加して、前記第2の条件を満たす第3の経路を生成し、
前記コストおよび前記第1指標に基づいて、前記第2の経路および前記第3の経路の前記コストと前記第1指標の合計値との差分である第2指標を算出し、
前記第3の経路の前記第2指標が、前記第3の経路と同一のノードに到着する前記第2の経路の前記第2指標より小さい場合、前記最善経路を前記第3の経路に更新し、
前記最善経路の更新に所定回数以上寄与しなかった前記辺は、各経路への追加対象から除外し、
前記出発地点に戻るまで前記最善経路への前記辺の追加、前記第2指標の算出、および前記最善経路の更新を繰り返し、
前記出発地点に戻る前記最善経路のうち前記第2指標が最も小さい経路を経路候補として選択する
処理を実行する制御部を有し、
前記第1指標は、前記配送計画問題を線形緩和した問題において前記コストを減少させる度合いを示す指標であることを特徴とする情報処理装置。
【0079】
(付記2)配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、
前記第1の経路の各ノード間の辺の各々のコストに基づいて、前記各ノードの第1指標を算出し、
前記辺を組み合わせて、出発地点から前記各ノードに到着し、前記複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、
前記第2の経路に前記辺を追加して、前記第2の条件を満たす第3の経路を生成し、
前記コストおよび前記第1指標に基づいて、前記第2の経路および前記第3の経路の前記コストと前記第1指標の合計値との差分である第2指標を算出し、
前記第3の経路の前記第2指標が、前記第3の経路と同一のノードに到着する前記第2の経路の前記第2指標より小さい場合、前記最善経路を、前記第3の経路のうち最も前記第2指標が小さい前記第3の経路に更新し、
前記最善経路の更新に所定回数以上寄与しなかった前記辺は、各経路への追加対象から除外し、
前記出発地点に戻るまで前記最善経路への前記辺の追加、前記第2指標の算出、および前記最善経路の更新を繰り返し、
前記出発地点に戻る前記最善経路を経路候補として出力する
処理を実行する制御部を有し、
前記第1指標は、前記配送計画問題を線形緩和した問題において前記コストを減少させる度合いを示す指標であることを特徴とする情報処理装置。
【0080】
(付記3)配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、
前記第1の経路の各ノード間の辺の各々のコストに基づいて、前記各ノードの第1指標を算出し、
前記辺を組み合わせて、出発地点から前記各ノードに到着し、前記複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、
前記第2の経路に前記辺を追加して、前記第2の条件を満たす第3の経路を生成し、
前記コストおよび前記第1指標に基づいて、前記第2の経路および前記第3の経路の前記コストと前記第1指標の合計値との差分である第2指標を算出し、
前記第3の経路の前記第2指標が、前記第3の経路と同一のノードに到着する前記第2の経路の前記第2指標より小さい場合、前記最善経路を前記第3の経路に更新し、
前記最善経路の更新に所定回数以上寄与しなかった前記辺は、各経路への追加対象から除外し、
前記出発地点に戻るまで前記最善経路への前記辺の追加、前記第2指標の算出、および前記最善経路の更新を繰り返し、
前記出発地点に戻る前記最善経路のうち前記第2指標が最も小さい経路を経路候補として選択する
処理をコンピュータに実行させ、
前記第1指標は、前記配送計画問題を線形緩和した問題において前記コストを減少させる度合いを示す指標であることを特徴とする情報処理プログラム。
【0081】
(付記4)配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、
前記第1の経路の各ノード間の辺の各々のコストに基づいて、前記各ノードの第1指標を算出し、
前記辺を組み合わせて、出発地点から前記各ノードに到着し、前記複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、
前記第2の経路に前記辺を追加して、前記第2の条件を満たす第3の経路を生成し、
前記コストおよび前記第1指標に基づいて、前記第2の経路および前記第3の経路の前記コストと前記第1指標の合計値との差分である第2指標を算出し、
前記第3の経路の前記第2指標が、前記第3の経路と同一のノードに到着する前記第2の経路の前記第2指標より小さい場合、前記最善経路を、前記第3の経路のうち最も前記第2指標が小さい前記第3の経路に更新し、
前記最善経路の更新に所定回数以上寄与しなかった前記辺は、各経路への追加対象から除外し、
前記出発地点に戻るまで前記最善経路への前記辺の追加、前記第2指標の算出、および前記最善経路の更新を繰り返し、
前記出発地点に戻る前記最善経路を経路候補として出力する
処理をコンピュータに実行させ、
前記第1指標は、前記配送計画問題を線形緩和した問題において前記コストを減少させる度合いを示す指標であることを特徴とする情報処理プログラム。
【0082】
(付記5)配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、
前記第1の経路の各ノード間の辺の各々のコストに基づいて、前記各ノードの第1指標を算出し、
前記辺を組み合わせて、出発地点から前記各ノードに到着し、前記複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、
前記第2の経路に前記辺を追加して、前記第2の条件を満たす第3の経路を生成し、
前記コストおよび前記第1指標に基づいて、前記第2の経路および前記第3の経路の前記コストと前記第1指標の合計値との差分である第2指標を算出し、
前記第3の経路の前記第2指標が、前記第3の経路と同一のノードに到着する前記第2の経路の前記第2指標より小さい場合、前記最善経路を前記第3の経路に更新し、
前記最善経路の更新に所定回数以上寄与しなかった前記辺は、各経路への追加対象から除外し、
前記出発地点に戻るまで前記最善経路への前記辺の追加、前記第2指標の算出、および前記最善経路の更新を繰り返し、
前記出発地点に戻る前記最善経路のうち前記第2指標が最も小さい経路を経路候補として選択する
処理をコンピュータが実行し、
前記第1指標は、前記配送計画問題を線形緩和した問題において前記コストを減少させる度合いを示す指標であることを特徴とする情報処理方法。
【0083】
(付記6)配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、
前記第1の経路の各ノード間の辺の各々のコストに基づいて、前記各ノードの第1指標を算出し、
前記辺を組み合わせて、出発地点から前記各ノードに到着し、前記複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、
前記第2の経路に前記辺を追加して、前記第2の条件を満たす第3の経路を生成し、
前記コストおよび前記第1指標に基づいて、前記第2の経路および前記第3の経路の前記コストと前記第1指標の合計値との差分である第2指標を算出し、
前記第3の経路の前記第2指標が、前記第3の経路と同一のノードに到着する前記第2の経路の前記第2指標より小さい場合、前記最善経路を、前記第3の経路のうち最も前記第2指標が小さい前記第3の経路に更新し、
前記最善経路の更新に所定回数以上寄与しなかった前記辺は、各経路への追加対象から除外し、
前記出発地点に戻るまで前記最善経路への前記辺の追加、前記第2指標の算出、および前記最善経路の更新を繰り返し、
前記出発地点に戻る前記最善経路を経路候補として出力する
処理をコンピュータが実行し、
前記第1指標は、前記配送計画問題を線形緩和した問題において前記コストを減少させる度合いを示す指標であることを特徴とする情報処理方法。
【0084】
(付記7)プロセッサと、
プロセッサに動作可能に接続されたメモリと
を備えた情報処理装置であって、プロセッサは、
配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、
前記第1の経路の各ノード間の辺の各々のコストに基づいて、前記各ノードの第1指標を算出し、
前記辺を組み合わせて、出発地点から前記各ノードに到着し、前記複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、
前記第2の経路に前記辺を追加して、前記第2の条件を満たす第3の経路を生成し、
前記コストおよび前記第1指標に基づいて、前記第2の経路および前記第3の経路の前記コストと前記第1指標の合計値との差分である第2指標を算出し、
前記第3の経路の前記第2指標が、前記第3の経路と同一のノードに到着する前記第2の経路の前記第2指標より小さい場合、前記最善経路を前記第3の経路に更新し、
前記最善経路の更新に所定回数以上寄与しなかった前記辺は、各経路への追加対象から除外し、
前記出発地点に戻るまで前記最善経路への前記辺の追加、前記第2指標の算出、および前記最善経路の更新を繰り返し、
前記出発地点に戻る前記最善経路のうち前記第2指標が最も小さい経路を経路候補として選択する
処理を実行し、
前記第1指標は、前記配送計画問題を線形緩和した問題において前記コストを減少させる度合いを示す指標であることを特徴とする情報処理装置。
【0085】
(付記8)プロセッサと、
プロセッサに動作可能に接続されたメモリと
を備えた情報処理装置であって、プロセッサは、
配送計画問題に含まれる複数の条件のうち第1の条件を満たす複数の第1の経路を生成し、
前記第1の経路の各ノード間の辺の各々のコストに基づいて、前記各ノードの第1指標を算出し、
前記辺を組み合わせて、出発地点から前記各ノードに到着し、前記複数の条件のうち第2の条件を満たす第2の経路を最善経路として生成し、
前記第2の経路に前記辺を追加して、前記第2の条件を満たす第3の経路を生成し、
前記コストおよび前記第1指標に基づいて、前記第2の経路および前記第3の経路の前記コストと前記第1指標の合計値との差分である第2指標を算出し、
前記第3の経路の前記第2指標が、前記第3の経路と同一のノードに到着する前記第2の経路の前記第2指標より小さい場合、前記最善経路を、前記第3の経路のうち最も前記第2指標が小さい前記第3の経路に更新し、
前記最善経路の更新に所定回数以上寄与しなかった前記辺は、各経路への追加対象から除外し、
前記出発地点に戻るまで前記最善経路への前記辺の追加、前記第2指標の算出、および前記最善経路の更新を繰り返し、
前記出発地点に戻る前記最善経路を経路候補として出力する
処理を実行し、
前記第1指標は、前記配送計画問題を線形緩和した問題において前記コストを減少させる度合いを示す指標であることを特徴とする情報処理装置。
【符号の説明】
【0086】
1~3 vehicle
10 デポ
100 情報処理装置
100a 通信インタフェース
100b HDD
100c メモリ
100d プロセッサ
120 通信部
130 記憶部
131 距離/移動時間データ
132 需要データ
133 time windowデータ
140 制御部
141 生成部
142 演算部
143 出力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15