JP2021124978A - 情報処理装置、プログラム、情報処理方法および情報処理システム - Google Patents

情報処理装置、プログラム、情報処理方法および情報処理システム Download PDF

Info

Publication number
JP2021124978A
JP2021124978A JP2020018245A JP2020018245A JP2021124978A JP 2021124978 A JP2021124978 A JP 2021124978A JP 2020018245 A JP2020018245 A JP 2020018245A JP 2020018245 A JP2020018245 A JP 2020018245A JP 2021124978 A JP2021124978 A JP 2021124978A
Authority
JP
Japan
Prior art keywords
route
base nodes
base
node
patrol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2020018245A
Other languages
English (en)
Inventor
悟 半田
Satoru Handa
悟 半田
マチュー パリジ
Matthew Parisi
マチュー パリジ
英俊 松岡
Hidetoshi Matsuoka
英俊 松岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020018245A priority Critical patent/JP2021124978A/ja
Priority to US17/121,808 priority patent/US20210239481A1/en
Priority to EP20214957.1A priority patent/EP3862936A1/en
Priority to CN202011636678.0A priority patent/CN113298284A/zh
Publication of JP2021124978A publication Critical patent/JP2021124978A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3453Special cost functions, i.e. other than distance or default speed limit of road segments
    • G01C21/3484Personalized, e.g. from learned user behaviour or user-defined profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3453Special cost functions, i.e. other than distance or default speed limit of road segments
    • G01C21/3492Special cost functions, i.e. other than distance or default speed limit of road segments employing speed data or traffic data, e.g. real-time or historical
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/096805Systems involving transmission of navigation instructions to the vehicle where the transmitted instructions are used to compute a route
    • G08G1/096827Systems involving transmission of navigation instructions to the vehicle where the transmitted instructions are used to compute a route where the route is computed onboard
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/096833Systems involving transmission of navigation instructions to the vehicle where different aspects are considered when computing the route
    • G08G1/096844Systems involving transmission of navigation instructions to the vehicle where different aspects are considered when computing the route where the complete route is dynamically recomputed based on new data

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Automation & Control Theory (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Quality & Reliability (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • Tourism & Hospitality (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Social Psychology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】求解の実行回数を低減すること。【解決手段】処理部11は、巡回主体が複数の拠点ノードを巡回するための複数のルートであって、デポノードを各ルートの起点および終点とする複数のルートを求める組合せ最適化問題に関して、1のルートに割り当てる拠点ノードの最大数を取得する。処理部11は、最大数に基づいて組合せ最適化問題の定式化に用いる状態変数の数を決定する。処理部11は、決定した数の状態変数に対して、各ルートにおいて拠点ノードからデポノードへ巡回主体が移動した後には同一ルート内での複数の拠点ノードそれぞれへの巡回主体の移動を制限することを示す制約項32を含む目的関数30の情報を生成する。出力部12は、目的関数30に含まれる状態変数の組により表される基底状態を探索する探索部20に、生成した目的関数30の情報を出力する。【選択図】図1

Description

本発明は情報処理装置、プログラム、情報処理方法および情報処理システムに関する。
組合せ最適化問題を解くために、問題を目的関数に変換して目的関数に含まれる状態変数の値の組合せのうち、目的関数を最小化または最大化する組合せを探索することが行われる。目的関数を最小化または最大化する状態変数の値の組合せは、状態変数の組により表される基底状態または最適解に相当する。実用的な時間で組合せ最適化問題の近似解を得る手法として、シミュレーテッドアニーリング(SA:Simulated Annealing)法やレプリカ交換法などのマルコフ連鎖モンテカルロ法がある。
組合せ最適化問題の実用的な問題の一例として、配送計画問題(VRP:Vehicle Routing Problem)が挙げられる。VRPでは、デポ(Depot)と呼ばれる特定の場所に待機する運搬車などの巡回主体が、顧客位置などの拠点に需要を運搬し、または拠点の需要を収集し、再びデポに戻るための複数のルートを、コストを最小化するように求めることがある。
例えば、配送問題をエネルギー関数に帰着させ、エネルギー関数をSA法により最小化して最適な配車と配送順序を探索する探索装置の提案がある。
また、複数の地点を任意の分割数Nで分割した分割グループごとに当該分割グループ内の地点を巡回する分割巡回経路を探索するシステムの提案がある。提案のシステムは、遺伝アルゴリズムおよびSA法を併用して、各分割グループ内の各地点を巡回する分割巡回経路のコストがほぼ均等になるように、同時に各分割巡回経路を探索する。
なお、届先へ配送対象物品を配送許容時間内に配送でき、且つ、物流施設数がより少なくて足りるように物流施設の立地を決めるコンピュータシステムの提案がある。
特開平7−175504号公報 特開2007−241340号公報 特開2004−272615号公報
SA法などによりVRPを解くために、例えば問題に課される制約条件に基づき、各ルートで訪問する拠点数の有り得る組合せを、予め複数個決定しておくことが考えられる。当該組合せは、例えば運搬車の最大積載量の制約と各拠点に運搬する荷物の重量との関係などから求められ、当該組合せに属する拠点数の合計は訪問対象の全拠点数に一致する。
この場合、得られた複数の組合せに対応する複数の目的関数それぞれに対して、コンピュータなどによりSA法などを用いた求解が行われ、複数の目的関数に対して得られた複数の解のうち最も良い解が最終的な解として選択される。しかし、複数の目的関数の数に対応する回数だけ求解を行うことになる。このため、各ルートで訪問する拠点数の有り得る組合せの数が増えるほど、求解の実行回数が増えるという問題がある。
1つの側面では、本発明は、求解の実行回数を低減できる情報処理装置、プログラム、情報処理方法および情報処理システムを提供することを目的とする。
1つの態様では、情報処理装置が提供される。この情報処理装置は、処理部と出力部とを有する。処理部は、巡回主体が複数の拠点ノードを巡回するための複数のルートであって、デポノードを各ルートの起点および終点とする複数のルートを求める組合せ最適化問題に関して、1のルートに割り当てる拠点ノードの最大数を取得し、最大数に基づいて組合せ最適化問題の定式化に用いる状態変数の数を決定し、決定した数の状態変数に対して、各ルートにおいて拠点ノードからデポノードへ巡回主体が移動した後には同一ルート内での複数の拠点ノードそれぞれへの巡回主体の移動を制限することを示す制約項を含む目的関数の情報を生成する。出力部は、目的関数に含まれる状態変数の組により表される基底状態を探索する探索部に、生成した目的関数の情報を出力する。
また、1つの態様では、プログラムが提供される。
また、1つの態様では、情報処理方法が提供される。
また、1つの態様では、情報処理システムが提供される。
1つの側面では、求解の実行回数を低減できる。
第1の実施の形態の情報処理装置の処理例を示す図である。 第2の実施の形態の情報処理システムのハードウェア例を示す図である。 ルートの例を示す図である。 情報処理装置の機能例を示す図である。 最適化装置によるビットフリップ制御例を示す図である。 情報処理システムの第1の処理例を示すフローチャートである。 情報処理システムの第2の処理例を示すフローチャートである。 各ルートの最大拠点ノード数決定例(その1)を示す図である。 各ルートの最大拠点ノード数決定例(その2)を示す図である。 各ルートの最大拠点ノード数決定例(その3)を示す図である。 各ルートの最大拠点ノード数決定例(その4)を示す図である。 ルートの計算例(その1)を示す図である。 イタレーション数と正解レプリカ数との関係の第1の例を示す図である。 イタレーション数と正解レプリカ数との関係の第2の例を示す図である。 ルートの計算例(その2)を示す図である。 比較例を示すフローチャートである。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理装置の処理例を示す図である。
情報処理装置10は、組合せ最適化問題に対応する目的関数の情報を生成し、生成した目的関数の情報を出力する。組合せ最適化問題は、バイナリ変数の二次形式によって定式化される。目的関数は、イジングモデルのエネルギーを表し、エネルギー関数や評価関数とも呼ばれる。組合せ最適化問題の一例としてCVRP(Capacitated VRP)がある。
CVRPは、巡回主体が複数の拠点ノードを巡回するための複数のルートを求める組合せ最適化問題であり、巡回主体に対して容量に関する制約が設けられる。容量は、重量、体積または面積などにより定められる。容量に関する制約の一例として、トラックにおける最大積載量が挙げられる。拠点ノードには、拠点ノードへ運搬する荷物の重量、または、拠点ノードで回収する荷物の重量などの需要量が対応付けられる。また、各ルートの起点および終点はデポノードである。複数のルートの数は、例えば巡回主体の数によって決定される。例えば巡回主体として4台のトラックを利用できる場合、ルート数は「4」である。各ルートでは少なくとも1つの拠点ノードが訪問される。
情報処理装置10は、処理部11および出力部12を有する。
処理部11は、1のルートに割り当てる拠点ノードの最大数を取得する。処理部11は、ユーザにより情報処理装置10に入力された当該最大数を取得してもよいし、巡回主体の容量と各拠点ノードの需要量とに基づいて当該最大数を計算してもよい。
処理部11は、取得した最大数に基づいて組合せ最適化問題の定式化に用いる状態変数の数を決定する。後述される目的関数の性質により、各ルートに割り当てる最大拠点ノード数の合計が、巡回すべき全拠点ノード数よりも大きくなることが許容される。最大拠点ノード数は、特定のルートに割り当てる最大の拠点ノード数を示す。
処理部11は、少なくとも1つのルートにおいて、最大拠点ノード数が、取得した最大数となるようにし、他のルートでは最大拠点ノード数が当該最大数以下になるようにする。例えば、巡回対象の全拠点ノード数が「12」の場合に、各ルートに割り当てる最大拠点ノード数の合計を「13」以上にすることができる。一例として、処理部11は、複数のルートに割り当てる複数の最大拠点ノード数を一律に、取得した上記最大数として、組合せ最適化問題の定式化に用いる状態変数の数を決定してもよい。
処理部11は、決定した数の状態変数に対して、目的関数30の情報を生成する。目的関数30における状態変数は、例えば0または1の値を取るバイナリ変数であり、ビット変数などと呼ばれてもよい。複数の状態変数の値によりイジングモデルの状態が表される。複数の状態変数の値の組は状態ベクトルと呼ばれることがある。
目的関数30は、コスト項31および制約項32を含む。
コスト項31は、巡回主体が拠点ノードを巡回する際のコストを示す。コストは、最小化したい値であり、例えば、総移動距離や総移動費用などである。
制約項32は、各ルートにおいて拠点ノードからデポノードへ巡回主体が移動した後には同一ルート内での複数の拠点ノードそれぞれへの巡回主体の移動を制限することを示す。制約項32は、各ルートでデポノードに帰還後、デポノードから何れかの拠点ノードへ巡回主体が移動することを表す状態変数の値の変化に対して比較的大きなペナルティ値を目的関数に加算する項として表される。
なお、目的関数30は、例えば巡回主体の容量に関する制約項など、制約項32以外の制約項を含んでもよい。
出力部12は、目的関数30に含まれる状態変数の組により表される基底状態を探索する探索部20に、生成した目的関数30の情報を出力する。探索部20は、目的関数30に基づいて、SA法、レプリカ交換法および量子アニーリング法などにより基底状態の探索を行う。
例えば、拠点ノードn1,n2,…をルートR1,R2を含む複数のルートにより巡回することを考える。ルートR1,R2それぞれの起点および終点はデポノードd1である。処理部11は、1のルートに割り当てる拠点ノード数の最大数として、例えば「6」を取得する。この場合、処理部11は、取得した拠点ノードの最大数「6」を1番目のルートR1の第1の最大拠点ノード数として割り当てる。また、処理部11は、当該第1の最大拠点ノード数以下の第2の最大拠点ノード数として、例えば「5」を2番目のルートR2に割り当てる。
ルートR1で回る拠点ノードが拠点ノードn1,n2,n3,n4のように4つ決定され、拠点ノードn4からデポノードd1に戻ることを示す状態が探索部20で生成されることを考える。このとき、ルートR1に割り当てられた第1の最大拠点ノード数に対する残りの拠点ノード数「2」(=6−4)がある。しかし、探索部20では、制約項32により、ルートR1において、巡回主体が拠点ノードn4からデポノードd1に戻った後にデポノードd1から他の拠点ノードへ移動することを示す状態の生成が制限される。
また、ルートR2で回る拠点ノードが拠点ノードn5,n6,n7のように3つ決定され、拠点ノードn7からデポノードd1に戻ることを示す状態が探索部20で生成されることを考える。このとき、ルートR2に割り当てられた第2の最大拠点ノード数に対する残りの拠点ノード数「2」(=5−3)がある。しかし、探索部20では、制約項32により、ルートR2において、巡回主体が拠点ノードn7からデポノードd1に戻った後にデポノードd1から他の拠点ノードへ移動することを示す状態の生成が制限される。
情報処理装置10によれば、求解の実行回数を低減できる。
ここで、問題に課される制約条件に基づき、各ルートで回る拠点ノード数の有り得る組合せを予め複数個決定しておくことが考えられる。有り得る組合せでは、各ルートで回る拠点ノード数が固定的に決定されており、各ルートで回る拠点ノード数の全ルートでの合計は、訪問対象の全拠点ノード数に一致する。
例えば、全拠点ノード数が「12」でルート数が「4」の場合に、各ルートで回る拠点ノード数の有り得る組合せが、巡回主体の容量と各拠点ノードの需要量に対し、第1の組合せ(4,4,3,1)、第2の組合せ(4,4,2,2)、…のようにN(Nは2以上の整数)個決定され得る。この場合、N個の組合せに対してN個の目的関数を生成し、目的関数ごとに探索部20による解探索を実行し、N個の目的関数に対して得られた解のうち最も良い解を最終的な解として採用することになる。ここで、求解とは、1つの目的関数について、ある初期状態から開始して解を得るまでの一連のプロセスに相当する。しかし、この方法では、各ルートで回る拠点ノード数の有り得る組合せの数が増すほど、解くべき目的関数の数が増え、探索部20による求解の実行回数が増える。
一方、情報処理装置10では、制約項32を含む目的関数30を生成する。制約項32により、各ルートに割り当てる最大拠点ノード数の合計が、巡回すべき全拠点ノード数よりも大きくなることが許容される。制約項32によって、探索部20においてルート数が増加するような状態の生成を制限できるためである。このため、上記のN個の目的関数を、N個よりも少ない数の目的関数に集約して表すことができる。例えば、1つの目的関数で表す場合、N個の目的関数を用いる場合に比べて、求解の実行回数を1/Nに減らすことができる。
一例として、全拠点ノード数が「12」、ルート数が「4」の場合に、処理部11は、1のノードに割り当てる拠点ノードの最大数として「5」を取得したとする。このとき、処理部11は、各ルートに割り当てる拠点ノード数の組合せを(5,5,5,5)のように決めて、目的関数における状態変数の数を決定してもよい。例えば、制約項32を用いることで、上記のN個の組合せ(4,4,3,1)、(4,4,2,2)、…に対応するN個の目的関数に代えて、組合せ(5,5,5,5)に応じた数の状態変数に関する1つの目的関数30で問題を定式化できる。
処理部11は、目的関数30に基づいて得られた解を探索部20から取得し、取得した解において、あるルートで最大拠点ノード数に達せずにデポノードに帰還したことを、当該ルートの終点に達したものとみなす。すると、当該1つの目的関数30により生成され得る解は、N個の組合せ(4,4,3,1)、(4,4,2,2)、…に対するN個の目的関数で生成され得る解を全て包含する。こうして、解探索に用いる目的関数の数を減らすことができ、当該目的関数を用いた求解の実行回数を低減できる。
なお、処理部11は、目的関数30の状態変数の数がより少なくなるように、複数のルートに割り当てる複数の最大拠点ノード数を決定することで、探索部20による解探索を効率化してもよい。また、処理部11は、探索部20による探索機能の特性に応じて、ダミーのデポノードの数を増やすように目的関数30の状態変数の数を調整し、解探索を高速化してもよい。
処理部11は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などにより実現される。処理部11はプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
探索部20は、デジタル回路を用いてSA法やレプリカ交換法などを実行するハードウェアにより実現されてもよいし、量子アニーリングを行うハードウェアにより実現されてもよい。また、探索部20は、情報処理装置10が有するCPUなどのプロセッサにより実現されてもよい。
出力部12は、探索部20内のメモリあるいは探索部20が参照する情報処理装置10内のメモリに対するIO(Input/Output)を行うIOインタフェースにより実現される。探索部20がネットワークを介して接続された他の装置により実現される場合、出力部12は、NIC(Network Interface Card)などの通信インタフェースにより実現されてもよい。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムのハードウェア例を示す図である。
情報処理システム50は、情報処理装置100および最適化装置200を有する。
情報処理装置100は、組合せ最適化問題を定式化することで、組合せ最適化問題に対応する目的関数の情報を生成し、生成した目的関数の情報を最適化装置200に入力する。情報処理装置100は、CPU101、RAM(Random Access Memory)102、HDD(Hard Disk Drive)103、IOインタフェース104、画像信号処理部105、入力信号処理部106、媒体リーダ107およびNIC108を有する。CPU101は、第1の実施の形態の処理部11に対応する。IOインタフェース104は、第1の実施の形態の出力部12に対応する。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、情報処理装置100は複数のプロセッサを有してもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、情報処理装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
IOインタフェース104は、最適化装置200と接続され、CPU101からの命令に従って、最適化装置200に対するデータの入出力を行う。例えば、IOインタフェース104は、CPU101の命令に応じて、RAM102のデータを最適化装置200のレジスタまたはメモリに書き込んだり、最適化装置200からデータを読み出して、RAM102に書き込んだりする。IOインタフェース104としては、例えば、PCI−e(Peripheral Component Interconnect - Express)などが用いられる。
画像信号処理部105は、CPU101からの命令に従って、情報処理装置100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
入力信号処理部106は、情報処理装置100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、情報処理装置100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ107は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ107は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
NIC108は、ネットワーク300に接続され、ネットワーク300を介して他のコンピュータと通信を行うインタフェースである。NIC108は、例えば、ネットワーク300に含まれるスイッチやルータなどの通信装置とケーブルで接続される。
最適化装置200は、目的関数の情報に基づいて、SA法やレプリカ交換法による基底状態探索をハードウェアにより行うアクセラレータである。最適化装置200は、イジングマシン、イジング最適化装置などと呼ばれてもよい。また、最適化装置200は、量子アニーリング法により基底状態探索を行うハードウェアでもよい。最適化装置200は、第1の実施の形態の探索部20の一例である。ただし、最適化装置200に代えて、CPU101が所定のソフトウェアを実行することで、SA法、レプリカ交換法あるいはSQA(Simulated Quantum Annealing)法などを実行する探索部20の機能を実現することもできる。
第2の実施の形態では、組合せ最適化問題の一例としてCVRPを挙げる。CVRPの標準的な問題の例として、E−n13k4がある。E−n13k4の表記について、「n13」における「13」は、1つのデポと12個の拠点とが存在することを示す。また、「k4」における「4」は、巡回主体である車両の数が4台であることを示す。1つの車両に対して1つのルートが対応付けられるので、ルート数は4である。以下の説明において、車両は、トラックであるとする。
図3は、ルートの例を示す図である。
デポノード60は、ルートの起点および終点となるデポを表すノードである。拠点ノード61,62,63,64は、顧客位置などの拠点を表すノードである。ルートR10は、デポノード60および拠点ノード61,62,63,64を結ぶ1つのルートの例である。図3では、デポノード60およびその他の拠点ノードを結ぶ他の3つのルートも示されている。1つのルートには、1以上の拠点が属する。
各拠点をインデックスjで表す。拠点jの需要量をdとする。需要量は、運搬対象、または、収集対象の荷物の重量である。CVRPでは、巡回主体であるトラックに対して最大積載量の制約が課される。各トラックの最大積載量は同じであるとする。トラックの最大積載量をQと表す。CVRPでは、各拠点間のコストが与えられており、コストの合計を最小化するように複数のルートを決める。なお、需要量として、荷物の体積や面積など、トラックが配送する荷物の重量以外の条件を考慮してもよい。また、コストとしては、移動距離、移動費用および移動時間などが考えられる。
CVRPでは次の制約条件がある。(制約条件A)1つのルートに属する需要量dの合計値は最大積載量Q以下である。(制約条件B)全ての時刻において、トラックは、同時刻に1つの拠点またはデポを訪問する。(制約条件C)全ての拠点は、トラックによって1回だけ訪問される。(制約条件D)各ルートの起点および終点はデポである。
図4は、情報処理装置の機能例を示す図である。
情報処理装置100は、記憶部120、ノード数計算部130、定式化部140、ルート計算部150を有する。記憶部120は、RAM102またはHDD103の記憶領域により実現される。ノード数計算部130、定式化部140およびルート計算部150は、CPU101により実現される。
記憶部120は、ノード数計算部130、定式化部140およびルート計算部150の処理に用いられるデータを記憶する。
ノード数計算部130は、入力されたインスタンス情報に基づいて、各ルートに割り当てる最大拠点ノード数、すなわち、最大拠点数を決定する。インスタンス情報は、CVRPにおけるトラックの最大積載量、各拠点の需要量、ルート数(すなわち、トラックの配車数)、拠点数および拠点間のコストなどの問題の内容を表す情報である。後述される目的関数の性質により、各ルートに割り当てる最大拠点ノード数の全ルートでの合計が、全拠点ノード数よりも大きくなることが許容される。
定式化部140は、ノード数計算部130により決定された各ルートに割り当てる最大拠点ノード数に基づいて、CVRPの定式化に用いる状態変数の数を決定する。定式化部140は、決定した数の状態変数を用いて、与えられたインスタンス情報から目的関数の情報を生成する。目的関数は、種々の制約項を含み得る。制約項は、ペナルティ項と呼ばれることもある。目的関数の情報は、例えば、目的関数に含まれる変数間の重み係数、バイアス値および定数を含むファイルとして生成される。定式化部140は、生成した目的関数の情報を、最適化装置200に出力し、最適化装置200により目的関数に基づく基底状態の探索を実行させる。
ルート計算部150は、最適化装置200から基底状態の探索結果を解として取得する。最適化装置200から得られた解はビット列として得られる。ルート計算部150は、当該ビット列を、図3のようなルートを表す画像や拠点名をルートごとに巡回順に並べた画像など、ユーザに分かり易い形式の情報に変換し、変換後の情報を出力する。例えば、ルート計算部150は、当該変換により生成した画像などの情報を、ディスプレイ111に表示したり、ネットワーク300を介して、他のコンピュータに送信したりする。
ここで、最適化装置200は、目的関数に基づいて、SA法やレプリカ交換法による基底状態の探索を行う。
イジング型の目的関数E(x)は、例えば以下の式(1)で定義される。なお、数式中、複数の状態変数により表される状態、あるいは状態ベクトルを添え字無しの「x」で表す。
Figure 2021124978
式(1)の右辺第1項は、全状態変数から選択可能な2つの状態変数の全組合せについて、漏れと重複なく、2つの状態変数の値と結合係数との積を積算したものである。xは、i番目の状態変数である。xは、j番目の状態変数である。結合係数Wijは、i番目の状態変数とj番目の状態変数との間の結合の強さ、あるいは、重みを示す。なお、行列W={Wij}について、Wij=Wji、Wii=0であることが多い。状態変数xなどの変数に付加される添え字iは、当該変数の識別情報であり、インデックスと呼ばれる。
式(1)の右辺第2項は、全状態変数のそれぞれのバイアス値と状態変数の値との積の総和である。bは、i番目の状態変数に対するバイアス値を示す。
例えば、イジングモデルにおけるスピンの「−1」は、状態変数の値「0」に対応する。イジングモデルにおけるスピンの「+1」は、状態変数の値「1」に対応する。上記のCVRPで言えば、状態変数をある時点における拠点またはデポに対応付けることができ、該当の拠点またはデポを訪問しないことを状態変数の値「0」に、訪問することを状態変数の値「1」にそれぞれ対応付けることができる。
状態変数xの値が変化して1−xとなると、状態変数xの増加分は、δx=(1−x)−x=1−2xと表せる。したがって、目的関数E(x)に対して、状態変数xの変化に伴うエネルギー変化ΔEは、式(2)で表される。
Figure 2021124978
は局所場(ローカルフィールド)と呼ばれ、式(3)で表される。
Figure 2021124978
状態変数xが変化したときの局所場hの変化分δh (j)は、式(4)で表される。
Figure 2021124978
最適化装置200は、局所場hを保持し、状態変数xの値が変化したときに変化分δh (j)をhに加算することで、ビット反転後の状態に対応するhを得る。
最適化装置200では、基底状態の探索において、エネルギー変化がΔEとなる状態遷移(状態変数xの値の変化)を許容するか否かを決定するためにメトロポリス法やギブス法が用いられる。すなわち、最適化装置200は、ある状態から当該状態よりもエネルギーの低い他の状態への遷移を探索する近傍探索において、エネルギーが下がる状態だけでなく、エネルギーが上がる状態への遷移を確率的に許容する。例えば、エネルギー変化ΔEの状態変数の値の変化を受け入れる確率Aは、式(5)で表される。
Figure 2021124978
逆温度βは温度Tの逆数(β=1/T)である。min演算子は、引数のうちの最小値を取ることを示す。したがって、例えば、メトロポリス法を用いる場合、一様乱数u(0<u≦1)に対して、エネルギー変化ΔEが式(6)を満たす場合に、該当の状態変数の値の変化が許容される。
Figure 2021124978
最適化装置200が利用する温度のプロファイル情報は、問題に応じて、情報処理装置100により最適化装置200に設定され得る。
最適化装置200では、演算の高速化を図るため、状態変数の値の変化、すなわちビットフリップを次のように制御することがある。
図5は、最適化装置によるビットフリップ制御例を示す図である。
マルコフ連鎖モンテカルロ法を用いる場合、式(7)のように状態変数xを1つずつフリップさせることが考えられる。iはフリップさせる状態変数を示すインデックスである。エネルギー変化ΔEは、式(8)で表される。状態変数xに対応する局所場の変化Δhは、式(9)で表される。mは任意の状態変数を示すインデックスである。
Figure 2021124978
Figure 2021124978
Figure 2021124978
ここで、組合せ最適化問題では、1−Hot制約と呼ばれる制約条件が課されることがある。1−Hot制約とは、「ある状態変数の組の中で、値が1の変数は1個だけである」という制約である。例えば、図5では、n個(nは2以上の整数)の状態変数x,x,…,が、n行n列で示されている。ただし、(状態変数の数)≠nでもよい。グループg11,g12は、行に対応する状態変数のグループの例を示す。グループg21,g22は、列に対応する状態変数のグループの例を示す。
各行に対応する状態変数のグループに1−Hot制約を課す場合、各行の状態変数の和は1である。例えば、グループg11に属する状態変数の和は1である。また、グループg12に属する状態変数の和は1である。あるいは、各列に対応する状態変数のグループに1−Hot制約を課す場合、各列の状態変数の和は1である。例えば、グループg21に属する状態変数の和は1である。グループg22に属する状態変数の和は1である。
1−Hot制約の第1の例として、「1つのトラックは、ある時刻に1つの拠点またはデポに滞在する」という制約が挙げられる。あるいは、1−Hot制約の第2の例として、「1つの拠点はトラックによって1回だけ訪問される」という制約が挙げられる。
1−Hot制約は、目的関数において、比較的エネルギーの高い状態として表される。このため、1つの状態変数の遷移、すなわち、1ビットフリップのみを繰り返していると、ある状態から、1−Hot制約を満たさない状態を経由する別の状態に遷移し難くなり、より良い解への到達可能性が低減する。そこで、最適化装置200は、「1−Way 1−Hot」(1W1Hと表記する)および「2−Way 1−Hot」(2W1Hと表記する)と呼ばれるビットフリップ制御を行う。
1W1Hでは、1つの1−Hot制約を満たすように、1度に2つの状態変数の値を変化させる。すなわち、式(10)のような2ビットフリップである。i,jは、フリップさせる状態変数の組を示すインデックスの組である。エネルギー変化ΔEは、式(11)で表される。状態変数xに対応する局所場の変化Δhは、式(12)で表される。
Figure 2021124978
Figure 2021124978
Figure 2021124978
2W1Hでは、2つの1−Hot制約を満たすように、1度に4つの状態変数の値を変化させる。すなわち、式(13)のような4ビットフリップである。i,j,k,lは、フリップさせる状態変数の組を示すインデックスの組である。図5では、インデックスi,j,k,lに対応する状態変数の組の例が示されている。2W1Hは、状態変数の数がnであり、n行の各行およびn列の各列でそれぞれ状態変数が、1−Hot制約が課されたグループとしてグループ化される場合に利用可能である。このときのエネルギー変化ΔEは、式(14)で表される。状態変数xに対応する局所場の変化Δhは、式(15)で表される。
Figure 2021124978
Figure 2021124978
Figure 2021124978
次に、情報処理システム50の処理手順を説明する。まずは、第1の処理例として、1ビットフリップまたは1W1H(2ビットフリップ)による探索を行う場合を例示する。
図6は、情報処理システムの第1の処理例を示すフローチャートである。
(S10)ノード数計算部130は、入力されたインスタンス情報に含まれる各拠点の需要量を小さい順に並べる。
(S11)ノード数計算部130は、トラックの積載量を超えない最大拠点ノード数を1番目のルートの最大拠点ノード数とする。最大拠点ノード数は、該当のルートで回り得る拠点ノードの最大数である。
(S12)ノード数計算部130は、N番目のルートの最大拠点ノード数を、累積需要量がNQを超えない最大の累積拠点数jをNで割ったときの商とする。ノード数計算部130は、全てのルートに対して最大拠点ノード数を決定し、各ルートに対する最大拠点ノード数のパターンを生成する。このようにして最大拠点ノード数を決めると、N番目のルートで回る拠点ノード数は、N番目のルートに対応する最大拠点ノード数以下になる。また、1番目のルートの最大拠点ノード数は、N個のルートそれぞれに対する最大拠点ノード数のうちの最大値となる。
(S13)定式化部140は、ステップS12で得られたパターンで定式化する。すなわち、定式化部140は、当該パターンに基づいて状態変数の数を決定し、決定した数の状態変数に対してCVRPを定式化する。定式化部140は、定式化により目的関数の情報を生成する。定式化部140は、「各ルートにおいて拠点ノードからデポノードへトラックが移動した後には複数の拠点ノードそれぞれへの巡回主体の移動を制限する」ことを示す制約項を、目的関数に追加する。第1の処理例では、当該制約項は、「各ルートにおいて拠点ノードからデポノードへトラックが移動した後には当該ルート内ではデポノードに留まる」ことを示す制約項となる。目的関数の情報は、式(1)で表されるイジングモデルのQUBO(Quadratic Unconstrained Binary Optimization)データであり、式(1)の{Wij}、{b}および定数項の情報を含む。
なお、定式化部140は、1W1Hを用いる場合、各状態変数に、1−Hot制約の対象となるグループを示すラベルを付与する。例えば、定式化部140は、図5のグループg11,g12のように、該当の状態変数が属するグループの識別情報をラベルとして状態変数に付与する。同一グループのラベルをもつ状態変数の間で、2ビットフリップが行われるように最適化装置200に指定するためである。
(S14)定式化部140は、目的関数の情報を最適化装置200に出力し、当該目的関数の情報に基づいて、最適化装置200による解探索を実行させる。なお、定式化部140が最適化装置200に出力する情報には、目的関数の情報に加えて、上記のラベルの情報や探索の初期状態を示す情報などが含まれ得る。
最適化装置200は、SA法やレプリカ交換法などによる解探索を実行し、解探索により得られた解をルート計算部150に出力する。ルート計算部150は、最適化装置200から解を受信し、当該解をユーザにとって分かり易い形式に変換して、変換後の解の内容をディスプレイ111に表示させたり、他のコンピュータに送信したりする。
次に、第2の処理例として、2W1H(4ビットフリップ)による探索を行う場合を例示する。
図7は、情報処理システムの第2の処理例を示すフローチャートである。
(S20)ノード数計算部130は、入力されたインスタンス情報に含まれる各拠点の需要量を小さい順に並べる。
(S21)ノード数計算部130は、トラックの積載量を超えない最大拠点ノード数を1番目のルートの最大拠点ノード数とする。
(S22)ノード数計算部130は、N番目のルートの最大拠点ノード数を累積需要量がNQを超えない最大の累積拠点数jをNで割ったときの商とする。ノード数計算部130は、全てのルートに対して最大拠点ノード数を決定し、各ルートに対する最大拠点ノード数のパターンを生成する。
(S23)定式化部140は、ステップS22で得られた各ルートの最大拠点ノード数に応じてダミーデポをビットとして増やす。すなわち、定式化部140は、拠点ノードに対応する状態変数に加えて、状態変数の数が整数Mの2乗(M)になるように、ダミーデポと呼ばれるダミーのデポノードに対応する状態変数を追加する。ダミーデポは、何れもデポとして扱われる。ここで、整数Mは、各ルートの最大拠点ノード数の和である。
(S24)定式化部140は、ステップS22で得られたパターンで、ダミーデポ間の制約を考慮して定式化する。すなわち、定式化部140は、M個の状態変数に対してCVRPを定式化する。定式化部140は、定式化により目的関数の情報を生成する。定式化部140は、「各ルートにおいて拠点ノードからデポノードへトラックが移動した後には複数の拠点ノードそれぞれへの巡回主体の移動を制限する」ことを示す制約項を、目的関数に追加する。第2の処理例では、当該制約項は、「各ルートにおいて拠点ノードからダミーデポへトラックが移動した後には当該ルート内では別のダミーデポを巡回する」ことを示す制約項となる。目的関数の情報は、式(1)で表されるイジングモデルのQUBOデータであり、式(1)の{Wij}、{b}および定数項の情報を含む。
また、定式化部140は、各状態変数に、1−Hot制約の対象となるグループを示すラベルを付与する。例えば、定式化部140は、図5のグループg11,g12,g21,g22のように、該当の状態変数が属するグループの識別情報をラベルとして状態変数に付与する。同一グループのラベルをもつ状態変数の間で、2ビットフリップが行われることで、図5の行列方向の2ビットフリップの組合せにより4ビットフリップが行われるように最適化装置200に指定するためである。
(S25)定式化部140は、目的関数の情報を最適化装置200に出力し、当該目的関数の情報に基づいて、最適化装置200による2W1Hを用いた解探索を実行させる。なお、定式化部140が最適化装置200に出力する情報には、目的関数の情報に加えて、上記のラベルの情報や探索の初期状態を示す情報などが含まれ得る。
最適化装置200は、SA法やレプリカ交換法などによる解探索を実行し、解探索により得られた解をルート計算部150に出力する。ルート計算部150は、最適化装置200から解を受信し、当該解をユーザにとって分かり易い形式に変換して、変換後の解の内容をディスプレイ111に表示させたり、他のコンピュータに送信したりする。
次に、上記の第1の処理例のステップS10〜S12および第2の処理例のステップS20〜S22における各ルートの最大拠点ノード数の決定例を説明する。
図8は、各ルートの最大拠点ノード数決定例(その1)を示す図である。
CVRPとして、E−n13k4を例示する。ただし、ノード数計算部130は、E−n22k4などの他の種類の問題でも同様にして各ルートの最大拠点ノード数を決定可能である。図8の例では、トラックの最大積載量QをQ=6000とする。
まず、ルート計算部150は、12個の拠点ノードを需要量の小さい順、すなわち、需要量の昇順に並べる。そして、需要量の小さい順に累積需要量を求める。テーブル121は、12個の拠点ノードに対する累積需要量を示す。テーブル121は、記憶部120に格納される。
テーブル121は、拠点、需要量および累積需要量の項目を含む。拠点の項目には、拠点ノードを需要量の昇順に数えた累積拠点数が登録される。需要量の項目には、拠点ノードの需要量が登録される。累積需要量の項目には、需要量の昇順に需要量を累積した累積需要量が登録される。
ノード数計算部130は、N番目のルートの最大ノード数R[N]を式(16)により求める。Nはルートを表すインデックスである。
Figure 2021124978
累積拠点数jは、累積需要量がN×Qを超えない最大の拠点数である。累積拠点数jは、累積拠点ノード数jと呼ばれてもよい。式(16)は、jをNで割った商の整数部をR[N]とすることを示す。
図8の例では、N=1に対して累積需要量が1×Q=6000を超えない最大の累積拠点数jは、j=4である。よって、R[1]=4である。R[1]は、1のルートにおける拠点ノードの最大数に相当する。他のルートにおける最大拠点ノード数は、R[1]以下になる。
続いて、N=2に対して累積需要量が2×Q=12000を超えない最大の累積拠点数jは、j=8である。よって、R[2]=4である。
N=3に対して累積需要量が3×Q=18000を超えない最大の累積拠点数jは、j=11である。よって、R[3]=3である。
N=4に対して累積需要量が4×Q=24000を超えない最大の累積拠点数jは、j=12である。よって、R[4]=3である。
この場合、各ルートに対する最大拠点ノード数の組、すなわち、最大拠点ノード数のパターンは(4,4,3,3)となる。
需要量の小さい順に並べたことにより、R[1]、R[2]、…、R[N]は、R[1]≧R[2]≧…≧R[N]のように単調減少列となる。N番目のルートについて、R[N]がjをNで割った数よりも大きくなることは、当該単調減少列となることに矛盾するので、式(16)によりR[N]を求めることができる。
パターン(4,4,3,3)は、図8の条件における各ルートに対する拠点ノード数の有り得るパターン(4,4,3,1)、(4,4,2,2)、(4,3,3,2)、(3,3,3,3)を全て包含する。有り得るパターンとは、各ルートで回る拠点ノード数の実現可能な組合せを示し、例えば、トラックの最大積載量の制約と各拠点に運搬する荷物の重量との関係などから求めることができる。有り得るパターンでは、各ルートで回る拠点数が固定的に決定されており、各ルートで回る拠点数の全ルートでの合計は、訪問対象の全拠点数に一致する。
図9は、各ルートの最大拠点ノード数決定例(その2)を示す図である。
図9では、Q=5000の場合を例示する。他の条件は図8の例と同じである。
この場合、N=1に対してj=4である。よって、R[1]=4である。N=2に対してj=7である。よって、R[2]=3である。N=3に対してj=10である。よって、R[3]=3である。N=4に対してj=12である。よって、R[4]=3である。この場合、各ルートに対する最大拠点ノード数の組、すなわち、最大拠点ノード数のパターンは(4,3,3,3)となる。
図10は、各ルートの最大拠点ノード数決定例(その3)を示す図である。
全拠点に対する需要量の合計がトラックの積載量Q×(ルート総数よりも小さい数)より小さくなる場合も、図8,9と同様にして各ルートの最大拠点ノード数を計算できる。すなわち、あるルートK(K≠ルート総数k)が存在しており、Kについて式(17)となる場合である。
Figure 2021124978
ここで、条件として、予めルート数、すなわち、トラックの数が決まっている場合は、1つのルートで少なくとも1つのルートを回ることになる。K番目のルートにおいて、式(17)が満たされる場合、ノード数計算部130は、残りのルートが少なくとも1つの拠点を取れるように、拠点の取り方を変更してもよい。
図10では、Q=7000とし、他の条件が図8の例と同じである場合を考える。
図10の例では、N=1に対してj=5である。よって、R[1]=5である。N=2に対してj=9である。よって、R[2]=4である。
N=3に対してj=11である。ただし、図8,9と同様の方法を用いる場合、j=12である。一方、N=K<kであり、K×Q=3×7000=21000≧Σd=18200であるため、残りのN=4番目のルートに少なくとも1つの拠点ノードが割り当てられるように、j=12−1=11とする。ここで、jについて、拠点ノード数「12」から引いた「1」は、3番目のルートよりも後の残りのルートの数である。よって、R[3]=3である。そして、N=4に対してj=12である。よって、R[4]=3である。
この場合、各ルートに割り当てる最大拠点ノード数の組、すなわち、最大拠点ノード数のパターンは(5,4,3,3)となる。
一方、図10の例において図8,9と同様の方法により求められる最大拠点ノード数のパターンは、(5,4,4,3)である。図10の方法のように、パターンに属する最大拠点ノード数を少なくすることで、定式化に用いられる状態変数の数の増加を抑えることができる。
なお、各ルートに割り当てる最大拠点ノード数の決定方法には他の方法も考えられる。例えば、ノード数計算部130は、図8のE−n13k4の問題の例において、1番目のルートに対する最大拠点ノード数を4と決定し、2番目以降のルートに対しても当該最大拠点ノード数4を一律に割り当てることで(4,4,4,4)のパターンとしてもよい。
あるいは、ノード数計算部130は、各ルートに対する拠点ノード数の有り得る複数のパターンを全て列挙してもよい。そして、ノード数計算部130は、列挙した複数のパターンに基づいて、各ルートにおける最大値を組合せることで、各ルートに対する最大拠点ノード数を示す1つのパターンを決定してもよい。具体的には次の通りである。
図11は、各ルートの最大拠点ノード数決定例(その4)を示す図である。
ノード数計算部130は、拠点の需要量を小さい順に並び替えたとき、トラックの最大積載量を超えない拠点数の組合せを全て求める。ノード数計算部130は、各ルートに対して求めた拠点数以下で、合計が拠点ノードの総数に一致する組合せを全て列挙する。こうして得られた組合せが、拠点ノード数の有り得るパターンである。
例えば、ノード数計算部130は、E−n13k4における拠点ノードの総数「12」に対して、拠点ノード数の有り得るパターン(4,4,3,1)、(4,4,2,2)、(4,3,3,2)、(3,3,3,3)を列挙し得る。この場合、ノード数計算部130は、列挙した複数のパターンに基づいて、各ルートにおける最大値を抽出し、当該最大値を組合せることで、(4,4,3,3)という最大拠点ノード数の1つのパターンを決定してもよい。
ただし、最適化装置200による余計な探索を省いて探索を効率化するには、情報処理装置100により、パターンに属する数値の合計を小さくして状態変数の数を減らすことが好ましい。例えば、図8〜10の方法を用いることで、図11の方法よりも状態変数の数を減らすことができる。
次に、E−n13k4に対するルートの計算の具体例を説明する。まず、2W1Hを用いる場合を例示する。
図12は、ルートの計算例(その1)を示す図である。
最適化装置200において2W1Hを用いる場合、定式化部140は、ダミーデポに対応する状態変数を追加することで、状態変数の数が整数を2乗した値になるように調整する。
定式化部140は、図8〜11に示される方法で決定されたパターンRに基づいてダミーデポの数を決定する。パターンRは、式(18)で表される。
Figure 2021124978
式(18)のkは全ルート数である。また、パターンRに属する最大拠点ノード数の合計を|R|と表す。|R|は、式(19)で表される。
Figure 2021124978
図12では、図8の例、すなわち、R[1]=4、R[2]=4、R[3]=3、R[4]=3の場合を例示する。この場合、|R|=14である。マトリクス70は、状態変数列、すなわち、ビット列を示す。マトリクス70の1つの行は1つの時刻に対応する。マトリクス70の1つの列は1つのノードに対応する。1つのノードは、1つの拠点ノードまたは1つのダミーデポに相当する。
状態変数列は、式(20)で表される。
Figure 2021124978
jはノードを示すインデックスである。tは時刻を示すインデックスである。xj,tは、時刻tにノードjにいれば「1」、いなければ「0」である。マトリクス70では、xj,t=1の場合に「1」を記載し、xj,t=0の場合に「0」の表記を省略し、空欄としている。
Iは拠点ノードの集合であり、式(21)で表される。
Figure 2021124978
nは、E−n13k4において与えられたノード数「13」である。n−1は、拠点ノード数である。
また、式(20)のDは、ダミーデポの集合であり、式(22)で表される。
Figure 2021124978
|R|−n+1は、ダミーデポの数である。更に、式(20)のTは、時刻の集合であり、式(23)で表される。
Figure 2021124978
上記のように、定式化部140は、パターンに属する最大ノード数の合計|R|と拠点ノード数(n−1)の差(|R|−n+1)をダミーデポの数とする。これにより、状態変数の数が|R|となるように調整される。図12の例では、ダミーデポの数は、14−12=2である。また、状態変数の数は、14=196である。マトリクス70は、状態変数列が14行14列の正方形状で表される。この場合、最適化装置200における2W1H(4ビットフリップ)を利用可能である。
マトリクス70の例では、t=1〜4が1番目のルート、すなわち、1台目のトラックに対応する。t=5〜8が2番目のルート、すなわち、2台目のトラックに対応する。t=9〜11が3番目のルート、すなわち、3台目のトラックに対応する。t=12〜14が4番目のルート、すなわち、4台目のトラックに対応する。なお、1台のトラックが4回に分けて4つのルートを回ると考えても同じである。
「F」の文字が付された行は、各ルートにおいて、トラックが、起点のデポの次に拠点を訪問する時刻を示す。また、「L」の文字が付された行は、各ルートにおいて、トラックが、終点のデポを訪問する時刻の1つ前の時刻を示す。なお、起点および終点では、トラックは必ずデポに滞在することが分かっているため、定式化部140は、各ルートの起点および終点に対応する時刻について状態変数を省略する。
Fの行は、式(24)で表される。Lの行は、式(25)で表される。
Figure 2021124978
Figure 2021124978
S[l](l=0,1,2,…,k)は、式(26)、(27)で表される。
Figure 2021124978
Figure 2021124978
この場合、定式化部140は、式(28)のように目的関数E(x,y)を定式化する。
Figure 2021124978
C(x)はコストの総和を示すコスト項である。P(x)は、ダミーデポに関する制約を示す制約項である。P(x,y)は、スラック変数yの不等式制約を示す制約項である。スラック変数yは、0,1の値をとるバイナリ変数であり、スラックビットと呼ばれてもよい。スラック変数yは、不等式制約を等式制約に変換するために用いられる。定式化部140は、トラックの最大積載量と積み荷の需要量との関係をスラック変数yを用いて定式化する。
マトリクス70の例では、2W1Hを利用可能である。このため、定式化部140は、1−Hot制約に対応する制約項を目的関数に含めなくてよい。
式(28)のコスト項C(x)は、式(29)で表される。
Figure 2021124978
{ci,j}(i,j∈I∪V)は、ノード間のコストである。{ci,j}は、拠点ノード間のコスト、拠点ノードとダミーデポとの間のコスト、および、ダミーデポ間のコストを含む。ある拠点ノードと各ダミーデポとのコストは全て同じである。また、ダミーデポ同士の間のコストは0である。インデックスoは、ダミーデポを表す代表のインデックスであり、D,D,…それぞれと同じ意味である。また、バックスラッシュ記号は、バックスラッシュ記号の左側の集合(例えばT)から、バックスラッシュ記号の右側の集合(例えばL)の要素を除くことを示す。
コスト項C(x)の右辺第一項は、ノード間のコストの総和である。当該第一項は、時刻tでノードiにいて、時刻t+1で別のノードjにいれば、ノードi,jの間の移動コストcijがかかることを示す。Lの時刻が除かれる理由は、ルートを跨いでノード間を移動することを防ぐためである。
コスト項C(x)の右辺第二項は、各ルートでのLおよびFに属する時刻に訪問するノードとデポとの間のコストの総和である。当該第二項は、LおよびFに属する時刻に訪問するノードとデポとが必ず繋がっているため、その分のコストを補正する項である。上記のように予めデポにいることが分かっていることを利用して一部のビットを削減しているため、当該第二項によりコストを補正する。なお、当該ビットの削減により、余計なビットだけでなく制約項も削減される。
式(28)の制約項P(x)は、式(30)で表される。
Figure 2021124978
式(30)のAは、予め与えられる定数である。
制約項P(x)は、同一のルート内で、あるダミーデポに一度入ったら、そのルート内では別のダミーデポを巡回する制約を示す。例えば、マトリクス70の例では、R[3]に対応するルート内で、t=10,11においてダミーデポD,Dの間での巡回が生じている。制約項P(x)がない場合、1つのルート内で一度デポに戻って再び拠点に移動してしまう可能性が生じる。これは、ルートの数が増えることに相当する。ルートの数が増えてしまった解は求めるべき解ではない。制約項P(x)により、最適化装置200において、求めるべき解ではない状態の生成が抑制され、解探索が効率化される。なお、式(30)の定数Aは、予め与えられる。制約項P(x)は、第1の実施の形態の制約項32の一例である。
制約項P(x,y)は、式(31)で表される。
Figure 2021124978
式(31)のBは、予め与えられる定数である。
制約項P(x,y)は、トラックの積載量制約をスラック変数yを用いて表した制約である。スラック変数yの総数はルート総数k個である。トラックの積載量制約は、不等式制約である。制約項P(x,y)は、各ルートl(l=1,…,k)における需要量の合計をQ以下とする制約である。図12の例では、4ルート分の項がペナルティとして加算される。
定式化部140は、式(29)、(30)、(31)の全ての項の和を取った後、非対角成分を{Wij}、対角成分を{b}として、最適化装置200に入力する。式(31)はスラック変数を含むので、目的関数は状態変数に加えてスラック変数を含む。このように、目的関数はスラック変数を含んでもよい。
マトリクス70は、最適化装置200により計算された解を示す。マトリクス70で示される解は、図8の問題例に対する最適解となっている。マトリクス70で示される解は、以下のようなルートを示す。ここで、「−>」は、「−>」の左側のノードから「−>」の右側のノードへトラックが移動することを示す。また、拠点をマトリクス70における拠点ノードのインデックスで示す。
1番目のルートは、デポ−>6−>10−>12−>9−>デポである。
2番目のルートは、デポ−>11−>4−>7−>2−>デポである。
3番目のルートは、デポ−>1−>ダミーデポ−>ダミーデポ−>デポであり、これはデポ−>1−>デポに相当する。ルート途中でダミーデポに帰還した場合には、当該ルートの終点に達したとみなすという解の解釈は、ルート計算部150により行われる。
4番目のルートは、デポ−>3−>5−>8−>デポである。
なお、式(29)の目的関数において、ノード間のコストが三角不等式を満たすものの場合、定式化部140は、A=0、すなわち、制約項P(x)=0としてよい。三角不等式を満たすコストの例として、数学的な意味の距離が挙げられる。また、ノード間のコストが三角不等式を満たさないものの場合、A≠0とする。「同一のルート内でデポに一度戻って、再び拠点に行く」という解が違反解として生じてしまうためである。
図13は、イタレーション数と正解レプリカ数との関係の第1の例を示す図である。
グラフ80は、E−n13k4に対し、最適化装置200でレプリカ交換法および2W1Hを用いる場合のイタレーション数と、最適解に到達したレプリカ数との関係を示す。当該関係を得るために、E−n13k4として図12の最適解が予め分かっているものを用いている。また、最適解に到達したレプリカを正解レプリカと言う。1イタレーションは、1回分のビットフリップに相当する。2W1Hでは1回分のビットフリップが4ビットフリップのことがある。また、解探索に用いるレプリカの総数は30である。
グラフ80の横軸は、解探索におけるイタレーション数の常用対数である。グラフ80の縦軸は、正解レプリカ数である。2W1Hを用いる場合、10程度のイタレーション数で正解レプリカが表れている。
一方、2W1Hを用いずに1ビットフリップで解探索を行う既存の方法では、例えば、最適解が存在することが分かっているパターン(4,4,3,1)に対して解探索を行う場合、10程度のイタレーション数で正解レプリカが表れる。したがって、2W1Hを用いるようにすることで、10倍程度演算が高速化される。
また、新規の問題に対しては、複数のパターンのうちのどのパターンに最適解が存在するか分からないため、既存の方法では、複数のパターンを全て解くことになる。これに対し、情報処理装置100によれば、例えば、パターン(4,4,3,3)のように当該複数のパターンを包含した1つのパターンを最適化装置200で解けばよくなるので、最適化装置200による求解の実行回数が低減される。
図14は、イタレーション数と正解レプリカ数との関係の第2の例を示す図である。
グラフ81は、E−n22k4に対し、最適化装置200でレプリカ交換法および2W1Hを用いる場合のイタレーション数と、正解レプリカ数との関係を示す。当該関係を得るために、E−n22k4として最適解が予め分かっているものを用いている。解探索に用いるレプリカの総数は30である。
グラフ81の横軸は、解探索におけるイタレーション数の常用対数である。グラフ81の縦軸は、正解レプリカ数である。2W1Hを用いる場合、10程度のイタレーション数で正解レプリカが表れている。
一方、2W1Hを用いずに1ビットフリップで解探索を行う既存の方法では、例えば、最適解が存在することが分かっているパターンに対して解探索を行う場合、10程度のイタレーション数で正解レプリカが表れる。したがって、2W1Hを用いるようにすることで、10000倍程度演算が高速化される。
また、新規の問題に対しては、複数のパターンのうちのどのパターンに最適解が存在するか分からないため、既存の方法では、複数のパターンを全て解くことになる。これに対し、情報処理装置100によれば、例えば、当該複数のパターンを包含した1つのパターンを最適化装置200で解けばよくなるので、最適化装置200による求解の実行回数が低減される。
次に、E−n13k4に対するルートの計算の他の例を説明する。1W1H(2ビットフリップ)、または、1ビットフリップを用いる場合の例である。
図15は、ルートの計算例(その2)を示す図である。
図15では、図8の例、すなわち、R[1]=4、R[2]=4、R[3]=3、R[4]=3の場合を例示する。この場合、|R|=14である。マトリクス71は、状態変数列、すなわち、ビット列を示す。マトリクス71の1つの行は1つの時刻に対応する。マトリクス71の1つの列は1つのノードに対応する。1つのノードは、1つの拠点ノードまたは1つのデポノードに相当する。状態変数の数は|R|×(ノード数n)であり、マトリクス71の例では、14×13=182である。図15では、デポノードを「D」と表記する。
状態変数列は、式(20)で表される。xj,tは、時刻tにノードjにいれば「1」、いなければ「0」である。マトリクス71では、xj,t=1の場合に「1」を記載し、xj,t=0の場合に「0」の表記を省略し、空欄としている。
1W1Hを用いる場合、定式化部140は式(32)のように目的関数E(x,y)を定式化する。
Figure 2021124978
式(32)では、式(28)の制約項P(x)の代わりに、制約項P(x)が追加されている。また、式(32)では、式(28)にはない制約項P(x)が追加されている。各時刻でトラックが1つの拠点またはデポを訪れるという1−Hot制約は、最適化装置200の1W1Hにより対応するため、当該1−Hot制約に対応する制約項は不要となる。
式(32)の制約項P(x)は、式(33)で表される。
Figure 2021124978
式(33)のAは、予め与えられる定数である。また、変数xD,tは、時刻tにデポにいれば「1」、いなければ「0」の値を取るバイナリ変数である。制約項P(x)は、同一のルート内で一度デポに入ったらデポに留まり続けることを表す制約である。制約項P(x)は、第1の実施の形態の制約項32の一例である。
式(32)の制約項P(x)は、式(34)で表される。
Figure 2021124978
式(34)のC,Dは、予め与えられる定数である。式(34)の右辺第一項は、拠点に関する1−Hot制約、すなわち、各拠点はトラックにより1回だけ訪問されることを表す。式(34)の右辺第二項は、デポを訪れる回数が(|R|−n+1)回であるという制約である。ただし、各ルートの起点と終点はデポであり、マトリクス71の例では各ルートの起点と終点に対応するビットを除去しているため、各ルートの起点と終点でデポを訪れる回数を除いている。図15の例では、|R|−n+1=14−13+1=2である。
マトリクス71は、最適化装置200により計算された解を示す。マトリクス71で示される解は、図8の問題例に対する最適解となっている。マトリクス71で示される解は、マトリクス70で示される各ルートと同じである。マトリクス71の例では、R[3]に対応するルート内で、t=10,11においてトラックがデポDに留まり続ける解となっている。
1W1Hを用いずに、1ビットフリップの探索を行う場合、定式化部140は、式(35)のように目的関数E(x,y)を定式化する。
Figure 2021124978
式(35)では、式(32)に対して、制約項P(x)が追加されている。制約項P(x)は、各時刻でトラックが1つの拠点またはデポを訪れるという1−Hot制約を表す。
式(35)の制約項P(x)は、式(36)で表される。
Figure 2021124978
式(36)のEは、予め与えられる定数である。
目的関数E(x,y)を式(35)のように定式化する場合も、マトリクス71で示される解と同様の解が取得され得る。ただし、1W1Hを用いない場合よりも、1W1Hを用いる方が求解性能は向上する。例えば、1W1Hを用いない場合よりも、1W1Hを用いる方がより良い解に到達する可能性を高められる。また、1W1Hを用いない場合よりも、1W1Hを用いる方が高速に解を求められる。更に、1W1Hよりも2W1Hを用いる方が求解性能は向上する。
次に、処理手順の比較例を説明する。比較例の処理主体をCPU101とする。
図16は、比較例を示すフローチャートである。
(S30)CPU101は、入力されたインスタンス情報に含まれる各拠点の需要量を小さい順に並べる。
(S31)CPU101は、トラックの積載量を超えない最大拠点ノード数を1番目のルートのノード数とする。
(S32)CPU101は、2番目以降のルートに関して有り得るノード数を求め、各ルートに対するノード数の全ての組合せを列挙する。例えば、図8のE−n13k4の問題に対して、CPU101は、(4,4,3,1)、(4,4,2,2)、(4,3,3,2)、(3,3,3,3)の4つの組合せ、すなわち、4つのパターンを列挙する。
(S33)CPU101は、列挙された組合せで未選択のものがあるか否かを判定する。未選択のものがある場合、CPU101は、ステップS34に処理を進める。未選択のものがない場合、CPU101は、ステップS37に処理を進める。
(S34)CPU101は、列挙された組合せから未選択の組合せを1つ選択する。
(S35)CPU101は、未選択の組合せに対して目的関数の情報を生成し、当該目的関数の情報を最適化装置200に出力することで、最適化装置200による求解を実行させる。
(S36)CPU101は、最適化装置200により求められた解を取得し、得られた解が最低エネルギーを更新したら、RAM102に保持している解を新たに取得した解に置き換える。そして、CPU101は、ステップS33に処理を進める。
(S37)CPU101は、最後に最低エネルギーを更新した解を最適解として出力する。
このように、各ルートに対して有り得るノード数の組合せを全て列挙する方法では、当該組合せの数だけ目的関数を生成し、目的関数ごとに最適化装置200による求解を実行させることになる。例えば、当該組合せの数がN個の場合には、目的関数がN個になり、最適化装置200による求解をN回実行することになる。
一方、情報処理装置100によれば、各ルートに対して有り得るノード数の全ての組合せを包含した1つの組合せに対して、目的関数を生成し、当該目的関数で最適化装置200による求解を実行させればよい。このため、求解の実行回数が比較例の方法に比べて1/Nに低減される。このように、求解の実行回数を低減することができる。
なお、1回の求解当たりの解探索のイタレーション数、すなわち、ビットフリップの回数は、比較例の方法と第2の実施の形態とで同じとすることができる。すると、第2の実施の形態では、比較例の方法よりも解探索のイタレーション数を減らせ、比較例の方法よりも早く解を得られる。
以上をまとめると、情報処理装置100は、例えば次の機能を有する。以下の説明において、mは2以上の整数とする。
ノード数計算部130は、複数のルートのうちの1番目のルートに、取得した1のルートに対する拠点ノードの最大数に等しい第1の最大拠点ノード数を割り当てる。また、ノード数計算部130は、複数のルートのうちのm番目のルートに、m−1番目のルートに割り当てた第m−1の最大拠点ノード数以下で0より大きい第mの最大拠点ノード数を割り当てる。そして、ノード数計算部130は、複数のルートに割り当てた複数の最大拠点ノード数に基づいて状態変数の数を決定する。
これにより、複数のルートに対して有り得る拠点ノード数の複数のパターンを包含するように、複数のルートに対する最大拠点ノード数のパターンを決定し、決定した当該パターンに対する問題の定式化が可能になる。
一例では、ノード数計算部130は、複数の拠点ノードに対応する複数の需要量を小さい方から順番に累積した累積需要量が巡回主体における需要量の容量を超えない最大の累積拠点ノード数を、1のルートに割り当てる拠点ノードの最大数として取得する。また、ノード数計算部130は、累積需要量が当該容量のm倍を超えない最大の累積拠点ノード数をmで割った商の整数部を、m番目のルートに割り当てる第mの最大拠点ノード数とする。
これにより、1のルートに割り当てる拠点ノードの最大数を一律に複数のルートに割り当てたり、図11の方法を用いたりするよりも、状態変数の数を少ない数に抑えることができる。前述のように、状態変数の数を少なく抑えるほど、最適化装置200での余計な探索を抑えられる。
また、ノード数計算部130は、巡回主体の需要量の容量のm−1倍が複数の需要量の合計以上の場合、m番目以降の残りのルートの第1の数を複数の拠点ノードの総数から引いた第2の数を求める。そして、ノード数計算部130は、第2の数をm−1で割った商の整数部を、m−1番目のルートに割り当てる第m−1の最大拠点ノード数とする。
これにより、状態変数の数をより少ない数に抑えることができる。
他の例では、ノード数計算部130は、複数のルートに対して有り得る複数の拠点ノード数のパターンであって、当該パターンに属する複数の拠点ノード数の合計が複数の拠点ノードの総数に等しいパターンを複数取得してもよい。そして、ノード数計算部130は、取得した複数のパターンから各ルートに対応する拠点ノード数の最大値を抽出し、各ルートに対して抽出した最大値を、当該ルートに割り当てる最大拠点ノード数としてもよい。
これにより、1のルートに割り当てる拠点ノードの最大数を一律に複数のルートに割り当てるよりも、状態変数の数を少ない数に抑えることができる。
また、ノード数計算部130は、取得した最大数に基づいて複数のルートに割り当てられる複数の最大拠点ノード数の合計が、複数の拠点ノードの総数よりも大きくなることを許容する。
これにより、複数のルートに対して有り得る拠点ノード数の複数のパターンを包含するように、複数のルートに対する最大拠点ノード数のパターンを決定し、決定した当該パターンに対する問題の定式化が可能になる。
また、最適化装置200、すなわち、探索部20で2W1Hを利用可能な場合、定式化部140は、状態変数の数が、複数のルートに割り当てる複数の最大拠点ノード数の合計の2乗に等しくなるように、ダミーのデポノードに対応する状態変数を追加する。
これにより、最適化装置200において、2W1Hにより高速に解探索を行える。
このとき、定式化部140は、1度の状態遷移に対して値を変化させる4つの状態変数の組を示す識別情報を最適化装置200、すなわち、探索部20に出力する。当該識別情報は、例えば4つの状態変数が属する4つのグループを識別する4つのラベルでもよい。この場合、1つの状態変数は、図5に示されるように行方向および列方向の2つのグループに属するので、当該2つのグループに対応する2つのラベルが付与される。
これにより、最適化装置200に対して2W1Hでの4ビットフリップを行う状態変数の組を適切に指示し、最適化装置200により2W1Hでの解探索を適切に行わせることができる。
更に、定式化部140は、2つの拠点ノードの間、および、拠点ノードとデポノードとの間のコストが三角不等式を満たす場合、制約項Pを0に設定してもよい。
これにより、制約項Pが目的関数E(x,y)に含まれることによる解探索への影響を小さくできる。
なお、第1の実施の形態の情報処理は、処理部11にプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、CPU101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体113に記録できる。
例えば、プログラムを記録した記録媒体113を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体113に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
10 情報処理装置
11 処理部
12 出力部
20 探索部
30 目的関数
31 コスト項
32 制約項
R1,R2 ルート
d1 デポノード
n1,n2,…,n7 拠点ノード

Claims (12)

  1. 巡回主体が複数の拠点ノードを巡回するための複数のルートであって、デポノードを各ルートの起点および終点とする前記複数のルートを求める組合せ最適化問題に関して、1のルートに割り当てる拠点ノードの最大数を取得し、前記最大数に基づいて前記組合せ最適化問題の定式化に用いる状態変数の数を決定し、決定した前記数の前記状態変数に対して、各ルートにおいて前記拠点ノードから前記デポノードへ前記巡回主体が移動した後には同一ルート内での前記複数の拠点ノードそれぞれへの前記巡回主体の移動を制限することを示す制約項を含む目的関数の情報を生成する処理部と、
    前記目的関数に含まれる前記状態変数の組により表される基底状態を探索する探索部に、生成した前記目的関数の情報を出力する出力部と、
    を有する情報処理装置。
  2. 前記処理部は、
    前記複数のルートのうちの1番目のルートに、取得した前記最大数に等しい第1の最大拠点ノード数を割り当て、前記複数のルートのうちのm(mは2以上の整数)番目のルートに、m−1番目のルートに割り当てた第m−1の最大拠点ノード数以下で0より大きい第mの最大拠点ノード数を割り当て、
    前記複数のルートに割り当てた複数の最大拠点ノード数に基づいて前記状態変数の前記数を決定する、
    請求項1記載の情報処理装置。
  3. 前記処理部は、
    前記複数の拠点ノードに対応する複数の需要量を小さい方から順番に累積した累積需要量が前記巡回主体における需要量の容量を超えない最大の累積拠点ノード数を前記最大数として取得し、
    前記累積需要量が前記容量のm倍を超えない最大の累積拠点ノード数をmで割った商の整数部を、前記m番目のルートに割り当てる前記第mの最大拠点ノード数とする、
    請求項2記載の情報処理装置。
  4. 前記処理部は、前記容量のm−1倍が前記複数の需要量の合計以上の場合、m番目以降の残りのルートの第1の数を前記複数の拠点ノードの総数から引いた第2の数をm−1で割った商の整数部を、前記m−1番目のルートに割り当てる前記第m−1の最大拠点ノード数とする、
    請求項3記載の情報処理装置。
  5. 前記処理部は、
    前記複数のルートに対して有り得る複数の拠点ノード数のパターンであって、前記パターンに属する前記複数の拠点ノード数の合計が前記複数の拠点ノードの総数に等しい前記パターンを複数取得し、複数の前記パターンから各ルートに対応する拠点ノード数の最大値を抽出し、
    各ルートに対して抽出した前記最大値を、当該ルートに割り当てる最大拠点ノード数とする、
    請求項2記載の情報処理装置。
  6. 前記複数の最大拠点ノード数の合計は、前記複数の拠点ノードの総数よりも大きい、
    請求項2記載の情報処理装置。
  7. 前記処理部は、前記状態変数の前記数が、前記最大数に基づいて前記複数のルートに割り当てられる複数の最大拠点ノード数の合計の2乗に等しくなるように、ダミーの前記デポノードに対応する前記状態変数を追加する、
    請求項1記載の情報処理装置。
  8. 前記出力部は、1度の状態遷移に対して値を変化させる4つの前記状態変数の組を示す識別情報を前記探索部に出力する、
    請求項7記載の情報処理装置。
  9. 前記処理部は、2つの前記拠点ノードの間、および、前記拠点ノードと前記デポノードとの間のコストが三角不等式を満たす場合、前記制約項を0に設定する、
    請求項7記載の情報処理装置。
  10. コンピュータに、
    巡回主体が複数の拠点ノードを巡回するための複数のルートであって、デポノードを各ルートの起点および終点とする前記複数のルートを求める組合せ最適化問題に関して、1のルートに割り当てる拠点ノードの最大数を取得し、
    前記最大数に基づいて前記組合せ最適化問題の定式化に用いる状態変数の数を決定し、
    決定した前記数の前記状態変数に対して、各ルートにおいて前記拠点ノードから前記デポノードへ前記巡回主体が移動した後には同一ルート内での前記複数の拠点ノードそれぞれへの前記巡回主体の移動を制限することを示す制約項を含む目的関数の情報を生成し、
    前記目的関数に含まれる前記状態変数の組により表される基底状態を探索する探索部に、生成した前記目的関数の情報を出力する、
    処理を実行させるプログラム。
  11. コンピュータが、
    巡回主体が複数の拠点ノードを巡回するための複数のルートであって、デポノードを各ルートの起点および終点とする前記複数のルートを求める組合せ最適化問題に関して、1のルートに割り当てる拠点ノードの最大数を取得し、
    前記最大数に基づいて前記組合せ最適化問題の定式化に用いる状態変数の数を決定し、
    決定した前記数の前記状態変数に対して、各ルートにおいて前記拠点ノードから前記デポノードへ前記巡回主体が移動した後には同一ルート内での前記複数の拠点ノードそれぞれへの前記巡回主体の移動を制限することを示す制約項を含む目的関数の情報を生成し、
    前記目的関数に含まれる前記状態変数の組により表される基底状態を探索する探索部に、生成した前記目的関数の情報を出力する、
    情報処理方法。
  12. 巡回主体が複数の拠点ノードを巡回するための複数のルートであって、デポノードを各ルートの起点および終点とする前記複数のルートを求める組合せ最適化問題に関して、1のルートに割り当てる拠点ノードの最大数を取得し、前記最大数に基づいて前記組合せ最適化問題の定式化に用いる状態変数の数を決定し、決定した前記数の前記状態変数に対して、各ルートにおいて前記拠点ノードから前記デポノードへ前記巡回主体が移動した後には同一ルート内での前記複数の拠点ノードそれぞれへの前記巡回主体の移動を制限することを示す制約項を含む目的関数の情報を生成し、生成した前記目的関数の情報を出力する情報処理装置と、
    前記情報処理装置により出力された前記目的関数の情報に基づいて、前記目的関数に含まれる前記状態変数の組により表される基底状態を探索する最適化装置と、
    を有する情報処理システム。
JP2020018245A 2020-02-05 2020-02-05 情報処理装置、プログラム、情報処理方法および情報処理システム Withdrawn JP2021124978A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020018245A JP2021124978A (ja) 2020-02-05 2020-02-05 情報処理装置、プログラム、情報処理方法および情報処理システム
US17/121,808 US20210239481A1 (en) 2020-02-05 2020-12-15 Information processing apparatus, recording medium, information processing method, and information processing system
EP20214957.1A EP3862936A1 (en) 2020-02-05 2020-12-17 Information processing apparatus, recording medium, information processing method, and information processing system
CN202011636678.0A CN113298284A (zh) 2020-02-05 2020-12-31 信息处理设备、记录介质、信息处理方法和信息处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020018245A JP2021124978A (ja) 2020-02-05 2020-02-05 情報処理装置、プログラム、情報処理方法および情報処理システム

Publications (1)

Publication Number Publication Date
JP2021124978A true JP2021124978A (ja) 2021-08-30

Family

ID=73855302

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020018245A Withdrawn JP2021124978A (ja) 2020-02-05 2020-02-05 情報処理装置、プログラム、情報処理方法および情報処理システム

Country Status (4)

Country Link
US (1) US20210239481A1 (ja)
EP (1) EP3862936A1 (ja)
JP (1) JP2021124978A (ja)
CN (1) CN113298284A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7498393B2 (ja) * 2020-06-05 2024-06-12 富士通株式会社 情報処理装置、情報処理方法、プログラム及び情報処理システム
CN117132010A (zh) * 2023-09-13 2023-11-28 东北农业大学 一种基于遗传算法的车辆配送路径优化方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3007507B2 (ja) * 1993-03-18 2000-02-07 株式会社日立製作所 経路決定方法、装置および地図管理装置および移動体管理システム
JP2816802B2 (ja) 1993-12-20 1998-10-27 株式会社エイ・ティ・アール人間情報通信研究所 配送問題における最適な配車と配送順序の探索装置および探索方法
JP4233361B2 (ja) 2003-03-10 2009-03-04 良明 水谷 配送拠点立地決定装置、決定方法、及びプログラム
JP2007241340A (ja) 2006-03-03 2007-09-20 Navitime Japan Co Ltd N分割巡回経路探索システム、経路探索サーバ、n分割巡回経路探索方法
EP2179385A2 (en) * 2007-07-09 2010-04-28 Technion Research & Development Foundation Ltd. Routing methods for multiple geographical entities
US8386397B1 (en) * 2009-12-21 2013-02-26 Amazon Technologies, Inc. System and method for constraint-based reduction of a solution space for vehicle routing
US20160048802A1 (en) * 2014-08-13 2016-02-18 Tianyu Luwang Transportation planning for a regional logistics network
US20160148136A1 (en) * 2014-11-24 2016-05-26 Boyi Ni Multiple sequential planning and allocation of time-divisible resources
CN104700251B (zh) * 2015-03-16 2018-02-02 华南师范大学 一种车辆调度问题的改进最大‑最小蚁群优化方法及系统
CN105354648B (zh) * 2015-12-12 2020-02-14 深圳力子机器人有限公司 Agv调度管理的建模及其优化方法
CN108491971B (zh) * 2018-03-20 2022-04-15 北京交通大学 基于出行计划的三维地图的最优路径规划方法
US11199853B1 (en) * 2018-07-11 2021-12-14 AI Incorporated Versatile mobile platform
CN109978274A (zh) * 2019-04-02 2019-07-05 海南阿凡题科技有限公司 调度路径的规划方法
US12014316B2 (en) * 2020-01-31 2024-06-18 Walmart Apollo, Llc Automatically planning delivery routes using clustering

Also Published As

Publication number Publication date
CN113298284A (zh) 2021-08-24
US20210239481A1 (en) 2021-08-05
EP3862936A1 (en) 2021-08-11

Similar Documents

Publication Publication Date Title
Zhen et al. Multi-depot multi-trip vehicle routing problem with time windows and release dates
JP7071638B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
Luo et al. Improved shuffled frog leaping algorithm and its multi-phase model for multi-depot vehicle routing problem
JP7007585B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP2020004387A (ja) 最適化問題計算プログラム及び最適化問題計算システム
US20210256179A1 (en) Information processing method and information processing system
US20210065087A1 (en) Information processing apparatus, combination optimization method, and computer-readable recording medium recording combination optimization program
JP2021124978A (ja) 情報処理装置、プログラム、情報処理方法および情報処理システム
CN114118506A (zh) 评估函数生成程序、评估函数生成方法及信息处理设备
Weinberg et al. Supply chain logistics with quantum and classical annealing algorithms
Bentley et al. Quantum computing for transport optimization
US20210248186A1 (en) Optimization apparatus, optimization method, and storage medium
US20210303754A1 (en) Optimization apparatus and optimization method
CN114168898A (zh) 信息处理系统、信息处理方法和程序
US11914740B2 (en) Data generalization apparatus, data generalization method, and program
JP7219402B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
Chen et al. Solving a 3-dimensional vehicle routing problem with delivery options in city logistics using fast-neighborhood based crowding differential evolution algorithm
JP2022072685A (ja) 評価関数生成プログラム、評価関数生成方法、最適化方法及び最適化装置
US20210209190A1 (en) Method and apparatus for processing matrix data through relaxed pruning
JP2022006994A (ja) 情報処理システム、情報処理方法及びプログラム
Duan et al. Nondominated Sorting Differential Evolution Algorithm to Solve the Biobjective Multi‐AGV Routing Problem in Hazardous Chemicals Warehouse
US20220318663A1 (en) Non-transitory computer-readable recording medium, optimization method, and optimization apparatus
US20220092380A1 (en) Optimization device, optimization method, and computer-readable recording medium storing optimization program
US20220335487A1 (en) Non-transitory computer-readable recording medium, data processing method, and data processing apparatus
JP2023170805A (ja) プログラム、情報処理方法および情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230929

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20231002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231003