JP2023108368A - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP2023108368A
JP2023108368A JP2022009452A JP2022009452A JP2023108368A JP 2023108368 A JP2023108368 A JP 2023108368A JP 2022009452 A JP2022009452 A JP 2022009452A JP 2022009452 A JP2022009452 A JP 2022009452A JP 2023108368 A JP2023108368 A JP 2023108368A
Authority
JP
Japan
Prior art keywords
unit
variables
constraint
information processing
candidates
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.)
Pending
Application number
JP2022009452A
Other languages
English (en)
Inventor
浩一 神田
Koichi Kanda
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 JP2022009452A priority Critical patent/JP2023108368A/ja
Priority to US17/979,016 priority patent/US20230237123A1/en
Priority to EP22205212.8A priority patent/EP4216108A1/en
Priority to CN202211455054.8A priority patent/CN116502741A/zh
Publication of JP2023108368A publication Critical patent/JP2023108368A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • 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
    • 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/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/083Shipping
    • G06Q10/0835Relationships between shipper or supplier and carriers
    • G06Q10/08355Routing methods

Abstract

【課題】2ウェイ1ホット制約にしたがう問題の計算時間を短縮する情報処理装置、情報処理方法及び情報処理プログラムを提供する。【解決手段】最適化装置1は、以下の各部を備え、2ウェイ1ホット制約を含む所定制約が与えられた問題の解を、所定数の変数を有する目的関数を用いて求める。候補決定部14は、所定数の変数に複数の冗長変数を付加した拡大変数から、所定制約を基に値を変化させる候補の組を決定する際に、冗長変数同士の値が入れ替わった候補の組の一方を除外する。最適化部20は、候補決定部14により決定された候補の組の値を所定制約に応じて変化させて、目的関数を基に探索を行う。更新制御部16は、最適化部20による探索の結果を基に解を決定する。【選択図】図4

Description

本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
組合せ最適化問題は、現在の社会における様々な分野に存在する。たとえば、製造・流通、マーケティングなどの分野では、コストを最適化もしくは最小化する要素の組合せが探索される。しかし、組合せ最適化問題は、上記要素に対応する変数の数が増えるにつれて指数関数的に計算時間が増加するため、従来のノイマン型コンピュータでは解くことが困難である問題として知られている。
ノイマン型コンピュータが不得意とする多変数の最適化問題を解く方法として、イジング型のエネルギー関数を用いた最適化装置が存在する。このような最適化装置は、イジングマシン又はボルツマンマシンとも呼ばれる。また、エネルギー関数は、コスト関数又は目的関数と呼ばれる場合もある。最適化装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。
イジングモデルを用いた最小値求解問題の計算手法として、イジング型のエネルギー関数の最小値を、マルコフ連鎖モンテカルロ(Markov-Chain Monte Carlo:MCMC)を用いて求解する手法がある。MCMC法では、ボルツマン分布にしたがった遷移確率でエネルギー関数の状態変数の更新である状態遷移を行うことが一般的である。MCMC法では、状態を表すビット列のいずれかのビットを確率的に反転させて探索を行い、現在の状態から近傍状態に移行した場合のエネルギー差に基づいて移行の可否が決定される。イジング型のエネルギーは、バイナリ変数の2次系式のエネルギーである。
このような最適化問題の中には、1ホット(One Hot)制約と呼ばれる制約条件が課される問題がある。1ホット制約とは、複数の状態変数が存在する場合に、1つの解において値が1になる状態変数の数が1つに限定される制約である。1ホット制約が現れる最適化問題として、巡回セールスマン問題(TSP:Traveling Salesman Problem)や配車計画(VPR:Versatile Place and Route)問題といった多くのスケジューリング問題、並びに、ナップサック問題及びビンパッキング問題などがある。
さらに、1ホット制約には、2つの種類が存在する。1つは、1ウェイ1ホット(1W1H:One Way One Hot)制約と呼ばれる制約である。この場合、各変数は制約式の組に1度現れる。この制約を有する最適化問題には、交通量最適化問題やビンパッキング問題がある。
もう1つは、2ウェイ2ホット(2W2H:Two Way One Hot)制約と呼ばれる制約である。この場合、n個の変数をn×nの正方形状に並べた時に各行の和及び各列の和が全て1になる。この制約は、例えば整数1,2,・・・,nといったn個の異なる要素の順列を決める場合の制約と等価である。この制約を有する最適化問題には、巡回セールスマン問題や、配車計画問題や、二次割り当て問題(QAP:Quadratic Assignment Problem)がある。
このような2ウェイ2ホット問題についての解法として、例えば配車計画問題であれば、積載量上限から1台の車が回れる拠点の数の上限を考慮して各ルートに含まれる拠点数の最大値を決定して、配車計画問題を解く技術が提案されている。他にも、制約条件を表す制約項に関して重み係数の値を更新則により自動的に調整して配車計画問題を解く技術が提案されている。また、複数の顧客グループのそれぞれから種顧客と呼ばれる顧客を選択して主顧客を結ぶ閉路に対して、評価値を基に残りの顧客を挿入する挿入法を用いて最適な巡回経路を探索することで配車計画問題を解く技術が提案されている。
特開平8-153085号公報 特開2015-38429号公報
しかしながら、積載量上限から1台の車が回れる拠点の数の上限を考慮して各ルートの拠点数の最大値を決定して配車計画問題を解く従来の方法では、最大値に応じた数の冗長拠点を配置して問題を解くことになる。冗長拠点の数は問題サイズとともに増大して、最適化計算時間の増大や最適解への到達を困難にするおそれがある。
また、制約条件を表す制約項に関して重み係数の値を更新則により自動的に調整して配車計画問題を解く技術では、冗長拠点を使用して配車計画問題を解く場合と比較して計算効率を向上させることは困難である。また、挿入法を用いて最適な巡回経路を探索することで配車計画問題を解く技術でも、冗長拠点を使用して配車計画問題を解く場合と比較して計算効率を向上させることは困難である。したがって、いずれの技術でも配車計画問題を解く場合に、計算効率は向上せず配車計画問題を解く速度を向上させることは困難である。
開示の技術は、上記に鑑みてなされたものであって、2ウェイ1ホット制約にしたがう問題の計算時間を短縮する情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
本願の開示する情報処理装置、情報処理方法及び情報処理プログラムの一つの態様において、情報処理装置は、以下の各部を備え、2ウェイ1ホット制約を含む所定制約が与えられた問題の解を、所定数の変数を有する目的関数を用いて求める。候補決定部は、所定数の前記変数に複数の冗長変数を付加した拡大変数から、前記所定制約を基に値を変化させる候補の組を決定する際に、前記冗長変数同士の値が入れ替わった前記候補の組の一方を除外する。探索部は、前記候補決定部より決定された前記候補の組の値を前記所定制約に応じて変化させて、前記目的関数を基に探索を行う。更新制御部は、前記探索部による前記探索の結果を基に、前記解を決定する。
1つの側面では、本発明は、2ウェイ1ホット制約にしたがう問題の計算時間を短縮することができる。
図1は、2ウェイ1ホット制約を説明するための図である。 図2は、実施例に係る最適化装置が有する最適化部の構成図である。 図3は、選択回路の一例を示す図である。 図4は、最適化装置の制御部の詳細を表すブロック図である。 図5は、配車計画問題の一例を示す図である。 図6は、行列の要素に与えられるグループ変数の一例を表す図である。 図7は、実施例に係る最適化装置による最適化処理のフローチャートである。 図8は、配車計画問題を解いた場合のイテレーション数の削減度合いを表す図である。
以下に、本願の開示する情報処理装置、情報処理方法及び情報処理プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。
2ウェイ1ホットイジングモデルに含まれる複数のスピン(スピン数=N)に対応するN個のビットの値を、状態変数であるx~xで表す場合を考える。以下では、xと表される状態変数を、状態変数x又は単にxと表す場合がある。
この場合、例えば以下の数式(1)の各括弧内のグループで値が1になる状態変数の数が1つのみであるときに1ホット制約が満たされる。
Figure 2023108368000002
例えば、あるグループ内にx,x,xの3つの状態変数がある場合、{x,x,x}={1,0,0},{0,1,0},{0,0,1}という状態は、1ホット制約を満たす。一方、{x,x,x}={0,0,0},{1,1,0},{1,0,1},{0,1,1},{1,1,1}という状態は、1ホット制約を満たさない。
さらに、2ウェイ1ホット制約の場合、2つの条件のグループにおいていずれも1ホット制約を満たす、すなわち各グループで値が1になる状態変数の数が1つとなる。2ウェイ1ホット制約では、例えば2つの条件のグループのいずれもがn個の構成要素を有する場合、各グループの構成要をまとめて表す各要素を図1に示すようにn×nの正方形に並べることができる。この場合、各行の和及び各列の和が全て1となる。図1は、2ウェイ1ホット制約を説明するための図である。図1において、m=1,2,・・・,Nであり、N=nである。
この場合、2ウェイ1ホット制約を満たすある状態から、2ウェイ1ホット制約を満たす他の状態に遷移させるためには、最適化装置は、1回の状態更新処理において4ビットの値を変化せることになる。例えば、図1において状態変数xが0の値を有する場合、xを0から1に遷移させると、xと同じ行であり値が1である状態変数xiが1から0に遷移させられる。また、xと同じ列であり値が1である状態変数xが1から0に遷移させられる。さらに、xと同じ列で且つxと同じ行にあるxが0から1に遷移させられる。以下では、ある状態変数の値が0から1又は1から0に遷移させられることを、状態変数の値の反転又はビット反転と呼ぶ。
このように、2ウェイ1ホット制約を満たすある状態から、2ウェイ1ホット制約を満たす他の状態に遷移させるためには、次の数式(2)のように4つの状態変数が遷移する。
Figure 2023108368000003
この場合の重み値を用いたイジング型のエネルギー関数は、例えば次の数式(3)で定義される。
Figure 2023108368000004
右辺の1項目は、イジングモデルに含まれる全ビットから選択可能な2つのビットの全組み合わせについて、漏れ及び重複なく、2つのビットの値(0または1)と重み値との積を積算したものである。xは、インデックス(ビット識別情報)がiのビットの値を表す状態変数、xは、インデックスがjのビットの値を表す状態変数である。以下では、iと表されるインデックスを、インデックスi又は単にiという場合がある。また、Wijは、インデックスがiのビットとjのビットの相互作用の大きさを示す重み値である。なお、Wii=0である。また、Wij=Wjiであることが多い。
右辺の2項目は、全ビットのそれぞれのバイアス値とビットの値との積の総和を求めたものである。bは、インデックスiのビットのバイアス値を示す。
ここで、数式(2)において、xの値が変化して1-xとなると、xの増加分は、Δx=(1-x)-x=1-2xと表せる。この値の変化に伴うエネルギー変化(ΔE)は、次の数式(4)で表される。
Figure 2023108368000005
さらに、前述したように2ウェイ1ホット制約を満たすある状態から2ウェイ1ホット制約を満たす他の状態に遷移するには、4ビットの値を変化させることになる。インデックスのうち数式(2)のようにi,j,k,gを変化させたとすると、その場合のエネルギー変化は、数式(3)を用いることで次の数式(5)のように求められる。
Figure 2023108368000006
が1から0に変化するとき、Δxは-1となり、xが0から1に変化するとき、Δxは1となる。なお、hはローカルフィールド値又は局所場と呼ばれ、Δxに応じてhに符号(+1又は-1)を乗じたものがΔEである。
そして、xがビット反転した時の局所場hの変化分δh (j)は次の数式(6)で表される。
Figure 2023108368000007
すなわち、hを保存するレジスタを用意してxをビット反転させたときに数式(5)で表される変化分を加算することで正しいhが得られる。
が0から1に変化するときのhの変化分は、δh (j)=+Wmjであり、xが1から0に変化するときのhの変化分は、δh (j)=-Wmjである。同様に、xが変化したときのインデックスがmであるビットについてのhの変化分は、δh (i)=Δxmiと表せる。また、xが変化したときのインデックスがmであるビットについてのhの変化分は、δh (k)=Δxmkと表せる。また、xが変化したときのインデックスがmであるビットについてのhの変化分は、δh (k)=Δxmkと表せる。
前述したように、2ウェイ1ホット制約を満たすある状態から2ウェイ1ホット制約を満たす他の状態に遷移するには、4ビットの値を変化させることになる。例えば、状態変数xが0から1に変化し、状態変数xが1から0に変化し、状態変数xが0から1に変化し、状態変数xが1から0に変化した場合、インデックスmの局所場の変化分は次の数式(7)で表される。
Figure 2023108368000008
ところで、最適化装置が、1回の状態更新処理において4ビットの値を変化させる処理を繰り返して基底状態を探索していく際、各状態更新処理では、エネルギー変化を計算するために、ローカルフィールド値の更新が行われる。例えば、あるグループにおいてインデックスj及びインデックスkのビットの値がともに0から1に変化し、インデックスi及びインデックスgのビットの値がともに1から0に変化する場合、n個のビットについてのh~hは、以下の式(8)に基づいて更新される。
Figure 2023108368000009
数式(8)においてh’~h’は、更新後のローカルフィールド値である。
次に、本実施例に係る最適化装置1の詳細について説明する。図2は、実施例に係る最適化装置が有する最適化部の構成図である。情報処理装置である最適化装置1は、制御部10及び最適化部20を有する。最適化部20は、記憶部21、局所場生成部22、エネルギー変化算出部23、オフセット加算部24、選択回路25及び更新部26を有する。この最適化部20が、「探索部」の一例にあたる。ここでは、いずれもn個の構成要素を有する条件のグループを用いる2ウェイ1ホット制約を有する最適化問題を解く場合で説明する。
記憶部21は、複数の列の経路を有し、さらに、各列に列数と同数の記憶素子210が配置される。例えば、図2では、記憶部21は、N個の列の経路を有する。そして、記憶部21は、各列にN個の記憶素子210を有する。各列の上から同じ段数に配置された記憶素子210は、N個の要素を有する行にあたる。すなわち、記憶部21は、N個のビットのそれぞれの間の相互作用の大きさを示す重み値をN×N行列に並べられた記憶素子210により保持する。重み値の行列は、初期設定処理時に、制御部10によって記憶部21のそれぞれの記憶素子210に初期値が格納される。図2では、各行各列それぞれの記憶素子210は、行番号がiで列番号がjの場合、Wijと表される重み値を有する。記憶部21は、たとえば、レジスタやSRAM(Static Random Access Memory)などを用いて実現される。
選択回路25により値を反転させる状態変数が選択されると、記憶部21の各記憶素子210に格納された重み値のうち選択された状態変数に対応する重みの値が、反転後の値に書き換えられる。例えば、反転させる状態変数としてxが選択された場合、選択回路25からインデックスjが入力され、Wmjとして表される重み値が書き換えられる。また、2ウェイ1ホットの場合は、4ビットまとめて反転させられるため、選択回路25から指定されたインデックスに対応する他の3つのビットを示すインデックスで識別される記憶素子210が保持する重み値も書き換えられる。例えば、図1に示した行列の場合、インデックスjに対応する他の3つのビットを示すインデックスはi,k,gである。
局所場生成部22は、記憶部21の行列に並べられた記憶素子210の各列に対応するように配置された複数の局所場生成回路220を有する。各局所場生成回路220は、対応する列に並べられた各記憶素子210が有する重み値を取得する。そして、各局所場生成回路220は、取得した重み値を用いて局所場の値であるローカルフィールド値を生成する。
図1の例では、局所場生成部22は、N個のビットのそれぞれについてのローカルフィールド値であるh,h,…,hを生成する局所場生成回路220を有する。局所場生成回路220のそれぞれは、図示を省略しているが例えばレジスタなどで実現される保持部を有し、それぞれが保持するローカルフィールド値であるh~hの保持及び更新を行う。
例えば、状態変数xが更新された場合、各局所場生成回路220は、それぞれに対応する重み値Wj1,Wj2,~,WjNを保持する局所場に加算又は減算することで局所場を更新する。具体的には、i行に対応する局所場生成回路220は、状態変数xが0から1に遷移した場合は、重み値Wjiを局所場hに加算し、状態変数xが1から0に遷移した場合は、重み値Wjiを局所場hから減算する。ここで、上述したように2ウェイ1ホットの場合4ビットが反転するので、局所場生成回路220は、数式(7)を自己が保持する局所場に加算又は減算することで局所場を更新する。
~hの初期値は、例えば、バイアス値b~bであり、初期設定処理時に、制御部10により設定される。局所場生成回路220は、たとえば、レジスタのほかに、加算器または減算器を用いて実現される。
エネルギー変化算出部23は、局所場生成部22が生成したローカルフィールド値に基づいて、エネルギー変化を計算する。図1の例では、エネルギー変化算出部23は、記憶部21の記憶素子210の列に対応するN個のビットのそれぞれが変化する場合のエネルギー変化であるΔE,ΔE,…,ΔEをそれぞれ算出するエネルギー変化算出回路230を有する。図2では、一例として、局所場hを保持する局所場生成回路220から各エネルギー変化算出回路230へ延びる経路を図示したが、他の局所場生成回路220からも全てのエネルギー変化算出回路230へ経路が延びる。
エネルギー変化算出回路230は、数式(5)を用いてエネルギー変化量を算出する。具体には、ΔEは、数式(2)のように4つの状態変数が遷移した場合のエネルギー変化量である。その後、各エネルギー変化算出回路230は、算出したエネルギー変化量を選択回路25へ出力する。
オフセット加算部24は、各エネルギー変化算出回路230から出力されるエネルギー変化量を監視する。そして、各エネルギー変化算出回路230から出力されるエネルギー変化量が全て正の場合、オフセット加算部24は、各値にオフセットを加算する。オフセットは負の値であり、オフセット加算部24は、エネルギー変化量が負の値、すなわちエネルギーが下がる場合のエネルギー変化量が現れるように調整する。
選択回路25は、各エネルギー変化算出回路230から出力されるエネルギー変化量の入力を受ける。ここで、エネルギー変化量が全て正だった場合には、選択回路25は、オフセット加算部24によりオフセットが加えられた値の入力を受ける。
選択回路25は、熱励起エネルギーと、複数のエネルギー変化算出回路230がそれぞれ出力するエネルギー変化量との大小関係に基づいて、値の更新を許容する1つを識別するインデックスを出力する。熱励起エネルギーは、乱数と、制御部10から入力される温度パラメータとに基づいて決定される。最適化装置1においてシミュレーテッド・アニーリングが行われる場合、温度パラメータは、例えば、制御部10によって、イジングモデルの状態を更新する処理が所定回数繰り返される毎に、値が小さくなるように制御される。また、エネルギーの減少する方向への状態変化を選ぶこともできるが、この場合局所最小値で停止する。そこで、エネルギーが増加する変化も確率的に許容する選択が行われる。
図3は、選択回路の一例を示す図である。図3の選択回路25は、並列指向で更新ビットの候補を選ぶ回路である。入力端子251は、エネルギー変化算出回路230から出力されたエネルギー変化量に対応するインデックスの値の入力を受ける端子である。各端子は2つずつセレクタ252に接続される。さらに、セレクタ252からの出力は2つずつ次の段のセレクタ252に接続される。
選択回路25は、エネルギー変化算出回路230から入力されたエネルギー変化量は制御部10から入力される温度パラメータと比較して、状態変数の遷移を受け入れ可能か否かを判定する。例えば、選択回路25は、エネルギー変化量が温度パラメータから算出される所定値未満の場合に状態変数の遷移を受け入れ可能と判定する。そして、選択回路25は、状態変数の遷移を受け入れ可能と判定したエネルギー変化に対応するインデックスに対して更新可能フラグを設定する。そして、選択回路25は、入力端子251のそれぞれに各エネルギー変化に対応するインデックスを入力して、セレクタ252によりトーナメントを行う。
セレクタ252は、例えば、図3の紙面に向かって右側の回路により実現される。この回路を有するセレクタ252は、2つのステータス01及び02の入力を受け、それぞれからフラグF1及びF2、並びに、インデックス#1及び#2を取得する。そして、セレクタ252は、乱数の入力を受けて、更新可能フラグの立ったインデックス01又は02のうちいずれか1つを選択する。セレクタ252は、選択した方の0又は1を示すエントリ番号をインデックスの上位に付け加える。そして、セレクタ252は、選択したインデックスを次の段のセレクタ252へ出力する。最終段のセレクタ252が選択したインデックスが、選択回路25により選ばれたビットを示す。この選択回路25により選択されたインデックスの情報は、更新部26へ出力されるとともに、記憶部21に送られる。これにより、インデックスで識別される記憶素子210及び対応する他のビットを表すインデックスで識別される記憶素子210が保持する重み値が更新される。
更新部26は、それぞれが状態変数を表すN個のビットの値(x~x)を保持する記憶部260を有する。記憶部260は、たとえば、レジスタやSRAMなどを用いて実現される。更新部26は、選択回路25から入力されたインデックスによって識別されるビットの値を0から1に更新する。さらに、更新部26は、選択回路25から入力されたインデックスに対応する他の3ビットの値を更新する。例えば、図1に示す状態変数xを示すインデックスjが選択回路25から入力された場合、更新部26は、インデックスi,k,gで識別されるビットの値を更新する。この場合、更新部26は、数式(2)で示すように各値を更新する。
次に、制御部10について説明する。図4は、最適化装置の制御部の詳細を表すブロック図である。制御部10は、図4に示すように、上限算出部11、目的関数生成部12、初期化実行部13、候補決定部14、温度管理部15、更新制御部16及び通知部17を有する。制御部10は、例えば、FPGA(Field Programmable Gate Array)により実現される。より具体的には、プログラミングされたFPGAに含まれる演算器及び記憶部により上限算出部11、目的関数生成部12、初期化実行部13、候補決定部14、温度管理部15、更新制御部16及び通知部17の機能が実現される。
ここでは、最適化装置1が配車計画問題(CVRP)を解く場合で説明する。図5は、配車計画問題の一例を示す図である。配車計画問題では、図5に示すように、集積所101及び荷物の配送先となる拠点102の位置が決められる。また、集積所101及び各拠点102の相互間の距離及び車の積載上限値が与えられる。さらに、各拠点102へ配送する荷物の量にあたる需要量が与えられる。そして、集積所101から出発して集積所101に帰着する複数台の車で各拠点102に物資を運ぶ。以上の条件で、全車が走行した総距離が最小となるルートを求める問題が、配車計画問題である。図5では、4台の車を用いて4つのルートで物資が運ばれる場合の配車計画問題を表す。
初期化実行部13は、解答する配車計画問題の条件の入力を受ける。この配車計画問題の条件である問題インスタンスは、配送先の拠点102の数、集積所101及び拠点102のそれぞれの間の距離、ルートの数などを含む。この入力された条件に応じた各要素は、いずれのルートに含まれるかという条件のグループを示す構成要件と、どの時点で配送を行う拠点化を示す条件のグループを示す構成要件とを示す行列を用いて表される。
その後、初期化実行部13は、2ウェイ1ホット制約を満たす状態変数の各ビットを表す行列の情報及び目的関数の入力を目的関数生成部12から受ける。そして、初期化実行部13は、行列の要素に合わせて記憶部21の最適化に使用する記憶素子210を選択する。次に、初期化実行部13は、目的関数から各状態変数に対応する重み値を取得して、各記憶素子210に対応する重み値を設定する。
次に、初期化実行部13は、状態変数x~xを全て0に設定した後に、2ウェイ1ホットの制約を満たすように、状態変数x~xを表す各ビットを0又は1に設定する。そして、初期化実行部13は、状態変数x~xを表す各ビットの値を最適化部20へ出力する。これにより、更新部26が有する記憶部260に初期状態の各ビットの値が記憶されるとともに、各ビットの状態に応じて、局所場生成部22により各局所場であるh~hが生成され保持される。
また、図6は、行列の要素に与えられるグループ変数の一例を表す図である。初期化実行部13は、行列における同じ行の要素を同じ行グループとして行グループ番号を割り当て、同じ列の要素を同じ列グループとして列グループ番号を割り当てる。そして、初期化実行部13は、各要素を表すインデックスと行グループ番号及び列グループ番号とを対応付ける。さらに、初期化実行部13は、冗長拠点にあたる列に含まれる要素を1つの冗長変数グループとして、各要素に冗長変数グループを表す値を割り当てる。図6では、冗長変数グループの項に1が設定された要素が、冗長変数グループに含まれる要素である。
そして、初期化実行部13は、各要素を表すインデックスに対応付けられたグループ変数の情報を候補決定部14へ出力する。さらに、初期化実行部13は、初期温度の設定を温度管理部15に通知する。
上限算出部11は、拠点102の需要量を小さい順に並べる。次に、上限算出部11は、M番目のルートの最大拠点数を算出する際に、並べた需要量の先頭からM-1番目までの拠点数を含めた累積需要量を計算する。次に、上限算出部11は、「M×車の積載上限値」を越えない最小の拠点数を特定する。そして、上限算出部11は、特定した拠点数をMで割った時の商をN番目のルートの最大拠点数とする。これは、需要量を小さい順に並べたことにより需要量は対象減少列となり、M番目のルートが「M×車の積載上限値」を越えない最小の拠点数をMで割った数よりも大きくなることは矛盾であることを理由とする。上限算出部11は、Mを1から車の台数の上限まで変化させて1番目から車の台数の上限番目までの各ルートの最大拠点数を求める。その後、上限算出部11は、各ルートの最大拠点数の情報を目的関数生成部12へ出力する。
目的関数生成部12は、各ルートの最大拠点数の情報の入力を上限算出部11から受ける。次に、目的関数生成部12は、各ルートの最大拠点数の総和と拠点102の数との差分を算出する。そして、目的関数生成部12は、算出した差分の値を冗長拠点(ダミーデポ)の数とする。次に、目的関数生成部12は、ルート毎の最大拠点数までを順番に並べた行と、冗長拠点を含む拠点を並べた行とで表現される行列を作成する。すなわち、行が延びる方向を時間経過とすると、この行列はどの時点で実際の拠点102に冗長拠点を加えた拡大拠点のうちどの拠点を車が訪れるかを表す。各行がいずれのルートに踏まれる拠点かを示す条件のグループであり、各列がどの時点で配送を行う拠点かを示す条件のグループである。ここで、どの時点とは、配送タイミングであり、各ルートにおいてどの順番で配送が行われるかを示す情報である。以下では、各ルートにおける配送タイミングを「時点」と表す。時点が早ければ配送順が早く、時点が遅ければ配送順が遅い。この冗長拠点が「冗長変数」の一例にあたり、拡大拠点が含まれるルート及び時点を選択する変数が「拡大変数」の一例にあたり、拡大拠点及び各ルートの時点が「拡大変数と同数の構成要素」の一例にあたる。そして、いずれのルートに踏まれる拠点かを示す条件のグループ及びどの時点で配送を行う拠点かを示す条件のグループが、前記拡大変数と同数の構成要素とを含む2つのグループ」の一例にあたる。
そして、目的関数生成部12は、拠点102にi=0,1,2,・・・と番号を振り、時刻tにインデックスiの拠点102に車がいればxitを1とし、車がいなければxitを0として、状態変数を表すビットを設定する。
この行列は、1行目から第1ルートの最大拠点数の行までが第1ルートを走行する車の位置を表し、その次の行から第2ルートの最大拠点数の行までが第2ルートを走行する車の位置を表す。このように順番にルートの番号を増やしていき、この行列の最終行から第Nルートの最大拠点数前までが第Nルートを走行する車の位置を表す。この行列は、行の数と列の数が一致しており、且つ、「各行、各列の1の数は1個」という2ウェイ1ホットの制約を満たす。
その上で、目的関数生成部12は、目的関数を次の数式(9)と定義する。
Figure 2023108368000010
E(x,y)は、エネルギーを表す。そして、C(x)は、コストの総和を表す。また、P(x)は、冗長拠点の制約を表す。また、P(x,y)は、スラック変数yの不等式制約を表す。
目的関数生成部12は、生成した行列の情報及びエネルギー関数を初期化実行部13へ出力する。
温度管理部15は、初期温度設定の指示を初期化実行部13から受ける。そして、温度管理部15は、高い温度である初期温度を温度パラメータとして設定する。そして、温度管理部15は、温度パラメータを最適化部20へ通知する。その後、温度管理部15は、更新制御部16からの温度低下の指示を受けると、予め指定された温度スケジュールにしたがって温度パラメータの値を小さくしていく。温度管理部15は、温度パラメータを変更する毎に変更後の温度パラメータを最適化部20へ通知する。
候補決定部14は、拡大拠点が含まれるルート及び時点を示す状態変数のうち、遷移の候補となる反転させる状態変数を表すインデックスを決定して、最適化部20に通知する。以下に、遷移の候補となる反転させる状態変数の選択方法について説明する。
候補決定部14は、各インデックスを表すグループ変数の情報の入力を初期化実行部13から受ける。次に、候補決定部14は、値を反転させる状態変数を表すインデックスを選択する。例えば、候補決定部14は、図1に示した行列における状態変数xを示すインデックスjを選択する。そして、候補決定部14は、選択したインデックスに応じて2ウェイ1ホット制約から決まる他の3つのビットを示すインデックスを特定する。例えば、候補決定部14は、図1に示した行列における状態変数xを示すインデックスjを最初に選択した場合、他の3つのインデックスとして、i,k,gを選択する。
次に、候補決定部14は、選択した4つのインデックスのうち、状態変数を並べた行列において最初に選択したインデックスが示す冗長変数とは異なる対角にある冗長変数を示す2つのインデックスの冗長変数グループの値を読み出す。そして、候補決定部14は、読み出した2つインデックスの冗長変数グループの値のうちいずれかが0であるか否かを判定する。例えば、候補決定部14は、4つのインデックスとしてi,j,k,gを選択した場合、最初に選択したインデックスjが示す状態変数xとは異なる対角の冗長変数であるx及びxのインデックスであるi及びgに対応する冗長変数グループの値を読み出す。そして、候補決定部14は、インデックスiの冗長変数グループの値又はインデックスgの冗長変数グループの値のいずれかが0か否かを判定する。いずれかが0の場合、候補決定部14は、選択したインデックスに対応する状態変数を、値を反転させる候補とすることを決定する。そして、候補決定部14は、状態変数の値を反転させる候補とすることを決定したインデックスを最適化部20に通知する。
これに対して、読み出したインデックスの冗長変数グループの値がいずれも1の場合、候補決定部14は、選択したインデックスに対応する状態変数を、値を反転させる候補として採用しないことを決定する。この場合、候補決定部14は、選択したインデクスの最適化部20への通知は行わない。
ここで、冗長変数グループの値がいずれも1である場合について説明する。冗長変数グループの値が1であるとは、そのインデックスで表される状態変数が冗長拠点に対する変数であることを表す。冗長拠点に対する状態変数が1であれば車がこの拠点を回ることを表すが、冗長拠点は存在しない拠点であり、実際には車は冗長拠点には向かわない。そして、2つのインデックスの冗長変数グループがいずれも1であるとは、2つのインデックスで示される拠点が両方とも冗長拠点であることを表す。この場合、一方のインデックスに対応する拠点への配送と他方のインデックスに対応する拠点への配送とを交換しても、結局車はいずれにも向かわないため意味のない交換となる。そのため、この状態変数の値を反転させてもエネルギーは変わらず無駄な計算となる。そこでこの場合、候補決定部14は、インデックスを最適化部20に通知しないことで、最適化部20の計算量を減らすことができる。この処理が、「冗長変数同士の値が入れ替わった候補の組の一方を除外する」処理の一例にあたる。
候補決定部14は、1からNまで1つずつ反転させるインデックスjを選択することで、全てのインデックスについて、各インデックスにより示される状態変数をビット反転の候補とするか否かを判定して、最適化部20へ通知する。以上の候補決定部14による2ウェイ1ホット制約にしたがったインデックスの選択が、「前記所定制約を基に値を変化させる候補の組を決定する」処理の一例にあたる。また、候補決定部14による状態変数の値の変更による候補の決定が、「重複を許さず且つ所定制約に含まれる2ウェイ1ホット以外の条件にしたがって行われる拡大変数の割り当てを変更することで値を変化させる候補の組を決定」の一例にあたる。
その後、候補決定部14は、次の状態変数xの選択の指示を更新制御部16から受けると、再び1から順にNまでのインデックスの選択を行い、それぞれの状態変数をビット反転の候補とするか否かを最適化部20へ通知する。
更新制御部16は、状態変数の更新完了の通知を最適化部20から受ける。そして、更新制御部16は、同じ温度設定で規程回数の状態変数の選択を行ったか否かを判定する。同じ温度設定での規程回数の状態変数の選択を行っていない場合、更新制御部16は、次の状態変数xの選択を候補決定部14に指示する。
これに対して、同じ温度設定での規程回数の状態変数の選択が完了した場合、更新制御部16は、温度を所定回数下げたか否かを判定する。温度を下げた回数が所定回数に達していない場合、更新制御部16は、温度低下を温度管理部15に指示するとともに、次の状態変数xの選択を候補決定部14に指示する。
これに対して、温度を下げた回数が所定回数に達した場合、更新制御部16は、最適化処理の終了を決定する。そして、更新制御部16は、最適化部20の更新部26が有する記憶部260に格納された各状態変数(x~x)を表すN=n個のビットの値を取得する。そして、更新制御部16は、取得した各状態変数(x~x)を表すN=n個のビットの値の中から冗長拠点を表す状態変数のビット値を削除する。すなわち、更新制御部16は、特定の条件に達した場合に最適化部20による探索結果として得られる拡大変数の構成要素への割り当てのうち、冗長変数の割り当てを除外して解とする。そして、更新制御部16は、実際の拠点102を巡回する最適化されたルートを示す情報を通知部17へ出力する。
通知部17は、実際の拠点102を巡回する最適化されたルートを示す情報の入力を更新制御部16から受ける。そして、通知部17は、取得した実際の拠点102を巡回する最適化されたルートを示す情報から最適なルートを求めて、求めた最適なルートを利用者が使用する端末装置(不図示)などに送信することで利用者に通知する。
図7は、実施例に係る最適化装置による最適化処理のフローチャートである。次に、図7を参照して、実施例に係る最適化装置1による最適化処理の流を説明する。この最適化処理は、最適化装置1により情報処理プログラムが実行させることで実現される。
初期化実行部13は、配車計画問題の条件の入力を受ける。そして、初期化実行部13は、取得した配車計画問題の条件を上限算出部11へ出力する。上限算出部11は、需要量が小さい順に配送先となる拠点102を並べる。次に、上限算出部11は、需要量が小さい順に並べられた拠点102を先頭から順に選択して選択した拠点102までの累積需要量と車の積載上限値とを用いて各ルートの最大拠点数を算出する。目的関数生成部12は、最大拠点数を用いて冗長拠点を設定し、冗長拠点と実際の拠点102とを含む拡大拠点について含まれるルートと配送順とを示す行列を生成する。そして、目的関数生成部12は、生成した行列の各要素を表すビットを与えて、それらのビットを用いて目的関数を生成する。初期化実行部13は、目的関数生成部12により生成された行列及び目的関数を取得する。次に、初期化実行部13は、以下に示すグループインデックスの設定及び初期化プロセスを実行する(ステップS1)。
具体的には、初期化実行部13は、取得した行列の行毎の各要素に各行を示す行グループ番号を与え、且つ、列毎の各要素に各列を示す列グループ番号を与える。そして、初期化実行部13は、各要素を表すインデックスと行グループ番号及び列グループ番号とを対応付ける。さらに、初期化実行部13は、各インデックスが冗長拠点への配送を示すか否かにより冗長変数グループに属するか否かを表す情報を設定する。
また、初期化実行部13は、行列の各要素に応じた最適化部20の記憶部21が有する記憶素子210を確保し、目的関数から取得したビット毎の重み値を格納させる。さらに、初期化実行部13は、2ウェイ1ホットを満たすように各ビットの初期値を設定して最適化部20に通知する。これにより、最適化部20は、局所場生成部22は局所場であるh~hを計算して保持するとともに、更新部26が有する記憶部260に各ビットの初期値を格納する。
温度管理部15は、初期化実行部13からの温度の設定の指示を受ける。そして、温度管理部15は、温度設定を未だ行っていない場合、高い温度である初期温度を最適化部20に通知して初期温度を設定する。また、既に温度設定済みの場合、温度管理部15は、その時点で設定済みの設定温度から予め指定された温度スケジュールにしたがって温度を下げる。そして、温度管理部15は、温度を下げた新たな設定温度を最適化部20に通知して温度を設定する(ステップS2)。
候補決定部14は、各状態変数を表すインデックスに対応付けられたグループ変数の情報を初期化実行部13から取得する。次に、候補決定部14は、反転させる状態変数を表すインデックスとして図1に示した行列の要素のうちxに対応するインデックスjを選択する。次に、候補決定部14は、選択したインデックスjに応じて2ウェイ1ホット制約から決まる他の3つのビットを示すインデックスとして、図1に示した行列の状態変数x,x,xに対応するインデックスであるi,k,gを選択する(ステップS3)。
次に、候補決定部14は、最初に選択したインデックスjとは示す状態変数が異なる対角にあるインデックスであるi及びgの冗長変数グループの値を読み出す(ステップS4)。
そして、候補決定部14は、読み出した2つの冗長変数グループの値のいずれかが0か否かを判定する(ステップS5)。
読み出した冗長変数グループの値がいずれも1の場合(ステップS5:否定)、候補決定部14は、選択したインデックスに対応する状態変数を、値を反転させる候補として採用しないことを決定する。その後、候補決定部14は、ステップS3へ戻る。
これに対して、いずれかが0の場合(ステップS5:肯定)、候補決定部14は、選択したインデックスに対応する状態変数を、値を反転させる候補とすることを決定する。そして、候補決定部14は、値を反転させる候補とすることを決定した状態変数を示すインデックスを最適化部20に通知する。候補決定部14は、jを1からNまで変化させて順に選択して、各インデックスjが示す状態変数xをビット反転の候補とするかを判定し、値を反転させる候補とすることを決定した場合、インデックスjを最適化部20に通知する。最適化部20は、更新部26が有する記憶部260に保持されたxの値を読み出す。そして、最適化部20は、xの値の遷移が0から1か1から0かをエネルギー変化算出部23に通知する。さらに、エネルギー変化算出部23は、jに対応した局所場であるh及びjに対応するi,k,gを特定し、i,k,gに対応した局所場であるh,h,hを読み出す(ステップS6)。
次に、エネルギー変化算出部23は、各jについてエネルギー変化量であるΔE(ΔE,ΔE,・・・,ΔE)を計算する(ステップS7)。その後、エネルギー変化算出部23は、算出したエネルギー変化量の情報を出力する。
オフセット加算部24は、エネルギー変化算出部23から出力されたエネルギー変化量が全て正の場合、各エネルギー変化量にオフセットを加算する(ステップS8)。
選択回路25は、エネルギー変化算出部23から出力された各エネルギー変化量の情報を取得する。そして、選択回路25は、制御部10の温度管理部15から取得した設定温度と比較して値の反転を受け入れ可能な状態変数を示すインデックスに更新可能フラグを設定する。その後、選択回路25は、更新可能フラグが付加されたインデックスの中から1つのインデックスqを選択する(ステップS9)。
最適化部20は、各インデックスに割り当てられたグループ変数の情報を制御部10から取得する。そして、最適化部20は、選択回路25により選択されたインデックスqが示す状態変数xの値の反転に対応して2ウェイ1ホット制約を満たして値が反転する状態変数x,x,xを示すインデックスp,r,sを特定する。そして、最適化部20は、インデックスp,r,sを表すグループ変数を特定する(ステップS10)。
記憶部21は値が更新される状態変数を示すインデックスであるp、q、r、sの情報が入力され、そのインデックスに対応した重み値が局所場生成部22の各局所場生成回路220へ出力される。各局所場生成回路220は、p、q、r、sの更新に対応した重み値の入力を受けて、保持する局所場を更新する(ステップS11)。
さらに、記憶部21は、インデックスp、q、r、sに対応する記憶素子210に格納された重み値を更新する(ステップS12)。
更新部26は、値が更新される状態変数を示すインデックスであるp、q、r、sの情報が入力され、記憶部260が保持する状態変数の中から取得したインデックスで示される状態変数であるx,x,x,xを特定する。そして、更新部26は、特定した状態変数であるx,x,x,xの値を反転させて更新する(ステップS13)。
その後、更新部26は、記憶部260に更新後の全ての状態変数を書き込む。また、各局所場生成回路220は、保持するレジスタに更新後の局所場を書き込む(ステップS14)。
更新制御部16は、最適化部20における状態変数及び局所場の更新が完了すると、状態変数の更新が規程回数終了したか否かを判定する(ステップS15)。状態変数の更新が規程回数に達していない場合(ステップS15:否定)、最適化処理は、ステップS6に戻る。
これに対して、状態変数の更新が規程回数終了した場合(ステップS15:肯定)、更新制御部16は、温度を規程回数下げたか否かを判定する(ステップS16)。
温度を規程回数下げていない場合(ステップS16:否定)、最適化処理は、ステップS2へ戻る。これに対して、温度を規程回数下げた場合(ステップS16:肯定)、最適化装置1は、最適化処理を終了する。
図8は、配車計画問題を解いた場合のイテレーション数の削減度合いを表す図である。ここでは、集積所101及び拠点102を含む拠点数が#P箇所であり、ルートが#R本の場合の配車計画問題の問題インスタンスをn#Pk#Rと表す。
図8におけるイテレーション数削減度合いは、冗長拠点の交換を除かずに最適化処理を行った場合のイテレーション数に対する、本実施例に係る最適化装置1を用いた場合のイテレーション数の削減度合いを表す。例えば、問題インスタンスがn13k4の場合、イテレーション数は冗長拠点の交換を除かずに最適化処理を行った場合に比べて3%削減された。同様に、問題インスタンスがn22k4、n23k3、n30k3、n51k5及びn76k8の場合、削減度合いはそれぞれ、4%、6%,8%、9%及び11%となった。このように、本実施例に係る最適化装置1は、冗長拠点同士の2ウェイ1ホット制約にしたがった交換をなくすことで、最適値に到達するまでのイテレーション数を削減することが可能である。
以上に説明したように、本実施例に係る最適化装置1は、2ウェイ1ホット制約を有する最適化問題を解く場合に、2ウェイ1ホット制約にしたがって選択変更する場合に、計算のために導入された冗長点同士の交換による選択の変更を除外する。これにより、最適値に到達するまでのイテレーション数を減らすことができ、2ウェイ1ホット制約を有する最適化問題の計算時間を短縮することが可能となる。
1 最適化装置
10 制御部
11 上限算出部
12 目的関数生成部
13 初期化実行部
14 候補決定部
15 温度管理部
16 更新制御部
17 通知部
20 最適化部
21 記憶部
22 局所場生成部
23 エネルギー変化算出部
24 オフセット加算部
25 選択回路
26 更新部
210 記憶素子
220 局所場生成回路
230 エネルギー変化算出回路
260 記憶部

Claims (7)

  1. 2ウェイ1ホット制約を含む所定制約が与えられた問題の解を、所定数の変数を有する目的関数を用いて求める情報処理装置であって、
    所定数の前記変数に複数の冗長変数を付加した拡大変数から、前記所定制約を基に値を変化させる候補の組を決定する際に、前記冗長変数同士の値が入れ替わった前記候補の組の一方を除外する候補決定部と、
    前記候補決定部より決定された前記候補の組の値を前記所定制約に応じて変化させて、前記目的関数を基に探索を行う探索部と、
    前記探索部による前記探索の結果を基に、前記解を決定する更新制御部と
    を備えたことを特徴とする情報処理装置。
  2. 前記候補決定部は、それぞれが前記拡大変数と同数の構成要素とを含む2つのグループの各前記構成要素に対して重複を許さず且つ前記所定制約に含まれる前記2ウェイ1ホット以外の条件にしたがって行われる前記拡大変数の割り当てを変更することで前記値を変化させる候補の組を決定し、且つ、前記冗長変数同士が入れ替わった前記拡大変数の前記構成要素への割り当ての一方を除外し、
    前記探索部は、前記候補決定部より決定された前記拡大変数の前記構成要素への割り当てを基に前記探索を行う
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記更新制御部は、前記候補決定部による前記値を変化させる候補の組の決定及び前記探索部による前記探索を繰り返させ、特定の条件に達した場合に前記探索部による探索結果として得られる前記拡大変数の前記構成要素への割り当てのうち、前記冗長変数の割り当てを除外して前記解とすることを特徴とする請求項2に記載の情報処理装置。
  4. 前記探索部は、前記候補決定部により決定された前記候補の組のそれぞれについて前記目的関数を用いてエネルギー変化を算出して探索を行うことを特徴とする請求項1~3のいずれか一つに記載の情報処理装置。
  5. 前記所定数の要素をそれぞれが有し且つ重複を許さずに前記変数が前記要素に割り当てられることで前記2ウェイ1ホット制約が満たされる2つの制約グループについて、前記所定制約に含まれる前記2ウェイ1ホット以外の制約を基に前記制約グループの一方が分割されて生成される複数の分割グループ毎に含むことが可能な前記要素の上限数を算出する上限算出部をさらに備え、
    前記候補決定部は、前記上限算出部により求められた前記上限数に応じて前記冗長変数の数を決定する
    ことを特徴とする請求項1~4のいずれか一つに記載の情報処理装置。
  6. 2ウェイ1ホット制約を含む所定制約が与えられた問題の解を、所定数の変数を有する目的関数を用いて求める処理をコンピュータに実行させる情報処理方法であって、
    所定数の前記変数に複数の冗長変数を付加した拡大変数から、前記所定制約を基に値を変化させる候補の組を決定する際に、前記冗長変数同士の値が入れ替わった前記候補の組の一方を除外して前記値を変化させる候補の組を決定し、
    決定した前記候補の組の値を前記所定制約に応じて変化させて、前記目的関数を基に探索を行い、
    前記探索の結果を基に、前記解を決定する
    処理を前記コンピュータに実行させることを特徴とする情報処理方法。
  7. 2ウェイ1ホット制約を含む所定制約が与えられた問題の解を、所定数の変数を有する目的関数を用いて求める処理をコンピュータに実行させる情報処理プログラムであって、
    所定数の前記変数に複数の冗長変数を付加した拡大変数から、前記所定制約を基に値を変化させる候補の組を決定する際に、前記冗長変数同士の値が入れ替わった前記候補の組の一方を除外して前記値を変化させる候補の組を決定し、
    決定した前記候補の組の値を前記所定制約に応じて変化させて、前記目的関数を基に探索を行い、
    前記探索の結果を基に、前記解を決定する
    処理を前記コンピュータに実行させることを特徴とする情報処理プログラム。
JP2022009452A 2022-01-25 2022-01-25 情報処理装置、情報処理方法及び情報処理プログラム Pending JP2023108368A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2022009452A JP2023108368A (ja) 2022-01-25 2022-01-25 情報処理装置、情報処理方法及び情報処理プログラム
US17/979,016 US20230237123A1 (en) 2022-01-25 2022-11-02 Information processing apparatus, information processing method, and computer-readable recording medium storing information processing program
EP22205212.8A EP4216108A1 (en) 2022-01-25 2022-11-03 Information processing apparatus, information processing method, and information processing program
CN202211455054.8A CN116502741A (zh) 2022-01-25 2022-11-21 信息处理装置、信息处理方法和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022009452A JP2023108368A (ja) 2022-01-25 2022-01-25 情報処理装置、情報処理方法及び情報処理プログラム

Publications (1)

Publication Number Publication Date
JP2023108368A true JP2023108368A (ja) 2023-08-04

Family

ID=84330064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022009452A Pending JP2023108368A (ja) 2022-01-25 2022-01-25 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (4)

Country Link
US (1) US20230237123A1 (ja)
EP (1) EP4216108A1 (ja)
JP (1) JP2023108368A (ja)
CN (1) CN116502741A (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08153085A (ja) 1994-11-28 1996-06-11 Ricoh Co Ltd 配送計画問題の最適解探索方法及びその装置
JP2015038429A (ja) 2013-08-19 2015-02-26 国立大学法人 熊本大学 経路探索方法、経路探索装置及びプログラム
JP7410395B2 (ja) * 2020-03-26 2024-01-10 富士通株式会社 最適化装置及び最適化方法

Also Published As

Publication number Publication date
CN116502741A (zh) 2023-07-28
US20230237123A1 (en) 2023-07-27
EP4216108A1 (en) 2023-07-26

Similar Documents

Publication Publication Date Title
Matsubara et al. Digital annealer for high-speed solving of combinatorial optimization problems and its applications
US7363126B1 (en) Core area territory planning for optimizing driver familiarity and route flexibility
Kundakcı et al. Hybrid genetic algorithms for minimizing makespan in dynamic job shop scheduling problem
Bayram et al. A comprehensive mathematical model for dynamic cellular manufacturing system design and Linear Programming embedded hybrid solution techniques
CN111178582B (zh) 一种基于改进遗传算法的物流配送优化方法
Pei et al. Solving the traveling repairman problem with profits: A novel variable neighborhood search approach
US7991593B2 (en) Optimisation of sequential combinatorial process
Kim et al. Sequencing and scheduling highway network expansion using a discrete network design model
JP2007241340A (ja) N分割巡回経路探索システム、経路探索サーバ、n分割巡回経路探索方法
US20200089728A1 (en) Optimization problem arithmetic method and optimization problem arithmetic device
JP4209109B2 (ja) コンテナターミナル運用最適化システム
JP2023108368A (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Rüther et al. A grouping genetic algorithm for multi depot pickup and delivery problems with time windows and heterogeneous vehicle fleets
US11409836B2 (en) Optimization problem arithmetic method and optimization problem arithmetic apparatus
Schneider et al. Traveling salesman problem with clustering
JP2023107619A (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Yassen et al. A hybrid meta-heuristic algorithm for vehicle routing problem with time windows
Onwubolu et al. New ideas and applications of scatter search and path relinking
CN114169488B (zh) 基于混合元启发式算法的带容量约束的车辆路径获取方法
Patlola Efficient Evaluation of Makespan for a Manufacturing System Using Max-Plus Algebra
JP7239521B2 (ja) 情報処理装置および情報処理方法
Nguyen et al. An adaptive large neighborhood search for multi-trip multi-traffic pickup and delivery problem with time windows and synchronization
JP2022087691A (ja) 最適化装置及び最適化方法
JP7112312B2 (ja) 化合物探索装置、化合物探索方法、及び化合物探索プログラム
da Silva Junior et al. Low-Level Hybridization of Metaheuristics to Solve Symmetric Tsp