JP7007585B2 - 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム - Google Patents

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

Info

Publication number
JP7007585B2
JP7007585B2 JP2018049467A JP2018049467A JP7007585B2 JP 7007585 B2 JP7007585 B2 JP 7007585B2 JP 2018049467 A JP2018049467 A JP 2018049467A JP 2018049467 A JP2018049467 A JP 2018049467A JP 7007585 B2 JP7007585 B2 JP 7007585B2
Authority
JP
Japan
Prior art keywords
unit
operating conditions
arithmetic
optimization device
ising model
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
JP2018049467A
Other languages
English (en)
Other versions
JP2019160169A (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 JP2018049467A priority Critical patent/JP7007585B2/ja
Priority to US16/284,101 priority patent/US11599073B2/en
Publication of JP2019160169A publication Critical patent/JP2019160169A/ja
Application granted granted Critical
Publication of JP7007585B2 publication Critical patent/JP7007585B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/042Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
    • 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/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • 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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

特許法第30条第2項適用 平成29年9月20日にhttp://pr.fujitsu.com/jp/news/2017/09/20-2.htmlにて公開
本発明は、最適化装置、最適化装置の制御方法及び最適化装置の制御プログラムに関する。
ノイマン型コンピュータが不得意とする多変数の最適化問題を解く方法として、イジング型のエネルギー関数を用いた最適化装置(イジングマシンまたはボルツマンマシンと呼ばれる場合もある)がある。最適化装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。
最適化装置は、たとえば、ニューラルネットワークを用いてモデル化することもできる。その場合、最適化装置に含まれる複数のユニット(ビット)のそれぞれが、他のビットの状態と、他のビットと自身のビットとの結合の強さを示す重み係数(結合係数とも呼ばれる)とに応じて0または1を出力するニューロンとして機能する。最適化装置は、たとえば、シミュレーテッド・アニーリングなどの確率的探索法により、上記のようなエネルギー関数(コスト関数、目的関数とも呼ばれる)の最小値が得られる各ビットの状態の組み合わせ(基底状態)を、解として求める。
なお、最適化問題の計算の際には、最適化装置の動作条件の設定が行われる(たとえば、特許文献1,2参照)。
特開2016-103282号公報 米国特許出願公開第2003/0169041号明細書
しかし、最適化装置の最適な動作条件は、計算対象の問題の種類ごとに様々であり、ユーザの入力に基づいて問題に応じた適切な動作条件を設定することは困難であった。
1つの側面では、本発明は、問題に応じた適切な動作条件を自動的に設定可能な最適化装置、最適化装置の制御方法及び最適化装置の制御プログラムを提供することを目的とする。
1つの実施態様では、問題が入力される操作部と、イジングモデルの基底状態を探索する演算部と、前記操作部から入力された前記問題を前記イジングモデルに変換し、変換した前記イジングモデルと初期動作条件とを前記演算部に入力し、前記初期動作条件を用いて前記演算部に前記基底状態を探索させた結果に基づいて、前記初期動作条件を変更した全体動作条件を用いて前記基底状態を前記演算部に探索させる、管理部と、を有する最適化装置が提供される。
また、1つの実施態様では、最適化装置の制御方法が提供される。また、1つの実施態様では、最適化装置の制御プログラムが提供される。
1つの側面では、本発明は、ユーザが問題の種類ごとに最適な動作条件を設定することなく、問題に応じた適切な動作条件を自動的に設定できる。
第1の実施の形態の最適化装置及びその制御方法の例を示す図である。 異なる温度が設定される複数のレプリカのノードの状態の交換の様子を示す図である。 交換モンテカルロ法を実現する第2の実施の形態の最適化装置の一例を示す図である。 第2の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。 第3の実施の形態の最適化装置の一例を示す図である。 第3の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。 アニーリング条件の変更例を示す図である。 第4の実施の形態の最適化装置の一例を示す図である。 コンピュータのハードウェア例を示す図である。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
以下に示す最適化装置は、イジングモデルの基底状態(イジング型のエネルギー関数が最小値となるときの各ニューロンの値)を探索することで、巡回セールスマン問題などの最適化問題を計算する。イジング型のエネルギー関数E(x)は、たとえば、以下の式(1)で定義される。
Figure 0007007585000001
右辺の1項目は、全ニューロン(全ビット)から選択可能な2つのニューロンの全組み合わせについて、漏れと重複なく、2つのニューロンの値(0または1)と重み係数との積を積算したものである。xは、i番目のニューロンの値、xは、j番目のニューロンの値であり、Wijは、i番目とj番目のニューロンの結合の強さを示す重み係数である。なお、Wij=Wji、Wii=0である。
右辺の2項目は、全ニューロンのそれぞれのバイアスとニューロンの値との積の総和を求めたものである。bは、i番目のニューロンのバイアスを示している。
また、i番目のニューロンのスピン反転(値の変化)に伴うエネルギー変化ΔEは、以下の式(2)で表される。
Figure 0007007585000002
式(2)において、i番目のニューロンの値xが1のとき、2x-1は1となり、値xが0のとき、2x-1は-1となる。なお、以下の式(3)で表されるhはローカルフィールド(局所場)と呼ばれ、値xに応じてローカルフィールドhに符号(+1または-1)を乗じたものがエネルギー変化ΔEである。
Figure 0007007585000003
図1は、第1の実施の形態の最適化装置及びその制御方法の例を示す図である。
最適化装置10は、操作部11、管理部12、演算部13、記憶部14を有する。
操作部11には、計算対象の問題が入力される。操作部11には、たとえば、図示しない入力デバイスが接続され、ユーザによる入力デバイスの操作によって、問題が入力される。
管理部12は、操作部11から入力された問題をイジングモデルに変換する。管理部12は、問題に応じて、たとえば、式(1)で定義されるイジング型のエネルギー関数E(x)の重み係数Wijとバイアスbを求めることで、問題のイジングモデルへの変換を行う。
また、管理部12は、変換したイジングモデルと、初期動作条件とを演算部13に入力する。初期動作条件は、たとえば、演算部13がシミュレーテッド・アニーリングを行う場合には、温度を下げていく際の初期温度、最終温度、冷却スケジュール(冷却速度など)、演算処理の繰り返し回数、値xの初期値などである。なお、シミュレーテッド・アニーリングでは、温度はノイズの幅で表される。温度が高いほどノイズの幅が広い。ノイズは乱数生成器(LFSR(Linear Feedback Shift Registers)など)によって生成できる。
また、管理部12は、初期動作条件を用いて演算部13にイジングモデルの基底状態を探索させた結果に基づいて、初期動作条件を変更した全体動作条件を演算部13に入力し、入力した全体動作条件を用いて基底状態を演算部13に探索させる。
上記のような管理部12の処理は、たとえば、記憶部14に記憶された制御プログラムを管理部12が実行することで行われる。
管理部12は、たとえば、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などの演算処理装置としてのプロセッサである。ただし、管理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。なお、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」ということがある。
なお、操作部11と管理部12は、1つのコンピュータによっても実現できる。
演算部13は、入力された初期動作条件または全体動作条件を用いて、イジングモデルの基底状態を探索する。演算部13は、確率的探索法により、イジングモデルの基底状態を探索する。
たとえば、演算部13は、まず、重み係数Wijとバイアスbと値xに基づいて、式(3)で表されるローカルフィールドhを演算する。そして、演算部13は、初期動作条件または全体動作条件で指定される温度にノイズ幅が対応するノイズ値(乱数)をローカルフィールドhに加え、閾値との比較によってi番目のニューロンの値の更新の可否を判定する。また、演算部13は、その判定結果に基づいてi番目のニューロンの値を更新または維持する。演算部13は、このような演算処理を所定回数繰り返す。なお、演算部13はシミュレーテッド・アニーリングを行う場合、初期動作条件または全体動作条件で指定される冷却スケジュールに基づいて、たとえば、上記所定回数よりも少ないある回数の繰り返し処理ごとに、温度を下げていく(ノイズ幅を小さくする)。また、演算部13は、上記所定回数の繰り返し処理後に、式(1)に示したエネルギー関数E(x)の値(以下、単にエネルギーという)を算出する。算出されたエネルギーと、各ニューロンの値は、探索結果として、管理部12に供給される。
このような演算部13は、たとえば、重み係数Wijとバイアスbと値xを保持するレジスタ、積和演算回路、乱数生成器(LFSRなど)、比較器、セレクタなどの論理回路を用いて実現できる。
記憶部14は、たとえば、最適化装置10の制御プログラム、初期動作条件、全体動作条件などを記憶する。記憶部14として、RAM(Random Access Memory)などの揮発性メモリ、または、フラッシュメモリやEEPROM(Electrically Erasable Programmable Read Only Memory)などの不揮発性メモリやHDD(Hard Disk Drive)を用いることができる。
以下、第1の実施の形態の最適化装置10の動作例を説明する。
計算対象の問題が操作部11に入力されると、管理部12は、その問題をイジングモデルに変換し、初期動作条件とともに演算部13に入力する。なお、管理部12は、初期動作条件を予め演算部13に入力しておいてもよい。
演算部13は、初期動作条件を用いて、イジングモデルの基底状態を探索する。管理部12は、演算部13における探索結果に基づいて、初期動作条件を変更した全体動作条件を演算部13に入力する。たとえば、所定回数の繰り返し処理後のエネルギーが閾値以上の場合や、所定回数の繰り返し処理を複数回行ったときの各繰り返し処理後のエネルギーの変動が所定値より大きい場合、管理部12は、初期動作条件を全体動作条件に変更する。
全体動作条件は、初期動作条件に対して、たとえば、初期温度、最終温度、冷却スケジュール、演算処理の繰り返し回数または値xの初期値が異なっている。
演算部13は、全体動作条件を用いて、上記と同様にイジングモデルの基底状態を探索する。管理部12は、全体動作条件を用いた演算部13における探索結果に基づいて、その全体動作条件をさらに変更し、変更した全体動作条件を演算部13に入力して、演算部13に探索させてもよい。
たとえば、所定回数の繰り返し処理後のエネルギーが閾値未満となったときや、所定回数の繰り返し処理を複数回行ったときの各繰り返し処理後のエネルギーの変動が所定値より小さくなったとき、管理部12は、そのときの各ニューロンの値を解として出力する。または、管理部12は、計算開始から所定時間の経過後における各ニューロンの値を解として出力してもよい。
上記のような最適化装置10によれば、管理部12が演算部13による探索結果に基づいて、初期動作条件から全体動作条件に動作条件を変更するため、問題に応じた適切な動作条件を自動的に設定可能となる。また、ユーザは計算対象の問題を操作部11に入力すればよく、動作条件を設定しなくてもよい。これにより、ユーザの経験によらず、一定品質以上の解を得ることが可能となる。
(第2の実施の形態)
第2の実施の形態の最適化装置は、交換モンテカルロ法(レプリカ交換法または拡張アンサンブル法などとも呼ばれる)を実現する。
交換モンテカルロ法は、温度の異なる複数のネットワーク(以下レプリカと呼ぶ)により確率的探索を行いながら、温度が隣接して設定されているレプリカ間で各レプリカのエネルギーの差分に応じ、各レプリカのノードの状態を交換する方法である。なお、ノードの状態とは、前述の各ニューロンの値に相当する。
この方法により、解が局所解に陥ることが抑制され、より高速に解を最適解に収束させることが可能となる。なお、各レプリカのノードの状態を交換する代りに、各レプリカの温度を交換しても同様の効果が得られる。
図2は、異なる温度が設定される複数のレプリカのノードの状態の交換の様子を示す図である。
たとえば、図2では、複数(4つ)のレプリカが用意されており、各レプリカの温度はT~T(T>T>T>T)であるとする。交換モンテカルロ法では、温度が隣接して設定されているレプリカ同士で、所定の交換確率にしたがって、ノードの状態(または温度)が交換される。交換確率はmin(1,R)とすることができ、Rは以下の式(4)で表される。
Figure 0007007585000004
なお、式(4)において、T,Tq+1は、温度が隣接して設定されているq番目のレプリカとq+1番目のレプリカにおける温度をそれぞれ表している。また、Etotal(X),Etotal(Xq+1)は、上記2つのレプリカのそれぞれの総エネルギーを表している。また、X,Xq+1は、それぞれ、q番目及びq+1番目のレプリカのノードの状態をすべて含んでいるものとする。
このような交換確率では、T<Tq+1で、且つ、Etotal(X)>Etotal(Xq+1)であるとき、Rは1を超えるので、式(4)より、交換確率は1となり、ノードの状態の交換が行われる。たとえば、温度がTのレプリカと温度がTのレプリカ間では、温度がTのレプリカのエネルギーが、温度がTのレプリカのエネルギーよりも小さいときには、ノードの状態の交換が行われる。
一方、T<Tq+1で、且つ、Etotal(X)<Etotal(Xq+1)であるとき、確率Rで、ノードの状態の交換が行われる。
たとえば、温度がTのレプリカと温度がTのレプリカ間では、温度がTのレプリカのエネルギーが、温度がTのレプリカのエネルギーよりも大きいときには、確率Rでノードの状態の交換が行われる。
図3は、交換モンテカルロ法を実現する第2の実施の形態の最適化装置の一例を示す図である。
最適化装置20は、操作部21と、管理部22と、演算部23a1,23a2,・・・,23anを含む演算部23、記憶部24と、を有する。
操作部21は、第1の実施の形態の最適化装置10の操作部11と同じである。
管理部22は、イジングモデル変換部22a、交換制御部22bを有する。
イジングモデル変換部22aは、問題に応じて、たとえば、式(1)で定義されるイジング型のエネルギー関数E(x)の重み係数Wijとバイアスbを求めることで、問題のイジングモデルへの変換を行う。
たとえば、巡回セールスマン問題の場合、重み係数Wijとバイアスbは、都市間の距離、制約条件(同じ都市への複数回訪問や、複数都市への同時訪問などを抑制するための条件)を反映するように決定される。
そして、イジングモデル変換部22aは、演算部23a1~23anのそれぞれにイジングモデル(重み係数Wijやバイアスb)を入力する。なお、交換モンテカルロ法を実現するために、演算部23a1~23anのそれぞれには、互いに同じイジングモデルが与えられる。
交換制御部22bは、初期動作条件を、演算部23a1~23anのそれぞれに入力する。演算部23a1~23anのそれぞれにおける初期動作条件は、交換モンテカルロ法において、上記の各レプリカに設定される初期温度(または各ニューロンの初期値(初期状態))である。また、演算部23a1~23anを含む演算部23にとっての初期動作条件は、最高温度、最低温度、温度間隔、レプリカ数などである。なお、交換制御部22bは、複数の初期動作条件の候補の中から、入力された問題に応じて適用する初期動作条件を選択してもよいし、入力された問題に関係なく、予め決められた初期動作条件を演算部23a1~23anのそれぞれに入力してもよい。
たとえば、演算部23a1~23anの順に温度が高くなるように設定される場合には、最高温度は演算部23anに設定され、最低温度は演算部23a1に設定される。なお、レプリカ数は、n個の演算部23a1~23anのうち、使用される演算部の数に相当する。
また、交換制御部22bは、演算部23a1~23anのそれぞれにおける基底状態の探索結果に基づいて、初期動作条件を変更した全体動作条件を演算部23a1~23anに入力する。
たとえば、交換制御部22bは、演算部23a1~23anのそれぞれにおける所定回数の繰り返し処理後のエネルギー(式(4)の、Etotal(X),Etotal(Xq+1)など)を受ける。そして、交換制御部22bは、前述のmin(1,R)の交換確率にしたがって、温度が隣接して設定されている演算部のペアにおいて、その温度(または状態)を交換するようにして初期動作条件を変更する。そして、交換制御部22bは、初期動作条件を変更することで得られた動作条件(全体動作条件)を演算部23a1~23anに入力する。
演算部23a1~23anのそれぞれは、入力されたイジングモデルの基底状態を探索する。たとえば、演算部23a1~23anのそれぞれは、まず、重み係数Wijとバイアスbと値xに基づいて、式(3)で表されるローカルフィールドhを演算する。そして、演算部23a1~23anのそれぞれは、初期動作条件または全体動作条件により指定される温度にノイズ幅が対応するノイズ値を、ローカルフィールドhに加え、閾値との比較によってi番目のニューロンの値の更新の可否を判定する。さらに、演算部23a1~23anのそれぞれは、その判定結果に基づいてi番目のニューロンの値を更新または維持する。演算部23a1~23anのそれぞれは、このような処理を所定回数繰り返す。また、演算部23a1~23anのそれぞれは、上記所定回数の繰り返し処理後に、式(1)に示したエネルギーを算出する。算出されたエネルギーと、各ニューロンの値は、探索結果として、管理部22に供給される。
このような演算部23a1~23anのそれぞれは、第1の実施の形態の最適化装置10の演算部13と同様に、たとえば、レジスタ、積和演算回路、乱数生成器、比較器、セレクタなどの論理回路を用いて実現できる。
記憶部24は、たとえば、最適化装置20の制御プログラム、初期動作条件、全体動作条件などを記憶する。記憶部24として、RAMなどの揮発性メモリ、または、フラッシュメモリやEEPROMなどの不揮発性メモリやHDDを用いることができる。
以下、記憶部24に記憶された制御プログラムを実行することで実現される、第2の実施の形態の最適化装置20の動作例を説明する。
図4は、第2の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。
操作部21が、ユーザによる問題の入力を受け付けると(ステップS10)、管理部22のイジングモデル変換部22aは、その問題をイジングモデルへ変換する(ステップS11)。そして、イジングモデル変換部22aは、演算部23a1~23anのそれぞれにイジングモデルを入力し、交換制御部22bは、初期動作条件を、演算部23a1~23anのそれぞれに入力する(ステップS12)。
管理部22は、演算部23a1~23anのそれぞれに、初期動作条件、または、後述の処理で初期動作条件を変更した全体動作条件を用いて、イジングモデルの基底状態を探索させる(ステップS13)。そして、管理部22は、探索における繰り返し処理が予め決められた回数であるm1回、終了したか否かを判定する(ステップS14)。たとえば、管理部22は、演算部23a1~23anのそれぞれの動作に用いられるクロックのパルス数を計測し、ニューロンの値の更新可否が決定される一連の処理にかかるパルス数に基づいて、m1回の繰り返し処理が終了したか否かを判定する。m1回の繰り返し処理が終了していないと判定された場合、m1回の繰り返し処理が終了するまで、ステップS14の判定処理が継続される。
m1回の繰り返し処理が終了したと判定した場合、管理部22は、演算部23a1~23anのそれぞれにエネルギーを算出させ、その値を取得する(ステップS15)。なお、管理部22は、各ニューロンの値を探索結果として受けて、重み係数Wijとバイアスbとに基づいて、自身でエネルギーを算出してもよい。
そして、管理部22は、演算部23a1~23anのそれぞれにおけるエネルギーのうちの最低値が、上記ステップS15の処理が予め決められた回数であるm2回分行われる間、変化がないか否かを判定する(ステップS16)。
最低値がm2回分の間に変化する場合、管理部22は、温度が隣接して設定されている演算部のペアにおいて、前述の交換確率(min(1,R))でその温度(または状態)を交換するようにして初期動作条件または全体動作条件を変更する(ステップS17)。
そして、管理部22は、初期動作条件または全体動作条件を変更することで得られた動作条件を演算部23a1~23anに与えて、再びステップS13の探索を実行させる。
最低値がm2回分の間に変化しない場合、管理部22は、その最低値を出力する演算部の状態(各ニューロンの値)を解として出力する(ステップS18)。たとえば、管理部22は、図示しない表示装置にその解を表示してもよい。
なお、管理部22は、探索結果に基づいて、演算部23にとっての初期動作条件(最高温度、最低温度、温度間隔、レプリカ数など)を変更してもよい。たとえば、予め決められたm3(>m2)回、ステップS15の処理が行われても、m2回分の間の最低値に変化がなくならない場合、管理部22は、演算部23にとっての初期動作条件を変更した全体動作条件を用いて演算部23a1~23anに探索させる。その全体動作条件を用いても、m2回分の間の最低値に変化がなくならない場合、管理部22は、さらに別の全体動作条件を用いて演算部23a1~23anに探索させてもよい。
上記のような最適化装置20によれば、管理部22が演算部23a~23anのそれぞれによる探索結果に基づいて、初期動作条件から全体動作条件に動作条件を変更するため、問題に応じた適切な動作条件を自動的に設定可能となる。また、ユーザは計算対象の問題を操作部21に入力すればよく、動作条件を設定しなくてもよい。これにより、ユーザの経験によらず、一定品質以上の解を得ることが可能となる。
また、最適化装置20は、交換モンテカルロ法を実現するため、解が局所解に陥ることが抑制され、より高速に解を最適解に収束させることが可能となる。
(第3の実施の形態)
図5は、第3の実施の形態の最適化装置の一例を示す図である。図5において、図3に示した第2の実施の形態の最適化装置20と同じ要素については同一符号が付されている。
第3の実施の形態の最適化装置30において、管理部31のアニーリング条件設定部31aは、初期動作条件または全体動作条件として、アニーリング条件などを、演算部32a1,32a2,・・・,32anに入力する。アニーリング条件には、温度を下げていく際の初期温度、最終温度、冷却速度、各ニューロンの初期値などがある。アニーリング条件設定部31aは、演算部32a1~32anがそれぞれ異なるアニーリング条件でシミュレーテッド・アニーリングを行うように、演算部32a1~32anにアニーリング条件を入力する。
また、アニーリング条件設定部31aは、演算部32a1~32anにおける探索結果に基づいて、初期動作条件または全体動作条件を変更する。
演算部32に含まれる演算部32a1~32anのそれぞれは、第2の実施の形態の最適化装置20の演算部23a1~23anのそれぞれと同様の機能を有するとともに、上記アニーリング条件に基づいて、シミュレーテッド・アニーリングを行う。
以下、記憶部24に記憶された制御プログラムを実行することで実現される、第3の実施の形態の最適化装置30の動作例を説明する。
図6は、第3の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。
ステップS20~S22の処理は、第2の実施の形態の最適化装置20によるステップS10~S12の処理とほぼ同じである。ただ、ステップS22の処理では、管理部31のアニーリング条件設定部31aは、冷却速度などのアニーリング条件を含む初期動作条件を、演算部32a1~32anに入力する。
ステップS23~S26の処理は、第2の実施の形態の最適化装置20によるステップS13~16の処理とほぼ同じである。ただ、ステップS23の処理では、演算部32a1~32anのそれぞれは、互いに異なるアニーリング条件を用いたシミュレーテッド・アニーリングを行うことで、イジングモデルの基底状態の探索を行う。
最低値がm2回分の間に変化する場合(ステップS26:NO)、管理部31は、初期動作条件または全体動作条件に含まれるアニーリング条件を変更する(ステップS27)。そして、管理部31は、初期動作条件または全体動作条件を変更することで得られた動作条件(全体動作条件)を演算部32a1~32anに与えて、再びステップS23の探索を実行させる。
ステップS28の処理は、第2の実施の形態の最適化装置20によるステップS18の処理と同じである。
図7は、アニーリング条件の変更例を示す図である。
管理部31は、たとえば、複数種類のアニーリング条件のそれぞれについて、エネルギーを最小にする値(たとえば、初期温度や最終温度など)を順番に決定していく。管理部31は、前述のステップS22の処理において、たとえば、まず演算部32a1~32anに異なる初期温度を入力し、その他のアニーリング条件については同じ値を入力する。管理部31は、図7に示すように、最も高い初期温度Ts1を演算部32a1に入力し、その次に高い初期温度Ts2を演算部32a2に入力し、最も低い初期温度Tsnを演算部32anに入力する。演算部32a1~32anに入力される最終温度Teは同じである。
このようなアニーリング条件を用いた探索により、初期温度Ts2を用いた演算部32a2におけるエネルギーが、他の演算部におけるエネルギーの値よりも小さくなったとする。この場合、ステップS27の処理では、管理部31は、初期温度Ts2を全ての演算部32a1~32anに与え、演算部32a1~32anに異なる最終温度を与えるように、動作条件を変更する。
管理部31は、図7に示すように、たとえば、最も高い最終温度Te1を演算部32a1に入力し、その次に高い最終温度Te2を演算部32a2に入力し、最も低い最終温度Tenを演算部32anに入力する。そして、同様に管理部31は、最もエネルギーが小さくなる最終温度を決定し、その後は決定した最終温度を用いて演算部32a1~32anに探索を行わせる。
管理部31は、他のアニーリング条件についても同様に決定していき、たとえば、最後のアニーリング条件において異なる値を割り当てた演算部32a1~32anのうち、エネルギーが最低となる演算部の状態(各ニューロンの値)を解として出力する。
上記のような最適化装置30においても、管理部31が演算部32a1~32anのそれぞれによる探索結果に基づいて動作条件を変更するため、第2の実施の形態の最適化装置20と同様の効果が得られる。
なお、管理部31は、様々な動作条件による探索を、複数の演算部に並列に実行させて、動作条件を変更することなく、エネルギーが最小になる演算部の状態(各ニューロンの値)を解として出力してもよい。その場合、動作条件の変更が不要であるため、計算時間を短縮できるが、解の精度を上げるために、多数の動作条件による探索を、多数の演算部に並列に実行させることになり、演算部の数が多くなる。上記のように、管理部31が、探索結果に基づいて動作条件を変更することで、一度に適用する動作条件を減らせるため、演算部の数の増加を抑制(ハードウェア量を小さく)できる。また、最適化装置30は、複数の演算部32a1~32anを用いるため、動作条件の変更回数を抑えることができ、計算時間の増加を抑制できる。
また、管理部31は、1つの演算部に探索を行わせ、その探索結果に基づいて動作条件を変更してもよい。その場合、動作条件の変更にかかる時間は増えるものの、演算部の数を減らせることができ、ハードウェア量を小さくできる。
(第4の実施の形態)
図8は、第4の実施の形態の最適化装置の一例を示す図である。図8において、図3に示した第2の実施の形態の最適化装置20と同じ要素については同一符号が付されている。
第4の実施の形態の最適化装置40は、管理部41の一部の機能を、演算部42aが搭載される演算装置42に実装している。図8の例では、管理部41は、第1管理部41a、第2管理部41bを有し、第2管理部41bが、演算装置42に実装されている。
第1管理部41aは、問題のイジングモデルへの変換や、演算部42aによる探索で得られた解を出力する。
第2管理部41bは、演算部42aへの初期動作条件の入力、及び探索結果に応じた動作条件の変更(初期動作条件から全体動作条件への変更など)を行う。つまり、第2管理部41bは、第2の実施の形態の最適化装置20の交換制御部22b、または、第3の実施の形態の最適化装置30のアニーリング条件設定部31aと同様の、動作条件設定(または変更)機能を有する。
演算装置42がFPGAである場合、たとえば、記憶部24から、FPGAの回路構成データとともに、初期動作条件や全体動作条件が、FPGAに供給され、第2管理部41bや演算部42aの機能を実現するための回路が構築される。演算装置42を実現する装置がASICである場合、ROMやプルアップ/プルダウンなどを用いて固定論理を実現し、初期動作条件や全体動作条件を予め設定できる。
演算部42aは、第2の実施の形態の最適化装置20の演算部23、または、第3の実施の形態の最適化装置30の演算部32と同様の機能を有する。
上記のような最適化装置40においても、第2及び第3の実施の形態の最適化装置20,30と同様の効果が得られるとともに、演算装置42内のハードウェアにより動作条件を変更することが可能になるため、変更にかかる時間を短縮でき計算時間を短縮できる。
なお、演算装置42に余裕があれば、問題をイジングモデルに変換する機能などについても演算装置42に実装させてもよい。
ところで、上記各実施の形態において操作部11,21には、問題の代りに、その問題を変換したイジングモデルがユーザによって入力されてもよい。その場合、管理部12,22,31,41は問題のイジングモデルへの変換を行わなくてもよい。ただ、管理部12,22,31,41が問題のイジングモデルへの変換を行うことで、ユーザは問題を入力するだけでよいので利便性が高くなる。
また、上記の各実施の形態における操作部11,21、管理部12,22,31、第1管理部41aの機能は、制御プログラムによって動作するコンピュータによって実現できる。以下、コンピュータのハードウェア例を示す。
(コンピュータのハードウェア例)
図9は、コンピュータのハードウェア例を示す図である。
コンピュータ50は、CPU51、RAM52、HDD53、画像信号処理部54、入力信号処理部55、媒体リーダ56及び通信インタフェース57を有する。上記ユニットは、バスに接続されている。
CPU51は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU51は、HDD53に記憶されたプログラム(たとえば、前述の制御プログラム)やデータの少なくとも一部をRAM52にロードし、プログラムを実行する。なお、CPU51は複数のプロセッサコアを備えてもよく、コンピュータ50は複数のプロセッサを備えてもよく、前述の処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。
RAM52は、CPU51が実行するプログラムやCPU51が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、コンピュータ50は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD53は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、前述の管理部12,22,31、第1管理部41aなどの動作をコンピュータ50に実行させる制御プログラムが含まれる。なお、コンピュータ50は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部54は、CPU51からの命令にしたがって、コンピュータ50に接続されたディスプレイ54aに画像(たとえば、最適化問題の計算結果を表す画像)を出力する。ディスプレイ54aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
入力信号処理部55はコンピュータ50に接続された入力デバイス55aから入力信号を取得し、CPU51に出力する。入力信号処理部55は、前述の操作部11,21の機能を実現する。入力デバイス55aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、コンピュータ50に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ56は、記録媒体56aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体56aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ56は、たとえば、記録媒体56aから読み取ったプログラムやデータを、RAM52やHDD53などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、CPU51によって実行される。なお、記録媒体56aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体56aやHDD53を、コンピュータ読み取り可能な記録媒体ということがある。
通信インタフェース57は、ネットワーク57aに接続され、ネットワーク57aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース57は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
なお、前述のように、上記の管理部12,22,31、第1管理部41aなどの処理内容は、コンピュータ50にプログラムを実行させることで実現できる。
プログラムは、コンピュータ読み取り可能な記録媒体(たとえば、記録媒体56a)に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD-R(Recordable)/RW(Rewritable)、DVDおよびDVD-R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体(たとえば、HDD53)にプログラムをコピーして実行してもよい。
以上、実施の形態に基づき、本発明の最適化装置、最適化装置の制御方法及び最適化装置の制御プログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 最適化装置
11 操作部
12 管理部
13 演算部
14 記憶部

Claims (6)

  1. 問題が入力される操作部と、
    イジングモデルの基底状態を探索する演算部と、
    前記操作部から入力された前記問題を前記イジングモデルに変換し、変換した前記イジングモデルと初期動作条件とを前記演算部に入力し、前記初期動作条件を用いて前記演算部に前記基底状態を探索させた結果に基づいて、前記初期動作条件を変更した全体動作条件を用いて前記基底状態を前記演算部に探索させる、管理部と、
    を有する最適化装置。
  2. 前記演算部は、複数の第1の演算部を有し、
    前記管理部は、前記複数の第1の演算部のそれぞれに、互いに異なる前記初期動作条件を入力し、前記複数の第1の演算部のそれぞれにおいて前記基底状態を探索させた結果に基づいた交換確率にしたがって、前記複数の第1の演算部のうち、第2の演算部と第3の演算部に入力する前記初期動作条件を交換する、
    請求項1に記載の最適化装置。
  3. 前記演算部は、複数の第1の演算部を有し、
    前記管理部は、前記複数の第1の演算部のそれぞれに、互いに異なる前記初期動作条件を入力し、前記複数の第1の演算部のそれぞれにおいて前記基底状態を探索させた結果に基づいて、前記複数の第1の演算部のそれぞれに、前記初期動作条件を変更した、互いに異なる前記全体動作条件を入力する、
    請求項1に記載の最適化装置。
  4. 前記管理部は、前記問題を前記イジングモデルに変換する第1の管理部と、前記演算部が搭載された演算装置に実装され、前記初期動作条件を前記全体動作条件に変更する第2の管理部とを有する、
    請求項1乃至3の何れか一項に記載の最適化装置。
  5. 問題が入力される操作部と、イジングモデルの基底状態を探索する演算部と、前記演算部を管理する管理部とを有する最適化装置の制御方法において、
    前記管理部が、
    前記操作部から入力された前記問題を前記イジングモデルに変換し、
    変換した前記イジングモデルと初期動作条件とを前記演算部に入力し、
    前記初期動作条件を用いて前記演算部に前記基底状態を探索させた結果に基づいて、前記初期動作条件を変更した全体動作条件を用いて前記基底状態を前記演算部に探索させる、
    最適化装置の制御方法。
  6. 問題が入力される操作部と、イジングモデルの基底状態を探索する演算部と、前記演算部を管理する管理部とを有する最適化装置の制御プログラムにおいて、
    前記管理部に、
    前記操作部から入力された前記問題を前記イジングモデルに変換し、
    変換した前記イジングモデルと初期動作条件とを前記演算部に入力し、
    前記初期動作条件を用いて前記演算部に前記基底状態を探索させた結果に基づいて、前記初期動作条件を変更した全体動作条件を用いて前記基底状態を前記演算部に探索させる、
    最適化装置の制御プログラム。
JP2018049467A 2018-03-16 2018-03-16 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム Active JP7007585B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018049467A JP7007585B2 (ja) 2018-03-16 2018-03-16 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
US16/284,101 US11599073B2 (en) 2018-03-16 2019-02-25 Optimization apparatus and control method for optimization apparatus using ising models

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018049467A JP7007585B2 (ja) 2018-03-16 2018-03-16 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム

Publications (2)

Publication Number Publication Date
JP2019160169A JP2019160169A (ja) 2019-09-19
JP7007585B2 true JP7007585B2 (ja) 2022-01-24

Family

ID=67905541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018049467A Active JP7007585B2 (ja) 2018-03-16 2018-03-16 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム

Country Status (2)

Country Link
US (1) US11599073B2 (ja)
JP (1) JP7007585B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7248907B2 (ja) 2019-08-14 2023-03-30 富士通株式会社 最適化装置および最適化装置の制御方法
JP7339539B2 (ja) * 2020-01-15 2023-09-06 富士通株式会社 最適化装置、最適化装置の温度設定方法及び最適化装置の温度設定プログラム
JP7417074B2 (ja) 2020-02-19 2024-01-18 富士通株式会社 最適化装置、最適化方法及び最適化装置の制御プログラム
JP7417078B2 (ja) 2020-02-27 2024-01-18 富士通株式会社 情報処理装置、情報処理方法およびプログラム
JP2021149808A (ja) * 2020-03-23 2021-09-27 富士通株式会社 Cpu状態表示方法及びcpu状態表示プログラム
JP2021182338A (ja) * 2020-05-20 2021-11-25 富士通株式会社 最適化装置、最適化プログラムおよび最適化方法
JP2021184148A (ja) 2020-05-21 2021-12-02 富士通株式会社 最適化装置、最適化方法、および最適化プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016103282A (ja) 2015-12-25 2016-06-02 株式会社日立製作所 情報処理システム及び管理装置
JP2018005541A (ja) 2016-07-01 2018-01-11 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030121028A1 (en) 2001-12-22 2003-06-26 Michael Coury Quantum computing integrated development environment
WO2014192153A1 (ja) * 2013-05-31 2014-12-04 株式会社日立製作所 半導体装置
CN107077642B (zh) * 2014-08-22 2021-04-06 D-波系统公司 可用于量子计算的用于求解问题的系统和方法
JP5865457B1 (ja) * 2014-08-29 2016-02-17 株式会社日立製作所 情報処理システム及び管理装置
JP6659957B2 (ja) 2016-06-06 2020-03-04 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016103282A (ja) 2015-12-25 2016-06-02 株式会社日立製作所 情報処理システム及び管理装置
JP2018005541A (ja) 2016-07-01 2018-01-11 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法

Also Published As

Publication number Publication date
JP2019160169A (ja) 2019-09-19
US11599073B2 (en) 2023-03-07
US20190286077A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
JP7007585B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7071638B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP2020046718A (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7093009B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7100254B2 (ja) 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム
JP7068575B2 (ja) 最適化システム、最適化装置及び最適化システムの制御方法
JP7053995B2 (ja) 最適化装置及び最適化装置の制御方法
JP7248907B2 (ja) 最適化装置および最適化装置の制御方法
US20210065087A1 (en) Information processing apparatus, combination optimization method, and computer-readable recording medium recording combination optimization program
JP7417074B2 (ja) 最適化装置、最適化方法及び最適化装置の制御プログラム
JP2020205049A (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP2021168096A (ja) サンプリング装置、サンプリング方法及びサンプリングプログラム
CA3188066A1 (en) Methods and systems for hyperparameter tuning and benchmarking
JP7219402B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7181454B2 (ja) 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム
JP6997404B2 (ja) 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム
JP2020187453A (ja) 最適化装置および最適化装置の制御方法
JP2020173579A (ja) 最適化システムおよび最適化システムの制御方法
JP2022094510A (ja) 最適化プログラム、最適化方法及び情報処理装置
JP2023061477A (ja) プログラム、データ処理方法及びデータ処理装置
JP2022072685A (ja) 評価関数生成プログラム、評価関数生成方法、最適化方法及び最適化装置
JP2021131723A (ja) 情報処理方法、情報処理装置及びプログラム
US20240111833A1 (en) Data processing apparatus and data processing method
US20220335487A1 (en) Non-transitory computer-readable recording medium, data processing method, and data processing apparatus
JP2022161128A (ja) プログラム、データ処理方法及びデータ処理装置

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20180329

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201210

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20201217

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20201217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211126

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: 20211207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211220

R150 Certificate of patent or registration of utility model

Ref document number: 7007585

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150