JP7491032B2 - 最適化装置、最適化方法及び最適化プログラム - Google Patents

最適化装置、最適化方法及び最適化プログラム Download PDF

Info

Publication number
JP7491032B2
JP7491032B2 JP2020071652A JP2020071652A JP7491032B2 JP 7491032 B2 JP7491032 B2 JP 7491032B2 JP 2020071652 A JP2020071652 A JP 2020071652A JP 2020071652 A JP2020071652 A JP 2020071652A JP 7491032 B2 JP7491032 B2 JP 7491032B2
Authority
JP
Japan
Prior art keywords
state
spin
energy
unit
calculation
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.)
Active
Application number
JP2020071652A
Other languages
English (en)
Other versions
JP2021168068A (ja
Inventor
聡 松浦
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 JP2020071652A priority Critical patent/JP7491032B2/ja
Priority to EP21154525.6A priority patent/EP3896621A1/en
Priority to US17/167,574 priority patent/US20210319155A1/en
Priority to CN202110183715.5A priority patent/CN113537551A/zh
Publication of JP2021168068A publication Critical patent/JP2021168068A/ja
Application granted granted Critical
Publication of JP7491032B2 publication Critical patent/JP7491032B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • 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
    • 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
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/08Computing arrangements based on specific mathematical models using chaos models or non-linear system models

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Strategic Management (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Economics (AREA)
  • Artificial Intelligence (AREA)
  • Human Resources & Organizations (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Marketing (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Databases & Information Systems (AREA)
  • Development Economics (AREA)
  • Computational Linguistics (AREA)
  • Complex Calculations (AREA)
  • Hall/Mr Elements (AREA)

Description

本発明は、最適化装置、最適化方法及び最適化プログラムに関する。
我々の社会には、災害復旧の手順や配送ルートの最適化など、限られた人や時間などの制約の下で、多くの要素の組合せの中から最適なものを選択する「組合せ最適化問題」が数多く存在する。これら、組合せ最適化問題の最適解を探索する方法の一つとして、モンテカルロ法の一種で、乱数値を用いて確率的に解を求める方法である疑似焼き鈍し法を応用したイジング演算装置がある。
イジング演算装置は、所定の評価式で表現されるイジングモデルのエネルギーを最小とする変数の組み合わせを探索する演算装置である。この変数をスピンと呼び、変数の値をスピン状態と呼び、スピン状態が遷移することを反転と呼ぶ場合がある。
イジング演算装置は、1スピンずつ反転判定式に基づき反転の有無を決定し、逐次的に状態を遷移させて最小エネルギーの探索を行う。そして、実問題をイジングモデルのエネルギー式に定式化し、このエネルギーを最小とするスピン状態の組合せをイジング演算装置で探索することにより、様々な種類の組合せ最適化問題を解くことが可能である。
ここで、簡単に擬似焼き鈍し法での最小エネルギー探索方法を説明する。イジング演算装置は、解決する問題を表現する評価関数が有する各変数に、0又は1を代入した初期状態から探索を始める。そして、イジング演算装置は、変数の組み合わせの現在の状態から、それに近い状態を選択してその状態遷移を考える。現在の状態に近い状態とは、例えば、1つの変数の状態を変化させた状態である。次に、イジング演算装置は、その状態に対するエネルギー変化量を計算し、その値に応じて、その状態遷移を採択するか、採択せずに元の状態を保つかを確率的に選択する。エネルギーが下がる場合の採択確率をエネルギーが上がる場合の採択確率よりも高くすると、平均的にはエネルギーが下がる方向に状態変化がおこり、イジング演算装置は、最終的に最適解又は最適解に近いエネルギーに到達することが可能である。もし、これを決定論的にエネルギーが下がる場合に採択し、上がる場合に不採択とすると、エネルギーの変化は時間に対して広義の単調減少となるが、局所解に到達した場合にはそれ以上の状態遷移が起こらなくなり、最適解への到達を期待することが困難である。したがって、組み合わせ最適化問題の探索では、状態遷移を採択するかどうかを確率的に決定することが重要である。
焼き鈍し法では、状態遷移の採択確率を、例えば1とe-(ΔE/T)とのうち小さい値を採用するように決定することで、時刻無限大の極限で状態が最適化することが証明されている。ここで、Tは、温度と呼ばれるパラメータである。イジング演算装置は、初期温度としてTを十分に大きくとっておき、探索の反復回数に応じてTを減少させる。上述した式に採択確率が従うようにすれば、十分大きな反復後に定常状態に達したとすると、各状態の占有確率は力学における熱平衡状態に対するボルツマン分布に従う。そのため、高い温度から徐々に温度を下げていくと、エネルギー状態の低い状態の占有率が増加するため、十分温度が下がった場合に、イジング演算装置は、最適解に近いエネルギーの低い状態を得ることができる。
イジング演算装置は、スピン状態の初期値、並びに、スピン状態の初期値から計算可能な局所場及びエネルギーの初期値を適切に設定した初期状態から開始して、上記の処理を反復し、一定の反復回数になると動作を終了する。そのとき、イジング演算装置が保持する最小エネルギー値とスピン状態との組が探索結果となる。
さらに、近年は、より大規模でより難易度の高い問題を取り扱うようになってきた等の理由で、イジング演算装置単体で最小エネルギーを探索するのではなく、ソフトウェアと連携して最小エネルギーを探索する手法が提案されている。そのような手法では、演算を開始するスピン状態を予めソフトウェア側の前処理で決定したり、イジング演算装置の結果を途中で取り出し、ソフトウェア側でスピン状態を一部改変した後、再度イジング演算装置に戻して探索を継続したりすることが行われる。
なお、組合せ最適化問題を解く方法として、エネルギーが極小となる局所解におけるオフセット値を、エネルギーが極小ではない場合のオフセット値と比較して大きくなるように設定して、エネルギー変化量にオフセットを加えて採択判定を行う従来技術がある。
特開2018-63626号公報
しかしながら、上述したように、イジング演算装置では演算開始前にスピン状態に応じてエネルギーを設定し、且つ、初期局所場を各スピンに設定することが行われる。これらを算出する計算は、スピン状態が任意の値を取る場合には、スピン数の二乗の要素数の計算となる。そのため、これらの値をソフトウェアで算出すると、演算時間のオーバーヘッドが大きくなり実用的でない。そこで、従来は、各スピンのスピン状態を全て0として設定した状態から演算を開始することで、初期状態を生成するための演算を回避していた。これは、スピン状態が0である場合、エネルギーは定数項そのものであり、局所場は各スピンのバイアス項そのもので済むことを理由とする。また、特定のスピン状態から演算を開始する場合には、従来はソフトウェア側のオーバーヘッドを受け入れてきた。このように、従来は適切な初期状態を生成することは容易ではなく、イジング演算装置の処理性能を向上させることは困難であった。
また、エネルギー変化量にオフセットを加えて採択判定を行う従来技術におけるオフセットを用いたとしても、初期状態の局所場やエネルギーの計算を行うことは難しく、イジング演算装置の処理性能を向上させることは困難である。
開示の技術は、上記に鑑みてなされたものであって、組合せ最適化問題に対する処理性能を向上させる最適化装置、最適化方法及び最適化プログラムを提供することを目的とする。
本願の開示する最適化装置、最適化方法及び最適化プログラムの一つの態様において、温度制御部は、温度を示す温度値を制御する。エネルギー変化量計算部は、エネルギーを表す評価関数に含まれる複数の状態変数のうちのいずれか1つの前記状態変数の状態を変化させて状態遷移を行った場合の前記評価関数が表すエネルギーの変化量を算出する。判定部は、前記温度値及び乱数値を基に算出した閾値と前記エネルギーの変化量との相関関係によって、前記状態遷移を採択するか否かを確率的に判定する。期待値保持部は、複数の前記状態変数の状態のそれぞれの期待値を保持する。期待値比較部は、前記期待値保持部が保持するそれぞれの前記期待値と前記状態変数の状態のそれぞれの値とを比較して不一致である前記状態変数を抽出する。確定部は、前記状態変数の状態のそれぞれの値が各前記期待値とすべて一致するまで、前記期待値比較部により抽出された前記状態変数を選択して状態を変化させ、前記状態変数の状態のそれぞれの値が各前記期待値といったん一致して以降は、前記判定部により前記状態遷移が採択された前記状態変数を選択して状態を変化させる。エネルギー計算部は、前記確定部により選択された前記状態変数の状態の変化が実行された後の遷移後エネルギーを算出する。探索部は、前記エネルギー計算部により算出された前記遷移後エネルギーが最小エネルギー未満の場合、前記遷移後エネルギーを前記最小エネルギーとする。
1つの側面では、本発明は、組合せ最適化問題に対する処理性能を向上させることができる。
図1は、実施例1に係るイジング演算装置のブロック図である。 図2は、実施例1に係る焼鈍部の詳細を表すブロック図である。 図3は、実施例1に係るイジング演算装置による最適解の探索処理のフローチャートである。 図4は、イジング演算装置の配置構成図である。 図5は、単位回路の回路イメージの図である。 図6は、実施例1に係るイジング演算装置利用時の処理のフローチャートである。 図7は、ソフトウェアと連携する場合のイジング演算装置のブロック図である。 図8は、ソフトウェアと連携するイジング演算装置利用時の処理のフローチャートである。 図9は、ソフトウェア連携による高速化を説明するための図である。
以下に、本願の開示する最適化装置、最適化方法及び最適化プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する最適化装置、最適化方法及び最適化プログラムが限定されるものではない。
図1は、実施例1に係るイジング演算装置のブロック図である。イジング演算装置1は、複数の焼鈍部10、温度制御部20、閾値生成部30、乱数生成部40、反転スピン選択部50、エネルギー計算部60、探索結果保持部70及び初期設定制御部80を有する。焼鈍部10は、例えば、1台のイジング演算装置1に1024個搭載される。
イジング演算装置1は、評価関数である数式(1)~(4)で表されるイジングモデルのエネルギーを最小とする変数xの組み合わせ(x,x,・・・,x)を探索する最適化装置である。ここで、数式(1)の変数xは、状態変数であり0又は1の値をとる。以下の説明では、変数xを「スピン」と呼び、変数xの値を「スピン状態」と呼び、スピン状態が遷移することを「反転」と呼ぶ。すなわち、スピン状態は、0又は1と表される。そして、反転は、スピン状態が0から1へ遷移すること、又は、1から0へ遷移することにあたる。
Figure 0007491032000001
Figure 0007491032000002
Figure 0007491032000003
Figure 0007491032000004
ここで、Eはエネルギーであり、ΔEはxが反転した場合のエネルギー変化量である。また、hはxにおける局所場であり、δhはxにおける局所場の変化量である。また、以下では、エネルギー変化量をΔEと表す場合がある。
温度制御部20は、温度パラメータの値を制御する回路である。温度パラメータは、温度を制御する温度値である。以下では、温度パラメータをTと表す場合がある。
温度制御部20は、例えば、擬似焼き鈍し法にしたがい、十分高い初期温度から開始して探索の反復回数に応じて徐々に温度パラメータの値を低くすることで温度を減少させていく。初期状態から始めて、温度制御部20で温度を下げながら反復を繰り替えし、一定の反復回数の達成や、エネルギーが一定の値を下回るなどの終了判定条件が満たされたとき、動作が終了する。他にも、温度制御部20は、温度条件の異なるいくつかのレプリカと呼ばれる系を並列に実行し、所定の反復回数毎に系を交換することで、低温条件と高温条件とをわたりながら、最小エネルギー探索を行うレプリカ交換法を用いることも可能である。
乱数生成部40は、乱数値を発生する回路である。乱数生成部40は、発生させた乱数を閾値生成部30及び反転スピン選択部50へ出力する。
閾値生成部30は、各スピンが反転候補となるか否かを判定するための閾値を生成する回路である。閾値生成部30は、温度制御部20から温度パラメータを取得する。また、閾値生成部30は、乱数値を乱数生成部40から取得する。
ここで、本実施例では、次の数式(5)にしたがって、変数の反転が採択される。すなわち、e-ΔE/T又は1のうちの小さい方を採択確率として変数の反転の採択が行われる。
Figure 0007491032000005
本実施例では、乱数生成部40が発生させた乱数により、確率的に数式(5)にしたがった反転スピンの採択が行われる。この場合、採択確率が数式(5)にしたがうという条件は、一様乱数rを用いて次の数式(6)を満たした場合に反転を採択することと同値である。
Figure 0007491032000006
この数式(6)は、反転を採択するか否かを判定するための式であり、以下では、「反転判定式」と呼ぶ場合がある。
そこで、閾値生成部30は、温度パラメータと乱数値を用いて数式(6)の右辺の値を生成する。そして、閾値生成部30は、生成した数式(6)の右辺の値を焼鈍部10へ出力する。
初期値設定制御部80は、イジング演算装置1が動作を開始すると、初期化信号を出力する。その後、所望の初期状態が形成されることで初期化が完了して反転候補フラグを立てるスピンが無くなると、初期値設定制御部80は、反転候補フラグの不存在の通知を反転スピン選択部50から受ける。その場合、初期値設定制御部80は、初期化信号の出力を停止する。以下では、初期値設定制御部80が初期化信号を出力している状態を初期化信号がオンの状態と言い、初期値設定制御部80が初期化信号の出力を停止している状態を初期化信号がオフの状態と言う場合がある。
焼鈍部10は、スピン1ビット分、すなわちスピン1つ分のスピン状態と局所場とを保持し、自スピンが反転した際のエネルギー変化量を基に、反転させたスピンが反転候補となるか否かを判定する回路である。以下に、図2を参照して、焼鈍部10の詳細について説明する。図2は、実施例1に係る焼鈍部の詳細を表すブロック図である。焼鈍部10は、図1に示すように、複数存在する。そして、各焼鈍部10は、制御するスピンが異なるが、実行する処理は同一である。そこで、以下では、特定の焼鈍部10について説明する。以下では、各焼鈍部10が制御対象とするスピンを自スピンと言う。
焼鈍部10は、図2に示すように、局所場管理部101、スピン状態管理部102、エネルギー変化量計算部103、反転候補フラグ生成部104、信号選択回路105、スピン番号保持部106、期待値保持部107及び期待値比較部108を有する。
スピン番号保持部106は、自スピンを識別するためのスピン番号を保持する。例えば、スピン番号は、スピンをxと表した場合のiにあたる。自スピンがスピンxである焼鈍部10であれば、スピン番号保持部106は、スピンxを識別するためのスピン番号としてiを保持する。そして、スピン番号保持部106は、保持するスピン番号をスピン状態管理部102及び反転スピン選択部50へ出力する。
スピン状態管理部102は、現在の自スピンのスピン状態を保持して、自スピンのスピン状態を管理する。具体的には、スピン状態管理部102は、最適解の探索処理の開始時に、自スピンのスピン状態の初期値の設定を受ける。また、スピン状態管理部102は、スピン番号をスピン番号保持部106から取得する。そして、スピン状態管理部102は、スピン状態をスピン番号とともにエネルギー変化量計算部103及び期待値比較部108へ出力する。
その後、スピン状態管理部102は、スピンの反転が採択された場合、反転スピンの確定の通知を反転スピンのスピン番号とともに反転スピン選択部50から受ける。そして、スピン状態管理部102は、自スピンが反転スピンであれば、反転後のスピン状態を現在の自スピンのスピン状態として、保持するスピン状態を更新する。
局所場管理部101は、現在の局所場の情報を保持して、自スピンに対応する局所場を管理する。ここで、自スピンが反転した場合のエネルギー変化量が局所場とスピン状態とを基に数式(2)から算出できるので、エネルギー変化量を各焼鈍部10が算出するために、焼鈍部10毎に局所場管理部101が局所場の情報を保持する。そして、局所場管理部101は、保持する局所場をエネルギー変化量計算部103へ出力する。
より具体的には、局所場管理部101は、最適解の探索処理の開始時に、自スピンに対する局所場の初期値の設定を受ける。他にも、局所場管理部101は、各スピンの初期値の入力を受けて自スピンに対する局所場の初期値を算出してもよい。その後、局所場管理部101は、反転スピンが確定した際に、後述するように保持する自スピンに対する局所場の情報を更新する。そして、局所場管理部101は、保持する局所場の情報をエネルギー変化量計算部103へ出力する。
局所場管理部101は、反転が採択された場合、反転スピンのスピン番号とともに反転スピンの確定の通知を反転スピン選択部50から受ける。次に、局所場管理部101は、反転が確定した反転スピンのスピン番号を数式(4)に用いて局所場の変化量を算出する。そして、局所場管理部101は、自己が保持する局所場の情報に算出した局所場の変化量を加算して、自スピンに対する局所場を算出する。その後、局所場管理部101は、算出した局所場の情報を現在の局所場の情報として、保持する局所場の情報を更新する。
エネルギー変化量計算部103は、局所場の情報の入力を局所場管理部101から受ける。また、エネルギー変化量計算部103は、自スピンのスピン状態の入力をスピン状態管理部102から受ける。そして、エネルギー変化量計算部103は、数式(2)を用いて自スピンの反転によるエネルギー変化量を算出する。その後、エネルギー変化量計算部103は、算出した自スピンの反転によるエネルギー変化量を反転候補フラグ生成部104及び反転スピン選択部50へ出力する。
反転候補フラグ生成部104は、自スピンの反転によるエネルギー変化量の入力をエネルギー変化量計算部103から受ける。また、反転候補フラグ生成部104は、数式(6)で表される反転判定式の右辺の値の入力を閾値生成部30から受ける。そして、反転候補フラグ生成部104は、エネルギー変化量が数式(6)の右辺を閾値生成部30から取得した値とした反転判定式を満たすか否かを判定する。
反転候補フラグ生成部104は、エネルギー変化量が反転判定式を満たす場合、自スピンが反転候補であることを示す反転候補フラグを生成して反転スピン選択部50に出力する。これに対して、エネルギー変化量が反転判定式を満たしていなければ、反転候補フラグ生成部104は、自スピンが反転候補にはならないことを示す反転候補フラグを生成して反転スピン選択部50へ出力する。例えば、反転候補フラグをFとすると、反転候補フラグ生成部104は、自スピンが反転候補であることを示す場合はFの値を1とし、自スピンが反転候補にならないことを示す場合はFの値を0とする。その後、反転候補フラグ生成部104は、生成した反転候補フラグを信号選択回路105へ出力する。この反転候補フラグ生成部104が、「判定部」の一例にあたる。
期待値保持部107は、自スピンに対する演算開始時の期待値の入力を図示しない入力装置などから受ける。ここで、演算開始時とは、各スピンのスピン状態が予め決められた初期状態まで遷移した後の実質的なアニーリングを始めるタイミングである。また、期待値とは、演算開始時の初期状態として決定された評価関数において各スピンに与えられたスピン状態を表す値である。期待値保持部107は、期待値として0又は1を有する。期待値保持部107は、取得した演算開始時の期待値を保持する。
期待値比較部108は、反転させたスピン状態が期待値と一致するか否かを判定し、その判定結果を出力する。具体的には、期待値比較部108は、自スピンの反転させたスピン状態の入力をスピン状態管理部102から受ける。また、期待値比較部108は、自スピンの期待値を期待値保持部107から取得する。そして、期待値比較部108は、自スピンの反転させたスピン状態と期待値とを比較する。そして、期待値比較部108は、自スピンの反転させたスピン状態と期待値とが一致しない場合は、反転候補となることを表す反転候補フラグを生成する。また、期待値比較部108は、自スピンの反転させたスピン状態が期待値と一致する場合は、反転候補とならないことを表す反転候補フラグを生成する。その後、期待値比較部108は、生成した反転候補フラグを信号選択回路105へ出力する。
また、信号選択回路105は、反転判定式に基づく反転候補フラグの入力を反転候補フラグ生成部104から受ける。また、信号選択回路105は、期待値に基づく反転候補フラグの入力を期待値比較部108から受ける。
イジング演算装置1の動作が開始され初期化が行われる場合、信号選択回路105は、初期化信号の入力を初期設定制御部80から受ける。初期化信号がオンの場合、信号選択回路105は、期待値比較部108から取得した反転候補フラグを反転スピン選択部50へ出力する。これにより、初期化実行時には、エネルギーの増減に係わらず、反転させた場合にスピン状態が期待値と一致するスピンが反転候補スピンとなる。
また、初期化が完了し初期化信号がオフになると、信号選択回路105は、反転候補フラグ生成部104から取得した反転候補フラグを反転スピン選択部50へ出力する。すなわち、初期化が完了後は、反転することで反転判定式を満たすスピンが反転候補スピンとなる。
図1に戻って説明を続ける。反転スピン選択部50は、各焼鈍部10における自スピンのスピン番号を各焼鈍部10スピン番号保持部106から取得する。また、反転スピン選択部50は、エネルギー変化量の入力を各焼鈍部10エネルギー変化量計算部103から受ける。反転候補フラグの入力をそれぞれの焼鈍部10の信号選択回路105から受ける。さらに、反転スピン選択部50は、乱数の入力を乱数生成部40から受ける。
そして、反転スピン選択部50は、各焼鈍部10から取得した反転候補フラグを確認して、反転候補となることを表す反転候補フラグを有するスピンである反転候補スピンが存在するか否かを判定する。
反転スピン選択部50は、反転候補スピンが存在する場合、乱数生成部40から取得した乱数にしたがって取得した反転候補スピンの中から1つの反転候補スピンを選択する。そして、反転スピン選択部50は、選択した反転候補スピンを反転スピンとして確定する。その後、反転スピン選択部50は、反転スピンの確定の通知とともに、反転スピンのスピン番号、スピン状態を焼鈍部10、エネルギー計算部60及び探索結果保持部70へ出力する。この反転スピン選択部50が、「確定部」の一例にあたる。
また、反転候補スピンが存在する場合、反転スピン選択部50は、反転候補スピンの不存在を初期設定制御部80へ出力する。これにより、反転スピン選択部50は、初期化の完了を初期設定制御部80へ通知する。
このように、初期化信号がオンの状態では、反転スピン選択部50は、反転結果が期待値と一致するスピンを反転候補スピンとして取り扱う。そのため、初期化信号がオンの状態では、反転結果が期待値と一致するスピンが順次反転されることが、反転候補スピンが存在しなくなるまで繰り返され、期待値と一致する各スピンのスピン状態が初期化状態として得られる。その後、初期化信号がオフとなり、所望の初期化状態から最適解の探索処理が行われる。
エネルギー計算部60は、例えば、全てのスピン状態が0とされた各スピンの初期値を予め有する。そして、エネルギー計算部60は、各スピンの初期値を数式(1)に用いてエネルギーを求めて保持する。
その後、エネルギー計算部60は、反転スピンの確定の通知とともに反転スピンのスピン番号及びスピン状態の入力を反転スピン選択部50から受ける。次に、エネルギー計算部60は。自己が保持する各スピンのスピン状態において、反転スピン選択部50から通知されたスピン番号を有するスピンのスピン状態を反転させて、新たな各スピンのスピン状態を生成する。
また、エネルギー計算部60は、反転スピンのスピン状態を反転させた場合のエネルギー変化量を反転スピン選択部50から取得する。そして、エネルギー計算部60は、取得したエネルギー変化量を既に保持するエネルギーに加算したものを新たなエネルギーとして、保持するエネルギーを更新する。
エネルギー計算部60は、反転スピンのスピン状態を反転させた状態の各スピンのスピン状態を保持する。さらに、エネルギー計算部60は、算出した反転スピンのスピン状態を反転させた状態のエネルギーを探索結果保持部70へ出力する。
探索結果保持部70は、初期エネルギーを最小エネルギーの初期値として設定する。次に、探索結果保持部70は、算出されたエネルギーの情報の入力をエネルギー計算部60から受ける。さらに、探索結果保持部70は、反転スピンのスピン番号、スピン状態の入力を反転スピン選択部50から受ける。
そして、探索結果保持部70は、取得したエネルギーと保持する最小エネルギーとを比較する。取得したエネルギーが最小エネルギー未満の場合、探索結果保持部70は、取得したエネルギーを最小エネルギーとする。さらに、探索結果保持部70は、取得したエネルギーとなる場合の各スピンのスピン状態を保持する。一方、取得したエネルギーが最小エネルギー以上の場合、探索結果保持部70は、保持する最小エネルギー及び各スピンのスピン状態の保持をそのまま継続する。この探索結果保持部70が、「探索部」の一例にあたる。
次に、図3を参照して、本実施例に係るイジング演算装置1による最適解の探索処理の流れについて説明する。図3は、実施例1に係るイジング演算装置による最適解の探索処理のフローチャートである。
操作者からの入力情報などを基に、スピン番号保持部106には自スピンのスピン番号が設定され、焼鈍部10のスピン状態管理部102には自スピンのスピン状態の初期値が設定される。ここでは、各スピンのスピン状態は全て0である。また、局所場管理部101には、自スピンに対する局所場の初期値が設定される(ステップS101)。この場合、各スピンのスピン状態が0であるので、局所場は各スピンのバイアス項となる。
また、操作者からの入力情報などを基に、期待値保持部107には、自スピンの演算開始時の期待値が設定される(ステップS102)。
また、エネルギー計算部60は、操作者からの入力情報などを基に、各スピンのスピン状態の初期値を取得し、取得した各スピンのスピン状態からエネルギーの初期値を取得して設定する(ステップS103)。この場合、各スピンのスン状態が0であるので、エネルギーは定数項そのものとなる。
また、初期設定制御部80は、焼鈍部10の信号選択回路105に初期化信号を出力して初期化信号をオンにする(ステップS104)。
焼鈍部10のエネルギー変化量計算部103は、局所場管理部101が保持する局所場の情報を取得する。また、エネルギー変化量計算部103は、反転させた自スピンのスピン状態の入力をスピン状態管理部102から受ける。そして、エネルギー変化量計算部103は、数式(2)を用いて自スピンの反転時のエネルギー変化量を計算する(ステップS105)。その後、エネルギー変化量計算部103は、算出した自スピンの反転時のエネルギー変化量を反転候補フラグ生成部104及び反転スピン選択部50へ出力する。
反転候補フラグ生成部104は、自スピンの反転時のエネルギー変化量の入力をエネルギー変化量計算部103から受ける。また、反転候補フラグ生成部104は、閾値となる数式(6)の右辺の値の入力を閾値生成部30から受ける。そして、反転候補フラグ生成部104は、数式(6)の右辺を閾値生成部30から取得した値とした反転判定式を取得したエネルギー変化量が満たすか否かを判定して、反転判定式に基づく反転候補フラグを生成する(ステップS106)。その後、反転候補フラグ生成部104は、反転判定式に基づく反転候補フラグを信号選択回路105へ出力する。
また、期待値比較部108は、期待値保持部107から取得した期待値と、スピン状態管理部102から取得した自スピンの反転させたスピン状態とを一致するか比較する(ステップS107)。
次に、期待値比較部108は、比較結果を基に、期待値に基づく反転候補フラグを生成する(ステップS108)。その後、期待値比較部108は、期待値に基づく反転候補フラグを信号選択回路105へ出力する。
信号選択回路105は、反転判定式に基づく反転候補フラグの入力を反転候補フラグ生成部104から受ける。また、信号選択回路105は、期待値に基づく反転候補フラグの入力を期待値比較部108から受ける。そして、信号選択回路105は、初期化信号がオンか否かを判定する(ステップS109)。
初期化信号がオンの場合(ステップS109:肯定)、信号選択回路105は、期待値比較部108から取得した期待値に基づく反転候補フラグを反転スピン選択部50へ出力する(ステップS110)。
これに対して、初期化信号がオフの場合(ステップS109:否定)、信号選択回路105は、反転候補フラグ生成部104から取得した反転判定式に基づく反転候補フラグを反転スピン選択部50へ出力する(ステップS111)。
反転スピン選択部50は、各焼鈍部10における自スピンのスピン番号とともに、スピン状態、エネルギー変化量及び反転候補フラグの入力をそれぞれの焼鈍部10から受ける。そして、反転スピン選択部50は、反転候補フラグを基に反転候補スピンが存在するか否かを判定する(ステップS112)。
反転候補スピンが存在しない場合(ステップS112:否定)、反転スピン選択部50は、反転候補スピンの不存在を初期設定制御部80へ通知する。初期設定制御部80は、反転候補スピンの不存在の通知を受けて、初期化信号の信号選択回路105への出力を停止して初期化信号をオフにする(ステップS113)。
これに対して、反転候補スピンが存在する場合(ステップS112:肯定)、反転スピン選択部50は、乱数生成部40から入力された乱数値にしたがって、各焼鈍部10から取得した反転候補スピンの中から1つ反転候補スピンを選択する。そして、反転スピン選択部50は、選択した反転候補スピンを反転スピンとして確定する(ステップS114)。その後、反転スピン選択部50は、反転スピンの確定の通知とともに、反転スピンのスピン番号及びスピン状態をエネルギー計算部60及び探索結果保持部70へ出力する。
エネルギー計算部60は、反転スピンの確定の通知を受けると、保持する各スピンのスピン状態において、反転スピン選択部50から取得したスピン番号を有するスピンのスピン状態を反転させる。また、エネルギー計算部60は、反転スピンのスピン状態を反転させた場合のエネルギー変化量を反転スピン選択部50から取得する。そして、エネルギー計算部60は、取得したエネルギー変化量を既に保持するエネルギーに加算したものを新たなエネルギーとして、保持するエネルギーの情報を更新する(ステップS115)。
その後、エネルギー計算部60は、算出したエネルギーを探索結果保持部70へ出力する。探索結果保持部70は、エネルギー計算部60から取得したエネルギーが保持する最小エネルギー未満か否かを判定する(ステップS116)。エネルギー計算部60から取得したエネルギーが保持する最小エネルギー以上の場合(ステップS116:否定)、最適解の探索処理は、ステップS118へ進む。
これに対して、エネルギー計算部60から取得したエネルギーが保持する最小エネルギー未満の場合(ステップS116:肯定)、探索結果保持部70は、エネルギー計算部60から取得したエネルギーを最小エネルギーとして、保持する最小エネルギーを更新する。さらに、探索結果保持部70は、保持する各スピンのスピン状態において反転スピンのスピン状態を反転させた各スピンのスピン状態を、新たな最小エネルギーの場合のスピン状態として保存する(ステップS117)。
焼鈍部10は、反転スピンのスピン番号とともに反転スピンの確定の入力を反転スピン選択部50から受ける。スピン状態管理部102は、反転が確定された反転スピンが自スピンである場合、自スピンのスピン状態を更新する(ステップS118)。
局所場管理部101は、反転が確定した反転スピンのスピン番号を数式(4)に用いて局所場の変化量を算出する。そして、局所場管理部101は、自己が保持する局所場の情報に算出した局所場の変化量を用いて、自スピンに対する局所場を算出する。その後、局所場管理部101は、算出した局所場の情報を現在の局所場の情報として、保持する局所場の情報を更新する(ステップS119)。
その後、探索結果保持部70は、予め決められた演算回数が終了したか否かを判定する(ステップS120)。予め決められた演算回数が終了していない場合(ステップS120:否定)、最適解の探索処理は、ステップS105へ戻る。これに対して、予め決められた演算回数が終了した場合(ステップS120:肯定)、探索結果保持部70は、その時点で有する最小エネルギーのスピン状態を最適解と決定して最適解の探索処理を終了する。
図4は、イジング演算装置の配置構成図である。本実施例に係るイジング演算装置1は、図4におけるアニーリング回路201にあたる。アニーリング回路201は、アニーリングが実行可能な機能単位である。各アニーリング回路201は、複数の単位回路202及び制御回路203を有する。例えば、1つのアニーリング回路201に、1024個の単位回路202が搭載される。単位回路202は、1つのスピン判定や状態管理を実施する論理及び実装の単位であり、焼鈍部10にあたる。また、制御回路203は、アニーリング回路201内の制御を行う回路であり、エネルギー計算部60及び探索結果保持部70などにあたる。すなわち、単位回路202のそれぞれが担当する自スピンのいずれかが反転候補スピンとして選択され、その反転候補スピンの採択を制御回路203が行い、反転スピンが確定すると、単位回路202への通知が行われる。
また、図5は、単位回路の回路イメージの図である。図5に示すレジスタ221が、局所場管理部101の一例にあたる。ここで、hは、局所場の値を表す。また、レジスタ222が、スピン状態管理部102の一例にあたる。ここで、xは、スピンxのスピン状態を表す。
回路223が、エネルギー変化量計算部103の一例にあたる。回路223は、局所場h及びスピンxのスピン状態を用いて、エネルギー変化量ΔEを算出する。
回路224が、反転候補フラグ生成部104の一例にあたる。回路224は、エネルギー変化量ΔEと閾値Thとを比較して、反転候補フラグの値を出力する。
レジスタ226が、期待値保持部107の一例にあたる。ここで、xexpは、期待値を表す。
回路227が、期待値比較部108の一例にあたる。回路227は、スピンxのスピン状態と期待値xexpとを比較して、反転候補フラグの値を出力する。
選択回路225が、信号選択回路105の一例にあたる。選択回路225は、初期化信号の入力を受けると、回路227から入力された反転候補フラグの値を選択して出力する。また、初期化信号の入力を受けない場合、選択回路225は、回路224から入力された反転候補フラグの値を選択して出力する。
図6は、実施例1に係るイジング演算装置利用時の処理のフローチャートである。ここでは、イジング演算装置1を利用する利用者をユーザと言う。
ユーザが解きたい解決対象問題51が存在する。ユーザは、コンピュータなどを用いて、解決対象問題をイジングモデルへ問題変換する(ステップS151)。これにより、数式(1)で表される、イジングモデルエネルギー式53が取得される。さらに、スピン状態、局所場及びエネルギーの初期値54が取得される。
また、イジングモデルへの問題変換後に、ユーザは、演算開始時のスピン状態を決定する(ステップS152)。これにより、演算開始時のスピン状態の期待値55が取得される。
次に、イジングモデルエネルギー式53、スピン状態、局所場及びエネルギーの初期値54、並びに、期待値55がイジング演算装置1にパラメータとして入力される。また、また、演算の反復回数などと言った最適解の探索処理を実行させるための動作条件52もパラメータとしてイジング演算装置1に入力される(ステップS153)。
その後、イジング演算装置1により、演算が実行される(ステップS154)。この処理が、上述したイジング演算装置1による最適解の探索処理である。この演算の実行により、演算結果56が得られる。
ユーザは、演算結果56を取得する(ステップS155)。そして、ユーザは、取得した演算結果56の解釈を行う(ステップS156)。これにより、ユーザは、解決対象問題51に対する解決対象問題の解57を得る。
以上に説明したように、本実施例に係るイジング演算装置は、各スピンのスピン状態が期待値に一致するようにスピン状態の反転を行い、これにより所望する初期状態を生成する。そして、イジング演算装置は、生成した初期状態から最適解の探索処理を実行して解を得る。これにより、任意のスピン状態からイジング演算装置での最適解の探索処理を開始することができ、より短時間で最小エネルギーに到達することが可能となる。また、局所場は各スピンで並列に計算されるため、ソフトウェアで初期状態を得るための演算を実行する場合に比べて高速である。したがって、イジング演算装置の組合せ最適化問題に対する処理性能を向上させることが可能となる。
また、本実施例に係るイジング演算装置は、初期状態へ遷移するまでの反転候補の選択方法を変更したが、エネルギー及び局所場の計算は従来通りである。そのため、期待した初期状態に到達した後は、従来の最適解の探索処理が行われ、正しい値を得ることができる。また、物理的な資源の増加を抑えることができる。
例えば、Nビットのスピンの演算が可能なイジング演算装置では、エネルギーと各スピンの局所場を計算する場合、Nの2乗のステップのオーダの計算が実行される。これに対して、本実施例に係るイジング演算装置では、反転させるスピンの数に依存するが、最悪のケースでもNステップで実行可能である。取り扱うスピンの数が1024程度とすると、ステップ数で1024倍程度高速となる。さらに、ソフトウェアの場合、メモリアクセスのレイテンシなどもかかるため、効果はさらに大きくなると考えられ、問題設定のための相互作用係数の転送時間やエネルギー探索の演算時間に比べて、初期状態までの遷移時間は無視できる値となる。
以上の説明では、操作者が期待値を決定してイジング演算装置へ入力したが、これに限らず、例えば、イジング演算装置の中に期待値を作成してその値に各スピンのスピン状態を誘導する機能を設ければ、イジング演算装置内部で任意状態への遷移も可能となる。このような機能は、例えば、PTICMのようなビット演算に適用することが可能である。また、このような機能を用いることで、イジング演算装置において、全てのスピンのスピン状態を1にリセットする処理も可能となる。
図7は、実施例2に係る情報処理システムのブロック図である。本実施例に係るイジング演算装置1は、問題の制約条件をソフトウェアによる処理と連携して解消しながら、最適解の探索処理を実行する。以下の説明では実施例1と同様の各部の動作は説明を省略する場合がある。
組み合わせ最適化問題には、組み合わせとして用いる値に制約条件を有するものがある。例えば、制約条件には、各スピンのそれぞれを表すビットを割り当てた場合に、決められた所定数のビットのスピンにおいてnビットが1であるといった条件がある。この制約条件は、「n-hot制約」と呼ばれる。このような制約条件を有する最適化問題を解く場合について説明する。
焼鈍部10は、所望の初期状態における各スピンの期待値の設定を受ける。その後、演算結果が確定した後に、焼鈍部10は、予め決められた制約条件を満たすように調整された演算結果の入力を受け、取得した調整後の演算結果のスピン状態を期待値として設定する。
探索結果保持部70は、予め決められた反復回数の演算終了後、最小エネルギーとなる探索結果を保持する。この探索結果は、必ずしも制約条件を満たしているとは限らない。そこで、探索結果保持部70は、ソフトウェアを実行する情報処理装置2に演算結果を出力する。
イジング演算装置1の各部は、期待値を用いて初期状態を生成し、生成した初期状態から最適解の探索処理を開始して、演算結果を取得する。
その後、ソフトウェアにより制約条件を満たすように調整された演算結果が入力されると、イジング演算装置1は、新たに設定された期待値を用いて初期状態を生成し、生成した初期状態から最適解の探索処理を開始して演算結果を取得する。イジング演算装置1は、ソフトウェアとの間の演算結果のやり取りを予め決められた回数繰り返して演算を終了する。
情報処理装置2で実行されるソフトウェアは、演算結果の入力を探索結果保持部70から受ける。そして、ソフトウェアは、入力された演算結果が制約条件を満たしているか否かを反転する。演算結果が制約条件を満たしている場合、ソフトウェアは、そのまま演算結果のスピン状態をイジング演算装置1の各焼鈍部10へ送信する。これに対して、演算結果が制約条件を満たしていない場合、ソフトウェアは、制約条件を満たすように演算結果を調整し、調整後の各スピンのスピン状態を期待値として焼鈍部10へ送信して格納させる。
図8は、ソフトウェアと連携するイジング演算装置利用時の処理のフローチャートである。以下に、図8を参照して、本実施例に係るイジング演算装置1を利用する場合の問題解決処理の流れを説明する。
ユーザが解きたい解決対象問題61が存在する。ユーザは、コンピュータなどを用いて、解決対象問題をイジングモデルへ問題変換する(ステップS161)。これにより、数式(1)で表される、イジングモデルエネルギー式63が取得される。さらに、スピン状態、局所場及びエネルギーの初期値64が取得される。
また、イジングモデルへの問題変換後に、ユーザは、演算の制約条件を満たすように演算開始時のスピン状態を決定する。これにより、演算開始時のスピン状態の期待値65が取得される。
次に、イジングモデルエネルギー式63、スピン状態、局所場及びエネルギーの初期値64、並びに、期待値65がイジング演算装置1にパラメータとして入力される。また、また、演算の反復回数などと言った最適解の探索処理を実行させるための動作条件62もパラメータとしてイジング演算装置1に入力される(ステップS162)。
その後、イジング演算装置1により、演算が実行される(ステップS163)。この処理が、上述したイジング演算装置1による最適解の探索処理である。この演算の実行より、演算結果66が得られる(ステップS164)。
そして、イジング演算装置1は、ソフトウェアにより調整された演算結果を用いた演算を所定回数実行したか否かを判定する(ステップS165)。
ソフトウェアにより調整された演算結果66を期待値として用いた演算が所定回数に達していない場合(ステップS165:否定)、イジング演算装置1は、情報処理装置2へ演算結果66を送信する。情報処理装置2のソフトウェアは、演算結果66の入力を受けて、演算の制約条件を満たすように演算結果66のスピン状態を変更する(ステップS166)。その後、情報処理装置2のソフトウェアは、演算の制約条件を満たすように変更した演算結果66を演算開始時のスピン状態の期待値65をイジング演算装置1へ送信する。その後、処理はステップS162へ戻る。
これに対して、ソフトウェアにより調整された演算結果66を用いた演算が所定回数に達した場合(ステップS165:肯定)、ユーザは、演算結果66の解釈を行う(ステップS167)。これにより、ユーザは、解決対象問題61に対する解決対象問題の解67を得る。
以上に説明したように、本実施例に係るイジング演算装置は、制約条件を有する最適化問題を解く場合に、制約条件を満たすスピン状態を期待値として最適解の探索処理を行う。そして、探索結果をソフトウェアにより制約条件を満たすように調整された後に、その調整後の探索結果を初期値として、イジング演算装置は、最適解の探索処理を再度行うことを繰り返す。これにより、制約条件を有する最適化問題について、イジング演算装置単独で解く場合に比べて、より良い解をえることが可能である。
次に、実施例3について説明する。最適値の探索方法の例として、2つの径で並列に演算した結果のスピン状態を比較して、両者で異なる値のスピンを抽出した後、その一部の値を交換するという手順を繰り返して最小エネルギーを探索する方法が提案されている。このような探索方法は、PTICM(parallel tempering with isoenergetic cluster moves)と呼ばれる。このような探索方法は、例えば、Z. Zhu, C. Fang, and H. G. Katzgramer, borealis - a generalized global update algorithm for Boolean optimization problems, arXiv: 1605.09399(2016)に開示されている。本実施例に係るイジング演算装置は、このような探索処理を行う際にソフトウェアと連携して、抽出したスピンのスピン状態を交換する処理をソフトウェアに実行させて、その結果を取得して探索を行う。本実施例に係るイジング演算装置1も図7のブロック図で表される。
焼鈍部10は、最初に例えば全てスピンのスピン状態が0といった適当な値を期待値として取得する。その後、焼鈍部10は、探索結果確定後、次の演算で初期状態とする各スピンのスピン状態の入力を情報処理装置2のソフトウェアから受ける。そして、焼鈍部10は、次の演算の初期値を情報処理装置2から取得したスピン状態とする。
イジング演算装置1の各部は、2つの系で並列に最適値の探索処理を実行してそれぞれの探索結果を取得する。イジング演算装置1の各部は、焼鈍部10に情報処理装置2から入力されたスピン状態を期待値として、2つの系で並列に最適値の探索処理を再度実行してそれぞれの探索結果を取得する。イジング演算装置1の各部は、情報処理装置2から取得したスピン状態を期待値とする演算を所定回数実行するまで繰り返す。
探索結果保持部70は、保持する2つの系における探索結果を取得する。そして、探索結果保持部70は、情報処理装置2から取得したスピン状態を期待値とする演算を所定回数実行したか否かを判定する。所定回数に達していない場合、探索結果保持部70は、2つの系における探索結果をソフトウェアへ出力する。所定回数に達した場合、探索結果保持部70は、その時点での2つの系における探索結果を保持しつつ最適解の探索処理を終了する。
本実施例に係るイジング演算装置利用時の処理のフローチャートも図8で表される。以下では、実施例2と異なる処理について説明し、他の処理については説明を省略する。
本実施例では、ステップS163において、2つの系における最適解の探索処理が並列で行われる。そして、イジング演算装置1は、演算結果66として、2つの系の探索結果を取得する。
そして、イジング演算装置1は、ステップS165において、ソフトウェアにより2つの系の間で交換が行われたスピン状態を期待値として用いた演算を所定回数実行したか否かを判定する(ステップS165)。
ソフトウェアにより変更されたスピン状態を用いた演算が所定回数に達していない場合(ステップS165:否定)、イジング演算装置1は、情報処理装置2へ演算結果66を送信する。情報処理装置2で実行されるソフトウェアは、演算結果66に含まれる2つの系の探索結果を比較し、両者の間でスピン状態が異なるスピンを抽出する。次に、情報処理装置2で実行されるソフトウェアは、抽出したスピンの一部を交換して、2つの系の探索結果のそれぞれのスピン状態を変更する(ステップS166)。その後、情報処理装置2で実行されるソフトウェアは、変更した2つの系の探索結果のそれぞれのスピン状態を期待値65としてイジング演算装置1へ送信する。処理はステップS162へ戻る。
図9は、ソフトウェア連携による高速化を説明するための図である。図9におけるフロー301は、本実施例に係るイジング演算装置1による最適解の探索処理の流れを表す。また、フロー302は、期待値を使用しない場合の最適解の探索処理の流れを表す。
フロー301を参照して、本実施例に係るイジング演算装置1による最適解の探索処理について説明する。イジング演算装置1は、操作者により初期設定が行われる(ステップS201)。本実施例では、最初の期待値は各スピンともスピン状態が0でよいので、初期値への誘導の処理時間はなしと考えられる。
次に、イジング演算装置1は、2つの系について探索処理を実行する(ステップS202)。それにより、イジング演算装置1は、2つの系の探索結果を取得する(ステップS203)。
その後、探索処理の反復回数が予め決められた回数に達していない場合、イジング演算装置1は、情報処理装置2に探索結果を送信する。そして、情報処理装置2で実行されるソフトウェアは、2つの系の探索結果に対してビット操作を実行する(ステップS204)。
次に、情報処理装置2で実行されるソフトウェアは、ビット操作を行ったそれぞれの系統の各スピンのスピン状態を期待値としてイジング演算装置1へ送信する(ステップS205)。
イジング演算装置1は、取得した期待値に各スピンのスピン状態が一致するように初期状態への誘導を実行する(ステップS206)。その後、処理はステップS202の探索処理へ戻る。
これに対して、フロー301を参照して、期待値を用いない場合のイジング演算装置1による最適解の探索処理について説明する。イジング演算装置1は、操作者により初期設定が行われる(ステップS211)。この場合、各スピンともスピン状態が0に設定される。この処理は、フロー301のステップS201の処理と同様である。
次に、イジング演算装置1は、2つの系について探索処理を実行する(ステップS212)。それにより、イジング演算装置1は、2つの系の探索結果を取得する(ステップS213)。この処理は、フロー301のステップS202及びS203の処理と同様である。
その後、探索処理の反復回数が予め決められた回数に達していない場合、イジング演算装置1は、情報処理装置2に探索結果を送信する。そして、情報処理装置2で実行されるソフトウェアは、2つの系の探索結果に対してビット操作を実行する(ステップS214)。
次に、情報処理装置2で実行されるソフトウェアは、ビット操作を行ったそれぞれの系統の各スピンのスピン状態から局所場及びエネルギーを算出する(ステップS215)。その後、情報処理装置2で実行されるソフトウェアは、算出した局所場及びエネルギーの情報をイジング演算装置1へ送信する(ステップS216)。
イジング演算装置1は、取得した局所場及びエネルギーを初期値としてステップS212の探索処理へ戻る。
この場合、ステップS215でソフトウェアにより実行されるスピン状態交換後の局所場とエネルギーの計算は、大きな演算を行うことになり演算時間のオーバーヘッドが大きい。これに対して、フロー301の処理205及び206での処理は、交換後のスピン状態をイジング演算装置が取得して初期状態へ誘導するため、演算時間を短縮することができる。
以上に説明したように、本実施例に係るイジング演算装置は、PTICMと呼ばれる手法を用いて最適化問題を解く場合に、ソフトウェアにより2つの系における特定のスピン状態が交換された各スピンのスピン状態を初期値として最適解の探索処理を繰り返す。従来は、PTICMと呼ばれる手法を用いて最適化問題を解く場合、スピン状態交換後の局所場とエネルギーの計算を行い、その計算結果をイジング演算装置へ送信する処理が毎回行われていた。これに対して、本実施例に係るイジング演算装置は、2回目以降は、イジング演算装置は、ソフトウェアによる交換後のスピン状態を演算再開時の期待値として取得して演算を行う。したがって、最適解の探索処理の実行時間を短縮することが可能である。
ここで、実施例2及び3で説明した情報処理装置2で実行されるソフトウェアが、「状態変更部」の一例にあたる。また、実施例2及び3では、最適解を探索するイジング演算装置1とソフトウェアを実行する情報処理装置2とを別の装置として説明したが、これらは、同一の装置の中に組み込まれて1台の最適化装置とされてもよい。
1 イジング演算装置
10 焼鈍部
20 温度制御部
30 閾値生成部
40 乱数生成部
50 反転スピン選択部
60 エネルギー計算部
70 探索結果保持部
80 初期設定制御部
101 局所場管理部
102 スピン状態管理部
103 エネルギー変化量計算部
104 反転候補フラグ生成部
105 信号選択回路
106 スピン番号保持部
107 期待値保持部
108 期待値比較部

Claims (5)

  1. 温度を示す温度値を制御する温度制御部と、
    エネルギーを表す評価関数に含まれる複数の状態変数のうちのいずれか1つの前記状態変数の状態を変化させて状態遷移を行った場合の前記評価関数が表すエネルギーの変化量を算出するエネルギー変化量計算部と、
    前記温度値及び乱数値を基に算出した閾値と前記エネルギーの変化量との相関関係によって、前記状態遷移を採択するか否かを確率的に判定する判定部と、
    複数の前記状態変数の状態のそれぞれの期待値を保持する期待値保持部と、
    前記期待値保持部が保持するそれぞれの前記期待値と前記状態変数の状態のそれぞれの値とを比較して不一致である前記状態変数を抽出する期待値比較部と、
    前記状態変数の状態のそれぞれの値が各前記期待値とすべて一致するまで、前記期待値比較部により抽出された前記状態変数を選択して状態を変化させ、前記状態変数の状態のそれぞれの値が各前記期待値といったん一致して以降は、前記判定部により前記状態遷移が採択された前記状態変数を選択して状態を変化させる確定部と、
    前記確定部により選択された前記状態変数の状態の変化が実行された後の遷移後エネルギーを算出するエネルギー計算部と、
    前記エネルギー計算部により算出された前記遷移後エネルギーが最小エネルギー未満の場合、前記遷移後エネルギーを前記最小エネルギーとする探索部と
    を備えたことを特徴とする最適化装置。
  2. 前記状態変数の状態が前記期待値と不一致の間に初期化信号を出力し、前記状態変数の状態が前記期待値と一致した場合、前記初期化信号の出力を停止する初期設定制御部と、
    前記初期設定制御部が前記初期化信号を出力する場合、前記期待値比較部により抽出された前記状態変数を前記確定部に選択させ、前記初期設定制御部による前記初期化信号の出力が停止した場合、前記判定部により前記状態遷移が採択された前記状態変数を前記確定部に選択させる選択部を
    さらに備えたことを特徴とする請求項1に記載の最適化装置。
  3. 前記探索部により前記最小エネルギーとされた場合の前記状態変数の状態を取得して、前記状態変数の状態に対して予め決められた処理を実行しいて変化させ、変化させた前記状態変数のそれぞれの状態を前記期待値として前記期待値保持部に保持させる状態変更部をさらにそなえたことを特徴とする請求項1又は2に記載の最適化装置。
  4. コンピュータが、
    エネルギーを表す評価関数に含まれる複数の状態変数の状態の予め決められたそれぞれの期待値と前記状態変数の状態を変化させた場合のそれぞれの値とを比較して、前記状態変数の状態のそれぞれの値が各前記期待値とすべて一致するまで、不一致である前記状態変数を抽出し、
    抽出した前記状態変数を選択して状態を変化させ、
    前記一致以降は、温度を示す温度値を制御し、
    複数の前記状態変数のうちのいずれか1つの前記状態変数の状態を変化させて状態遷移を行った場合の前記評価関数が表すエネルギーの変化量を算出し
    前記温度値及び乱数値を基に算出した閾値と前記エネルギーの変化量との相関関係によって、前記状態遷移を採択するか否かを確率的に判定し、
    前記状態遷移を採択した前記状態変数を選択して状態を変化させ、
    前記状態変数の状態の変化を実行した後の遷移後エネルギーを算出し、
    算出した前記遷移後エネルギーが最小エネルギー未満の場合、前記遷移後エネルギーを前記最小エネルギーとする
    処理を実行することを特徴とする最適化方法。
  5. エネルギーを表す評価関数に含まれる複数の状態変数の状態の予め決められたそれぞれの期待値と前記状態変数の状態を変化させた場合のそれぞれの値とを比較して、前記状態変数の状態のそれぞれの値が各前記期待値とすべて一致するまで、不一致である前記状態変数を抽出し、
    抽出した前記状態変数を選択して状態を変化させ、
    前記一致以降は、温度を示す温度値を制御し、
    複数の前記状態変数のうちのいずれか1つの前記状態変数の状態を変化させて状態遷移を行った場合の前記評価関数が表すエネルギーの変化量を算出し
    前記温度値及び乱数値を基に算出した閾値と前記エネルギーの変化量との相関関係によって、前記状態遷移を採択するか否かを確率的に判定し、
    前記状態遷移を採択した前記状態変数を選択して状態を変化させ、
    前記状態変数の状態の変化を実行した後の遷移後エネルギーを算出し、
    算出した前記遷移後エネルギーが最小エネルギー未満の場合、前記遷移後エネルギーを前記最小エネルギーとする
    処理をコンピュータに実行させることを特徴とする最適化プログラム。
JP2020071652A 2020-04-13 2020-04-13 最適化装置、最適化方法及び最適化プログラム Active JP7491032B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020071652A JP7491032B2 (ja) 2020-04-13 2020-04-13 最適化装置、最適化方法及び最適化プログラム
EP21154525.6A EP3896621A1 (en) 2020-04-13 2021-02-01 Optimization apparatus, optimization method, and optimization program
US17/167,574 US20210319155A1 (en) 2020-04-13 2021-02-04 Optimization apparatus, optimization method, and computer-readable recording medium recording optimization program
CN202110183715.5A CN113537551A (zh) 2020-04-13 2021-02-10 优化设备、优化方法和记录优化程序的记录介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020071652A JP7491032B2 (ja) 2020-04-13 2020-04-13 最適化装置、最適化方法及び最適化プログラム

Publications (2)

Publication Number Publication Date
JP2021168068A JP2021168068A (ja) 2021-10-21
JP7491032B2 true JP7491032B2 (ja) 2024-05-28

Family

ID=74494776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020071652A Active JP7491032B2 (ja) 2020-04-13 2020-04-13 最適化装置、最適化方法及び最適化プログラム

Country Status (4)

Country Link
US (1) US20210319155A1 (ja)
EP (1) EP3896621A1 (ja)
JP (1) JP7491032B2 (ja)
CN (1) CN113537551A (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017037859A1 (ja) 2015-08-31 2017-03-09 株式会社日立製作所 情報処理装置及び方法
JP2020046997A (ja) 2018-09-19 2020-03-26 富士通株式会社 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6468254B2 (ja) * 2016-07-01 2019-02-13 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP6465092B2 (ja) 2016-10-14 2019-02-06 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7093009B2 (ja) * 2018-08-30 2022-06-29 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7108185B2 (ja) * 2018-11-22 2022-07-28 富士通株式会社 最適化装置および最適化装置の制御方法
JP7185140B2 (ja) * 2019-04-11 2022-12-07 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7417078B2 (ja) * 2020-02-27 2024-01-18 富士通株式会社 情報処理装置、情報処理方法およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017037859A1 (ja) 2015-08-31 2017-03-09 株式会社日立製作所 情報処理装置及び方法
JP2020046997A (ja) 2018-09-19 2020-03-26 富士通株式会社 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置

Also Published As

Publication number Publication date
US20210319155A1 (en) 2021-10-14
CN113537551A (zh) 2021-10-22
EP3896621A1 (en) 2021-10-20
JP2021168068A (ja) 2021-10-21

Similar Documents

Publication Publication Date Title
US20210350056A1 (en) Method and system for quantum computing
US10885147B2 (en) Optimization apparatus and control method thereof
Goldie et al. Placement optimization with deep reinforcement learning
US20230131088A1 (en) Optimization apparatus and control method thereof
US9697471B2 (en) Device and method for managing plant model
US11372034B2 (en) Information processing device
Corwin et al. KPZ equation correlations in time
CN112528591B (zh) 一种基于联合蒙特卡洛树搜索的pcb板自动布线方法
JP2019016077A (ja) 最適化装置及び最適化装置の制御方法
US20210150356A1 (en) Optimization device, method for controlling optimization device, and computer-readable recording medium recording program for controlling optimization device
US20210081809A1 (en) Optimization apparatus, optimization program, and optimization method
CN113158685A (zh) 文本的语义预测方法、装置、计算机设备和存储介质
JP2019016129A (ja) 最適化装置及び最適化装置の制御方法
JP2020064535A (ja) 最適化装置及び最適化装置の制御方法
Xu et al. A comparison of numerical optimizers in developing high dimensional surrogate models
JP7491032B2 (ja) 最適化装置、最適化方法及び最適化プログラム
JP7502269B2 (ja) 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム
Dong et al. A kind of balance between exploitation and exploration on kriging for global optimization of expensive functions
Kanazawa et al. FPGA acceleration to solve maximum clique problems encoded into partial MaxSAT
CN116261727A (zh) 利用人工智能方案在连续动作空间的宏布置
EP3975032A1 (en) Optimization apparatus, optimization method, and optimization program
JP2021174260A (ja) 最適化装置、最適化方法及び最適化プログラム
Lee et al. A distributed quasi-Newton algorithm for primal and dual regularized empirical risk minimization
US20240070228A1 (en) Storage medium, data processing apparatus, and data processing method
EP4250180A1 (en) Method and apparatus for generating neural network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240429

R150 Certificate of patent or registration of utility model

Ref document number: 7491032

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150