JP7319539B2 - 組合せ最適化装置、組合せ最適化方法および組合せ最適化プログラム - Google Patents

組合せ最適化装置、組合せ最適化方法および組合せ最適化プログラム Download PDF

Info

Publication number
JP7319539B2
JP7319539B2 JP2019153418A JP2019153418A JP7319539B2 JP 7319539 B2 JP7319539 B2 JP 7319539B2 JP 2019153418 A JP2019153418 A JP 2019153418A JP 2019153418 A JP2019153418 A JP 2019153418A JP 7319539 B2 JP7319539 B2 JP 7319539B2
Authority
JP
Japan
Prior art keywords
search
energy function
state
combinatorial optimization
energy
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
JP2019153418A
Other languages
English (en)
Other versions
JP2021033657A (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 JP2019153418A priority Critical patent/JP7319539B2/ja
Priority to EP20178190.3A priority patent/EP3786815A1/en
Priority to US16/897,333 priority patent/US20210065087A1/en
Priority to CN202010580033.3A priority patent/CN112434398A/zh
Publication of JP2021033657A publication Critical patent/JP2021033657A/ja
Application granted granted Critical
Publication of JP7319539B2 publication Critical patent/JP7319539B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06315Needs-based resource requirements planning or analysis
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • 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
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/06Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
    • 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/044Recurrent networks, e.g. Hopfield networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • Mathematical Physics (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Operations Research (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Game Theory and Decision Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Algebra (AREA)
  • Educational Administration (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は組合せ最適化装置、組合せ最適化方法および組合せ最適化プログラムに関する。
組合せ最適化問題は、現在の社会における様々な分野に存在する。例えば、製造・流通、マーケティングなどの分野では、コストを最小化する要素の組合せが探索される。しかし、組合せ最適化問題は、上記要素に対応する変数の数が増えるにつれて指数関数的に計算時間が増加するため、ノイマン型コンピュータでは解くことが困難な問題として知られている。
このようなノイマン型コンピュータが不得意とする多変数の組合せ最適化問題を解く手法として、計算対象の組合せ最適化問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する手法がある。
組合せ最適化問題は、制約条件を含むことがある。例えば、組合せ最適化問題を、最適条件を表すコスト項、および、制約条件を表す制約項の和で定義されるエネルギー関数で表し、シミュレーテッド・アニーリング(疑似焼き鈍し法)などの確率的探索法を用いて解く方法が考えられている。
特開平5-120252号公報 特開2004-110831号公報
エネルギー関数が制約項を含む場合、制約違反はエネルギーが増加するように定式化されるため、エネルギー障壁により隣接状態への遷移が滞る。
1つの側面では、本発明は、エネルギー障壁により隣接状態への遷移が滞る状態を解消させる組合せ最適化装置、組合せ最適化方法および組合せ最適化プログラムを提供することを目的とする。
1つの態様では、組合せ最適化装置が提供される。組合せ最適化装置は、記憶部と処理部とを有する。記憶部は、複数の状態変数に対する制約条件を表す項が与えられた第1のエネルギー関数に含まれる複数の状態変数の値を記憶する。処理部は、第1のエネルギー関数の値を最小にする複数の状態変数の値の探索を行う。処理部による探索は、第1のエネルギー関数を用いて行われる第1探索と、第1探索の後、第1のエネルギー関数から制約条件を表す項を除去した第2のエネルギー関数を用いて行われる第2探索と、第2探索の後、第1のエネルギー関数を用いて行われる第3探索とを含む。処理部は、探索における状態遷移の試行で第2探索を実行するか否かを確率的に決定する。
また、1つの態様では、組合せ最適化方法が提供される。
また、1つの態様では、組合せ最適化プログラムが提供される。
1つの側面では、エネルギー障壁により隣接状態への遷移が滞る状態を解消させることができる。
第1の実施の形態の組合せ最適化装置の例を示す図である。 第2の実施の形態の組合せ最適化装置のハードウェア例を示す図である。 エネルギー関数の例を示す図である。 問題の定式化の例を示す図である。 問題の定式化の例(続き)を示す図である。 組合せ最適化装置の機能例を示す図である。 制約条件を表す項の消失例を示す図である。 探索の例を示すフローチャートである。 探索の例を示す図である。 解のエネルギーの例を示す図である。 第3の実施の形態の制約条件を表す項の消失例を示す図である。 探索の例を示す図である。 第4の実施の形態の探索の例を示すフローチャートである。 第5の実施の形態の組合せ最適化システムの例を示す図である。 組合せ最適化装置の回路構成例を示す図である。 探索回路の回路構成例を示す図である。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の組合せ最適化装置の例を示す図である。
組合せ最適化装置10は、計算対象の問題を変換したイジングモデルに含まれる複数のスピンに対応する複数の状態変数のそれぞれの値の組合せのうち、エネルギー関数が最小値となるときの各状態変数の値を探索する。エネルギー関数が最小値となるときの各状態変数の値は基底状態に相当する。状態変数は、「バイナリ変数」や「スピンビット」、あるいは、単に「ビット」と呼ばれてもよい。ある効果を最大化する状態を求めたい場合は、エネルギー関数の符号を変えればよい。
ここで、複数の状態変数により表される状態を添え字無しの「x」で表す。イジング型のエネルギー関数E(x)は、例えば以下の式(1)で定義される。
Figure 0007319539000001
式(1)で表される二次制約なし二値最適化は、QUBO(Quadratic Unconstraint Binary Optimization)と呼ばれることがある。また、この二次形式は、QUBO形式と呼ばれることがある。
式(1)の右辺第1項は、全状態変数から選択可能な2つの状態変数の全組合せについて、漏れと重複なく、2つの状態変数の値と結合係数との積を積算したものである。xは、i番目の状態変数である。xは、j番目の状態変数である。結合係数Wijは、i番目の状態変数とj番目の状態変数との間の結合の強さ(あるいは、重み)を示す。なお、行列W={Wij}について、Wij=Wji、Wii=0であることが多い。状態変数xなどの変数に付加される添え字iは、当該変数の識別情報であり、インデックスと呼ばれる。
式(1)の右辺第2項は、全状態変数のそれぞれのバイアス値と状態変数の値との積の総和である。bは、i番目の状態変数に対するバイアス値を示す。
例えば、イジングモデルにおけるスピンの「-1」は、状態変数の値「0」に対応する。イジングモデルにおけるスピンの「+1」は、状態変数の値「1」に対応する。
状態変数xの値が変化して1-xとなると、状態変数xの増加分は、δx=(1-x)-x=1-2xと表せる。したがって、エネルギー関数E(x)に対して、状態変数xのスピン反転に伴うエネルギー変化ΔEは、式(2)で表される。
Figure 0007319539000002
は局所場(ローカルフィールド)と呼ばれ、式(3)で表される。
Figure 0007319539000003
状態変数xが変化したときの局所場hの変化分δh (j)は、式(4)で表される。
Figure 0007319539000004
組合せ最適化装置10は、局所場hを保持し、状態変数xの値が変化したときに変化分δh (j)をhに加算することで、ビット反転後の状態に対応するhを得る。
組合せ最適化装置10では、基底状態の探索において、エネルギー変化がΔEとなる状態遷移(状態変数xの値の変化)を許容するか否かを決定するためにメトロポリス法やギブス法が用いられる。すなわち、組合せ最適化装置10は、ある状態から当該状態よりもエネルギーの低い他の状態への遷移を探索する近傍探索において、エネルギーが下がる状態だけでなく、エネルギーが上がる状態への遷移を確率的に許容する。例えば、エネルギー変化ΔEの状態変数の値の変化を受け入れる確率Aは、式(5)で表される。
Figure 0007319539000005
ここで、逆温度βは温度Tの逆数(β=1/T)である。min演算子は、引数のうちの最小値を取ることを示す。したがって、例えば、メトロポリス法を用いる場合、一様乱数u(0<u≦1)に対して、エネルギー変化ΔEが式(6)を満たす場合に、該当の状態変数の値の変化が許容される。
Figure 0007319539000006
組合せ最適化装置10は、変化が許容された何れかの状態変数の値を変化させる。組合せ最適化装置10は、シミュレーテッド・アニーリングなどの確率的探索法により、温度Tを初期温度から最低の温度まで下げながら、各温度において状態変数の値を変化させる試行を繰り返し実行することで、組合せ最適化問題に対する解を求める。ある1回の試行において、状態変数の値が変化されないこともある。
組合せ最適化問題は、エネルギー関数はコスト項および制約項の和で定式化されることがある。コスト項は最適化対象の条件を表す。制約項は制約条件を表す。制約項はペナルティ項と呼ばれることもある。一例として、巡回セールスマン問題におけるエネルギー関数E(x)=コスト項D(x)+制約項C(x)を考える。1人のセールスマンの移動距離を最小化する。コスト項D(x)はセールスマンの移動距離を表す。制約項C(x)は、1人のセールスマンが、1つの時点では1つの都市にしかいないといった制約や、ある都市は1度しか通らないといった制約を表す。コスト項D(x)および制約項C(x)は、それぞれ状態変数の二次式で定式化できる。エネルギー関数E(x)=D(x)+C(x)は、式(1)のQUBO形式で表される。
組合せ最適化装置10は、制約項Cを含むエネルギー関数Eを最小化する状態を探索する。組合せ最適化装置10は、記憶部11および処理部12を有する。
記憶部11は、例えば、レジスタやRAM(Random Access Memory)などの揮発性記憶装置である。処理部12は、例えば、プログラムを実行するCPU(Central Processing Unit)などのプロセッサである。プロセッサには、複数のプロセッサの集合(マルチプロセッサ)が含まれ得る。処理部12は、ワイヤードロジックにより演算を行うASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの専用の電子回路でもよい。
記憶部11は、複数の状態変数に対する制約条件を表す項が与えられた第1のエネルギー関数に含まれる複数の状態変数の値を記憶する。制約条件を表す項は、制約項C(x)自体であると考えてもよい。あるいは、制約項C(x)は状態変数の間の制約を示す複数の項を含み得る。このため、制約条件を表す項は、例えば制約項C(x)に含まれる、ある状態変数の他の状態変数に対する制約を表す項であると考えてもよい。
処理部12は、第1のエネルギー関数の値を最小にする複数の状態変数の値の探索を行う。処理部12は、探索の過程で、探索に用いるエネルギー関数を、第1のエネルギー関数から制約条件を表す項を除去した第2のエネルギー関数に、一時的に変更する。すなわち、処理部12による探索は、第1のエネルギー関数を用いて行われる第1探索と、第1探索の後、第1のエネルギー関数から制約条件を表す項を除去した第2のエネルギー関数を用いて行われる第2探索と、第2探索の後、第1のエネルギー関数を用いて行われる第3探索とを含む。このように、処理部12は、探索に用いるエネルギー関数を、第1のエネルギー関数から第2のエネルギー関数に一旦変更して探索を継続し、その後、第2のエネルギー関数から第1のエネルギー関数に戻して、探索を継続する。
エネルギー関数の変更の前後において、複数の状態変数の値は、記憶部11に保持される。例えば、処理部12は、第1のエネルギー関数を用いた探索により、複数の状態変数の値を更新していく。処理部12は、エネルギー関数の変更直前の複数の状態変数の値を記憶部11に格納して保持し、変更直後には保持された複数の状態変数の値から、変更後のエネルギー関数で探索を継続する。処理部12は、複数の状態変数の値に対応するエネルギー値が収束すると、当該複数の状態変数の値を解として出力する。
例えば、第1のエネルギー関数E1(x)はE1(x)=D(x)+C(x)である。
第1の例として、除去対象の制約条件を表す項は、制約項C(x)自体(すなわち、制約条件を表す項の全体)でもよい。その場合、第2のエネルギー関数E2(x)は、E2(x)=D(x)である。制約項C(x)が除去されることで、探索の一時期において、複数の状態変数に対する制約項C(x)の充足が不問になる。言い換えれば、探索の一時期において、制約項C(x)で示される制約条件全体の充足が不問になる。
第2の例として、除去対象の制約条件を表す項は、制約項C(x)に含まれる、制約条件を表す複数の項のうちの一部の項でもよい。例えば、除去対象の制約条件を表す項は、ある状態変数の他の状態変数に対する制約を表す項でもよい。その場合、上記の第1のエネルギー関数E1(x)=D(x)+C(x)に対して、第2のエネルギー関数E2(x)は、E2(x)=D(x)+C(x)である。制約項C(x)は、制約項C(x)から、一部の変数に関する制約を表す項を除去した制約項である。ある変数に関する制約を表す項が除去されることで、探索の一時期において、当該変数に対する当該制約の充足が不問になる。言い換えれば、探索の一時期において、制約条件の一部分の充足が不問になる。
例えば、制約項C(x)において、除去候補の項の単位で、該当の項の重みを示すパラメータ(制約項パラメータと称する)を予め付与しておくことが考えられる。処理部12は、通常は除去候補の項に対する制約項パラメータを非ゼロに設定する。処理部12は、所定のタイミングで、除去候補の項の制約項パラメータをゼロに設定することで、第1のエネルギー関数E1(x)から該当の項を除去する。当該所定のタイミングは、例えば、確率的に発生するタイミングでもよいし、周期的に発生するタイミングでもよい。
組合せ最適化装置10によれば、第1のエネルギー関数の値を最小にする複数の状態変数の値の探索が行われ、探索の過程で、探索に用いるエネルギー関数が、第1のエネルギー関数から制約条件を表す項を除去した第2のエネルギー関数に、一時的に変更される。
これにより、エネルギー障壁により隣接状態への遷移が滞る状態を解消させることができる。具体的には次の通りである。
エネルギー関数が制約項を含む場合、制約違反はエネルギーが増加するように定式化されるため、エネルギー障壁により隣接状態への遷移が滞る。
そこで、組合せ最適化装置10は、エネルギー関数における制約条件を表す項を一時的に消失させることで、該当の項の制約に対応するエネルギー障壁を消失させて、状態遷移を促すことができる。
図1では、一例として、第1のエネルギー関数E1(x)=D(x)+C(x)に対し、上記の第1の例のように第2のエネルギー関数E2をE2=D(x)とする場合の探索例が示されている。図1の左側から右側へ向かう方向が時間の正方向を示す。例えば、処理部12は、第1のエネルギー関数E1(x)で探索を行い、ある時点で、探索に用いるエネルギー関数を第2のエネルギー関数E2(x)に変更する。すると、制約項C(x)に対応するエネルギー障壁が消失するため、第1のエネルギー関数E1(x)のままでは滞っていた状態遷移が進む。その後、処理部12は、探索に用いるエネルギー関数を、第1のエネルギー関数E1(x)に戻して、探索を継続する。こうして、状態遷移を促すことで、より低いエネルギー状態に到達する可能性を高められる。
上記の第2の例の場合も、探索に用いるエネルギー関数を第2のエネルギー関数E2(x)=D(x)+C(x)に変更することで、第1のエネルギー関数E1(x)におけるエネルギー障壁を部分的に消失させることができる。その結果、状態遷移が促され、より低いエネルギー状態に到達する可能性を高められる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の組合せ最適化装置のハードウェア例を示す図である。
組合せ最適化装置100は、CPU101、RAM102、HDD(Hard Disk Drive)103、画像信号処理部104、入力信号処理部105、媒体リーダ106およびNIC(Network Interface Card)107を有する。これらのハードウェアは、組合せ最適化装置100のバスに接続される。なお、CPU101は、第1の実施の形態の処理部12の一例である。RAM102またはHDD103は、第1の実施の形態の記憶部11の一例である。組合せ最適化装置100は、コンピュータと呼ばれてもよい。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、組合せ最適化装置100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、組合せ最適化装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、組合せ最適化装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、組合せ最適化装置100に接続されたディスプレイ31に画像を出力する。ディスプレイ31としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
入力信号処理部105は、組合せ最適化装置100に接続された入力デバイス32から入力信号を取得し、CPU101に出力する。入力デバイス32としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、組合せ最適化装置100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ106は、記録媒体33に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体33として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ106は、例えば、記録媒体33から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体33は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体33やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
NIC107は、ネットワーク34に接続され、ネットワーク34を介して他のコンピュータと通信を行うインタフェースである。NIC107は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。NIC107は、無線通信を行う通信装置と無線リンクで接続されてもよい。
図3は、エネルギー関数の例を示す図である。
組合せ最適化装置100は、計算対象の最適化問題を変換したイジングモデルに含まれる複数のスピンに対応する複数のビットのそれぞれの値の組合せのうち、エネルギー関数が最小値となるときの各ビットの値を探索する。イジング型のエネルギー関数E(x)は、前述の式(1)で表される。図3では、グラフ40が示されている。グラフ40は、エネルギー関数E(x)の例を示す。
グラフ40の横軸は、状態xを示す。ただし、図3では、取り得る状態xを便宜的に一次元で表している。グラフ40の縦軸は、エネルギー関数E(x)の値を示す。
図4は、問題の定式化の例を示す図である。
ここでは、組合せ最適化問題の一例として、巡回セールスマン問題を挙げる。ただし、組合せ最適化装置100の機能は、配車ルート問題(VRP:Vehicle Rooting Problem)、分子類似性問題および最大カット問題などの他の組合せ最適化問題にも適用可能である。
巡回セールスマン問題において1人のセールスマンが複数の都市を訪問するために要する移動距離を最小化することを考える。当該問題は、次のように、QUBO形式で定式化される。
ここで、都市の数を4とする。都市の識別番号をi(iは0≦i≦3の整数)とする。セールスマンは、各都市を1回ずつ順番に訪問する。都市を訪問する順番をt(tは0≦t≦3の整数)とする。この場合、状態ベクトルは、4×4=16ビットで表される。
t番目に都市iにいない場合、ビットxti=0である。
t番目に都市iにいる場合、ビットxti=1である。
ここで、図4の表50では、都市の識別番号iと順番tの16通りの組み合わせに対して、各ビットを次のように表している。すなわち、x00=x,x10=x,…,x01=x,…,x11=x,…である。これらの等式の右辺の添え字は、式(1)の状態変数xの添え字i,jに相当する。
都市iと都市jとの距離をdijとする。例えば、d01=d10=W05=W16=W27=…である。当該等式におけるWの添え字は、式(1)の結合係数Wの添え字i,jに相当する。
総距離Dは、式(7)で表される。
Figure 0007319539000007
総距離Dは、最小化対象の量を表す関数であり、コスト項の一例である。
図5は、問題の定式化の例(続き)を示す図である。
表51は、図4の表50の各xに、具体的な値を代入した例である。具体的には、x=x=x=x15=1であり、それ以外のビットは0である。これは、マップ52に示されるように、都市0、都市2、都市1、都市3と順番に訪問し、都市0に戻ることを示す。
ここで、次のような制約条件がある。すなわち、ある時刻において、セールスマンは1都市にしかいない。また、ある都市は1度しか通らない。これらの制約条件は、ワンホット(One-hot)制約と呼ばれることがある。
ある時刻において、セールスマンは1都市にしかいないという制約は、式(8)で表される。
Figure 0007319539000008
制約に違反した場合に値が増大し、かつ、負数となることを避けるため、式(8)を式(9)のように変形する。
Figure 0007319539000009
ある時刻において、セールスマンは1都市にしかいないという制約が全ての時刻で成立することを考慮して、式(10)を得る。
Figure 0007319539000010
ある都市は1度しか通らないという制約は、式(11)で表される。
Figure 0007319539000011
制約に違反した場合に値が増大し、かつ、負数となることを避けるため、式(11)を式(12)のように変形する。
Figure 0007319539000012
ある都市は1度しか通らないという制約が全ての都市で成立することを考慮して、式(13)を得る。
Figure 0007319539000013
この場合、制約条件を表す制約項(ペナルティ項)Cは、式(10)の左辺、および、式(13)の左辺の重み付き和で表される。
したがって、上記の巡回セールスマン問題は、下記のエネルギー関数Eを最小化する状態ベクトルを求める問題として定式化される。
Figure 0007319539000014
ここで、コスト項Dは、式(7)で表される。制約項Cは、式(15)で表される。
Figure 0007319539000015
ここで、係数α,βは、制約項Cにおける各項の重みを示す正のパラメータである。
組合せ最適化装置100は、このように制約条件を表す項(例えば、制約項C)が与えられたエネルギー関数Eを最小化する解の探索を効率的に実行する機能を提供する。
図6は、組合せ最適化装置の機能例を示す図である。
組合せ最適化装置100は、探索部110を有する。例えば、CPU101は、RAM102に記憶された組合せ最適化プログラム120を実行することで、探索部110の機能を発揮する。
探索部110は、シミュレーテッド・アニーリングなどの確率的探索法を用いて、組合せ最適化問題に対応するエネルギー関数を最小にする状態(最適解)を探索する。例えば、探索部110は、最適解の探索に、レプリカ交換法や交換モンテカルロ法などの拡張アンサンブル法を用いてもよい。
イジングモデルの状態は、RAM102に記憶された状態ベクトル121で表される。状態ベクトル121のうちの1ビットを変化させることを、1回の状態遷移とする。また、状態ベクトル121のうちの1ビットを変化させるための試行は、基底状態探索の1回の試行に相当し、1イタレーションと呼ばれることがある。なお、1回の試行に対してビット遷移が起こらないこともある。
探索部110は、最適解の探索の過程で、HDD103に記憶された確率DB130に基づいて、エネルギー関数に含まれる、制約条件を表す項を除去する。制約条件を表す項を除去することは、制約条件を表す項を消失させることとも言える。第2の実施の形態の例では、制約条件を表す項は、制約項全体である。すなわち、探索部110は、制約項全体を除去対象とする。
ここで、式(15)は、式(16)のように表せる。
Figure 0007319539000016
制約項パラメータPは、制約項Cにおける各項全体の重みを表す。制約項パラメータPは、非ゼロ(P≠0)の値、または、ゼロ(P=0)をとる。制約項パラメータPの非ゼロの値は、問題に応じて定められる。最小エネルギーの状態を探索する場合、非ゼロのPは、P>>0(比較的大きな正の値)である。探索部110は、エネルギー関数Eを示す式(14)に対して、制約項Cを除去しない場合にはP≠0とし、制約項Cを除去する場合にはP=0とする。
確率DB130は、探索部110により制約条件を表す項を消失させるタイミングを決定するための確率を示す情報である。確率DB130の少なくとも一部のデータは、RAM102に格納されてもよい。確率DB130は、ユーザにより組合せ最適化装置100に入力され、HDD103に予め格納される。
例えば、探索部110は、確率DB130に基づいて、n回目の試行でP=0とし、それ以外の試行ではP>>0とする。探索部110は、n=n,n,n,…を、確率DB130で示される確率に基づいて、確率的にランダムに求める。例えば、確率DB130が確率1/100を示す場合、探索部110は、100回の試行のうちの1回程度の頻度でP=0とし、それ以外の試行でP≠0とする。
なお、ある回数のうちの所定割合の回数だけ真とし、それ以外の回数では偽とする演算は、例えば、疑似乱数を用いて実行される。一例として、確率1/100で真と判定する場合を考える。ここでいう「真」は、制約条件を表す項を消失させることを意味する。この場合、探索部110は、各試行の直前において、例えば0.01~1の範囲で、0.01刻みで疑似乱数を発生させ、発生した疑似乱数が1の場合に真、0.01~0.99の場合に偽とすることが考えられる。
図7は、制約条件を表す項の消失例を示す図である。
図7(A)は、制約条件を表す項を消失させない場合を例示する。
系列41は、組合せ最適化問題に対応する制約項を含む第1のエネルギー関数を示す。系列42は、当該エネルギー関数から制約項を除去した第2のエネルギー関数を示す。あるタイミングで利用されているエネルギー関数を実線で、利用されていないエネルギー関数を点線で示す(以降の図でも同様に示すことがある)。何れのエネルギー関数に対しても、横軸が状態を示し、縦軸(ただし、図示を省略している)がエネルギー関数の値を示す。なお、横軸では、説明を簡略化するために、2ビットで表される状態を示している。
第1のエネルギー関数では、One-hot制約によって、系列41で示されるように状態(1,1)や(0,0)に高いエネルギー障壁が存在する。
図7(A)において、n-1回目の試行後には、状態(0,1)に相当する局所解に陥っている。その後、n回目、n+1回目と状態遷移を試みても、第1のエネルギー関数におけるエネルギー障壁に阻まれて、2ビット先の状態(例えば、より低エネルギーの状態(1,0))に遷移することができず、同じ状態(0,1)に滞留している。このように、制約項を含む第1のエネルギー関数では、局所解から脱出する可能性が低くなることがある。
図7(B)は、探索部110により、制約条件を表す項を消失させる場合を例示する。探索部110は、確率DB130に基づくn回目のタイミングで、第1のエネルギー関数における制約項を除去する。
図7(B)において、n-1回目の試行後には、状態(0,1)に相当する局所解に陥っている。探索部110は、n回目の試行では、第1のエネルギー関数における制約項を除去した第2のエネルギー関数を用いる。第2のエネルギー関数では、One-hot制約がなくなり、系列42で示されるように、系列41で存在していた状態(1,1)や(0,0)における高いエネルギー障壁が消失している。このため、n回目の試行では状態遷移が促され、例えば、状態が、第2のエネルギー関数において、状態(0,1)よりも低エネルギーの状態(0,0)に遷移する。
探索部110は、n+1回目の試行では、探索に利用するエネルギー関数を第1のエネルギー関数に戻す。例えば、n+1回目の試行後には、状態(0,0)から、第1のエネルギー関数において、状態(0,0)よりも低エネルギーの状態(1,0)に遷移する。このように、探索部110は、第1のエネルギー関数から制約項を一時的に除去することで、制約項に応じたエネルギー障壁の先に存在する状態への遷移を促すことができる。
なお、上記の例では、探索部110は、1回分の試行において第2のエネルギー関数を用いるものとしたが、連続した複数回の試行において、一時的に第2のエネルギー関数を用いてもよい。
次に、組合せ最適化装置100の処理手順を説明する。
図8は、探索の例を示すフローチャートである。
(S10)探索部110は、エネルギー関数Eに対する初期値を設定する。例えば、前述の巡回セールスマン問題に対して、都市間の距離dの値、制約項パラメータPの非ゼロの値、状態ベクトルの初期値、温度の初期値を設定する。なお、式(14)のエネルギー関数は、式(1)の形式とすることが可能である。その場合、都市間の距離dや制約項パラメータPの値は、結合係数Wやバイアスbに反映される。このため、エネルギー関数として式(1)の形式が用いられる場合、探索部110は、結合係数Wやバイアスbの値を設定してもよい。各パラメータの値の情報は、ユーザにより、組合せ最適化装置100に予め入力される。
(S11)探索部110は、制約条件を表す項を消失させるか否かを判定する。制約条件を表す項を消失させる場合、ステップS12に処理が進む。制約条件を表す項を消失させない場合、ステップS13に処理が進む。前述のように、探索部110は、確率DB130に基づいて、今回の試行で制約条件を表す項を消失させるか否かを確率的に決定する。例えば、確率DB130が確率1/100を示す場合、探索部110は、100回の試行のうち1回程度の頻度で、制約条件を表す項を消失させると判定する。なお、第1のエネルギー関数から制約条件を表す項を消失させることは、探索に用いるエネルギー関数を、第1のエネルギー関数から第2のエネルギー関数に変更することに相当する。したがって、ステップS11の判定は、基底状態の探索における状態遷移の今回の試行で第2のエネルギー関数を用いるか否かを確率的に決定する処理であると言える。
(S12)探索部110は、制約項パラメータを消失させる。すなわち、探索部110は、制約項パラメータPをP=0に設定することで、式(14)のエネルギー関数Eに含まれる制約項Cを消失させる。あるいは、エネルギー関数Eが式(1)の形式で表される場合、探索部110は、制約項パラメータPをP=0に設定した場合の結合係数WおよびバイアスbをRAM102に予め格納しておいてもよい。その場合、探索部110は、探索に用いる結合係数Wおよびバイアスbを、P≠0の場合の結合係数Wおよびバイアスbに代えて、P=0の場合の結合係数Wおよびバイアスbに変更してもよい。そして、ステップS14に処理が進む。
(S13)探索部110は、制約項パラメータを非ゼロの値に設定する。すなわち、探索部110は、制約項パラメータPをP≠0に設定することで、式(14)のエネルギー関数Eに含まれる制約項Cを維持する。あるいは、エネルギー関数Eが式(1)の形式で表される場合、探索部110は、探索に用いる結合係数Wおよびバイアスbを、当初の(P≠0の場合の)結合係数Wおよびバイアスbに設定してもよい。なお、ステップS13の直前においてP≠0の場合、探索部110は、ステップS13をスキップして、ステップS14に進んでもよい。ステップS13の直前においてP=0の場合、ステップS13を実行することで、探索に用いられるエネルギー関数が当初のエネルギー関数に戻されることになる。
(S14)探索部110は、状態ベクトル121に応じたエネルギー値を、式(14)または式(1)のエネルギー関数に基づいて計算する。ここで、ステップS14で使用されるエネルギー関数は、ステップS12(P=0に設定)またはステップS13(P≠0に設定)の何れを経由したかに応じて異なることになる。
(S15)探索部110は、エネルギー値が収束したか否かを判定する。エネルギー値が収束した場合、ステップS17に処理が進む。エネルギー値が収束していない場合、ステップS16に処理が進む。例えば、探索部110は、ステップS11~S16を所定回数だけ繰り返し実行してもステップS14で計算されるエネルギー値が変化しない場合に、エネルギー値が収束したと判定する。
(S16)探索部110は、式(5)または式(6)に基づいて、状態ベクトル121における任意の1ビットの遷移を試行する。そして、ステップS11に処理が進む。ステップS16で使用されるエネルギー関数は、直前のステップS14で用いられたエネルギー関数と同じものとなる。なお、探索部110は、状態遷移の判定に用いられる温度を、所定のイタレーション数毎に下げる。
(S17)探索部110は、状態ベクトル121が最適解に到達したと判断して、最終的に得られた状態ベクトル121を出力する。例えば、探索部110は、状態ベクトル121をディスプレイ31により表示させてもよいし、状態ベクトル121を、ネットワーク34を介して他のコンピュータに送信してもよい。また、探索部110は、最適解を示す状態ベクトル121を、組合せ最適化問題の解としてユーザに分かり易いデータに変換して、ディスプレイ31により表示させてもよいし、当該変換後のデータを、ネットワーク34を介して他のコンピュータに送信してもよい。
なお、ステップS15において、エネルギー値が収束したと判定されるタイミングで使用されているエネルギー関数は、P≠0のものでもよいし、P=0のものでもよい。エネルギー値が最適解において収束する場合には、P≠0およびP=0に拘わらず、収束すると考えられるためである。
図9は、探索の例を示す図である。
系列61は、横軸(時間)で表される時刻t10~t16の各時刻において探索に用いられるエネルギー関数を例示する。図9の縦軸(図示を省略している)は、エネルギー関数の値を示す。
例えば、時刻t10,t11,t12では、制約項を含む第1のエネルギー関数が用いられる。時刻t10,t11,t12の探索は、第1の実施の形態の第1探索に相当する。時刻t13では、制約項を除去した第2のエネルギー関数が用いられる。時刻t13の探索は、第1の実施の形態の第2探索に相当する。時刻t14,t15,t16では、再び、第1のエネルギー関数が用いられる。時刻t14,t15,t16の探索は、第1の実施の形態の第3探索に相当する。
時刻t13では、第1のエネルギー関数に含まれる制約項に対応するエネルギー障壁が一時的に消失する。このため、当該エネルギー障壁によって阻まれていた状態遷移が促進される。例えば、仮に、時刻t12において、第1のエネルギー関数における局所解に陥っていたとしても、時刻t14では、時刻t12の状態から、エネルギー障壁を疑似的にトンネリングして、2ハミング距離の先にある、別の状態に遷移する可能性を高められる。トンネリングは、エネルギー障壁のすり抜けを意味する。エネルギー障壁を消失させて、疑似的にトンネリングさせることを、図9では「制約トンネリング」と称している。
図10は、解のエネルギーの例を示す図である。
グラフ70は、あるナップザック問題における、計算回数と、到達した解のエネルギー値との関係の例を示す。計算回数はイタレーション数に相当する。グラフ70の横軸は、計算回数の常用対数値を示す。グラフ70の縦軸は、到達した解のエネルギー値を示す。
ナップザック問題とは、容量制限のあるナップザックに入れる品物の総価値を最大にする品物の組合せを求める問題である。本例におけるナップザック問題の条件は次の通りである。ナップザック数は1である。ナップザックへの投入候補の品物の数は、20個である。すなわち、ナップザックに入れる品物の組合せの数は220通りである。品物iの価値をvとする。v1~5=24である。v6~10=23である。v11~15=22である。v16~20=18である。品物iの重さをwとする。w1~5=15である。w6~10=14である。w11~15=13である。w16~20=12である。ナップザックの容量上限C=72である。
グラフ70には、系列71,72が示されている。
系列71は、比較例であり、制約条件を表す項の除去を行わずに、探索を行った結果を示す。
系列72は、探索部110により、制約条件を表す項を、一時的に除去する処理を加えて探索を行った結果を示す。本例では除去対象となる制約条件を表す項は制約項全体である。ここで、制約項パラメータP=0とする確率を、一例として、1/100としている。
系列71,72を比較すると、系列72では、系列71の場合よりも早く、状態のエネルギー値が低下している。また、系列72では、最終的に到達する解のエネルギー値が、系列72の場合よりも低くなっている。
系列71の例は、局所解からの遷移が行われず、局所解から脱出できない可能性が高まることを示す。
系列72の例は、前述の制約トンネリングによって、局所解から脱出できる可能性が高まり、エネルギー値が最小になる解に到達し易くなることを示す。
このように、組合せ最適化装置100によれば、エネルギー関数Eに含まれる制約項Cを一時的に消失させることで、滞っていたビット遷移を促して、最適解に到達させることが可能になる。
[第3の実施の形態]
次に、第3の実施の形態を説明する。前述の第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
第2の実施の形態では、除去対象となる制約条件を表す項の例として、制約項全体を示した。一方、除去対象となる制約条件を表す項は、制約項に含まれる一部の項でもよい。第3の実施の形態では、除去対象の制約条件を表す項を、制約項に含まれる一部の項とする例を説明する。
なお、第3の実施の形態の組合せ最適化装置100のハードウェア例および機能例は、図2,図6で示した例と同様であるため、説明を省略する。ただし、第3の実施の形態では、探索部110により次のようにして制約条件を表す項を消失させる点が、第2の実施の形態と異なる。
図11は、第3の実施の形態の制約条件を表す項の消失例を示す図である。
第3の実施の形態では、式(14)の制約項Cを、式(17)で表す。
Figure 0007319539000017
制約項パラメータPijは、変数xijに関する制約の重みを表す。ここで、図4,5で示した巡回セールスマン問題の例に対して、式(17)のiは図4の訪問順番tに相当し、式(17)のjは図4の都市の識別番号iに相当する(ただし、式(17)のi,jと、図4のt,jとの対応関係は逆でもよい)。探索部110は、nijk回目の試行で、Pij=0に設定し、それ以外の場合に、Pij=P>>0に設定する。Pは、P>>0の定数である。PijおよびPは、問題に応じて定められる。式(17)の…で示される項も、Pijおよびeを含み得る。
制約項パラメータeは、Pの項におけるPの有効・無効を制御する。探索部110は、n回目の試行で、e=0に設定し、それ以外の場合に、e=1に設定する。
探索部110は、nijk=n000,n001,…およびn=n,n,…を、確率的にランダムに決定する。例えば、探索部110は、Pijおよびeをゼロに設定する確率を同じにしてもよいし、異なる確率にしてもよい。当該確率は、頻度とも言える。探索部110は、Pijをゼロに設定する確率を、eをゼロに設定する確率よりも高くしてもよい。あるいは、探索部110は、eをゼロに設定する確率を、Pijをゼロに設定する確率よりも高くしてもよい。これらの確率は、確率DB130に予め保持される。
全てのi,jの組に対して、少なくとも1つのPijがPij≠0、かつ、e=0の場合、全ビット0の状態が式(17)の制約項を満たす唯一の状態となる。この場合、全ビット0の状態への遷移が促される。
また、全てのi,jの組に対して、Pij=0、かつ、e=0の場合、制約項を表す全ての項が消失するので、式(14)のエネルギー関数から式(17)の制約項は消失する。これは、制約項全体を除去することに相当する。すなわち、第2の実施の形態の例は、第3の実施の形態の例の特別な場合として表すことができる。
ただし、全ビット0の状態を経由する遷移および制約項全体の消失を期待しない場合、式(17)において、常にe=1としてもよい。
式(17)のΣ(Σijij-Pの項は、例えば、図4,図5で示した巡回セールスマン問題における、ある都市は1度しか通らないという制約条件に対応させることができる。また、式(17)のΣ(Σijij-Pの項は、例えば、図4,図5で示した巡回セールス問題における、ある時刻には1都市にしかいないという制約条件に対応させることができる。したがって、Σ(Σijij-Pの項およびΣ(Σijij-Pの項のうち、Pijijの項は、これらの制約条件を表す項の1つであると言える。また、Σ(Σijij-Pの項およびΣ(Σijij-Pの項のうち、Pの項も、これらの制約条件を表す項の1つであると言える。
図11(A)は、探索において制約項全体を一時的に消失させる例を示す。
系列43は、組合せ最適化問題に対応する制約項を含む第1のエネルギー関数を示す。図11の説明において第1のエネルギー関数をE1と表す。系列44は、第1のエネルギー関数E1から制約項全体を除去した第2のエネルギー関数を示す。図11の説明において第1のエネルギー関数E1から制約項全体を除去した第2のエネルギー関数をE2aと表す。何れのエネルギー関数に対しても、横軸が状態を示し、縦軸(ただし、図示を省略している)がエネルギー関数の値を示す。なお、横軸では、説明を簡略化するために、2ビットで表される状態を示している。
第1のエネルギー関数E1では、One-hot制約によって、系列43で示されるように状態(1,1)や(0,0)に高いエネルギー障壁が存在する。
図11(A)において、n-1回目の試行後には、状態(0,1)に相当する局所解に陥っている。n回目の試行において、第1のエネルギー関数E1から制約項全体を除去した第2のエネルギー関数E2aが用いられるとする。これにより、状態遷移が促される。ただし、系列44の例で示されるように、状態(0,0)の先に、第1のエネルギー関数E1における、より低いエネルギーの状態があるにも拘わらず、第2のエネルギー関数E2aにおいてエネルギーが低い方の状態(1,1)の側へ遷移することがある。この場合、例えば、第1のエネルギー関数E1を用いたn+1回目の試行では、状態(0,1)に再び戻ってしまうことがある。
図11(B)は、探索において制約項に含まれる一部の項を一時的に消失させる例を示す。図11(B)において、n-1回目の試行後には、状態(0,1)に相当する局所解に陥っている。n回目の試行において、探索部110は、第1のエネルギー関数E1から状態(0,0)に対応する制約のみを除去した第2のエネルギー関数を用いる。図11の説明において第1のエネルギー関数E1から一部の制約のみを除去した第2のエネルギー関数をE2bと表す。系列45は、第2のエネルギー関数E2bを示す。系列45では、系列43における状態(0,0)に対応するピーク43aのみが、系列43から除去されている。これにより、第1のエネルギー関数E1および第2のエネルギー関数E2aを用いた場合よりも、状態(0,0)へ遷移する可能性を高められる。例えば、n回目の試行により、状態(0,0)へ遷移する。
探索部110は、n+1回目の試行では、探索に利用するエネルギー関数を第1のエネルギー関数E1に戻す。例えば、n+1回目の試行後には、状態(0,0)から、第1のエネルギー関数E1において、状態(0,0)よりも低エネルギーの状態(1,0)に遷移する。このように、探索部110は、第1のエネルギー関数E1から制約項に含まれる一部の項を一時的に除去することで、当該一部の項に応じたエネルギー障壁の先に存在する状態への遷移を促すことができる。
なお、上記の例では、探索部110は、1回分の試行において第2のエネルギー関数E2bを用いるものとしたが、連続した複数回の試行において、第2のエネルギー関数E2bを用いてもよい。
ここで、探索部110は、図8と同様の手順によって、第1のエネルギー関数から制約項に含まれる一部の項を一時的に除去する。この場合、例えば、探索部110は、図8のステップS11,S12,S13の処理を、除去候補の項毎に行う。また、式(17)で示される制約項Cを含むエネルギー関数Eを、式(1)の形式で表すこともできる。その場合、制約項パラメータPij,eの値が式(1)の結合係数Wおよびバイアスbに反映される。そこで、探索部110は、式(17)における除去候補の項毎に、当該項を除去した場合の結合係数Wおよびバイアスbを予め求めてRAM102に格納しておいてもよい。その場合、ステップS12,S13において、探索部110は、使用する結合係数Wおよびバイアスbを、除去対象の項に対応するものに切り替えることで、探索に用いるエネルギー関数を変更してもよい。
探索部110は、探索に用いるエネルギー関数を一時的に変更する処理を、当該探索の過程で、複数回行い、ある回と他の回とで除去対象の制約条件を表す項を変更する。これにより、第1のエネルギー関数における複数のエネルギー障壁のそれぞれを、個別のタイミングで消失させることができる。
図12は、探索の例を示す図である。
系列62は、横軸(時間)で表される時刻t20~t26の各時刻において探索に用いられるエネルギー関数を例示する。図12の縦軸(図示を省略している)は、エネルギー関数の値を示す。
例えば、時刻t20,t22,t24,t25では、制約項を含む第1のエネルギー関数が用いられる。時刻t21,t23,t26では、制約項に含まれる一部の項を除去した複数種類の第2のエネルギー関数が用いられる。時刻t21,t23,t26の各回の状態遷移の試行において、除去対象の項は異なっている。
なお、時刻t20,t22,t25の探索は、第1の実施の形態の第1探索に相当する。時刻t21,t23,t26の探索は、第1の実施の形態の第2探索に相当する。時刻t22,t24の探索は、第1の実施の形態の第3探索に相当する。時刻t22の探索は、第1の実施の形態の第1探索および第3探索に相当している。
時刻t21,t23,t26では、第1のエネルギー関数に含まれる制約項の一部の項に対応する各エネルギー障壁が一時的に消失する。このため、当該エネルギー障壁によって阻まれていた状態遷移が促進される。例えば、仮に、時刻t22において、第1のエネルギー関数における局所解に陥っていたとしても、時刻t24では、時刻t22の状態から、制約トンネリングによって、2ハミング距離の先にある、別の状態に遷移する可能性を高められる。
このように、探索部110は、第1のエネルギー関数に含まれる制約項の一部の項を一時的に除去することで、滞っていたビット遷移を促して、最適解に到達させることが可能になる。
なお、探索部110は、問題に応じて、除去候補の項の単位を、制約項全体とするか、制約項に含まれる一部分の項とするかの選択入力を受け付け、当該選択入力に応じて、除去候補の項の単位を切り替えてもよい。これにより、ユーザは、問題に応じて、適切な探索方法を選択可能になる。
[第4の実施の形態]
次に、第4の実施の形態を説明する。前述の第2,第3の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
第4の実施の形態では、制約項を含む第1のエネルギー関数による探索で、局所解に陥った場合に、第2,第3の実施の形態で例示した制約条件を表す項を消失させる機能を提供する。
第4の実施の形態の組合せ最適化装置100のハードウェア例および機能例は、図2,図6で示した例と同様であるため、説明を省略する。第4の実施の形態では、探索部110により次の手順により制約条件を表す項を消失させる点が、第2,第3の実施の形態と異なる。
図13は、第4の実施の形態の探索の例を示すフローチャートである。
(S20)探索部110は、エネルギー関数Eに対する初期値を設定する。例えば、前述の巡回セールスマン問題に対して、都市間の距離dの値、制約項パラメータP(あるいはPijおよび定数P)の非ゼロの値、状態ベクトルの初期値、温度の初期値を設定する。なお、式(14)のエネルギー関数は、式(1)の形式とすることが可能である。その場合、都市間の距離dや制約項パラメータP(あるいは、PijおよびP)の値は、結合係数Wやバイアスbに反映される。このため、エネルギー関数として式(1)の形式が用いられる場合、探索部110は、結合係数Wやバイアスbの値を設定してもよい。各パラメータの値の情報は、ユーザにより、組合せ最適化装置100に予め入力される。
(S21)探索部110は、状態ベクトル121に応じたエネルギー値を、式(14)または式(1)のエネルギー関数に基づいて計算する。ステップS21で使用されるエネルギー関数は、制約項における何れの制約項パラメータも非ゼロの値である第1のエネルギー関数となる。
(S22)探索部110は、局所解に留まっているか否かを判定する。局所解に留まっている場合、ステップS24に処理が進む。局所解に留まっていない場合、ステップS23に処理が進む。例えば、探索部110は、ステップS21~S23を所定回数だけ繰り返し実行してもステップS21で計算されるエネルギー値が変化しない場合に、局所解に留まっていると判定する。
(S23)探索部110は、式(5)または式(6)に基づいて、状態ベクトル121における1ビットの遷移を試行する。そして、ステップS21に処理が進む。ステップS23で使用されるエネルギー関数は、第1のエネルギー関数となる。なお、探索部110は、状態遷移の判定に用いられる温度を、所定のイタレーション数毎に下げる。
(S24)探索部110は、局所解に対応する収束エネルギー値を変数E1に設定してRAM102上に保持する。
(S25)探索部110は、制約条件を表す項を消失させるか否かを判定する。制約条件を表す項を消失させる場合、ステップS26に処理が進む。制約条件を表す項を消失させない場合、ステップS27に処理が進む。前述のように、探索部110は、確率DB130に基づいて、今回の試行で制約条件を表す項を消失させるか否かを確率的に決定する。第3の実施の形態のように、制約項に含まれる項を部分的に除去する場合、探索部110は、ステップS24の判定を除去候補の項毎に実行する。
(S26)探索部110は、制約項パラメータを消失させる。すなわち、探索部110は、制約項パラメータP(あるいは、Pijまたはe)をP=0(Pij=0またはe=0)に設定することで、式(14)のエネルギー関数Eに含まれる制約条件を表す項の少なくとも一部を消失させる。あるいは、エネルギー関数Eが式(1)の形式で表される場合、探索部110は、該当の制約項パラメータ、または、該当の制約項パラメータの組をゼロに設定した場合の結合係数WおよびバイアスbをRAM102に予め格納しておいてもよい。その場合、探索部110は、探索に用いる結合係数Wおよびバイアスbを、該当の制約項パラメータ、または、該当の制約項パラメータの組がゼロの場合の結合係数Wおよびバイアスbに変更してもよい。そして、ステップS28に処理が進む。なお、ステップS25~S27は、除去候補の項毎に実行されるため、ステップS25において、一度のタイミングで複数の項が除去されることもある。
(S27)探索部110は、制約項パラメータを非ゼロの値に設定する。すなわち、探索部110は、制約項パラメータP(あるいは、Pijまたはe)を非ゼロに設定することで、式(14)のエネルギー関数Eに含まれる制約条件を表す項を維持する。あるいは、エネルギー関数Eが式(1)の形式で表される場合、探索部110は、探索に用いる結合係数Wおよびバイアスbを、制約項パラメータが何れも非ゼロの場合の結合係数Wおよびバイアスbに設定してもよい。なお、ステップS27の直前において全ての制約項パラメータが非ゼロの場合、探索部110は、ステップS27をスキップして、ステップS28に進んでもよい。ステップS27の直前において何れかの制約項パラメータがゼロの場合、ステップS27を実行することで、探索に用いられるエネルギー関数が当初のエネルギー関数に戻されることになる。ただし、ステップS25~S27は、除去候補の項毎に実行されるため、ゼロに設定されたある制約項パラメータを非ゼロに設定するタイミングで、別の制約項パラメータをゼロに設定することもある。
(S28)探索部110は、状態ベクトル121に応じたエネルギー値を、式(14)あるいは式(1)のエネルギー関数に基づいて計算する。ここで、ステップS28で使用されるエネルギー関数は、ステップS26またはステップS27の何れを経由したかに応じて異なることになる。
(S29)探索部110は、新たな局所解に到達したか否かを判定する。新たな局所解に到達した場合、ステップS31に処理が進む。新たな局所解に到達していない場合、ステップS30に処理が進む。例えば、探索部110は、ステップS25~S30を所定回数だけ繰り返し実行してもステップS28で計算されるエネルギー値が変化しない場合、新たな局所解に到達したと判定する。
(S30)探索部110は、式(5)または式(6)に基づいて、状態ベクトル121における1ビットの遷移を試行する。そして、ステップS25に処理が進む。ステップS30で使用されるエネルギー関数は、直前のステップS28で用いられたエネルギー関数と同じものとなる。なお、探索部110は、状態遷移の判定に用いられる温度を、所定のイタレーション数毎に下げる。
(S31)探索部110は、新たな局所解に対応する収束エネルギー値を変数E2に設定してRAM102上に保持する。
(S32)探索部110は、E1=E2であるか否かを判定する。E1=E2の場合、ステップS33に処理が進む。E1≠E2の場合、ステップS23に処理が進む。
(S33)探索部110は、状態ベクトル121が最適解に到達したと判断して、最終的に得られた状態ベクトル121を出力する。例えば、探索部110は、状態ベクトル121をディスプレイ31により表示させてもよいし、状態ベクトル121を、ネットワーク34を介して他のコンピュータに送信してもよい。また、探索部110は、最適解を示す状態ベクトル121を、組合せ最適化問題の解としてユーザに分かり易いデータに変換して、ディスプレイ31により表示させてもよいし、当該変換後のデータを、ネットワーク34を介して他のコンピュータに送信してもよい。
このように、探索部110は、局所解に陥っている可能性がない間は、通常の基底状態探索を行う。そして、探索部110は、局所解に陥っている可能性がある場合には、予め指定された制約条件を表す項の消失条件に基づいて、当該項の消失制御を適用する。消失制御には、第2の実施の形態の方法または第3の実施の形態の方法を用いることができる。探索部110は、消失制御の適用後にも得られるエネルギー値が同じである場合、最適解に収束したものと判断する。
第4の実施の形態で例示したように、第1のエネルギー関数において局所解に陥っていると判断された場合にのみ、第1のエネルギー関数に含まれる制約条件を表す項の除去を許容することで、局所解に陥っていないときの演算負荷を軽減することができる。
[第5の実施の形態]
次に、第5の実施の形態を説明する。前述の第2~第4の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
第2~第4の実施の形態では、組合せ最適化装置100におけるCPU101が組合せ最適化プログラム120を実行することで、探索部110の機能を発揮する例を示した。一方、探索部110の機能は、FPGAなどの半導体集積回路により実現されてもよい。
図14は、第5の実施の形態の組合せ最適化システムの例を示す図である。
組合せ最適化システム20は、組合せ最適化装置200および情報処理装置250を有する。
組合せ最適化装置200は、組合せ最適化問題に対する解の探索をハードウェアにより高速に実行するアクセラレータとして利用される。組合せ最適化装置200は、プロセッサ201、SRAM(Static RAM)202、DRAM(Dynamic RAM)203および接続IF(InterFace)204を有する。
プロセッサ201は、探索部110の処理を実行するFPGAなどの半導体集積回路である。プロセッサ201は、第1の実施の形態の処理部12の一例である。
SRAM202は、状態ベクトルに含まれる2つのビットの組に対応する結合係数Wやビット毎のバイアスbであって、現在の探索に用いられている結合係数Wおよびバイアスbを記憶する。
DRAM203は、制約項を含む第1のエネルギー関数に対応する結合係数Wおよびバイアスbと、第1のエネルギー関数から制約条件を表す項を除去した第2のエネルギー関数に対応する結合係数Wおよびバイアスbとを記憶する。
接続IF204は、情報処理装置250と接続するためのインタフェースである。
情報処理装置250は、CPU251、DRAM252、HDD253および接続IF254を有する。
CPU251は、情報処理装置250の演算装置であり、組合せ最適化装置200に対する各種パラメータの入力や、演算開始の指示、組合せ最適化装置200からの演算結果の取得などを行う。
DRAM252は、情報処理装置250の主記憶装置であり、CPU251の処理に用いられる各種のプログラムやデータを記憶する。なお、DRAM252は、DRAM203に格納される情報を記憶してもよく、DRAM203の代用とすることもできる。その場合、組合せ最適化装置200は、DRAM203を有していなくてもよい。
HDD253は、情報処理装置250の補助記憶装置であり、CPU251の処理に用いられる各種のプログラムやデータを記憶する。
接続IF254は、組合せ最適化装置200と接続するためのインタフェースである。
図15は、組合せ最適化装置の回路構成例を示す図である。
プロセッサ201は、探索回路210、制御回路220およびレジスタ230を有する。
探索回路210は、エネルギー関数が式(1)の形式で表されるイジングモデルの基底状態探索を行う。探索回路210は、状態ベクトルにおける何れかの状態変数の値が変化する場合に、複数の状態変数の値とSRAM202に記憶された結合係数とに基づいて、複数の状態変数の値のそれぞれを次の変化候補とする場合のエネルギーの変化値を計算する。1つの状態変数の値は、前述のように1ビットで表される。探索回路210は、設定された温度値と乱数値と複数のエネルギーの変化値とに基づいて、複数の状態変数の何れかの値を変化させる。探索回路210は、複数の状態変数の値のそれぞれを次の変化候補とする場合のエネルギーの変化値の計算を並列に実行する。
制御回路220は、制約項パラメータが全て非ゼロである第1のエネルギー関数に対応する状態変数の組毎の第1の結合係数をSRAM202に格納する。制御回路220は、探索回路210に基底状態探索を開始させる。制御回路220は、探索回路210による探索の過程で、SRAM202に格納された第1の結合係数を、制約項パラメータの少なくとも何れかがゼロである第2のエネルギー関数に対応する状態変数の組毎の第2の結合係数に一時的に変更する。
例えば、データp0は、探索回路210の探索に用いられる状態変数の組毎の結合係数Wおよび状態変数毎のバイアスbを示す。データp0は、SRAM202に格納される。データp1は、制約有りエネルギー関数である第1のエネルギー関数の第1の結合係数W1および第1のバイアスb1を示す。データp2は、制約無しエネルギー関数である第2のエネルギー関数の第2の結合係数W2および第2のバイアスb2を示す。データp1,p2は、CPU251によりDRAM203に予め格納される。制御回路220は、DRAM203に格納されたデータp1,p2に基づいて、SRAM202に格納されているデータp0を、データp1,p2の何れかに入れ替えることで、探索回路210が探索に用いるエネルギー関数を変更する。ただし、データp0におけるバイアスbは、探索回路210内に設定される状態変数毎の局所場の計算に用いられる。このため、制御回路220は、バイアスbをSRAM202に格納せずに、局所場の計算結果を、探索回路210内の所定のレジスタに格納してもよい。また、除去候補となる項が複数ある場合、DRAM203は、除去候補となる項毎に、当該項を除去した場合のエネルギー関数に対応する結合係数W2およびバイアスb2を保持してもよい。
レジスタ230は、状態ベクトルを記憶する。例えば、SRAM202およびレジスタ230は、第1の実施の形態の記憶部11の一例である。
図16は、探索回路の回路構成例を示す図である。
探索回路210は、nビット(nは2以上の整数)の状態ベクトルに対する基底状態探索を行う。各ビットを、整数のインデックスi(1≦i≦n)で区別する。
探索回路210は、h計算部2a1,2a2,…,2an、ΔE生成部2b1,2b2,…,2bn、加算器2c1,2c2,…,2cn、状態遷移判定部2d1,2d2,…,2dn、セレクタ部2e、オフセット制御部2fおよびE計算部2gを有する。
図16では、h計算部2a1~2anに対し、i番目のビットに対応することが分かり易い様に「h」計算部のように添え字iを付して名称を表記している。また、図16では、ΔE生成部2b1~2bnに対し、i番目のビットに対応することが分かり易い様に「ΔE」計算部のように添え字iを付して名称を表記している。
ある探索回路において状態ベクトルに含まれる何れかのビットを反転させるかの判定および判定結果に応じた該当ビットの反転が、当該探索回路による基底状態探索の1回分の試行に相当する。ただし、1回の試行により、ビットの反転が起こらないこともある。当該1回分の試行は繰り返し実行される。1回分の試行の繰り返し回数はイタレーション数と呼ばれる。
n個のビットのうち、h計算部2a1、ΔE生成部2b1、加算器2c1および状態遷移判定部2d1が1番目のビットに関する演算を行う。また、h計算部2a2、ΔE生成部2b2、加算器2c2および状態遷移判定部2d2が2番目のビットに関する演算を行う。同様に、「2a1」、「2b1」などの符号の末尾の数値iがi番目のビットに対応する演算を行うことを示す。すなわち、1つの探索回路は、h計算部、ΔE生成部、加算器および状態遷移判定部のセットを、n個有する。1つのセットは、1スピンビットに関する演算を行う演算処理回路の一単位であり、「ニューロン」と呼ばれることもある。n個のニューロンが並列に、各ニューロンに対応するビットに関する演算を並列に行うことで、演算の高速化が図られる。
ここで、SRAM202およびレジスタ230(図16では図示を省略している)に格納される情報について説明する。
SRAM202は、状態ベクトルに含まれるビットのペア毎の結合係数Wを記憶する。状態ベクトルのビット数がnのとき、結合係数の総数は、nとなる。SRAM202は、メモリ回路1a1,1a2,…,1anを有する。
メモリ回路1a1は、結合係数W11~W1nを記憶する。結合係数W11~W1nは、1番目のビットに対応するニューロンの演算に用いられる。メモリ回路1a2は、結合係数W21~W2nを記憶する。結合係数W21~W2nは、2番目のビットに対応するニューロンの演算に用いられる。メモリ回路1anは、Wn1~Wnnを記憶する。Wn1~Wnnは、n番目のニューロンの演算に用いられる。なお、Wii=0である。
レジスタ230は、状態保持部231として用いられる。状態保持部231は、探索回路210における状態ベクトルを保持する。
以下では、主に、1番目のニューロンに対応するh計算部2a1、ΔE生成部2b1、加算器2c1および状態遷移判定部2d1を例示して説明する。同名の構成であるh計算部2a2~2an、ΔE生成部2b2~2bn、加算器2c2~2cnおよび状態遷移判定部2d2~2dnも同様の機能である。
また、h計算部2a1、ΔE生成部2b1、加算器2c1および状態遷移判定部2d1のセットに対応するビットを自スピンビット、探索回路210で演算されるそれ以外のビットを他スピンビットと称する。
メモリ回路1a1は、セレクタ部2eにより供給されるインデックスjに対応する結合係数W1jをh計算部2a1に出力する。
h計算部2a1は、メモリ回路1a1から供給される結合係数W1jを用いて、式(3),(4)に基づく局所場hを計算する。例えば、h計算部2a1は、前回計算された局所場hを保持するレジスタを有し、インデックスjで示されるビットの反転方向に応じたδh (j)を、hに積算することで、当該レジスタに格納されるhを更新する。インデックスjで示されるスピンビットの反転方向を示す信号は、セレクタ部13cからh計算部12b1に供給されてもよい。hの初期値は、問題に応じたbに応じて、式(3)により予め計算され、h計算部2a1のレジスタに予め設定される。h計算部2a1は、計算した局所場hをΔE生成部2b1およびE計算部2gに出力する。
ΔE生成部2b1は、局所場hを用いて、式(2)に基づき、自スピンビットの反転に応じたイジングモデルのエネルギー変化値ΔEを生成する。ΔE生成部2b1は、例えば、状態保持部231から供給される自スピンビットの現在の値から、自スピンビットの反転方向を判別してもよい(現在の値が0なら0から1が反転方向となり、現在の値が1なら1から0が反転方向となる)。ΔE生成部2b1は、生成したエネルギー変化値ΔEを、加算器2c1に出力する。ここで、後段の加算器2c1での加算処理および状態遷移判定部2d1での判定処理に応じて、ΔE生成部2b1は、エネルギー変化値ΔE1の符号を逆転したエネルギー変化値-ΔEを、加算器2c1に出力してもよい。本例では、ΔE生成部2b1は、エネルギー変化値として、-ΔEを加算器2c1に出力するものとする。
加算器2c1は、ΔE生成部2b1から供給される-ΔEとオフセット制御部2fから供給されるオフセット値Eoffとを加算する。オフセット値Eoffは、後述されるように、状態遷移を促すためのパラメータであり、オフセット制御部2fにより制御される。本例では、Eoff≧0である。Eoffの初期値は0である。Eoffは、オフセット制御部2fにより、状態遷移の状況に応じて漸増される。加算器2c1は、加算結果(-ΔE+Eoff)を状態遷移判定部2d1に出力する。
状態遷移判定部2d1は、加算器2c1から供給されるエネルギー変化値とオフセットEoffとの和(-ΔE+Eoff)に応じて、自スピンビットの反転可否を示すフラグfをセレクタ部13cに出力する。具体的には、状態遷移判定部2d1は、-ΔE+Eoffと温度に応じた熱ノイズとの比較に応じて、自スピンビットの反転可否を判定する。
ここで、状態遷移判定部2d1による判定について説明する。
シミュレーテッド・アニーリングでは、あるエネルギー変化ΔEを引き起こす状態遷移の許容確率A(ΔE,β)=f(-βΔE)を前述の式(5)のようにメトロポリス法またはギブス法により決定する。前述のように、式(5)においてβは、逆温度(1/T)である。したがって、A(ΔE,β)=A(ΔE,T)=f(-ΔE/T)である。温度Tは、制御回路220により状態遷移判定部2d1に設定される。制御回路220は、探索回路210による所定のイタレーション数毎に、探索回路210に設定する温度Tを徐々に下げる。
例えば、許容確率A(ΔE,β)でエネルギー変化ΔEを引き起こす状態遷移を許容することを示すフラグ(flg=1)を出力する回路は、A=f(-ΔE/T)と、区間[0,1)の値をとる一様乱数uとの比較に応じた値を出力する比較器により実現できる。
ただし、次のような変形を行っても同じ機能を実現可能である。2つの数に同じ単調増加関数を作用させても大小関係は変化しない。したがって、比較器の2つの入力に同じ単調増加関数を作用させても比較器の出力は変わらない。例えば、f(-ΔE/T)に作用させる単調増加関数としてf(-ΔE/T)の逆関数f-1(-ΔE/T)、一様乱数uに作用させる単調増加関数としてf-1(-ΔE/T)の-ΔE/Tをuとしたf-1(u)を用いることができる。その場合、上記の比較器と同様の機能を有する回路は、-ΔE/Tがf-1(u)より大きいとき1を出力する回路でよい。更に、温度パラメータTが正であることから、状態遷移判定部2d1は、-ΔEがT・f-1(u)以上のとき(あるいは、ΔEが-(T・f-1(u))以下のとき)、flg=1を出力する回路でよい。
状態遷移判定部2d1は、一様乱数uを生成し、一様乱数uを上記のf-1(u)の値に変換する変換テーブルを用いて、f-1(u)の値を生成する。メトロポリス法が適用される場合、f-1(u)=ln(u)である。ギブス法が適用される場合、f-1(u)=ln(u/(1-u))である。したがって、メトロポリス法が適用される場合、式(6)を得る。
変換テーブルは、例えば、状態遷移判定部2d1が有するレジスタに記憶される。状態遷移判定部2d1は、温度パラメータTと、f-1(u)との積(T・f-1(u))を生成し、-ΔE+Eoffと比較する。ここで、T・f-1(u)は、熱ノイズに相当する。熱ノイズは、物理学における熱励起エネルギーに対応付けられることもある。状態遷移判定部2d1は、(-ΔE+Eoff)≧T・f-1(u)の場合にフラグf=1(遷移可)をセレクタ部2eに出力する。状態遷移判定部2d1は、(-ΔE+Eoff)<T・f-1(u)の場合にフラグf=0(遷移不可)をセレクタ部2eに出力する。
状態遷移判定部2d1は、(-ΔE+Eoff)≧T・f-1(u)を変形して、温度に対応するノイズ値T・f-1(u)を(ΔE-Eoff)に加算して得られる評価値と閾値(例えば0)との比較に応じて、遷移可否を示すフラグを出力してもよい。
セレクタ部2eは、状態遷移判定部2d1~2dnの各々から出力された遷移可否を示すフラグを受け付ける。セレクタ部2eは、状態遷移判定部2d1~2dnの各々から出力されたフラグに遷移可を示すフラグがある場合には、遷移可を示す何れか1つのフラグを選択する。セレクタ部2eは、状態遷移判定部2d1~2dnの各々から出力されたフラグに遷移可を示すフラグがない場合には、1つの所定のフラグを選択する。
セレクタ部2eは、遷移可否を示すフラグと、選択したフラグに対応するビットを示すインデックスjとを含む更新信号(update)を状態保持部231に出力する。それとともに、セレクタ部2eは、選択した遷移可否を示すフラグをオフセット制御部2fに出力し、選択したフラグに対応するインデックスjを、メモリ回路1a1~1anの各々に出力する。
オフセット制御部2fは、セレクタ部2eから出力される遷移可否を示すフラグに基づいて、加算器2c1~2cnの各々に供給するオフセット値を制御する。具体的には、オフセット制御部2fは、セレクタ部2eから出力されるフラグが遷移可を示す場合、オフセット値を0にリセットする。オフセット制御部2fは、セレクタ部2eから出力されるフラグが遷移不可を示す場合、オフセット値に増分値ΔEoffを加算する。当該フラグが連続して遷移不可を示す場合、オフセット制御部2fは、ΔEoffを積算することで、EoffをΔEoffずつ増加させる。この方法は、ダイナミックオフセット法と呼ばれる。
セレクタ部2eから出力されるフラグが遷移不可を示す場合、現在の状態が局所解に陥っていると考えられる。-ΔEへのオフセット値の加算や加算するオフセット値の漸増により、状態遷移が許容されやすくなり、現在の状態が局所解にある場合、その局所解からの脱出が促進される。
状態保持部231は、セレクタ部2eから出力されるフラグとインデックスとに基づいて、状態保持部231により保持される状態ベクトル(x,x,…,x)を更新する。状態保持部231は、現在の状態ベクトルをE計算部2gに出力する。状態保持部231は、探索回路210における探索処理の完了時における状態ベクトルを制御回路220に出力する。
E計算部2gは、h計算部2a1~2anの各々から出力される局所場h~hおよび状態保持部231から出力される状態ベクトル(x~x)に基づいて、探索回路210におけるイジングモデルの現在のエネルギー値を計算する。E計算部2gは、式(1)、(3)に基づき、局所場と状態ベクトルとの積和により、エネルギー値を計算することができる。
制御回路220は、探索回路210の動作を制御する。制御回路220は、情報処理装置250から起動信号の入力を受け付けると、SRAM202および探索回路210に初期パラメータを設定し、探索回路210を起動させて、基底状態探索の演算を開始させる。
制御回路220は、探索回路210による探索の過程において、SRAM202に保持される結合係数をDRAM203に保持される他の結合係数に一時的に入れ替える。また、制御回路220は、入れ替えタイミングにおいて状態保持部231に保持される状態ベクトルに基づいて、式(3)により入れ替え後のエネルギー関数に対応する各ビットの局所場を計算し、探索回路210に設定する。これにより、探索回路210の探索に用いられるエネルギー関数が変更される。
例えば、制御回路220は、探索開始の直前には、制約項パラメータが全て非ゼロである第1のエネルギー関数に対応するWを、SRAM202に設定する。それとともに、探索回路210は、第1のエネルギー関数に対応するbに応じた各ビットの局所場の初期値をh計算部2a1~2anに設定する。
制御回路220は、探索の過程のあるタイミングで、制約条件を表す項を除去した第2のエネルギー関数に対応するW,bを、DRAM203から読み出して、読み出したWをSRAM202に設定する。また、制御回路220は、当該タイミングにおいて状態保持部231に保持される状態ベクトルとDRAM203から読み出したbとを基に各ビットの局所場を計算して、h計算部2a1~2anに設定する。
そして、制御回路220は、第2のエネルギー関数による1回または複数回の状態遷移の試行を探索回路210に行わせると、上記と同様の処理により、SRAM202の結合係数Wおよび探索回路の局所場hを第1のエネルギー関数のものに戻す。
制御回路220により、探索に用いられるエネルギー関数を第1のエネルギー関数から第2のエネルギー関数に変更するタイミングは、第2,第3の実施の形態で例示したように、確率的なタイミング、例えば、100回の試行中の1回程度の頻度などでもよい。また、制御回路220は、第4の実施の形態で例示したように、局所解に陥っていると判断される場合に、当該タイミングを計り、探索に用いられるエネルギー関数を第1のエネルギー関数から第2のエネルギー関数に変更するようにしてもよい。
制御回路220は、探索回路210による演算が終了すると、探索回路210から状態ベクトルおよびエネルギー値を取得し、情報処理装置250に解として出力する。
情報処理装置250は、組合せ最適化装置200で得られた解を、ユーザにとって分かり易いデータに変換して、情報処理装置250に接続されたディスプレイなどの表示装置に表示させたり、他のコンピュータに当該データを送信したりする。
このように、組合せ最適化装置200によれば、エネルギー関数に含まれる制約を表す項を一時的に消失させることで、滞っていたビット遷移を促して、最適解に到達させることが可能になる。
組合せ最適化装置200では、状態遷移の促進に、ダイナミックオフセット法と制約トンネリングを併用することもできる。例えば、ダイナミックオフセット法を用いても局所解からの脱出が見込めない場合に、制約トンネリングを利用することで、状態遷移が一層促される。
なお、例えば、レプリカ交換法が用いられる場合、SRAM202、探索回路210および状態保持部231のセットを1つのレプリカとして、組合せ最適化装置200は複数のレプリカを有してもよい。その場合、制御回路220は、各レプリカに対して、異なる温度を設定し、所定のタイミングで、隣接する温度のレプリカで温度、または、ステート情報を確率的に交換する。ステート情報は、状態ベクトルおよび局所場に相当する。交換の確率には、例えば、メトロポリス法に基づく確率が用いられる。また、制御回路220は、探索の過程において、当該探索に用いるエネルギー関数を、制約条件を表す項が除去されたエネルギー関数に一時的に変更するために、SRAMに保持される結合係数や局所場を入れ替える処理を、各レプリカに対して個別に行う。これにより、組合せ最適化装置200でレプリカ交換法が用いられる場合にも、エネルギー障壁により隣接状態への遷移が滞る状態を解消させることができる。
なお、第1の実施の形態の情報処理は、処理部12にプログラムを実行させることで実現できる。ただし、第5の実施の形態で例示したように、処理部12を専用の電子回路で実現することもできる。また、第2~第4の実施の形態の情報処理は、CPU101に組合せ最適化プログラム120を実行させることで実現できる。組合せ最適化プログラム120は、コンピュータ読み取り可能な記録媒体33に記録できる。
例えば、組合せ最適化プログラム120などのプログラムを記録した記録媒体33を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体33に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置にインストールし、当該記憶装置からプログラムを読み込んで実行してもよい。
10 組合せ最適化装置
11 記憶部
12 処理部
E1 第1のエネルギー関数
E2 第2のエネルギー関数

Claims (10)

  1. 複数の状態変数に対する制約条件を表す項が与えられた第1のエネルギー関数に含まれる前記複数の状態変数の値を記憶する記憶部と、
    前記第1のエネルギー関数の値を最小にする前記複数の状態変数の値の探索を行う処理部と、
    を有し、
    前記処理部による前記探索は、前記第1のエネルギー関数を用いて行われる第1探索と、前記第1探索の後、前記第1のエネルギー関数から前記制約条件を表す前記項を除去した第2のエネルギー関数を用いて行われる第2探索と、前記第2探索の後、前記第1のエネルギー関数を用いて行われる第3探索とを含み、
    前記処理部は、前記探索における状態遷移の試行で前記第2探索を実行するか否かを確率的に決定する、
    ことを特徴とする組合せ最適化装置。
  2. 前記第1のエネルギー関数は、除去候補の前記項の重みを表すパラメータを含み、
    前記処理部は、前記パラメータを非ゼロの値からゼロに設定することで、前記第1のエネルギー関数を前記第2のエネルギー関数に変更し、前記パラメータをゼロから非ゼロの値に戻すことで、前記第2のエネルギー関数を前記第1のエネルギー関数に変更する、
    請求項1記載の組合せ最適化装置。
  3. 前記第1のエネルギー関数は、前記制約条件を表す前記項を複数含み、
    前記第2のエネルギー関数は、前記第1のエネルギー関数から複数の前記項のうちの一部の項を除去した関数である、
    請求項1または2記載の組合せ最適化装置。
  4. 前記処理部は、前記探索を複数回行い、ある回と他の回とで除去対象の前記項を変更する、
    請求項3記載の組合せ最適化装置。
  5. 前記第1のエネルギー関数は、前記制約条件を表す前記項を複数含み、
    前記第2のエネルギー関数は、前記第1のエネルギー関数から複数の前記項の全てを除去した関数である、
    請求項1または2記載の組合せ最適化装置。
  6. 前記処理部は、前記第1探索により局所解に陥った場合に、前記第2探索を実行する、
    請求項1乃至の何れか1項に記載の組合せ最適化装置。
  7. 前記記憶部は、前記第1のエネルギー関数に対応する状態変数の組毎の第1の結合係数または前記第2のエネルギー関数に対応する状態変数の組毎の第2の結合係数を記憶し、
    前記処理部は、
    前記複数の状態変数の何れかの値が変化する場合に、前記複数の状態変数の値と前記記憶部に記憶された前記第1の結合係数または前記第2の結合係数とに基づいて、前記複数の状態変数の値のそれぞれを次の変化候補とする場合のエネルギーの変化値を計算し、設定された温度値と乱数値と複数の前記エネルギーの変化値とに基づいて、前記記憶部に記憶される前記複数の状態変数の何れかの値を変化させる探索回路と、
    記第1の結合係数を前記記憶部に格納し、前記探索回路による前記探索の過程で、前記記憶部に格納された前記第1の結合係数を、前記第2の結合係数に変更する制御回路と、
    を有する、
    請求項1記載の組合せ最適化装置。
  8. 前記第2探索を実行するタイミングは、確率的に発生するタイミング、または、周期的に発生するタイミングであることを特徴とする請求項1記載の組合せ最適化装置。
  9. 組合せ最適化装置が、
    複数の状態変数を含み、前記複数の状態変数に対する制約条件を表す項が与えられた第1のエネルギー関数の値を最小にする前記複数の状態変数の値の探索を行う組合せ最適化方法において、
    前記探索は、前記第1のエネルギー関数を用いて行われる第1探索と、前記第1探索の後、前記第1のエネルギー関数から前記制約条件を表す前記項を除去した第2のエネルギー関数を用いて行われる第2探索と、前記第2探索の後、前記第1のエネルギー関数を用いて行われる第3探索とを含み、
    前記探索における状態遷移の試行で前記第2探索を実行するか否かを確率的に決定する、
    ことを特徴とする組合せ最適化方法。
  10. 複数の状態変数を含み、前記複数の状態変数に対する制約条件を表す項が与えられた第1のエネルギー関数の値を最小にする前記複数の状態変数の値の探索を行う処理をコンピュータに実行させる組合せ最適化プログラムにおいて、
    前記探索は、前記第1のエネルギー関数を用いて行われる第1探索と、前記第1探索の後、前記第1のエネルギー関数から前記制約条件を表す前記項を除去した第2のエネルギー関数を用いて行われる第2探索と、前記第2探索の後、前記第1のエネルギー関数を用いて行われる第3探索とを含み、
    前記探索における状態遷移の試行で前記第2探索を実行するか否かを確率的に決定する、
    ことを特徴とする組合せ最適化プログラム。
JP2019153418A 2019-08-26 2019-08-26 組合せ最適化装置、組合せ最適化方法および組合せ最適化プログラム Active JP7319539B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019153418A JP7319539B2 (ja) 2019-08-26 2019-08-26 組合せ最適化装置、組合せ最適化方法および組合せ最適化プログラム
EP20178190.3A EP3786815A1 (en) 2019-08-26 2020-06-04 Combinatorial optimization apparatus, combinatorial optimization method, and combinatorial optimization program
US16/897,333 US20210065087A1 (en) 2019-08-26 2020-06-10 Information processing apparatus, combination optimization method, and computer-readable recording medium recording combination optimization program
CN202010580033.3A CN112434398A (zh) 2019-08-26 2020-06-23 组合优化设备、组合优化方法以及计算机可读记录介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019153418A JP7319539B2 (ja) 2019-08-26 2019-08-26 組合せ最適化装置、組合せ最適化方法および組合せ最適化プログラム

Publications (2)

Publication Number Publication Date
JP2021033657A JP2021033657A (ja) 2021-03-01
JP7319539B2 true JP7319539B2 (ja) 2023-08-02

Family

ID=70977767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019153418A Active JP7319539B2 (ja) 2019-08-26 2019-08-26 組合せ最適化装置、組合せ最適化方法および組合せ最適化プログラム

Country Status (4)

Country Link
US (1) US20210065087A1 (ja)
EP (1) EP3786815A1 (ja)
JP (1) JP7319539B2 (ja)
CN (1) CN112434398A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022136877A (ja) * 2021-03-08 2022-09-21 富士通株式会社 最適化装置、最適化プログラムおよび最適化方法
CN114970440B (zh) * 2022-05-07 2023-07-25 上海图灵智算量子科技有限公司 超大规模集成电路通道的布线方法
JP2023179849A (ja) 2022-06-08 2023-12-20 富士通株式会社 情報処理装置、情報処理方法およびプログラム
JP2024022267A (ja) * 2022-08-05 2024-02-16 学校法人早稲田大学 計算方法、計算システム、及びプログラム
CN116151171B (zh) * 2023-04-17 2023-07-18 华南理工大学 一种基于并行回火的全连接伊辛模型退火处理电路

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003223322A (ja) 2002-01-30 2003-08-08 Mitsubishi Electric Corp 組合せ最適化問題の解析装置
US20080065573A1 (en) 2006-09-06 2008-03-13 William Macready Method and system for solving integer programming and discrete optimization problems using analog processors
JP2019121137A (ja) 2017-12-29 2019-07-22 富士通株式会社 最適化装置および最適化装置の制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2683971B2 (ja) 1991-10-25 1997-12-03 株式会社エイ・ティ・アール視聴覚機構研究所 制御方法
JPH05216934A (ja) * 1992-02-06 1993-08-27 Nec Corp 確率を用いた探索方式
US7487133B2 (en) 2002-09-19 2009-02-03 Global Nuclear Fuel - Americas, Llc Method and apparatus for adaptively determining weight factors within the context of an objective function
JP6892599B2 (ja) * 2017-07-05 2021-06-23 富士通株式会社 最適化装置及び最適化装置の制御方法
JP6993571B2 (ja) * 2018-01-17 2022-01-13 富士通株式会社 最適化装置及び最適化装置の制御方法
CN108829957A (zh) * 2018-06-01 2018-11-16 韩山师范学院 一种基于混合差分人工蜂群算法的焊接梁设计方法
CN109741378A (zh) * 2018-12-13 2019-05-10 华南理工大学 基于mrf模型的多模态医学图像配准方法、装置、平台及介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003223322A (ja) 2002-01-30 2003-08-08 Mitsubishi Electric Corp 組合せ最適化問題の解析装置
US20080065573A1 (en) 2006-09-06 2008-03-13 William Macready Method and system for solving integer programming and discrete optimization problems using analog processors
JP2019121137A (ja) 2017-12-29 2019-07-22 富士通株式会社 最適化装置および最適化装置の制御方法

Also Published As

Publication number Publication date
CN112434398A (zh) 2021-03-02
US20210065087A1 (en) 2021-03-04
EP3786815A1 (en) 2021-03-03
JP2021033657A (ja) 2021-03-01

Similar Documents

Publication Publication Date Title
JP7319539B2 (ja) 組合せ最適化装置、組合せ最適化方法および組合せ最適化プログラム
JP7071638B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7007585B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
US20200278385A1 (en) Information processing device and control method of optimization device
JP2021131611A (ja) 情報処理装置、プログラム、情報処理方法および情報処理システム
US20200363848A1 (en) Optimization device and method of controlling optimization device
JP7283318B2 (ja) 最適化装置、最適化プログラム、及び最適化方法
JP7181454B2 (ja) 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム
CN113283046A (zh) 优化装置、优化方法和记录介质
US20220012291A1 (en) Information processing system, information processing method, and non-transitory computer-readable storage medium for storing program
JP7219402B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
EP4187448A1 (en) Information processing apparatus, information processing method, and program
US20210173978A1 (en) Optimization device, optimization device control method, and computer-readable recording medium recording optimization device control program
CN111985631B (zh) 信息处理设备、信息处理方法及计算机可读记录介质
JP2024077351A (ja) データ処理装置、プログラム及びデータ処理方法
JP2024049202A (ja) データ処理装置、プログラム及びデータ処理方法
EP4375831A1 (en) Data processing apparatus, program, and data processing method
US20230350972A1 (en) Information processing apparatus and information processing method
US20230081944A1 (en) Data processing apparatus, data processing method, and storage medium
JP2023122981A (ja) プログラム、データ処理装置及びデータ処理方法
JP2024062514A (ja) データ処理装置、データ処理方法およびプログラム
JP2021131723A (ja) 情報処理方法、情報処理装置及びプログラム
JP2022161128A (ja) プログラム、データ処理方法及びデータ処理装置
JP2023149428A (ja) データ処理装置、プログラム及びデータ処理方法
CN114298315A (zh) 优化装置、优化方法及非暂态计算机可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230410

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230703

R150 Certificate of patent or registration of utility model

Ref document number: 7319539

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150