(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024119070
(43)【公開日】2024-09-03
(54)【発明の名称】近似解探索装置、近似解探索方法および近似解探索プログラム
(51)【国際特許分類】
G06N 99/00 20190101AFI20240827BHJP
【FI】
G06N99/00 180
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023025666
(22)【出願日】2023-02-22
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103090
【弁理士】
【氏名又は名称】岩壁 冬樹
(74)【代理人】
【識別番号】100124501
【弁理士】
【氏名又は名称】塩川 誠人
(72)【発明者】
【氏名】西村 考弘
(72)【発明者】
【氏名】鷹野 芙美代
(72)【発明者】
【氏名】井手口 裕太
(72)【発明者】
【氏名】伴内 光太郎
(72)【発明者】
【氏名】窪田 大
(57)【要約】
【課題】最適化問題の要件を満たす近似解の探索に要する時間を短縮できる近似解探索装置を提供する。
【解決手段】緩和問題生成手段181は、対象とする最適化問題を緩和した問題である緩和問題を生成する。下界エネルギー算出手段182は、生成された緩和問題における最適解で得られる目的関数の下限値を示す下界エネルギーを算出する。ターゲット値決定手段183は、算出された下界エネルギーに対して許容し得る誤差の範囲を示す誤差閾値と、その下界エネルギーとから、最適化問題の最適化処理を終了するとの判断に用いられる値であるターゲット値を決定する。アニーリング実行手段184は、アニーリング方式により最適化を行う装置に対して、最適化問題に対応したパラメータを入力して最適化処理を実行させる。ターゲット値更新手段185は、最適化処理により得られた解による目的関数の値の収束状況に基づいて、ターゲット値を更新する。
【選択図】
図10
【特許請求の範囲】
【請求項1】
アニーリング方式により、対象とする最適化問題の近似解の探索を行う近似解探索装置であって、
対象とする最適化問題を緩和した問題である緩和問題を生成する緩和問題生成手段と、
生成された前記緩和問題における最適解で得られる目的関数の下限値を示す下界エネルギーを算出する下界エネルギー算出手段と、
算出された前記下界エネルギーに対して許容し得る誤差の範囲を示す誤差閾値と、当該下界エネルギーとから、前記最適化問題の最適化処理を終了するとの判断に用いられる値であるターゲット値を決定するターゲット値決定手段と、
前記アニーリング方式により最適化を行う装置に対して、前記最適化問題に対応したパラメータを入力して最適化処理を実行させるアニーリング実行手段と、
前記最適化処理により得られた解による目的関数の値の収束状況に基づいて、前記ターゲット値を更新するターゲット値更新手段とを備えた
ことを特徴とする近似解探索装置。
【請求項2】
アニーリング実行手段は、今回のスイープのタイミングで得られた解による目的関数の値である第一の値がターゲット値以下になり、かつ、前回のスイープのタイミングで得られた解による目的関数の値である第二の値と前記第一の値との差が、所定の基準以下になるまで最適化処理におけるスイープを繰り返し実行する
請求項1記載の近似解探索装置。
【請求項3】
ターゲット値更新手段は、今回のスイープのタイミングで得られた解による目的関数の値である第一の値がターゲット値以下にならず、かつ、前回のスイープのタイミングで得られた解による目的関数の値である第二の値と前記第一の値との差が、所定の基準以下になった場合、前記第一の値に近づけるように前記ターゲット値を更新する
請求項1または請求項2記載の近似解探索装置。
【請求項4】
ターゲット値更新手段は、今回のスイープのタイミングで得られた解による目的関数の値である第一の値がターゲット値以下になり、かつ、前回のスイープのタイミングで得られた解による目的関数の値である第二の値と前記第一の値との差が、所定の基準を超える場合、前記第一の値に前記ターゲット値を更新する
請求項1または請求項2記載の近似解探索装置。
【請求項5】
誤差閾値の入力を受け付ける入力手段と、
下界エネルギーを表示する表示手段とを備え、
前記表示手段は、前記下界エネルギー算出手段によって算出された下界エネルギーを表示し、
前記ターゲット値決定手段は、下界エネルギーと、入力された前記誤差閾値とに基づいてターゲット値を決定する
請求項1または請求項2記載の近似解探索装置。
【請求項6】
緩和問題の最適解から、アニーリング実行手段が最適化処理を最初に実行させる際の解の候補である初期パターンを作成する初期パターン決定手段を備え、
アニーリング実行手段は、前記初期パターンを利用した最適化処理を実行させる
請求項1または請求項2記載の近似解探索装置。
【請求項7】
アニーリング方式により、対象とする最適化問題の近似解の探索を行う近似解探索方法であって、
対象とする最適化問題を緩和した問題である緩和問題を生成し、
生成された前記緩和問題における最適解で得られる目的関数の下限値を示す下界エネルギーを算出し、
算出された前記下界エネルギーに対して許容し得る誤差の範囲を示す誤差閾値と、当該下界エネルギーとから、前記最適化問題の最適化処理を終了するとの判断に用いられる値であるターゲット値を決定し、
前記アニーリング方式により最適化を行う装置に対して、前記最適化問題に対応したパラメータを入力して最適化処理を実行させ、
前記最適化処理により得られた解による目的関数の値の収束状況に基づいて、前記ターゲット値を更新する
ことを特徴とする近似解探索方法。
【請求項8】
今回のスイープのタイミングで得られた解による目的関数の値である第一の値がターゲット値以下になり、かつ、前回のスイープのタイミングで得られた解による目的関数の値である第二の値と前記第一の値との差が、所定の基準以下になるまで最適化処理におけるスイープを繰り返し実行する
請求項7記載の近似解探索方法。
【請求項9】
アニーリング方式により、対象とする最適化問題の近似解の探索を行うコンピュータに実行させる近似解探索プログラムであって、
前記コンピュータに、
対象とする最適化問題を緩和した問題である緩和問題を生成する緩和問題生成処理、
生成された前記緩和問題における最適解で得られる目的関数の下限値を示す下界エネルギーを算出する下界エネルギー算出処理、
算出された前記下界エネルギーに対して許容し得る誤差の範囲を示す誤差閾値と、当該下界エネルギーとから、前記最適化問題の最適化処理を終了するとの判断に用いられる値であるターゲット値を決定するターゲット値決定処理、
前記アニーリング方式により最適化を行う装置に対して、前記最適化問題に対応したパラメータを入力して最適化処理を実行させるアニーリング実行処理、および、
前記最適化処理により得られた解による目的関数の値の収束状況に基づいて、前記ターゲット値を更新するターゲット値更新処理
を実行させるための近似解探索プログラム。
【請求項10】
コンピュータに、
アニーリング実行処理で、今回のスイープのタイミングで得られた解による目的関数の値である第一の値がターゲット値以下になり、かつ、前回のスイープのタイミングで得られた解による目的関数の値である第二の値と前記第一の値との差が、所定の基準以下になるまで最適化処理におけるスイープを繰り返し実行させる
請求項9記載の近似解探索プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、最適化問題の近似解を探索する近似解探索装置、近似解探索方法および近似解探索プログラムに関する。
【背景技術】
【0002】
組合せ最適化問題を解くためのアルゴリズムの一つとして、シミュレーテッドアニーリング(SA:Simulated Annealing )が用いられている。アニーリングとは自然界で自動的にエネルギー値が最小になっていくことを利用した最小値探索計算法のことである。
【0003】
SAでは、解きたい問題を2値変数(スピン)の2次式の係数行列(QUBO)に変換し、スピンの値をランダムに更新する過程を繰り返していくことで、エネルギーの小さい最適解が探索される。以下の説明では、一つのスピンを選択して反転させるか否かを判定するステップ(すなわち、更新する過程を繰り返すこと)をスイープまたはsweepと記す。
【0004】
例えば、特許文献1には、量子計算技術を用いて最適化問題を求解する最適化支援装置が記載されている。特許文献1に記載された装置は、最適化問題の一部の制約条件を緩和した子問題の目的関数を設定し、量子計算機から子問題の最適解を取得して、子問題の目的関数の最適値を求める。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
一般的に、指示されたQUBOのアニーリングに要する実行時間は、事前には不明である。そのため、ユーザが希望する打ち切り時間やsweep数が指定され、ユーザは、その指定された時間やsweep数の実行が行われるまでアニーリングを待ち続けることになる。そのため、既に最適解が得られている場合や許容可能な解(以下、妥当解と記す。)が求まっている場合、これ以上処理を繰り返しても改善の見込みがない場合にも、指定された条件を満たすまでアニーリングを終了できないという問題があった。
【0007】
問題を初めて定式化してアニーリングする場合、アニーリングに必要な時間は不明であるため、一般的には、デフォルト値や許容可能な時間が設定される。そして、アニーリングの結果(例えば、収束状況など)の結果がフィードバックされ、アニーリングの時間を延ばすべきか短縮すべきか、打ち切り時間やsweep数をどの程度にすべきかを何度も試行錯誤する必要があった。
【0008】
最適解や近似解(例えば、最適解の±x%の誤差)が既知であれば、アニーリングを終了すると判断するエネルギーの値(以下、ターゲット値と記す。)を設定できるため、そのターゲット値に達したか否かでアニーリングを終了させることは可能である。しかし、そもそも最適解や近似解を求めるためにアニーリングするため、事前にターゲット値を得ることは難しい。
【0009】
一方で、要件を満たす近似解(妥当解)が見つかれば、最適解でなくても許容されるケースも数多く存在する。そのため、妥当解が得られたタイミングでアニーリングを終了できれば、処理に要する時間を短縮することは可能である。しかし、その妥当解を設定することも難しい。
【0010】
特許文献1に記載された方法を用いることで、ターゲット値を見積り、一応の解を得ることは可能である。しかし、制約を満たしていない解が、本当の最適解に近いエネルギーになるか判断することは困難である。そのため、特許文献1に記載された方法では、得られた解に対して制約を満たすような後処理が必要になるため、ターゲット値を見積もる処理コストも増大してしまう。
【0011】
そこで、本発明は、最適化問題の要件を満たす近似解の探索に要する時間を短縮できる近似解探索装置、近似解探索方法および近似解探索プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明による近似解探索装置は、アニーリング方式により、対象とする最適化問題の近似解の探索を行う近似解探索装置であって、対象とする最適化問題を緩和した問題である緩和問題を生成する緩和問題生成手段と、生成された緩和問題における最適解で得られる目的関数の下限値を示す下界エネルギーを算出する下界エネルギー算出手段と、算出された下界エネルギーに対して許容し得る誤差の範囲を示す誤差閾値と、その下界エネルギーとから、最適化問題の最適化処理を終了するとの判断に用いられる値であるターゲット値を決定するターゲット値決定手段と、アニーリング方式により最適化を行う装置に対して、最適化問題に対応したパラメータを入力して最適化処理を実行させるアニーリング実行手段と、最適化処理により得られた解による目的関数の値の収束状況に基づいて、ターゲット値を更新するターゲット値更新手段とを備えたことを特徴とする。
【0013】
本発明による近似解探索方法は、アニーリング方式により、対象とする最適化問題の近似解の探索を行う近似解探索方法であって、対象とする最適化問題を緩和した問題である緩和問題を生成し、生成された緩和問題における最適解で得られる目的関数の下限値を示す下界エネルギーを算出し、算出された下界エネルギーに対して許容し得る誤差の範囲を示す誤差閾値と、その下界エネルギーとから、最適化問題の最適化処理を終了するとの判断に用いられる値であるターゲット値を決定し、アニーリング方式により最適化を行う装置に対して、最適化問題に対応したパラメータを入力して最適化処理を実行させ、最適化処理により得られた解による目的関数の値の収束状況に基づいて、ターゲット値を更新することを特徴とする。
【0014】
本発明による近似解探索プログラムは、アニーリング方式により、対象とする最適化問題の近似解の探索を行うコンピュータに実行させる近似解探索プログラムであって、コンピュータに、対象とする最適化問題を緩和した問題である緩和問題を生成する緩和問題生成処理、生成された緩和問題における最適解で得られる目的関数の下限値を示す下界エネルギーを算出する下界エネルギー算出処理、算出された下界エネルギーに対して許容し得る誤差の範囲を示す誤差閾値と、その下界エネルギーとから、最適化問題の最適化処理を終了するとの判断に用いられる値であるターゲット値を決定するターゲット値決定処理、アニーリング方式により最適化を行う装置に対して、最適化問題に対応したパラメータを入力して最適化処理を実行させるアニーリング実行処理、および、最適化処理により得られた解による目的関数の値の収束状況に基づいて、ターゲット値を更新するターゲット値更新処理を実行させることを特徴とする。
【発明の効果】
【0015】
本発明によれば、最適化問題の要件を満たす近似解の探索に要する時間を短縮できる。
【図面の簡単な説明】
【0016】
【
図1】本発明の近似解探索システムの第一の実施形態の構成例を示すブロック図である。
【
図2】初期のターゲット値が適切に設定されている場合の例を示す説明図である。
【
図3】初期のターゲット値が小さい場合の例を示す説明図である。
【
図4】初期のターゲット値が大きい場合の例を示す説明図である
【
図5】第一の実施形態の近似解探索システムを用いた処理概要を示す説明図である。
【
図6】第一の実施形態の近似解探索システムの動作例を示すフローチャートである。
【
図7】本発明の近似解探索システムの第二の実施形態の構成例を示すブロック図である。
【
図8】第二の実施形態の近似解探索システムを用いた処理概要を示す説明図である。
【
図9】第二の実施形態の近似解探索システムの動作例を示すフローチャートである。
【
図10】本発明による近似解探索装置の概要を示すブロック図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態を図面を参照して説明する。
【0018】
実施形態1.
図1は、本発明の近似解探索システムの第一の実施形態の構成例を示すブロック図である。本実施形態の近似解探索システム1は、近似解探索装置100と、アニーリング手段200とを備えている。近似解探索装置100は、アニーリング手段200に通信可能に接続される。なお、近似解探索装置100がアニーリング手段200を備える構成であってもよい。
【0019】
本実施形態の近似解探索装置100は、アニーリング方式により、対象とする最適化問題の近似解の探索を行う装置である。近似解探索装置100は、例えば、アニーリング手段200に、アニーリング方式による最適化処理を実行させる。
【0020】
アニーリング手段200は、イジングモデルのハミルトニアンの基底状態を求める専用の装置であり、後述するアニーリング実行部60の指示に応じてアニーリングを実行する装置である。より具体的には、アニーリング手段200は、二値変数を引数とするイジングモデルの目的関数(すなわち、ハミルトニアン)を最小化又は最大化する二値変数の値を確率的に求める装置である。
【0021】
なお、二値変数は、古典ビットや量子ビットで実現されていてもよい。なお、本実施形態のアニーリング手段200の態様は任意である。アニーリング手段200は、二値変数を引数とする目的関数を最小化又は最大化する二値変数の値を確率的に求めるものであればどのようなハードウェアによって構成されてもよい。アニーリング手段200は、例えば、目的関数がイジングモデルの形式でハードウェアによって実装された非ノイマン型コンピュータであってもよい。また、アニーリング手段200は、擬似量子アニーリングまたは量子インスパイアードを行う装置であってもよい。
【0022】
近似解探索装置100は、記憶部10と、入力部20と、緩和問題生成部30と、下界エネルギー算出部40と、ターゲット値決定部50と、アニーリング実行部60と、ターゲット値更新部70と、出力部80とを含む。
【0023】
記憶部10は、近似解探索装置100が処理に用いる各種情報を記憶する。記憶部10は、例えば、磁気ディスク等により実現される。
【0024】
入力部20は、対象とする最適化問題の入力を受け付ける。入力部20は、例えば、以下の式1で表わされる数理最適化の式の入力を受け付けてもよい。他にも、入力部20は、QUBOのハミルトニアン式の入力を受け付けてもよい。
【0025】
【0026】
また、入力部20は、後述する処理で用いられる誤差閾値の入力を受け付ける。なお、誤差閾値については後述される。
【0027】
緩和問題生成部30は、入力された対象とする最適化問題を緩和した問題を生成する。以下、最適化問題を緩和した問題を緩和問題と記す。このように生成された緩和問題は、もとの最適化問題(例えば、組み合わせ最適化問題)よりも容易に最適解を見つけ出すことができる問題になる。
【0028】
具体的には、離散変数を解くよりも連続する実数変数を解く方が微分を取ることができ、解きやすいことが多い。そこで、緩和問題生成部30は、まずは解きやすい解法で最適解を示す値(エネルギー)の周辺値を見積もれるよう、緩和問題を生成する。
【0029】
具体的には、本実施形態の緩和問題生成部30は、最適化問題を緩和して連続緩和問題を生成する。例えば、上記に示す式1が最適化問題として入力された場合、緩和問題生成部30は、以下の式2で表わされるような連続緩和問題を生成してもよい。
【0030】
【0031】
上記式2では、0-1整数問題を連続緩和する例を示している。なお、2値のQUBOについても、2進数表現で任意の整数を表現することが可能であるため、例えば、0-10整数の場合であれば、0≦xi≦10のように連続緩和してもよい。数理最適化の式や、QUBOのハミルトニアン式を連続緩和問題に変換する方法は広く知られているため、ここでは詳細な説明は省略する。
【0032】
下界エネルギー算出部40は、生成された緩和問題における最適解で得られる目的関数の下限値(以下、下界エネルギーと記す。)を算出する。例えば、緩和問題がハミルトニアン式で表わされている場合、下限値は下限のエネルギーと言うことができる。緩和問題(例えば、連続緩和問題)の最適解を求める方法も広く知られているため、ここでは詳細な説明は省略する。
【0033】
ターゲット値決定部50は、算出された下界エネルギーと誤差閾値とから、対象とする最適化問題の最適化処理を終了するとの判断に用いられる値(以下、ターゲット値と記す。)を決定する。例えば、緩和問題がハミルトニアン式で表わされている場合、ターゲット値は、エネルギーの値と言うことができる。
【0034】
ここで、入力される誤差閾値は、算出された下界エネルギーに対して許容し得る誤差の範囲を示す情報である。具体的には、誤差閾値は、下界エネルギーから誤差何%を許容するかを示す値であり、ユーザ等により事前に設定される。言い換えると、この誤差は、妥当解と判断する解の範囲を示す情報とも言える。誤差閾値は、例えば、アニーリングを開始したときの最初の目的関数の値と下界エネルギーの差分の10%のように設定される。
【0035】
アニーリング実行部60は、アニーリング手段200に対して、最適化問題に対応したパラメータを入力して、最適化問題の最適化処理を実行させ、最適解および最適化問題の目的関数の値を取得する。例えば、最適化問題がイジングモデルのハミルトニアンで表わされている場合、アニーリング実行部60は、最適解および最適化問題における目的関数のエネルギー値を取得する。
【0036】
ターゲット値更新部70は、最適化処理により得られた解による目的関数の値の収束状況に基づいてターゲット値を更新する。例えば、最適化問題がイジングモデルのハミルトニアンで表わされている場合、ターゲット値更新部70は、最適化処理により得られた解によるエネルギーの収束状況に基づいてターゲット値を更新する。
【0037】
以降、アニーリング実行部60とターゲット値更新部70の処理が繰り返される。具体的には、スイープが一定の間隔で行われる最適化処理において、アニーリング実行部60は、今回のスイープのタイミングで得られた解による目的関数の値(以下、第一の値と記す。)がターゲット値以下になり、かつ、前回のスイープのタイミングで得られた解による目的関数の値(以下、第二の値)と第一の値との差が、所定の基準(以下、収束判定閾値と記す。)以下になるまで最適化処理におけるスイープを繰り返し実行する。
【0038】
一方、ターゲット値更新部70は、第一の値がターゲット値以下にならず、かつ、第二の値と第一の値との差が、収束判定閾値以下になった場合、第一の値に近づけるようにターゲット値を更新する。さらに、ターゲット値更新部70は、第一の値がターゲット値以下になり、かつ、第二の値と第一の値との差が、収束判定閾値を超える場合、第一の値にターゲット値を更新する。
【0039】
出力部80は、下界エネルギー算出部40やターゲット値決定部50による処理結果、最適化処理による処理結果などを出力する。具体的には、出力部80は、下界エネルギー算出部40により算出された下界エネルギー、ターゲット値決定部50により決定されたターゲット値、最適化処理により得られた解に対する値(エネルギー値)などを表示してもよい。
【0040】
以下、アニーリング実行部60、ターゲット値更新部70、および、出力部80による処理について具体的に説明する。想定される状況として、ターゲット値が適切に設定されている場合、最初に設定したターゲット値が小さい場合、および、最初に設定したターゲット値が大きい場合が考えられる。まず初めに、ターゲット値が適切に設定されている場合について説明する。
【0041】
図2は、初期のターゲット値が適切に設定されている場合の例を示す説明図である。
図2に示す例では、最適化処理において最初のスイープでの目的関数の値(エネルギー)と下界エネルギーとの差分を降下させるべき値(エネルギー)と定義し、誤差閾値をその10%に設定した場合の例を示す。誤差閾値を10%に設定した場合、最初の値(エネルギー)と下界エネルギーの差分の90%の値分ほど、最初の値から降下させた値がターゲット値になる。
【0042】
また、
図2では、スイープの各タイミング(時間)において測定された目的関数の最小の値(最小のエネルギー)を細線破線で示している。
図2に例示するような理想的なターゲット値が設定できれば、ターゲット値を変動させる必要はない。この場合、
図2に例示する打ち切り時間のタイミングで最適化処理が終了する。
【0043】
次に、最初に設定したターゲット値が小さい場合の処理を説明する。
図3は、初期のターゲット値が小さい場合の例を示す説明図である。ここでは、第一の値と第二の値の差の収束を判断する所定の基準(すなわち、収束判定閾値)が、最適化処理開始時の値(最初のエネルギー)と下界エネルギーの差分の1%に設定されているものとする。
【0044】
図3に示す例では、ターゲット値が小さく設定されているため、例えば、時間T8のタイミングで収束していると判断された場合であっても、目的関数の値がターゲット値を下回らない。この場合、ターゲット値更新部70は、第一の値に近づけるようにターゲット値を更新する。
図3に示す例では、10%間隔分、ターゲット値を上昇させた例を示す。以降、アニーリング(スイープ)が繰り返され、目的関数の値がターゲット値を下回ったタイミングで、最適化処理が終了する。
【0045】
なお、値に近づける方法は任意であり、例えば、割合等を予め定めておけばよい。
図3に示す例では、10%間隔分ターゲット値を上昇させる場合について説明した。他にも、例えば、局所解に落ち込んでエネルギー変化がないことを考慮して、ターゲット値更新部70は、1%間隔分ずつ上昇させてもよい。
【0046】
次に、最初に設定したターゲット値が大きい場合の処理を説明する。
図4は、初期のターゲット値が大きい場合の例を示す説明図である。ここでも、第一の値と第二の値の差の収束を判断する収束判定閾値が、最適化処理開始時の値(最初のエネルギー)と下界エネルギーの差分の1%に設定されているものとする。
【0047】
図4に示す例では、ターゲット値が大きく設定されているため、例えば、時間T2のタイミングでターゲット値が下回るが、収束しているとは判断されない。この場合、ターゲット値更新部70は、ターゲット値を第一の値に更新する。以降、アニーリング(スイープ)が繰り返され、目的関数の値が収束していると判断されたタイミング(ここでは、時間T7のタイミング)で、最適化処理が終了する。
【0048】
次に、本実施形態の近似解探索システム1を用いた処理概要を説明する。
図5は、本実施形態の近似解探索システム1を用いた処理概要を示す説明図である。一般的に、業務等から課題が抽出され(ステップS101)、その課題を解くための問題(最適化問題)が定式化される(ステップS102)。本実施形態では、定式化された最適化問題から緩和問題が生成される。そして、誤差閾値が設定され(ステップS111)、下界エネルギーが決定されて(ステップS112)、初期のターゲット値が決定される(ステップS113)。
【0049】
また、アニーリングに先立ち、最適化問題をQUBOに変換する処理が行われ(ステップS103)、アニーリングが行われる(ステップS104)。ここで、本実施形態では、アニーリングを終了するか否かを、目的関数の値がターゲット値を下回っているか、第一の値と第二の値との差が収束しているかを基準として判断が行われる(ステップS114)。ターゲット値を下回り、かつ、差が収束していると判断されるまでアニーリング(スイープ処理の繰り返し)を行い、最終結果を妥当解として返却する。
【0050】
入力部20と、緩和問題生成部30と、下界エネルギー算出部40と、ターゲット値決定部50と、アニーリング実行部60と、ターゲット値更新部70と、出力部80とは、プログラム(近似解探索プログラム)に従って動作するコンピュータのプロセッサ(例えば、CPU(Central Processing Unit ))によって実現される。
【0051】
例えば、プログラムは、近似解探索装置100の記憶部10に記憶され、プロセッサは、そのプログラムを読み込み、プログラムに従って、入力部20、緩和問題生成部30、下界エネルギー算出部40、ターゲット値決定部50、アニーリング実行部60、ターゲット値更新部70、および、出力部80として動作してもよい。また、近似解探索装置100の機能がSaaS(Software as a Service )形式で提供されてもよい。
【0052】
また、入力部20と、緩和問題生成部30と、下界エネルギー算出部40と、ターゲット値決定部50と、アニーリング実行部60と、ターゲット値更新部70と、出力部80とは、それぞれが専用のハードウェアで実現されていてもよい。また、各装置の各構成要素の一部又は全部は、汎用又は専用の回路(circuitry )、プロセッサ等やこれらの組合せによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。
【0053】
また、近似解探索装置100の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【0054】
次に、本実施形態の近似解探索システムの動作を説明する。
図6は、本実施形態の近似解探索システム1の動作例を示すフローチャートである。まず、ユーザ等により、最適化問題に対する定式化が完了し(ステップS1)、誤差閾値が設定される(ステップS2)。入力部20が、対象とする最適化問題および誤差閾値の入力を受け付けると、緩和問題生成部30が緩和問題を生成し、下界エネルギー算出部40が下界エネルギーを算出する(ステップS3)。
【0055】
ここで、アニーリング実行部60は、最適解が元の問題(すなわち、対象とする最適化問題)の解空間内にあるか否か判断する(ステップS4)。緩和問題の最適解が元の最適化問題の解空間内の解であれば、最適化問題の最適解も求まったことになる。そのため、最適解が元の問題の解空間内にある場合(ステップS4におけるYes)、近似解探索装置100は、処理を終了する(ステップS5)。
【0056】
一方、最適解が元の問題の解空間内にない場合(ステップS4におけるNo)、アニーリング実行部60は、アニーリングを開始し、sweepの最初の目的関数の値を取得する(ステップS6)。ターゲット値決定部50は、ターゲット値を決定し、アニーリングを継続する(ステップS7)。
【0057】
一定のsweepが経過したのち、ターゲット値更新部70は、目的関数の値の差分(すなわち、第一の値と第二の値との差)Δn-1,nを計算する(ステップS8)。ターゲット値更新部70は、第一の値(すなわち、今回のスイープのタイミングで得られた解による目的関数の値)Enが、ターゲット値以下か否か判断する(ステップS9)。
【0058】
第一の値Enがターゲット値以下でない場合(ステップS9のにおけるNo)、かつ、Δn-1,nが収束判定閾値(例えば、間隔が1%)以下の場合(ステップS10におけるYes)、ターゲット値更新部70は、ターゲット値を第一の値に近づけるように(例えば、10%間隔分)上昇させる(ステップS11)。そして、ステップS8以降の処理が繰り返される。一方、Δn-1,nが収束判定閾値(例えば、間隔が1%)以下でない場合(ステップS10におけるNo)、ターゲット値を変更せず、ステップS8以降の処理が繰り返される。
【0059】
一方、第一の値Enがターゲット値以下であり場合(ステップS9のにおけるYes)、かつ、Δn-1,nが収束判定閾値(例えば、間隔が1%)よりも大きい場合(ステップS12におけるYes)、ターゲット値更新部70は、ターゲット値を第一の値に設定する(ステップS13)。そして、ステップS8以降の処理が繰り返される。一方、Δn-1,nが収束判定閾値(例えば、間隔が1%)よりも大きくない場合(ステップS12におけるNo)、アニーリングを終了する(ステップS14)。その後、出力部80が、処理結果を出力する。
【0060】
以上のように、本実施形態では、緩和問題生成部30が、対象とする最適化問題を緩和した問題を生成し、下界エネルギー算出部40が、生成された緩和問題の下界エネルギーを算出する。また、ターゲット値決定部50が誤差閾値と下界エネルギーとからターゲット値を決定し、アニーリング実行部60が、アニーリング手段200に対して、最適化問題に対応したパラメータを入力して最適化処理を実行させる。そして、ターゲット値更新部70が、最適化処理により得られた解による目的関数の値の収束状況に基づいて、ターゲット値を更新する。よって、最適化問題の要件を満たす近似解の探索に要する時間を短縮できる。
【0061】
すなわち、本実施形態では、ターゲット値を設定して、目的関数の値の降下状況および収束状況に基づいて、アニーリングを自動で終了させることができるため、最適な打ち切り時間やsweep数を見つけ出す工数が不要になり、近似解を探索するアニーリングの時間を短縮できる。
【0062】
実施形態2.
次に、本発明の近似解探索システムの第二の実施形態を説明する。第一の実施形態では、初期の最適化処理で候補とする解を特に定めずに(例えば、ランダムに)行う場合について説明した。本実施形態では、最適化処理を最初に実行させる際の解の候補(以下、初期パターンと記す。)を決定する構成について説明する。
【0063】
図7は、本発明の近似解探索システムの第二の実施形態の構成例を示すブロック図である。本実施形態の近似解探索システム2は、近似解探索装置101と、アニーリング手段200とを備えている。アニーリング手段200の内容は、第一の実施形態と同様である。
【0064】
近似解探索装置101は、記憶部10と、入力部20と、緩和問題生成部30と、下界エネルギー算出部40と、ターゲット値決定部50と、アニーリング実行部60と、ターゲット値更新部70と、出力部80と、初期パターン決定部90とを含む。すなわち、本実施形態の近似解探索装置101は、第一の実施形態の近似解探索装置100と比較し、初期パターン決定部90をさらに備えている点において異なる。それ以外については、第一の実施形態と同様である。
【0065】
初期パターン決定部90は、下界エネルギー算出部40が下界エネルギーを算出する際に得られた最適解から初期パターンを作成する。ここで、下界エネルギーを算出する際の問題は緩和問題のため、解は連続値のうちのいずれかの値を取る。そこで、初期パターン決定部90は、上記最適解をアニーリングで扱う解の候補の値に変換する。
【0066】
初期パターン決定部90は、例えば、上記最適解に含まれる値のうち、0以上0.5未満の値を「0」に変換し、0.5以上1以下の値を「1」に変換することで、初期パターンを作成してもよい。
【0067】
そして、アニーリング実行部60は、初期パターンを利用した最適化処理をアニーリング手段200に実行させる。
【0068】
なお、本実施形態の場合、最初の最適化処理(スイープ)における目的関数の値(エネルギー)と下界エネルギーとの差分は、第一の実施形態の場合と比較し、小さくなることが考えられる。そのため、誤差閾値および第一の値と第二の値の差の収束を判断する基準は、第一の実施形態の場合と比較し、それぞれ小さめに設定することが好ましい。
【0069】
次に、本実施形態の近似解探索システム2を用いた処理概要を説明する。
図8は、本実施形態の近似解探索システム2を用いた処理概要を示す説明図である。
図5に例示する処理概要と比較し、下界エネルギーが決定された後、初期パターンが決定され(ステップS115)、決定された初期パターンがアニーリングに用いられる。
【0070】
入力部20と、緩和問題生成部30と、下界エネルギー算出部40と、ターゲット値決定部50と、アニーリング実行部60と、ターゲット値更新部70と、出力部80と、初期パターン決定部90とは、プログラム(近似解探索プログラム)に従って動作するコンピュータのプロセッサによって実現される。
【0071】
次に、本実施形態の近似解探索システムの動作を説明する。
図9は、本実施形態の近似解探索システム2の動作例を示すフローチャートである。対象とする最適化問題から緩和問題を生成し、下界エネルギーを生成するまでの処理は、
図6に示すステップS1からステップS5までの処理と同様である。その後、初期パターン決定部90が、初期パターンを作成する(ステップS15)。以降、アニーリング実行部60が、その初期パターンを利用した最適化処理を実行させる、ステップS6以降の処理が行われる。
【0072】
以上のように、本実施形態では、初期パターン決定部90が緩和問題の最適解から初期パターンを作成する。よって、第一の実施形態の効果に加え、収束時間を短縮できる可能性が高くなるため、最適化処理に要する時間も短縮できるようになる。
【0073】
次に、本発明の概要を説明する。
図10は、本発明による近似解探索装置の概要を示すブロック図である。本発明による近似解探索装置は、アニーリング方式により、対象とする最適化問題の近似解の探索を行う近似解探索装置180(例えば、近似解探索装置100,101)であって、対象とする最適化問題を緩和した問題である緩和問題(例えば、連続緩和問題)を生成する緩和問題生成手段181(例えば、緩和問題生成部30)と、生成された緩和問題における最適解で得られる目的関数の下限値を示す下界エネルギーを算出する下界エネルギー算出手段182(例えば、下界エネルギー算出部40)と、算出された下界エネルギーに対して許容し得る誤差の範囲を示す誤差閾値と、その下界エネルギーとから、最適化問題の最適化処理を終了するとの判断に用いられる値であるターゲット値を決定するターゲット値決定手段183(例えば、ターゲット値決定部50)と、アニーリング方式により最適化を行う装置に対して、最適化問題に対応したパラメータを入力して最適化処理を実行させるアニーリング実行手段184(例えば、アニーリング実行部60)と、最適化処理により得られた解による目的関数の値の収束状況に基づいて、ターゲット値を更新するターゲット値更新手段185(例えば、ターゲット値更新部70)とを備えている。
【0074】
そのような構成により、最適化問題の要件を満たす近似解の探索に要する時間を短縮できる。
【0075】
また、アニーリング実行手段184は、今回のスイープのタイミングで得られた解による目的関数の値である第一の値がターゲット値以下になり、かつ、前回のスイープのタイミングで得られた解による目的関数の値である第二の値と第一の値との差が、所定の基準(例えば、収束判定閾値)以下になるまで最適化処理におけるスイープを繰り返し実行してもよい。
【0076】
また、ターゲット値更新手段185は、今回のスイープのタイミングで得られた解による目的関数の値である第一の値がターゲット値以下にならず、かつ、前回のスイープのタイミングで得られた解による目的関数の値である第二の値と第一の値との差が、所定の基準(例えば、収束判定閾値)以下になった場合、第一の値に近づけるようにターゲット値を更新してもよい。
【0077】
一方、ターゲット値更新手段185は、今回のスイープのタイミングで得られた解による目的関数の値である第一の値がターゲット値以下になり、かつ、前回のスイープのタイミングで得られた解による目的関数の値である第二の値と第一の値との差が、所定の基準(例えば、収束判定閾値)を超える場合、第一の値にターゲット値を更新してもよい。
【0078】
また、近似解探索装置180は、誤差閾値の入力を受け付ける入力手段(例えば、入力部20)と、下界エネルギーを表示する表示手段(例えば、出力部80)とを備えていてもよい。そして、表示手段は、下界エネルギー算出手段182によって算出された下界エネルギーを表示し、ターゲット値決定手段183は、下界エネルギーと、入力された誤差閾値とに基づいてターゲット値を決定してもよい。
【0079】
また、近似解探索装置180は、緩和問題の最適解から、アニーリング実行手段184が最適化処理を最初に実行させる際の解の候補である初期パターンを作成する初期パターン決定手段(例えば、初期パターン決定部90)を備えていてもよい。そして、アニーリング実行手段184は、初期パターンを利用した最適化処理を実行させてもよい。
【0080】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0081】
(付記1)アニーリング方式により、対象とする最適化問題の近似解の探索を行う近似解探索装置であって、
対象とする最適化問題を緩和した問題である緩和問題を生成する緩和問題生成手段と、
生成された前記緩和問題における最適解で得られる目的関数の下限値を示す下界エネルギーを算出する下界エネルギー算出手段と、
算出された前記下界エネルギーに対して許容し得る誤差の範囲を示す誤差閾値と、当該下界エネルギーとから、前記最適化問題の最適化処理を終了するとの判断に用いられる値であるターゲット値を決定するターゲット値決定手段と、
前記アニーリング方式により最適化を行う装置に対して、前記最適化問題に対応したパラメータを入力して最適化処理を実行させるアニーリング実行手段と、
前記最適化処理により得られた解による目的関数の値の収束状況に基づいて、前記ターゲット値を更新するターゲット値更新手段とを備えた
ことを特徴とする近似解探索装置。
【0082】
(付記2)アニーリング実行手段は、今回のスイープのタイミングで得られた解による目的関数の値である第一の値がターゲット値以下になり、かつ、前回のスイープのタイミングで得られた解による目的関数の値である第二の値と前記第一の値との差が、所定の基準以下になるまで最適化処理におけるスイープを繰り返し実行する
付記1記載の近似解探索装置。
【0083】
(付記3)ターゲット値更新手段は、今回のスイープのタイミングで得られた解による目的関数の値である第一の値がターゲット値以下にならず、かつ、前回のスイープのタイミングで得られた解による目的関数の値である第二の値と前記第一の値との差が、所定の基準以下になった場合、前記第一の値に近づけるように前記ターゲット値を更新する
付記1または付記2記載の近似解探索装置。
【0084】
(付記4)ターゲット値更新手段は、今回のスイープのタイミングで得られた解による目的関数の値である第一の値がターゲット値以下になり、かつ、前回のスイープのタイミングで得られた解による目的関数の値である第二の値と前記第一の値との差が、所定の基準を超える場合、前記第一の値に前記ターゲット値を更新する
付記1または付記2記載の近似解探索装置。
【0085】
(付記5)誤差閾値の入力を受け付ける入力手段と、
下界エネルギーを表示する表示手段とを備え、
前記表示手段は、前記下界エネルギー算出手段によって算出された下界エネルギーを表示し、
前記ターゲット値決定手段は、下界エネルギーと、入力された前記誤差閾値とに基づいてターゲット値を決定する
付記1から付記4のうちのいずれか1つに記載の近似解探索装置。
【0086】
(付記6)緩和問題の最適解から、アニーリング実行手段が最適化処理を最初に実行させる際の解の候補である初期パターンを作成する初期パターン決定手段を備え、
アニーリング実行手段は、前記初期パターンを利用した最適化処理を実行させる
付記1から付記5のうちのいずれか1つに記載の近似解探索装置。
【0087】
(付記7)緩和問題生成手段は、緩和問題として連続緩和問題を生成する
付記1から付記6のうちのいずれか1つに記載の近似解探索装置。
【0088】
(付記8)アニーリング方式により、対象とする最適化問題の最適化を行うアニーリング装置と、
前記アニーリング装置を利用して前記最適化問題の近似解の探索を行う近似解探索装置とを備え、
前記近似解探索装置は、
対象とする最適化問題を緩和した問題である緩和問題を生成する緩和問題生成手段と、
生成された前記緩和問題における最適解で得られる目的関数の下限値を示す下界エネルギーを算出する下界エネルギー算出手段と、
算出された前記下界エネルギーに対して許容し得る誤差の範囲を示す誤差閾値と、当該下界エネルギーとから、前記最適化問題の最適化処理を終了するとの判断に用いられる値であるターゲット値を決定するターゲット値決定手段と、
前記アニーリング装置に対して、前記最適化問題に対応したパラメータを入力して最適化処理を実行させるアニーリング実行手段と、
前記最適化処理により得られた解による目的関数の値の収束状況に基づいて、前記ターゲット値を更新するターゲット値更新手段とを含む
ことを特徴とする近似解探索システム。
【0089】
(付記9)アニーリング方式により、対象とする最適化問題の近似解の探索を行う近似解探索方法であって、
対象とする最適化問題を緩和した問題である緩和問題を生成し、
生成された前記緩和問題における最適解で得られる目的関数の下限値を示す下界エネルギーを算出し、
算出された前記下界エネルギーに対して許容し得る誤差の範囲を示す誤差閾値と、当該下界エネルギーとから、前記最適化問題の最適化処理を終了するとの判断に用いられる値であるターゲット値を決定し、
前記アニーリング方式により最適化を行う装置に対して、前記最適化問題に対応したパラメータを入力して最適化処理を実行させ、
前記最適化処理により得られた解による目的関数の値の収束状況に基づいて、前記ターゲット値を更新する
ことを特徴とする近似解探索方法。
【0090】
(付記10)今回のスイープのタイミングで得られた解による目的関数の値である第一の値がターゲット値以下になり、かつ、前回のスイープのタイミングで得られた解による目的関数の値である第二の値と前記第一の値との差が、所定の基準以下になるまで最適化処理におけるスイープを繰り返し実行する
付記9記載の近似解探索方法。
【0091】
(付記11)アニーリング方式により、対象とする最適化問題の近似解の探索を行うコンピュータに実行させる近似解探索プログラムであって、
前記コンピュータに、
対象とする最適化問題を緩和した問題である緩和問題を生成する緩和問題生成処理、
生成された前記緩和問題における最適解で得られる目的関数の下限値を示す下界エネルギーを算出する下界エネルギー算出処理、
算出された前記下界エネルギーに対して許容し得る誤差の範囲を示す誤差閾値と、当該下界エネルギーとから、前記最適化問題の最適化処理を終了するとの判断に用いられる値であるターゲット値を決定するターゲット値決定処理、
前記アニーリング方式により最適化を行う装置に対して、前記最適化問題に対応したパラメータを入力して最適化処理を実行させるアニーリング実行処理、および、
前記最適化処理により得られた解による目的関数の値の収束状況に基づいて、前記ターゲット値を更新するターゲット値更新処理
を実行させるための近似解探索プログラム。
【0092】
(付記12)コンピュータに、
アニーリング実行処理で、今回のスイープのタイミングで得られた解による目的関数の値である第一の値がターゲット値以下になり、かつ、前回のスイープのタイミングで得られた解による目的関数の値である第二の値と前記第一の値との差が、所定の基準以下になるまで最適化処理におけるスイープを繰り返し実行させる
付記11記載の近似解探索プログラム。
【産業上の利用可能性】
【0093】
本発明は、最適化問題の近似解を探索する近似解探索装置に好適に適用される。特に、組合せ最適化問題のうち、最適解でなくても近似解を高速に探索できればよい処理に本発明を好適に適用可能である。例えば、トラブル発生時に、再度最適化処理を迅速に行う状況などである。具体的には、締め切り時間内に予定製品の生産が完了すればよい生産計画最適化、限られたリソースで指定時間内に配送が完了すればよい配送計画最適化などが挙げられる。
【符号の説明】
【0094】
1,2 近似解探索システム
100,101 近似解探索装置
10 記憶部
20 入力部
30 緩和問題生成部
40 下界エネルギー算出部
50 ターゲット値決定部
60 アニーリング実行部
70 ターゲット値更新部
80 出力部