WO2022230119A1 - シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法 - Google Patents

シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法 Download PDF

Info

Publication number
WO2022230119A1
WO2022230119A1 PCT/JP2021/017018 JP2021017018W WO2022230119A1 WO 2022230119 A1 WO2022230119 A1 WO 2022230119A1 JP 2021017018 W JP2021017018 W JP 2021017018W WO 2022230119 A1 WO2022230119 A1 WO 2022230119A1
Authority
WO
WIPO (PCT)
Prior art keywords
spin
simulated annealing
parallel
spins
flip
Prior art date
Application number
PCT/JP2021/017018
Other languages
English (en)
French (fr)
Inventor
裕太 井手口
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2023516961A priority Critical patent/JP7559937B2/ja
Priority to PCT/JP2021/017018 priority patent/WO2022230119A1/ja
Priority to US18/287,098 priority patent/US20240202392A1/en
Publication of WO2022230119A1 publication Critical patent/WO2022230119A1/ja

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
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N99/00Subject matter not provided for in other groups of this subclass

Definitions

  • the formula representing the energy in the combinatorial optimization problem can be converted to the energy function in QUBO.
  • This conversion method is known.
  • the energy function in the Ising model and the energy function in QUBO are mutually convertible.
  • an object of the present invention is to provide a simulated annealing device, a simulated annealing method, and a simulated annealing program that can efficiently parallelize repeated processing by the simulated annealing method.
  • a simulated annealing apparatus is a simulated annealing apparatus that solves a combinatorial optimization problem by a simulated annealing method, and constitutes an energy function in an Ising model representing a combinatorial optimization problem ⁇ (k ⁇ 1) ⁇ n+1 ⁇ -th to k ⁇ n-th spins (where k is an integer of 1 or more and n is an integer of 2 or more), confirming whether or not the flip is accepted is performed in parallel with the parallel number n.
  • the SA method finds the combination of spin orientations that minimizes the energy E by repeatedly executing the processing of steps 1 to 4 above (hereinafter also referred to as iterative processing).
  • the four rectangles shown at the top of FIG. 2 indicate that the flip of the spin with the spin number 1 is accepted in the process with the process number 1, and the flip of the spin with the spin number 3 in the process with the process number 3 is accepted. Indicates that a flip is accepted.
  • FIG. 6 is an explanatory diagram showing another example of parallel processing by the general SA method and parallel processing by the simulated annealing device 100.
  • FIG. 6 As shown in the upper part of FIG. 6, there are two flip spins among the spins to be processed in this example.
  • the elongated rectangle shown in the middle of Fig. 6 represents parallel processing by the general SA method. Rectangular lines with upward slanting lines in FIG. 6 represent operations that are wasted due to the first flip-spin. As shown in the middle part of FIG. 6, similar to the example shown in FIG. 5, if the starting position of parallel processing is different, the amount of computation that is wasted due to the first flip-spin also changes.
  • the elongated rectangles shown in the lower part of FIG. 6 represent parallel processing by the simulated annealing device 100.
  • the center spin (first flip spin) of the second parallel processing is flipped.
  • the simulated annealing apparatus 100 performs the remaining parallel processing with the spin next to the first flip spin as the starting position.
  • the simulated annealing apparatus 100 When there are three flip-spins within the fixed width, the simulated annealing apparatus 100, as shown in FIG. You can definitely reduce the amount by the length of the dashed double-headed arrow.
  • the length of the dashed double-headed arrow corresponds to the length from the first vertical line to the position of the first flip spin.
  • the simulated annealing apparatus 100 can reduce the amount of wasted calculations as more flip spins exist within the fixed width.
  • a simulated annealing device 100 shown in FIG. It also has an input unit 15 for user operation, and an output unit 16 for presenting the processing result or the progress of the processing content to the user.
  • the auxiliary storage unit 14 is a non-temporary tangible storage medium.
  • non-temporary tangible storage media include magnetic disks, magneto-optical disks, CD-ROMs (Compact Disk Read Only Memory), DVD-ROMs (Digital Versatile Disk Read Only Memory), and semiconductor memories.
  • checking means 21 and the updating means 22 may be realized by a vector calculator.
  • the simulated annealing device can solve the traveling salesman problem at a higher speed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computational Mathematics (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)

Abstract

シミュレーテッドアニーリング装置20は、組合せ最適化問題をシミュレーテッドアニーリング方式で求解するシミュレーテッドアニーリング装置であって、組合せ最適化問題を表すイジングモデルにおけるエネルギー関数を構成する{(k-1)・n+1}番目~k・n番目(kは1以上の整数、nは2以上の整数)のn個のスピンそれぞれに対して、フリップが受理されるか否かの確認処理を並列数nで並列に実行する確認手段21と、m番目(mは{(k-1)・n+1}以上k・n未満の整数)のスピンで最初にフリップの受理が確認されると、m番目のスピンに関連するスピンのエネルギーの変化量をm番目のスピンがフリップした状態で更新する更新手段22と、次の確認処理が実行されるスピンを(m+1)番目~k・n番目のスピンに、並列数を(n-m)にそれぞれ変更する変更手段23とを備える。

Description

シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法
 本発明は、シミュレーテッドアニーリング装置、シミュレーテッドアニーリング方法およびシミュレーテッドアニーリングプログラムに関する。
 量子アニーリングマシンの実用化を契機に、組合せ最適化問題に関する研究が再度注目されている。組合せ最適化問題は、最適となる組合せを求める問題である。現実社会における課題を表した組合せ最適化問題として、巡回セールスマン問題、ナップサック問題、シフト最適化問題、および配送計画問題等が挙げられる。
 上記の組合せ最適化問題は、例えば、イジングモデル形式で記述される。イジングモデルは、個々のスピンによって磁性体の振る舞いを表す統計力学上のモデルである。イジングモデルでは、個々のスピンの向きは、“1”または“-1”で表される。イジングモデルは、多くの組合せ最適化問題を定式化できる。
 組合せ最適化問題がイジングモデル形式で記述される場合、最初に組合せ最適化問題におけるエネルギーを表す式が作成される。次いで、組合せ最適化問題におけるエネルギーを表す式が、イジングモデルにおけるエネルギー関数に変換される。なお、イジングモデルにおけるエネルギー関数への変換方法は、公知である。イジングモデルにおけるエネルギー関数は、以下の式(1)のように表される。
Figure JPOXMLDOC01-appb-M000001
 なお、式(1)におけるi,jは、いずれもスピンを表す変数である。また、式(1)におけるsiは、スピンiの向きを表す変数であり、sjは、スピンjの向きを表す変数である。すなわち、si,sjは、“1”または“-1”のいずれかである変数である。
 また、式(1)におけるhiは、スピンiに対応する定数である。iの取り得る値毎に、hiは定数として定められる。また、式(1)におけるJij は、スピンiおよびスピンjの組合せに対応する定数である。iの取り得る値とjの取り得る値の組合せ毎に、Jij は定数として定められる。
 また、イジングモデルにおけるエネルギー関数の代わりに、QUBO(Quadratic Unconstrained Binary Optimization )のエネルギー関数が用いられてもよい。QUBOは、個々のスピンの向きを“1”または“0”で表すモデルである。
 すなわち、組合せ最適化問題におけるエネルギーを表す式は、QUBOにおけるエネルギー関数に変換可能である。この変換方法は、公知である。また、イジングモデルにおけるエネルギー関数と、QUBOにおけるエネルギー関数とは、相互に変換可能である。
 式(1)に示すエネルギー関数が与えられた場合、組合せ最適化問題が求解されると、最適な個々のスピンの向き(1または-1)が求められる。求められた最適な個々のスピンの向きは、組合せ最適化問題の解を表している。
 多くの組合せ最適化問題は、例えば、与えられた制約条件の下で任意の目的関数(最小化対象)を最小にする組合せを求める問題である最小化問題に帰着可能である。組合せ最適化問題が最小化問題である場合、最適な個々のスピンの向きは、エネルギー関数が示すエネルギーE ができるだけ小さくなるような個々のスピンの向きである。
 イジングモデル形式で記述された組合せ最適化問題は、例えばシミュレーテッドアニーリング方式(以下、SA方式とも呼ぶ。)で求解される。非特許文献1には、VLSI(Very Large Scale Integration)回路内のモジュールの配置に適用した場合のシミュレーテッドアニーリングアルゴリズムの並列化が記載されている。
Jonas Knopman and Julio S. Aude, "Parallel simulated annealing: An adaptive approach," In Proceedings 11th International Parallel Processing Symposium, 1997.
 組合せ最適化問題を求解する時、SA方式は、スピンをフリップ(反転)させた際のエネルギーが下がればスピンのフリップを受理する。また、SA方式は、スピンをフリップさせた際のエネルギーが上がればスピンのフリップを受理しない。
 SA方式は、上記の処理を、スピンを変えて数千回、数万回、または数万回以上繰り返し実行する。繰り返し実行することによって、SA方式は、組合せ最適化問題の最適解を求める。
 しかし、各スピンには依存関係があるため、複数のスピンのフリップが受理されるか否かを同時に計算することは困難である。すなわち、SA方式による繰り返し処理を効率良く並列化することは困難である。また、SA方式による繰り返し処理を効率良く並列化することは、非特許文献1にも記載されていない。
 そこで、本発明は、シミュレーテッドアニーリング方式による繰り返し処理を効率良く並列化できるシミュレーテッドアニーリング装置、シミュレーテッドアニーリング方法およびシミュレーテッドアニーリングプログラムを提供することを目的とする。
 本発明によるシミュレーテッドアニーリング装置は、組合せ最適化問題をシミュレーテッドアニーリング方式で求解するシミュレーテッドアニーリング装置であって、組合せ最適化問題を表すイジングモデルにおけるエネルギー関数を構成する{(k-1)・n+1}番目~k・n番目(kは1以上の整数、nは2以上の整数)のn個のスピンそれぞれに対して、フリップが受理されるか否かの確認処理を並列数nで並列に実行する確認手段と、m番目(mは{(k-1)・n+1}以上k・n未満の整数)のスピンで最初にフリップの受理が確認されると、m番目のスピンに関連するスピンのエネルギーの変化量をm番目のスピンがフリップした状態で更新する更新手段と、次の確認処理が実行されるスピンを(m+1)番目~k・n番目のスピンに、並列数を(n-m)にそれぞれ変更する変更手段とを備えることを特徴とする。
 本発明によるシミュレーテッドアニーリング方法は、組合せ最適化問題をシミュレーテッドアニーリング方式で求解するシミュレーテッドアニーリング方法であって、組合せ最適化問題を表すイジングモデルにおけるエネルギー関数を構成する{(k-1)・n+1}番目~k・n番目(kは1以上の整数、nは2以上の整数)のn個のスピンそれぞれに対して、フリップが受理されるか否かの確認処理を並列数nで並列に実行し、m番目(mは{(k-1)・n+1}以上k・n未満の整数)のスピンで最初にフリップの受理が確認されると、m番目のスピンに関連するスピンのエネルギーの変化量をm番目のスピンがフリップした状態で更新し、次の確認処理が実行されるスピンを(m+1)番目~k・n番目のスピンに、並列数を(n-m)にそれぞれ変更することを特徴とする。
 本発明によるシミュレーテッドアニーリングプログラムは、組合せ最適化問題をシミュレーテッドアニーリング方式で求解するコンピュータにおいて実行されるシミュレーテッドアニーリングプログラムであって、コンピュータに、組合せ最適化問題を表すイジングモデルにおけるエネルギー関数を構成する{(k-1)・n+1}番目~k・n番目(kは1以上の整数、nは2以上の整数)のn個のスピンそれぞれに対して、フリップが受理されるか否かの確認処理を並列数nで並列に実行する並列処理、m番目(mは{(k-1)・n+1}以上k・n未満の整数)のスピンで最初にフリップの受理が確認されると、m番目のスピンに関連するスピンのエネルギーの変化量をm番目のスピンがフリップした状態で更新する更新処理、および次の確認処理が実行されるスピンを(m+1)番目~k・n番目のスピンに、並列数を(n-m)にそれぞれ変更する変更処理を実行させることを特徴とする。
 本発明によれば、シミュレーテッドアニーリング方式による繰り返し処理を効率良く並列化できる。
一般的なSA方式による組合せ最適化問題求解処理の動作を示すフローチャートである。 一般的なSA方式による組合せ最適化問題求解処理の並列化の例を示す説明図である。 本発明の実施形態のシミュレーテッドアニーリング装置の構成例を示すブロック図である。 シミュレーテッドアニーリング装置100による組合せ最適化問題求解処理の並列化の例を示す説明図である。 一般的なSA方式による並列処理とシミュレーテッドアニーリング装置100による並列処理の例を示す説明図である。 一般的なSA方式による並列処理とシミュレーテッドアニーリング装置100による並列処理の他の例を示す説明図である。 一般的なSA方式による並列処理とシミュレーテッドアニーリング装置100による並列処理の他の例を示す説明図である。 本実施形態のシミュレーテッドアニーリング装置100による組合せ最適化問題求解処理の動作を示すフローチャートである。 本発明によるシミュレーテッドアニーリング装置のハードウェア構成例を示す説明図である。 本発明によるシミュレーテッドアニーリング装置の概要を示すブロック図である。
 最初に、上述した課題の内容を具体的に説明する。SA方式は、組合せ最適化問題を近似的に求解する汎用手法である。SA方式は、以下の4つの処理を1つのサイクルとして組合せ最適化問題を求解する。
 1.スピンを1つ選択する
 2.選んだスピンをフリップさせた場合のエネルギーの変化量Δを計算する
 3.確率min(exp(-Δ/T),1)で、スピンのフリップを受理する
 4.フリップが受理された場合、選んだスピンをフリップさせる
 具体的には、SA方式は、上記のステップ2で選択されたスピンの向きを-1→1、または1→-1に反転させ、スピンをフリップさせた場合のエネルギーの変化量Δを計算する。
 次いで、SA方式は、計算されたΔが負の場合、上記のステップ3でスピンのフリップを受理する。また、計算されたΔが正の場合、SA方式は、上記のように計算される確率でスピンのフリップを受理する。
 次いで、SA方式は、フリップが受理された場合、上記のステップ4で選んだスピンをフリップさせる。
 すなわち、ステップ3での計算結果に応じて、SA方式は、スピンのフリップを受理しない。スピンのフリップが受理されない場合、選択されたスピンは、フリップせず元の状態のままである。
 SA方式は、上記のステップ1~4の処理(以下、繰り返し処理とも呼ぶ。)を繰り返し実行することによって、エネルギーE が最小になるスピンの向きの組合せを求める。
 図1は、一般的なSA方式による組合せ最適化問題求解処理の動作を示すフローチャートである。
 最初に、SA方式は、スピン1を選択する(ステップS001)。次いで、SA方式は、スピン1をフリップさせた場合のエネルギーの変化量Δを計算する(ステップS002)。次いで、SA方式は、スピン1のフリップが受理されるか否かを決定するために求められる計算(例えば、確率min(exp(-Δ/T),1)の計算)であるフリップチェック計算を実行する(ステップS003)。
 次いで、SA方式は、ステップS003における計算結果に応じてスピン1のフリップを受理するか否かを決定する(ステップS004)。フリップを受理すると決定した場合(ステップS004におけるYes )、SA方式は、スピン1をフリップさせる(ステップS005)。フリップを受理しないと決定した場合(ステップS004におけるNo)、SA方式は、ステップS006に進む。
 すなわち、いずれの結果であっても、SA方式は、スピン1のフリップを受理するか否かを決定してから、次のスピン2を選択する(ステップS006)。ステップS006以降で、SA方式は、ステップS001~S005と同じ処理を繰り返し実行する。
 図1に示すように、SA方式は、スピンを1つ選択し、選択されたスピンのフリップを受理するか否かを決定する。すなわち、前に選択されたスピンのフリップが受理されるか否かに応じて、次に選択されるスピンのフリップが受理されるか否かも変わる。よって、SA方式による繰り返し処理を並列化することは困難である。
 図2は、一般的なSA方式による組合せ最適化問題求解処理の並列化の例を示す説明図である。図2に示す例は、エネルギーの変化量Δを計算する処理の負荷が高いため、スピンで並列化することによって組合せ最適化問題求解処理を高速化する例である。
 図2に示す1つの矩形が、上記の1つの繰り返し処理を表す。また、図2に示す矩形内の「p」は処理番号、「s」はスピン番号をそれぞれ表す。また、図2に示す黒色の矩形は、スピンのフリップが受理される処理を表す。また、図2に示す破線の矩形で囲まれた矩形は、無駄になる処理を表す。
 例えば、図2の最上段に示す4つの矩形は、スピン番号が0のスピンに対する処理番号が0の処理、スピン番号が1のスピンに対する処理番号が1の処理、スピン番号が2のスピンに対する処理番号が2の処理、およびスピン番号が3のスピンに対する処理番号が3の処理が、並列数4で並列に実行される並列処理を表す。
 また、図2の最上段に示す4つの矩形は、処理番号が1の処理でスピン番号が1のスピンのフリップが受理されること、および処理番号が3の処理でスピン番号が3のスピンのフリップが受理されることを表す。
 すなわち、処理番号が1の処理でスピン番号が1のスピンのフリップが受理されるので、スピン番号が2以降のスピンに対する繰り返し処理は、スピン番号が1のスピンがフリップした状態で再度やり直すことが求められる。
 よって、図2の最上段に示すように、処理番号が2の処理、および処理番号が3の処理は、どちらも無駄になる。スピン番号が3のスピンも、元の状態のままになる。すなわち、SA方式による組合せ最適化問題求解処理の並列化では、スピンのフリップが受理されても、そのスピンの状態が変わらない場合がある。
 スピンがフリップさせられた後、SA方式は、フリップさせられたスピンの次のスピンから繰り返し処理をやり直す。図2の2段目に示すように、SA方式は、処理番号が0の処理をスピン番号が2のスピンに対する処理とする。
 SA方式は、スピン番号が2のスピンに対する処理番号が0の処理、スピン番号が3のスピンに対する処理番号が1の処理、スピン番号が4のスピンに対する処理番号が2の処理、およびスピン番号が5のスピンに対する処理番号が3の処理を、並列数4で並列に実行する。
 図2の2段目以降に示す内容は、最上段に示す内容と同様である。図2に示すように、フリップが頻繁に受理される場合、無駄になる処理が多くなる。
 少しでも処理時間を短くするために、SA方式は、繰り返し処理における「2.選んだスピンをフリップさせた場合のエネルギーの変化量Δを計算する」処理だけ、先に全てのスピンに渡って並列に計算してもよい。ステップ2の処理を先に実行する場合、SA方式は、以下の4つの処理を繰り返し処理として組合せ最適化問題を求解する。
 11.スピンを1つ選択する
 12.確率min(exp(-Δ/T),1)で、スピンのフリップを受理する
 13.フリップが受理された場合、選んだスピンをフリップさせる
 14.関連するスピンのエネルギーの変化量Δを更新する
 すなわち、上記の繰り返し処理は、先にエネルギーの変化量を計算し、スピンがフリップさせられた場合にのみ、フリップしたスピンに関連するスピンのエネルギーの変化量を更新する処理である。
 ただし、ステップ11~14の処理の1回あたりの演算量は大きくない。よって、メモリを共有し、各プロセスや各スレッドが繰り返し処理を並列に実行してから同期がとられるマルチプロセス方式やマルチスレッド方式で複数の繰り返し処理が並列に実行されても、処理全体では同期によるオーバヘッドの方が支配的になる。すなわち、マルチプロセス方式やマルチスレッド方式による並列化の効果は小さい。
 以下、フリップが頻繁に受理される場合に無駄になる処理を削減でき、かつ組合せ最適化問題求解処理全体における同期によるオーバヘッドの影響を削減できる本発明の実施形態を、図面を参照して説明する。
[構成の説明]
 図3は、本発明の実施形態のシミュレーテッドアニーリング装置の構成例を示すブロック図である。
 図3に示すように、本実施形態のシミュレーテッドアニーリング装置100は、エネルギー計算部110と、フリップ確認部120と、開始位置・並列数計算部130と、エネルギー更新部140とを備える。
 なお、本実施形態のシミュレーテッドアニーリング装置100は、先に全てのスピンに渡ってスピンのフリップによるエネルギーの変化量Δを並列に計算し、ステップ11~14の4つの処理を1つのサイクルとして組合せ最適化問題を求解する方式を採用する。
 エネルギー計算部110は、全てのスピンに渡ってスピンのフリップによるエネルギーの変化量Δを並列に計算する機能を有する。
 フリップ確認部120は、ステップ11~13の処理を並列に実行する機能を有する。すなわち、フリップ確認部120は、スピンを選択し、確率min(exp(-Δ/T),1)で、スピンのフリップを受理する。フリップが受理された場合、フリップ確認部120は、選んだスピンをフリップさせる。
 開始位置・並列数計算部130は、ステップ11~13の処理の結果を基に、次の並列処理を開始させるスピンの位置、および並列処理の並列数を計算する機能を有する。
 エネルギー更新部140は、ステップ14の処理を並列に実行する機能を有する。すなわち、エネルギー更新部140は、スピンがフリップさせられた場合にのみ、フリップしたスピンに関連するスピンのエネルギーの変化量を並列に更新する。
 本実施形態のシミュレーテッドアニーリング装置100は、ベクトル演算器で並列化を実現することを特徴とする。例えば、フリップ確認部120およびエネルギー更新部140は、ベクトル演算器で実現される。
 ベクトル演算器は、マルチプロセスやマルチスレッドと異なり、最初から並列処理に特化したデバイスである。ベクトル演算器による並列化では、同期によるオーバヘッドの影響が無い。また、ベクトル演算器は、並列化の対象を変更できるため、フリップ確認部120による処理、およびエネルギー更新部140による処理のいずれも並列化できる。
 また、本実施形態のシミュレーテッドアニーリング装置100は、繰り返し幅を固定化することによって、図2に示す無駄な処理を削減するという特徴を有する。無駄な処理を減らして並列数が削減される場合、ベクトル演算器で実現されるフリップ確認部120およびエネルギー更新部140は、並列処理をより高速に実行できる。
 並列数を減らす利点を以下に説明する。マルチプロセスやマルチスレッドで並列処理が実行される場合、一般的に並列数が変更されても、処理速度は大きく変わらない場合が多い。例えば、処理Xが1プロセスで実行された時間と、処理Xが4つに分割されて4プロセスで並列に実行された時間が、ほぼ等しくなる場合がある。
 また、ベクトル演算器で実行される場合や分割された各処理の時間が短い場合等でも、並列数に応じて処理速度が異なる。例えば、条件次第で、処理Xが1プロセスで実行された時間よりも、処理Xが4つに分割されて4プロセスで並列に実行された時間の方が長くなる場合もある。
 よって、無駄な演算をせずに並列数を減らした方が、並列処理の処理時間が短くなる可能性がある。また、並列処理自体が効率的に実行される。図2の最上段に示す並列処理であれば、処理番号が2の処理、および処理番号が3の処理はどちらも無駄な処理である。並列数が4の並列処理よりも並列数が2の並列処理の方が処理時間が短い可能性が高いので、並列数は4から2に削減される方が好ましい。
 図4は、シミュレーテッドアニーリング装置100による組合せ最適化問題求解処理の並列化の例を示す説明図である。
 図4の最上段に示す4つの矩形が表す内容は、図2の最上段に示す4つの矩形が表す内容と同様である。図4の最上段に示すように、処理番号が2の処理、および処理番号が3の処理は、どちらも無駄になる。
 図4の2段目に示すように、本実施形態のシミュレーテッドアニーリング装置100は、最上段に示す4つの矩形が表す処理のうちやり直しが求められる残りの2つの処理のみを、並列数を4から2に減らすことによって並列に実行する。
 本実施形態において「繰り返し幅を固定化」は、並列処理の対象のスピン全ての向きが確定するまで次のスピンに対して繰り返し処理が実行されないことを表している。図4に示す例では、固定幅が4に設定されている。なお、開始位置・並列数計算部130が、並列処理を再開させるスピンの位置の計算と、並列数の更新とを実行する。
 よって、図4の2段目に示すように、シミュレーテッドアニーリング装置100は、スピン番号が2のスピンに対する処理番号が0の処理、およびスピン番号が3のスピンに対する処理番号が1の処理を、並列数2で並列に実行する。なお、図4の2段目に示すように、並列処理の最後の処理でスピンのフリップが受理されても、次の並列処理に影響は及ばない。
 図4の2段目に示す並列処理が終了した段階で最初に並列処理の対象とされたスピン番号0~3の4つのスピン全ての向きが確定したので、シミュレーテッドアニーリング装置100は、次のスピン番号4~7の4つのスピンを対象として並列処理を実行する。
 図4の3段目に示すように、処理番号が2の処理でスピン番号が6のスピンのフリップが受理されている。よって、図4の4段目に示すように、シミュレーテッドアニーリング装置100は、3段目に示す4つの矩形が表す処理のうちやり直しが求められる残りの処理に対応する、スピン番号が7のスピンに対する処理番号が0の処理を、並列数を4から1に減らして並列に実行する。
 図4の4段目に示す並列処理が終了した段階で2回目に並列処理の対象とされたスピン番号4~7の4つのスピン全ての向きが確定したので、シミュレーテッドアニーリング装置100は、次のスピン番号8~11の4つのスピンを対象として並列処理を実行する。
 以下、本実施形態のシミュレーテッドアニーリング装置100が奏する効果を説明する。図5は、一般的なSA方式による並列処理とシミュレーテッドアニーリング装置100による並列処理の例を示す説明図である。
 図5の上段に示す細長い矩形は、順番に並べられた処理対象スピンを表す。また、黒色の矩形は、フリップが受理されるスピンであるフリップスピンを表す。また、縦線と縦線の間の長さは、固定幅を表す。すなわち、図5に示す例は、固定幅内にフリップスピンが1つ存在する場合の例である。なお、図5に示す各表記の意味は、図6~7においても同様である。
 図5の中段に示す細長い矩形は、一般的なSA方式による並列処理を表す。図5の中段に示すように、一般的なSA方式では、前回フリップしたスピンの位置に応じて、並列処理の開始位置が異なる。
 図5に示す斜線が付された矩形は、無駄になる演算を表す。並列処理の開始位置が異なると、無駄になる演算の量も変化する。例えば、図5に示す処理Aでは、1つ目の並列処理が終了した後、2つ目の並列処理の対象の前の方のスピンがフリップしている。すなわち、無駄になる演算の量が比較的多くなる。
 また、例えば、図5に示す処理Bでは、1つ目の並列処理の対象の後ろの方のスピンがフリップしている。すなわち、無駄になる演算の量が比較的少なくなる。
 図5の下段に示す細長い矩形は、シミュレーテッドアニーリング装置100による並列処理を表す。シミュレーテッドアニーリング装置100による並列処理では、前回フリップしたスピンの位置に関係なく、並列処理の開始位置が異ならない。
 並列処理の開始位置が異ならないため、無駄になる演算の量も変化しない。例えば、図5の下段に示す処理では、1つ目の並列処理が終了した後、2つ目の並列処理の対象の中央のスピン(フリップスピン)がフリップしている。シミュレーテッドアニーリング装置100は、フリップスピンの次のスピンを開始位置として、残りの並列処理を実行する。すなわち、無駄になる演算の量は、フリップスピンの位置のみで決定される。
 一般的なSA方式による並列処理の開始位置が、1つ目の縦線からフリップスピンまでの間である場合(例えば、処理Aの場合)には、シミュレーテッドアニーリング装置100は、無駄になる演算の量を削減できる。換言すると、固定幅内にフリップスピンが1つ存在する場合、一般的なSA方式に比べてシミュレーテッドアニーリング装置100が無駄になる演算の量を削減できる確率は、50%である。
 図6は、一般的なSA方式による並列処理とシミュレーテッドアニーリング装置100による並列処理の他の例を示す説明図である。図6の上段に示すように、本例の処理対象スピンには、フリップスピンが2つ存在する。
 図6の中段に示す細長い矩形は、一般的なSA方式による並列処理を表す。図6に示す右上がり斜線が付された矩形は、1つ目のフリップスピンが原因で無駄になる演算を表す。図6の中段に示すように、図5に示す例と同様、並列処理の開始位置が異なると、1つ目のフリップスピンが原因で無駄になる演算の量も変化する。
 また、図6に示す右下がり斜線が付された矩形は、2つ目のフリップスピンが原因で無駄になる演算を表す。図6に示す処理C~Eのいずれにおいても、並列処理が1つ目のフリップスピンの次のスピンから再開されるため、2つ目のフリップスピンが原因で無駄になる演算の量は同一になる。すなわち、2つ目のフリップスピンが原因で無駄になる演算の量は、2つのフリップスピンの位置で決定される。
 図6の下段に示す細長い矩形は、シミュレーテッドアニーリング装置100による並列処理を表す。図6の下段に示す処理では、1つ目の並列処理が終了した後、2つ目の並列処理の対象の中央のスピン(1つ目のフリップスピン)がフリップしている。シミュレーテッドアニーリング装置100は、1つ目のフリップスピンの次のスピンを開始位置として、残りの並列処理を実行する。
 また、3つ目の並列処理の対象の中央のスピン(2つ目のフリップスピン)がフリップしている。シミュレーテッドアニーリング装置100は、2つ目のフリップスピンの次のスピンを開始位置として、残りの並列処理を実行する。
 固定幅内にフリップスピンが2つ存在する時、シミュレーテッドアニーリング装置100は、図6に示すように、一般的なSA方式に比べて、2つ目のフリップスピンが原因で無駄になる演算の量のうち両端矢印の長さ分の量を必ず削減できる。両端矢印の長さは、1つ目の縦線から1つ目のフリップスピンの位置までの長さに相当する。
 上記のように、図5に示す例と異なり、図6に示す固定幅内にフリップスピンが2つ存在する例では、一般的なSA方式に比べてシミュレーテッドアニーリング装置100は、フリップスピンが原因で無駄になる演算の量を必ず削減できる。
 図7は、一般的なSA方式による並列処理とシミュレーテッドアニーリング装置100による並列処理の他の例を示す説明図である。図7の上段に示すように、本例の処理対象スピンには、フリップスピンが3つ存在する。
 図7の中段に示す細長い矩形は、一般的なSA方式による並列処理を表す。図7に示す右上がり斜線が付された矩形は、1つ目のフリップスピンが原因で無駄になる演算を表す。図5に示す例と同様、1つ目の並列処理の開始位置に応じて、1つ目のフリップスピンが原因で無駄になる演算の量は異なる。
 また、図7に示す右下がり斜線が付された矩形は、2つ目のフリップスピンが原因で無駄になる演算を表す。2つ目の並列処理は1つ目のフリップスピンの次のスピンから再開されるため、2つ目のフリップスピンが原因で無駄になる演算の量は不変である。
 また、図7に示す縦線が付された矩形は、3つ目のフリップスピンが原因で無駄になる演算を表す。3つ目の並列処理は2つ目のフリップスピンの次のスピンから再開されるため、3つ目のフリップスピンが原因で無駄になる演算の量は不変である。3つ目のフリップスピンが原因で無駄になる演算の量は、2つ目のフリップスピンの位置と3つ目のフリップスピンの位置で決定される。
 図7の下段に示す細長い矩形は、シミュレーテッドアニーリング装置100による並列処理を表す。図7の下段に示す処理では、1つ目の並列処理が終了した後、2つ目の並列処理の対象の中央のスピン(1つ目のフリップスピン)がフリップしている。シミュレーテッドアニーリング装置100は、1つ目のフリップスピンの次のスピンを開始位置として、残りの並列処理を実行する。
 また、3つ目の並列処理の対象の中央のスピン(2つ目のフリップスピン)がフリップしている。シミュレーテッドアニーリング装置100は、2つ目のフリップスピンの次のスピンを開始位置として、残りの並列処理を実行する。
 また、4つ目の並列処理の対象の中央のスピン(3つ目のフリップスピン)がフリップしている。シミュレーテッドアニーリング装置100は、3つ目のフリップスピンの次のスピンを開始位置として、残りの並列処理を実行する。
 固定幅内にフリップスピンが3つ存在する時、シミュレーテッドアニーリング装置100は、図7に示すように、一般的なSA方式に比べて、2つ目のフリップスピンが原因で無駄になる演算の量のうち、破線の両端矢印の長さ分の量を必ず削減できる。破線の両端矢印の長さは、1つ目の縦線から1つ目のフリップスピンの位置までの長さに相当する。
 同様に、シミュレーテッドアニーリング装置100は、図7に示すように、一般的なSA方式に比べて、3つ目のフリップスピンが原因で無駄になる演算の量のうち、両端矢印の長さ分の量を必ず削減できる。両端矢印の長さは、1つ目の縦線から2つ目のフリップスピンの位置までの長さに相当する。
 上記のように、図5に示す例と異なり、図7に示す固定幅内にフリップスピンが3つ存在する例では、一般的なSA方式に比べてシミュレーテッドアニーリング装置100は、フリップスピンが原因で無駄になる演算の量を必ず削減できる。また、シミュレーテッドアニーリング装置100は、固定幅内にフリップスピンが多く存在するほど、無駄になる演算の量を多く削減できる。
 以上のように、本実施形態のシミュレーテッドアニーリング装置100は、組合せ最適化問題をシミュレーテッドアニーリング方式で求解するシミュレーテッドアニーリング装置である。シミュレーテッドアニーリング装置100は、エネルギー計算部110と、フリップ確認部120と、開始位置・並列数計算部130と、エネルギー更新部140とを備える。
 フリップ確認部120は、組合せ最適化問題を表すイジングモデルにおけるエネルギー関数を構成する{(k-1)・n+1}番目~k・n番目(kは1以上の整数、nは2以上の整数)のn個のスピンそれぞれに対して、フリップが受理されるか否かの確認処理を並列数nで並列に実行する。
 また、エネルギー更新部140は、m番目(mは{(k-1)・n+1}以上k・n未満の整数)のスピンで最初にフリップの受理が確認されると、m番目のスピンに関連するスピンのエネルギーの変化量をm番目のスピンがフリップした状態で更新する。
 また、開始位置・並列数計算部130は、次の確認処理が実行されるスピンを(m+1)番目~k・n番目のスピンに、並列数を(n-m)にそれぞれ変更する。
 また、フリップ確認部120は、k・n番目のスピンがフリップするか否かが確定した後に(k・n+1)番目~(k+1)・n番目のn個のスピンそれぞれに対して確認処理を並列数nで並列に実行する。
 また、エネルギー計算部110は、エネルギー関数を構成する全てのスピンに渡ってスピンのフリップによるエネルギーの変化量をそれぞれ計算する。フリップ確認部120は、エネルギーの変化量がそれぞれ計算された後に最初の確認処理を実行する。
 また、上記のように、フリップ確認部120およびエネルギー更新部140は、ベクトル演算器で実現されてもよい。また、組合せ最適化問題は、巡回セールスマン問題でもよい。
[動作の説明]
 以下、本実施形態のシミュレーテッドアニーリング装置100の動作を図8を参照して説明する。図8は、本実施形態のシミュレーテッドアニーリング装置100による組合せ最適化問題求解処理の動作を示すフローチャートである。
 最初に、シミュレーテッドアニーリング装置100に、イジングモデル形式で記述された組合せ最適化問題が入力される。
 開始位置・並列数計算部130は、入力された組合せ最適化問題をSA方式で求解する際の並列処理の初期並列数K(Kは2以上の整数)を決定する(ステップS101)。
 次いで、エネルギー計算部110は、イジングモデルにおけるエネルギー関数を構成する全てのスピンに渡ってスピンのフリップによるエネルギーの変化量を並列に計算する(ステップS102)。次いで、シミュレーテッドアニーリング装置100は、イテレーションに入る(ステップS103)。
 次いで、シミュレーテッドアニーリング装置100は、スピンループに入る(ステップS104)。次いで、開始位置・並列数計算部130は、並列処理の開始位置と、並列数N(Nは2以上の整数)を変更する(ステップS105)。
 1回目のスピンループでは、開始位置・並列数計算部130は、並列処理の開始位置を1番目のスピンに設定する。また、開始位置・並列数計算部130は、並列数Nを初期並列数Kに設定する。
 次いで、フリップ確認部120は、1番目からK番目までのK個のスピンに対してそれぞれ、フリップチェック計算を並列に実行する(ステップS106~S106)。
 次いで、フリップ確認部120は、1番目からK番目までのK個のスピンに対してそれぞれ、フリップを受理するか否かを並列に決定する(ステップS107~S107)。
 次いで、フリップ確認部120は、フリップが受理されるスピンが最後尾(K番目のスピン)以外で少なくとも1つ存在するか否かを確認する(ステップS108)。
 フリップが受理されるスピンが最後尾以外で少なくとも1つ存在する場合(ステップS108におけるYes )、フリップ確認部120は、フリップが受理されるスピンのうち最初のスピンをフリップさせる(ステップS109)。
 次いで、エネルギー更新部140は、フリップしたスピンに関連するスピンのエネルギーの変化量を並列に更新する(ステップS110)。
 次いで、開始位置・並列数計算部130は、並列処理の開始位置と、並列数Nを変更する(ステップS111)。例えば、フリップが受理されるスピンのうち最初のスピンがM番目(Mは1以上K未満の整数)のスピンである場合、開始位置・並列数計算部130は、並列処理の開始位置を、(M+1)番目のスピンに変更する。
 また、開始位置・並列数計算部130は、並列数Nを、(K-M)に変更する。開始位置と並列数Nを変更した後、フリップ確認部120は、ステップS106~S106の処理を再度並列に実行する。
 例えば、フリップ確認部120は、(M+1)番目からK番目までの(K-M)個のスピンに対してそれぞれ、フリップチェック計算を並列に実行する(ステップS106~S106)。
 また、フリップ確認部120は、(M+1)番目からK番目までの(K-M)個のスピンに対してそれぞれ、フリップを受理するか否かを並列に決定する(ステップS107~S107)。
 フリップが受理されるスピンが最後尾以外で1つも存在しない場合(ステップS108におけるNo)、開始位置・並列数計算部130は、再度ステップS105の処理を実行する。
 2回目のスピンループを開始する時、開始位置・並列数計算部130は、並列処理の開始位置を、(K+1)番目のスピンに変更する。また、開始位置・並列数計算部130は、並列数Nを初期並列数Kに変更する(ステップS105)。
 シミュレーテッドアニーリング装置100は、イジングモデルにおけるエネルギー関数を構成するスピンのうち未だに向きが確定していないスピンが存在する間、ステップS105~S111の処理を繰り返し実行する。全てのスピンの向きが確定した時、シミュレーテッドアニーリング装置100は、スピンループを抜ける(ステップS112)。
 シミュレーテッドアニーリング装置100は、例えばイテレーション回数が所定の回数(数千回、数万回等)に到達するまでの間、ステップS104~S112の処理を繰り返し実行する。イテレーション回数が所定の回数に到達した時、シミュレーテッドアニーリング装置100は、イテレーションを抜け(ステップS113)、組合せ最適化問題求解処理を終了する。
[効果の説明]
 本実施形態のシミュレーテッドアニーリング装置100では、並列処理の対象のスピンがフリップした場合、開始位置・並列数計算部130が並列処理の開始位置と、並列数を変更する。開始位置と並列数が変更された上で、残りの並列処理が実行される。
 上記のように並列数を変更しながら並列処理を実行することによって、シミュレーテッドアニーリング装置100は、フリップが受理されるスピンが多いほど、一般的なSA方式に比べて無駄になる演算の量を削減できる。よって、シミュレーテッドアニーリング装置100は、シミュレーテッドアニーリング方式による繰り返し処理を効率良く並列化できる。
 また、本実施形態のシミュレーテッドアニーリング装置100のフリップ確認部120およびエネルギー更新部140は、ベクトル演算器で実現される場合がある。ベクトル演算器で実現されることによって、マルチプロセスやマルチスレッドによる並列化で生じていた同期によるオーバヘッドの影響が無くなる。
 以下、本実施形態のシミュレーテッドアニーリング装置100のハードウェア構成の具体例を説明する。図9は、本発明によるシミュレーテッドアニーリング装置のハードウェア構成例を示す説明図である。
 図9に示すシミュレーテッドアニーリング装置100は、CPU(Central Processing Unit )11と、主記憶部12と、通信部13と、補助記憶部14とを備える。また、ユーザが操作するための入力部15や、ユーザに処理結果または処理内容の経過を提示するための出力部16を備える。
 シミュレーテッドアニーリング装置100は、図9に示すCPU11が各構成要素が有する機能を提供するプログラムを実行することによって、ソフトウェアにより実現される。
 すなわち、CPU11が補助記憶部14に格納されているプログラムを、主記憶部12にロードして実行し、シミュレーテッドアニーリング装置100の動作を制御することによって、各機能がソフトウェアにより実現される。
 なお、図9に示すシミュレーテッドアニーリング装置100は、CPU11の代わりにDSP(Digital Signal Processor)を備えてもよい。または、図9に示すシミュレーテッドアニーリング装置100は、CPU11とDSPとを併せて備えてもよい。
 主記憶部12は、データの作業領域やデータの一時退避領域として用いられる。主記憶部12は、例えばRAM(Random Access Memory)である。
 通信部13は、有線のネットワークまたは無線のネットワーク(情報通信ネットワーク)を介して、周辺機器との間でデータを入力および出力する機能を有する。
 補助記憶部14は、一時的でない有形の記憶媒体である。一時的でない有形の記憶媒体として、例えば磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリが挙げられる。
 入力部15は、データや処理命令を入力する機能を有する。入力部15は、例えばキーボードやマウス等の入力デバイスである。
 出力部16は、データを出力する機能を有する。出力部16は、例えば液晶ディスプレイ装置等の表示装置、またはプリンタ等の印刷装置である。
 また、図9に示すように、シミュレーテッドアニーリング装置100において、各構成要素は、システムバス17に接続されている。
 シミュレーテッドアニーリング装置100において、補助記憶部14は、エネルギー計算部110、フリップ確認部120、開始位置・並列数計算部130、およびエネルギー更新部140を実現するためのプログラムを記憶している。
 なお、シミュレーテッドアニーリング装置100は、例えば内部に図3に示すような機能を実現するLSI(Large Scale Integration )等のハードウェア部品が含まれる回路が実装されてもよい。
 また、シミュレーテッドアニーリング装置100は、CPU等の素子を用いるコンピュータ機能を含まないハードウェアにより実現されてもよい。例えば、各構成要素の一部または全部は、汎用の回路(circuitry )または専用の回路、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップ(例えば、上記のLSI)によって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
 また、シミュレーテッドアニーリング装置100の各構成要素の一部または全部は、演算部と記憶部とを備えた1つまたは複数の情報処理装置で構成されていてもよい。
 各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
 次に、本発明の概要を説明する。図10は、本発明によるシミュレーテッドアニーリング装置の概要を示すブロック図である。本発明によるシミュレーテッドアニーリング装置20は、組合せ最適化問題をシミュレーテッドアニーリング方式で求解するシミュレーテッドアニーリング装置であって、組合せ最適化問題を表すイジングモデルにおけるエネルギー関数を構成する{(k-1)・n+1}番目~k・n番目(kは1以上の整数、nは2以上の整数)のn個のスピンそれぞれに対して、フリップが受理されるか否かの確認処理を並列数nで並列に実行する確認手段21(例えば、フリップ確認部120)と、m番目(mは{(k-1)・n+1}以上k・n未満の整数)のスピンで最初にフリップの受理が確認されると、m番目のスピンに関連するスピンのエネルギーの変化量をm番目のスピンがフリップした状態で更新する更新手段22(例えば、エネルギー更新部140)と、次の確認処理が実行されるスピンを(m+1)番目~k・n番目のスピンに、並列数を(n-m)にそれぞれ変更する変更手段23(例えば、開始位置・並列数計算部130)とを備える。
 そのような構成により、シミュレーテッドアニーリング装置は、シミュレーテッドアニーリング方式による繰り返し処理を効率良く並列化できる。
 また、確認手段21は、k・n番目のスピンがフリップするか否かが確定した後に(k・n+1)番目~(k+1)・n番目のn個のスピンそれぞれに対して確認処理を並列数nで並列に実行してもよい。
 そのような構成により、シミュレーテッドアニーリング装置は、シミュレーテッドアニーリング方式による繰り返し処理を効率良く並列化できる。
 また、シミュレーテッドアニーリング装置20は、エネルギー関数を構成する全てのスピンに渡ってスピンのフリップによるエネルギーの変化量をそれぞれ計算する計算手段(例えば、フリップ確認部120)を備え、確認手段21は、エネルギーの変化量がそれぞれ計算された後に最初の確認処理を実行してもよい。
 そのような構成により、シミュレーテッドアニーリング装置は、より高速に組合せ最適化問題を求解できる。
 また、確認手段21および更新手段22は、ベクトル演算器で実現されてもよい。
 そのような構成により、シミュレーテッドアニーリング装置は、マルチプロセスやマルチスレッドによる並列化における、同期によるオーバヘッドの影響を削減できる。
 また、組合せ最適化問題は、巡回セールスマン問題でもよい。
 そのような構成により、シミュレーテッドアニーリング装置は、より高速に巡回セールスマン問題を求解できる。
 以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
11 CPU
12 主記憶部
13 通信部
14 補助記憶部
15 入力部
16 出力部
17 システムバス
20、100 シミュレーテッドアニーリング装置
21 確認手段
22 更新手段
23 変更手段
110 エネルギー計算部
120 フリップ確認部
130 開始位置・並列数計算部
140 エネルギー更新部

Claims (9)

  1.  組合せ最適化問題をシミュレーテッドアニーリング方式で求解するシミュレーテッドアニーリング装置であって、
     前記組合せ最適化問題を表すイジングモデルにおけるエネルギー関数を構成する{(k-1)・n+1}番目~k・n番目(kは1以上の整数、nは2以上の整数)のn個のスピンそれぞれに対して、フリップが受理されるか否かの確認処理を並列数nで並列に実行する確認手段と、
     m番目(mは{(k-1)・n+1}以上k・n未満の整数)のスピンで最初にフリップの受理が確認されると、m番目のスピンに関連するスピンのエネルギーの変化量をm番目のスピンがフリップした状態で更新する更新手段と、
     次の確認処理が実行されるスピンを(m+1)番目~k・n番目のスピンに、並列数を(n-m)にそれぞれ変更する変更手段とを備える
     ことを特徴とするシミュレーテッドアニーリング装置。
  2.  確認手段は、k・n番目のスピンがフリップするか否かが確定した後に(k・n+1)番目~(k+1)・n番目のn個のスピンそれぞれに対して確認処理を並列数nで並列に実行する
     請求項1記載のシミュレーテッドアニーリング装置。
  3.  エネルギー関数を構成する全てのスピンに渡ってスピンのフリップによるエネルギーの変化量をそれぞれ計算する計算手段を備え、
     確認手段は、前記エネルギーの変化量がそれぞれ計算された後に最初の確認処理を実行する
     請求項1または請求項2記載のシミュレーテッドアニーリング装置。
  4.  確認手段および更新手段は、ベクトル演算器で実現される
     請求項1から請求項3のうちのいずれか1項に記載のシミュレーテッドアニーリング装置。
  5.  組合せ最適化問題は、巡回セールスマン問題である
     請求項1から請求項4のうちのいずれか1項に記載のシミュレーテッドアニーリング装置。
  6.  組合せ最適化問題をシミュレーテッドアニーリング方式で求解するシミュレーテッドアニーリング方法であって、
     前記組合せ最適化問題を表すイジングモデルにおけるエネルギー関数を構成する{(k-1)・n+1}番目~k・n番目(kは1以上の整数、nは2以上の整数)のn個のスピンそれぞれに対して、フリップが受理されるか否かの確認処理を並列数nで並列に実行し、
     m番目(mは{(k-1)・n+1}以上k・n未満の整数)のスピンで最初にフリップの受理が確認されると、m番目のスピンに関連するスピンのエネルギーの変化量をm番目のスピンがフリップした状態で更新し、
     次の確認処理が実行されるスピンを(m+1)番目~k・n番目のスピンに、並列数を(n-m)にそれぞれ変更する
     ことを特徴とするシミュレーテッドアニーリング方法。
  7.  k・n番目のスピンがフリップするか否かが確定した後に(k・n+1)番目~(k+1)・n番目のn個のスピンそれぞれに対して確認処理を並列数nで並列に実行する
     請求項6記載のシミュレーテッドアニーリング方法。
  8.  組合せ最適化問題をシミュレーテッドアニーリング方式で求解するコンピュータにおいて実行されるシミュレーテッドアニーリングプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
     前記コンピュータで実行されるときに、
     前記組合せ最適化問題を表すイジングモデルにおけるエネルギー関数を構成する{(k-1)・n+1}番目~k・n番目(kは1以上の整数、nは2以上の整数)のn個のスピンそれぞれに対して、フリップが受理されるか否かの確認処理を並列数nで並列に実行し、
     m番目(mは{(k-1)・n+1}以上k・n未満の整数)のスピンで最初にフリップの受理が確認されると、m番目のスピンに関連するスピンのエネルギーの変化量をm番目のスピンがフリップした状態で更新し、
     次の確認処理が実行されるスピンを(m+1)番目~k・n番目のスピンに、並列数を(n-m)にそれぞれ変更する
     シミュレーテッドアニーリングプログラム
     を記録したコンピュータ読み取り可能な記録媒体。
  9.  コンピュータで実行されるときに、
     k・n番目のスピンがフリップするか否かが確定した後に(k・n+1)番目~(k+1)・n番目のn個のスピンそれぞれに対して確認処理を並列数nで並列に実行する
     シミュレーテッドアニーリングプログラムを記録した
     請求項8記載の記録媒体。
PCT/JP2021/017018 2021-04-28 2021-04-28 シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法 WO2022230119A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2023516961A JP7559937B2 (ja) 2021-04-28 2021-04-28 シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法
PCT/JP2021/017018 WO2022230119A1 (ja) 2021-04-28 2021-04-28 シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法
US18/287,098 US20240202392A1 (en) 2021-04-28 2021-04-28 Simulated annealing device and simulated annealing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/017018 WO2022230119A1 (ja) 2021-04-28 2021-04-28 シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法

Publications (1)

Publication Number Publication Date
WO2022230119A1 true WO2022230119A1 (ja) 2022-11-03

Family

ID=83848132

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/017018 WO2022230119A1 (ja) 2021-04-28 2021-04-28 シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法

Country Status (3)

Country Link
US (1) US20240202392A1 (ja)
JP (1) JP7559937B2 (ja)
WO (1) WO2022230119A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020054062A1 (ja) * 2018-09-14 2020-03-19 富士通株式会社 最適化装置および最適化装置の制御方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7063211B2 (ja) 2018-09-19 2022-05-09 富士通株式会社 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置
JP7341804B2 (ja) 2019-09-06 2023-09-11 株式会社日立製作所 情報処理装置および情報処理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020054062A1 (ja) * 2018-09-14 2020-03-19 富士通株式会社 最適化装置および最適化装置の制御方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KNOPMAN, JONAS ET AL.: "Parallel simulated annealing: an adaptive approach", PROCEEDINGS 11TH INTERNATIONAL PARALLEL PROCESSING SYMPOSIUM, 1997, pages 522 - 526, XP010216830, Retrieved from the Internet <URL:https://ieeexplore.ieee.org/abstract/document/580950> [retrieved on 20210707], DOI: 10.1109/IPPS.1997.580950 *
MOTOMI SUZUKI; FUMIYO TAKANO; YUTA IDEGUCHI; TAKUYA ARAKI: "Parallel distributed processing of simulated annealing via speculative approach", IPSJ TECHNICAL REPORT; HIGH PERFORMANCE COMPUTING (HPC), vol. 2020-HPC-176, no. 2, 30 November 2019 (2019-11-30), JP , pages 1 - 6, XP009540926, ISSN: 2188-8841 *

Also Published As

Publication number Publication date
JP7559937B2 (ja) 2024-10-02
US20240202392A1 (en) 2024-06-20
JPWO2022230119A1 (ja) 2022-11-03

Similar Documents

Publication Publication Date Title
US11093669B2 (en) Method and system for quantum computing
EP3179415B1 (en) Systems and methods for a multi-core optimized recurrent neural network
Venkataramanaiah et al. Automatic compiler based FPGA accelerator for CNN training
Schubiger et al. GPU acceleration of ADMM for large-scale quadratic programming
US12067075B1 (en) Solving optimization problems using a hybrid computer system
US20170193361A1 (en) Neural network training performance optimization framework
US11429849B2 (en) Deep compressed network
Scanzio et al. Parallel implementation of artificial neural network training
KR20210042855A (ko) 메모리를 테스트하는 방법, 장치, 전자 기기, 저장 매체 및 프로그램
CN115461757A (zh) 具有单独存储器存取连接的深度学习加速器和随机存取存储器
WO2023138202A1 (zh) 量子线路模拟方法、装置、设备、存储介质及程序产品
Li et al. Optimized deep belief networks on CUDA GPUs
Jiang et al. GLARE: Accelerating Sparse DNN Inference Kernels with Global Memory Access Reduction
Morchdi et al. A Resource-efficient Task Scheduling System using Reinforcement Learning
Waidyasooriya et al. Architecture of an FPGA accelerator for molecular dynamics simulation using OpenCL
WO2022230119A1 (ja) シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法
Piccinini et al. GPU-accelerated algorithms for many-particle continuous-time quantum walks
US20180349321A1 (en) Parallel processing apparatus, parallel operation method, and parallel operation program
JP2020080048A (ja) 並列処理装置およびプログラム
Sundar et al. Massive parallelization and performance enhancement of an immersed boundary method based unsteady flow solver
JP2017167581A (ja) 並列計算機、fft演算プログラムおよびfft演算方法
Malysiak et al. An algorithmic skeleton for massively parallelized mean shift computation with applications to gpu architectures
Itu et al. Optimized GPU based simulation of the incompressible Navier-Stokes equations on a MAC grid
US11249724B1 (en) Processing-memory architectures performing atomic read-modify-write operations in deep learning systems
Ibeid et al. Toward accelerating the matrix inversion computation of symmetric positive-definite matrices on heterogeneous GPU-based systems

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21939280

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023516961

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 18287098

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21939280

Country of ref document: EP

Kind code of ref document: A1