IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7206476最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
<>
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図1
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図2
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図3
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図4
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図5
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図6
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図7
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図8
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図9
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図10
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図11
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図12
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図13
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図14
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図15
  • 特許-最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-10
(45)【発行日】2023-01-18
(54)【発明の名称】最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
(51)【国際特許分類】
   G06N 99/00 20190101AFI20230111BHJP
【FI】
G06N99/00 180
【請求項の数】 11
(21)【出願番号】P 2018172429
(22)【出願日】2018-09-14
(65)【公開番号】P2020046718
(43)【公開日】2020-03-26
【審査請求日】2021-06-10
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】柴▲崎▼ 崇之
【審査官】北川 純次
(56)【参考文献】
【文献】特開平5-120252(JP,A)
【文献】特開2008-140210(JP,A)
【文献】米国特許出願公開第2014/0025356(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
計算対象の最適化問題を変換したイジングモデルを表すイジングモデル情報と、温度パラメータとに基づいて前記イジングモデルの基底状態を探索する演算部と、
前記演算部における前記イジングモデルのエネルギーの分解能と、前記温度パラメータが最低値のときの前記イジングモデルの状態遷移の許容確率を表す第1の基準値とに基づいて前記最低値を決定し、前記イジングモデル情報に含まれる重み係数の絶対値の総和を、前記イジングモデルの全ビット数で割ることで、前記エネルギーの変化分の最大値を決定し、前記第1の基準値よりも大きく前記温度パラメータが最高値のときの前記許容確率を表す第2の基準値と、前記最大値とに基づいて前記最高値を決定し、前記演算部に前記最低値と前記最高値とを送信する制御部と、
を有する最適化装置。
【請求項2】
計算対象の最適化問題を変換したイジングモデルを表すイジングモデル情報と、温度パラメータとに基づいて前記イジングモデルの基底状態を探索する演算部と、
前記演算部における前記イジングモデルのエネルギーの分解能と、前記温度パラメータが最低値のときの前記イジングモデルの状態遷移の許容確率を表す第1の基準値とに基づいて前記最低値を決定し、前記イジングモデル情報に含まれる重み係数の絶対値の総和を、前記イジングモデルの全ビット数で割った値に、前記イジングモデル情報に含まれる全ビットのそれぞれについてのバイアス係数の絶対値のうちの最大の値を加算することで、前記エネルギーの変化分の最大値を決定し、前記第1の基準値よりも大きく前記温度パラメータが最高値のときの前記許容確率を表す第2の基準値と、前記最大値とに基づいて前記最高値を決定し、前記演算部に前記最低値と前記最高値とを送信する制御部と、
を有する最適化装置。
【請求項3】
計算対象の最適化問題を変換したイジングモデルを表すイジングモデル情報と、温度パラメータとに基づいて前記イジングモデルの基底状態を探索する演算部と、
前記演算部における前記イジングモデルのエネルギーの分解能と、前記温度パラメータが最低値のときの前記イジングモデルの状態遷移の許容確率を表す第1の基準値とに基づいて前記最低値を決定し、前記イジングモデルに含まれる全ビットのそれぞれが変化するときの前記エネルギーの変化分の第1の最大値を、前記全ビットのそれぞれについて計算し、前記全ビットのそれぞれについて計算した前記第1の最大値の中で最大の値を示すものを、前記変化分の最大値として決定し、前記第1の基準値よりも大きく前記温度パラメータが最高値のときの前記許容確率を表す第2の基準値と、前記最大値とに基づいて前記最高値を決定し、前記演算部に前記最低値と前記最高値とを送信する制御部と、
を有する最適化装置。
【請求項4】
前記演算部は、前記温度パラメータの値の下げ方を示す温度下降制御情報を受け、前記温度下降制御情報に基づいて、前記最高値から前記最低値まで、前記温度パラメータの値を小さくしていくことで、シミュレーテッド・アニーリング法による前記基底状態の探索を行う、請求項1乃至の何れか一項に記載の最適化装置。
【請求項5】
前記演算部は、レプリカ交換法により前記基底状態の探索を行い、
前記制御部は、前記最高値から前記最低値まで、前記演算部に含まれるレプリカ数分の、前記温度パラメータの値を含む温度スケジュール情報を決定し、前記温度スケジュール情報を前記演算部に送信する、請求項1乃至の何れか一項に記載の最適化装置。
【請求項6】
計算対象の最適化問題を変換したイジングモデルを表すイジングモデル情報と、温度パラメータとに基づいて前記イジングモデルの基底状態を探索する演算部と、
制御部と、を有する最適化装置の前記制御部が、
前記演算部における前記イジングモデルのエネルギーの分解能と、前記温度パラメータが最低値のときの前記イジングモデルの状態遷移の許容確率を表す第1の基準値とに基づいて前記最低値を決定し、
前記イジングモデル情報に含まれる重み係数の絶対値の総和を、前記イジングモデルの全ビット数で割ることで、前記エネルギーの変化分の最大値を決定し、
前記第1の基準値よりも大きく前記温度パラメータが最高値のときの前記許容確率を表す第2の基準値と、前記最大値とに基づいて前記最高値を決定し、
前記演算部に前記最低値と前記最高値とを送信する、
最適化装置の制御方法。
【請求項7】
計算対象の最適化問題を変換したイジングモデルを表すイジングモデル情報と、温度パラメータとに基づいて前記イジングモデルの基底状態を探索する演算部と、
制御部と、を有する最適化装置の前記制御部が、
前記演算部における前記イジングモデルのエネルギーの分解能と、前記温度パラメータが最低値のときの前記イジングモデルの状態遷移の許容確率を表す第1の基準値とに基づいて前記最低値を決定し、
前記イジングモデル情報に含まれる重み係数の絶対値の総和を、前記イジングモデルの全ビット数で割った値に、前記イジングモデル情報に含まれる全ビットのそれぞれについてのバイアス係数の絶対値のうちの最大の値を加算することで、前記エネルギーの変化分の最大値を決定し、
前記第1の基準値よりも大きく前記温度パラメータが最高値のときの前記許容確率を表す第2の基準値と、前記最大値とに基づいて前記最高値を決定し、
前記演算部に前記最低値と前記最高値とを送信する、
最適化装置の制御方法。
【請求項8】
計算対象の最適化問題を変換したイジングモデルを表すイジングモデル情報と、温度パラメータとに基づいて前記イジングモデルの基底状態を探索する演算部と、
制御部と、を有する最適化装置の前記制御部が、
前記演算部における前記イジングモデルのエネルギーの分解能と、前記温度パラメータが最低値のときの前記イジングモデルの状態遷移の許容確率を表す第1の基準値とに基づいて前記最低値を決定し、
前記イジングモデルに含まれる全ビットのそれぞれが変化するときの前記エネルギーの変化分の第1の最大値を、前記全ビットのそれぞれについて計算し、前記全ビットのそれぞれについて計算した前記第1の最大値の中で最大の値を示すものを、前記変化分の最大値として決定し、
前記第1の基準値よりも大きく前記温度パラメータが最高値のときの前記許容確率を表す第2の基準値と、前記最大値とに基づいて前記最高値を決定し、
前記演算部に前記最低値と前記最高値とを送信する、
最適化装置の制御方法。
【請求項9】
計算対象の最適化問題を変換したイジングモデルを表すイジングモデル情報と、温度パラメータとに基づいて前記イジングモデルの基底状態を探索する演算部を有する最適化装置の前記演算部における前記イジングモデルのエネルギーの分解能と、前記温度パラメータが最低値のときの前記イジングモデルの状態遷移の許容確率を表す第1の基準値とに基づいて前記最低値を決定し、
前記イジングモデル情報に含まれる重み係数の絶対値の総和を、前記イジングモデルの全ビット数で割ることで、前記エネルギーの変化分の最大値を決定し、
前記第1の基準値よりも大きく前記温度パラメータが最高値のときの前記許容確率を表す第2の基準値と、前記最大値とに基づいて前記最高値を決定し、
前記演算部に前記最低値と前記最高値とを送信する、
処理をコンピュータに実行させる最適化装置の制御プログラム。
【請求項10】
計算対象の最適化問題を変換したイジングモデルを表すイジングモデル情報と、温度パラメータとに基づいて前記イジングモデルの基底状態を探索する演算部を有する最適化装置の前記演算部における前記イジングモデルのエネルギーの分解能と、前記温度パラメータが最低値のときの前記イジングモデルの状態遷移の許容確率を表す第1の基準値とに基づいて前記最低値を決定し、
前記イジングモデル情報に含まれる重み係数の絶対値の総和を、前記イジングモデルの全ビット数で割った値に、前記イジングモデル情報に含まれる全ビットのそれぞれについてのバイアス係数の絶対値のうちの最大の値を加算することで、前記エネルギーの変化分の最大値を決定し、
前記第1の基準値よりも大きく前記温度パラメータが最高値のときの前記許容確率を表す第2の基準値と、前記最大値とに基づいて前記最高値を決定し、
前記演算部に前記最低値と前記最高値とを送信する、
処理をコンピュータに実行させる最適化装置の制御プログラム。
【請求項11】
計算対象の最適化問題を変換したイジングモデルを表すイジングモデル情報と、温度パラメータとに基づいて前記イジングモデルの基底状態を探索する演算部を有する最適化装置の前記演算部における前記イジングモデルのエネルギーの分解能と、前記温度パラメータが最低値のときの前記イジングモデルの状態遷移の許容確率を表す第1の基準値とに基づいて前記最低値を決定し、
前記イジングモデルに含まれる全ビットのそれぞれが変化するときの前記エネルギーの変化分の第1の最大値を、前記全ビットのそれぞれについて計算し、前記全ビットのそれぞれについて計算した前記第1の最大値の中で最大の値を示すものを、前記変化分の最大値として決定し、
前記第1の基準値よりも大きく前記温度パラメータが最高値のときの前記許容確率を表す第2の基準値と、前記最大値とに基づいて前記最高値を決定し、
前記演算部に前記最低値と前記最高値とを送信する、
処理をコンピュータに実行させる最適化装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、最適化装置、最適化装置の制御方法及び最適化装置の制御プログラムに関する。
【背景技術】
【0002】
従来、ノイマン型コンピュータが不得意とする多変数の最適化問題を、イジング型のエネルギー関数を用いた最適化装置(イジングマシンまたはボルツマンマシンと呼ばれる場合もある)によって計算する方法がある。最適化装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。
【0003】
最適化装置は、たとえば、ニューラルネットワークを用いて問題をモデル化することもできる。その場合、イジングモデルに含まれる複数のスピンに対応した複数のビットのそれぞれが、他のビットの値と、他のビットと自身のビットとの相互作用の大きさを示す重み係数(結合係数とも呼ばれる)とに応じて0または1を出力するニューロンとして機能する。最適化装置は、たとえば、シミュレーテッド・アニーリングやレプリカ交換法(交換モンテカルロ法などとも呼ばれる)などの確率的探索法により、イジングモデルのエネルギー関数の値の最小値が得られる各ビットの値を、解として求める。以下、エネルギー関数の値をエネルギーと呼ぶことにする。
【0004】
シミュレーテッド・アニーリングやレプリカ交換法では、エネルギー変化ΔEを引き起こす状態遷移(ビットの値の反転)を許容する確率Aを、たとえば、以下の式(1)のように決めることで、時刻無限大の極限で状態が最適解に到達する。
【0005】
A=f(-ΔE/T)=min[1,exp(-ΔE/T)] (1)
式(1)においてTは温度を表すパラメータである。シミュレーテッド・アニーリングでは、温度の初期値は問題に応じて十分大きく、確率的探索のある反復回数ごとに小さくなるように制御される。レプリカ交換法では、異なる温度が設定された複数のレプリカを用いて、各レプリカ内では温度が固定の状態で確率的探索が行われる。そして、ある反復回数ごとに、レプリカ間のエネルギー差と温度差に応じて、レプリカ間で状態(各ビットの値)が交換される。なお、レプリカ間で、状態の代りに温度を交換してもよい。
【先行技術文献】
【特許文献】
【0006】
【文献】特開平5-120252号公報
【文献】特開平8-153085号公報
【文献】特開2016-51350号公報
【文献】特開2016-103282号公報
【非特許文献】
【0007】
【文献】K. Hukushima and K. Nemoto, "Exchange Monte Carlo Method and Application to Spin Glass Simulations," J. Phys. Soc. Jpn., 1996, Volume 65, pp. 1604-1611
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、計算対象の最適化問題ごとに、取り得るエネルギーの変化分が異なるために、従来の最適化装置では、適切な範囲で温度を設定することが難しい。適切な範囲で温度が設定されなかった場合には、状態遷移の許容確率が適切に設定されず、状態遷移が頻繁に起こりすぎる、または状態遷移がまったく起こらない、という状況が生じる可能性がある。これにより、最適解への収束が困難になるため、解の精度が悪化するという問題があった。
【0009】
1つの側面では、本発明は、最適化問題の解の精度の悪化を抑制可能な最適化装置、最適化装置の制御方法及び最適化装置の制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
1つの実施態様では、計算対象の最適化問題を変換したイジングモデルを表すイジングモデル情報と、温度パラメータとに基づいて前記イジングモデルの基底状態を探索する演算部と、前記演算部における前記イジングモデルのエネルギーの分解能と、前記温度パラメータが最低値のときの前記イジングモデルの状態遷移の許容確率を表す第1の基準値とに基づいて前記最低値を決定し、前記イジングモデル情報に基づいて前記エネルギーの変化分の最大値を決定し、前記第1の基準値よりも大きく前記温度パラメータが最高値のときの前記許容確率を表す第2の基準値と、前記最大値とに基づいて前記最高値を決定し、前記演算部に前記最低値と前記最高値とを送信する制御部と、を有する最適化装置が提供される。
【0011】
また、1つの実施態様では、最適化装置の制御方法が提供される。また、1つの実施態様では、最適化装置の制御プログラムが提供される。
【発明の効果】
【0012】
1つの側面では、本発明は、最適化問題の解の精度の悪化を抑制できる。
【図面の簡単な説明】
【0013】
図1】第1の実施の形態の最適化装置の一例を示す図である。
図2】計算対象の最適化問題の違いによるエネルギー変化の違いの例を示す図である。
図3】第2の実施の形態の最適化装置の一例を示す図である。
図4】シミュレーテッド・アニーリング法により基底状態の探索を行う演算部の一例を示す図である。
図5】演算回路の一例を示す図である。
図6】温度パラメータTの制御例を示す図である。
図7】第3の実施の形態の最適化装置の一例を示す図である。
図8】レプリカ交換法により基底状態の探索を行う演算部の一例を示す図である。
図9】第3の実施の形態の最適化装置の制御部の動作の流れの一例を示すフローチャートである。
図10】第4の実施の形態の最適化装置の一例を示す図である。
図11】第5の実施の形態の最適化装置の一例を示す図である。
図12】第6の実施の形態の最適化装置の一例を示す図である。
図13】第6の実施の形態の最適化装置の制御部の動作の流れの一例を示すフローチャートである。
図14】第7の実施の形態の最適化装置の一例を示す図である。
図15】第7の実施の形態の最適化装置の制御部の動作の流れの一例を示すフローチャートである。
図16】制御装置のハードウェア例を示す図である。
【発明を実施するための形態】
【0014】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
以下に示す最適化装置は、計算対象の最適化問題を変換したイジングモデルの全スピンに対応する全ビットのそれぞれの値の組み合わせのうち、エネルギー関数が最小値となるときの各ビットの値(イジングモデルの基底状態)を探索するものである。
【0015】
イジング型のエネルギー関数E(x)は、たとえば、以下の式(2)で定義される。
【0016】
【数1】
【0017】
右辺の1項目は、イジングモデルの全ビットの全組み合わせについて、漏れと重複なく、2つのビットの値(0または1)と重み係数との積を積算したものである。xは、i番目のビットの値を表す変数(状態変数とも呼ばれる)、xは、j番目のビットの値を表す変数であり、Wijは、i番目とj番目のビットの相互作用の大きさを示す重み係数である。なお、Wii=0である。また、Wij=Wjiであることが多い(つまり、重み係数による係数行列は対称行列である場合が多い)。また重み係数Wijは、所定のビット幅(たとえば、16ビット、32ビット、64ビット、128ビットなど)をもつ。
【0018】
右辺の2項目は、全ビットのそれぞれのバイアス係数とビットの値を表す変数との積の総和を求めたものである。bは、i番目のビットのバイアス係数を示している。
また、変数xが変化して1-xとなると、変数xの増加分は、Δx=(1-x)-x=1-2xと表せる。ビットの値の反転に伴うエネルギー変化(エネルギーの変化分)ΔEは、以下の式(3)で表される。
【0019】
【数2】
【0020】
式(3)において、変数xが1から0に変化するとき、Δxは-1となり、変数xが0から1に変化するとき、Δxは1となる。なお、hはローカルフィールド(局所場)と呼ばれ、Δxに応じてローカルフィールドhに符号(+1または-1)を乗じたものがエネルギー変化ΔEである。
【0021】
また、変数xが0から1に変化したときのローカルフィールドhの変化分Δhは、+Wij、変数xが1から0に変化したときの変化分Δhは、-Wijと表せる。
(第1の実施の形態)
図1は、第1の実施の形態の最適化装置の一例を示す図である。
【0022】
第1の実施の形態の最適化装置10は、たとえば、1チップまたは複数チップの半導体集積回路(たとえば、FPGA(Field Programmable Gate Array)など)である。最適化装置10は、演算部11と制御部12を有する。
【0023】
演算部11は、イジングモデルを表すイジングモデル情報と、温度パラメータTとに基づいて、イジングモデルの基底状態を探索する。演算部11が用いるイジングモデル情報には、重み係数群W、バイアス係数群bが含まれる。さらに、図1の例では、演算部11には、イタレーション回数Nitが供給されている。
【0024】
基底状態を探索する方法として、たとえば、シミュレーテッド・アニーリングやレプリカ交換法などの確率的探索法が用いられる。演算部11は、前述の式(1)に示した確率で状態遷移を許容してビットの値の更新を行う処理を、イタレーション回数Nit、繰り返したときの各ビットの値(状態xout)を基底状態の探索結果(解)として出力する。また、演算部11は、そのときのエネルギーEを出力する。
【0025】
演算部11は、イジングモデル情報やイタレーション回数Nitを、たとえば、図示しない制御装置(たとえば、PC(Personal Computer))から取得する。
制御部12は、イジングモデル情報のほか、演算部11におけるイジングモデルのエネルギーの分解能Rと、イジングモデルの状態遷移の許容確率の基準値Amin,Amaxとを、たとえば、図示しない制御装置から取得する。分解能Rは、エネルギー変化の最小値を示し、演算部11のハードウェアに依存する値である。演算部11のハードウェアに応じた適切な分解能Rが、たとえば、制御装置により設定される。
【0026】
基準値Aminは、温度パラメータTの最低値Tminのときの許容確率を表す値である。低温時(温度パラメータTが小さいとき)にはエネルギーが増加する方向への状態遷移の許容確率が十分低くなるように、基準値Aminとして、十分小さい値(たとえば、0.001など)が設定される。基準値Amaxは、基準値Aminより大きく、温度パラメータTの最高値Tmaxのときの許容確率を表す値である。高温時(温度パラメータTが大きいとき)には全ての状態(エネルギーが大きく増加する方向も含む)への状態遷移の許容確率が十分に高くなるように、基準値Amaxとして、平均的な値(たとえば、0.25、0.5、0.75など)が設定される。
【0027】
最低値Tminは、以下の式(4)で表せる。
min=-R/ln(Amin) (4)
制御部12は、分解能Rと基準値Aminに基づいて式(4)を計算することで、最低値Tminを決定する。
【0028】
一方、最高値Tmaxは、以下の式(5)で表せる。
max=-max(ΔE)/ln(Amax) (5)
式(5)において、max(ΔE)は、エネルギー変化ΔEの最大値を表す。
【0029】
制御部12は、イジングモデル情報に基づいて、max(ΔE)を決定する。
前述の式(3)において、バイアス係数bに対して重み係数Wijが支配的であるとすると、max(ΔE)は以下の式(6)で近似できる。
【0030】
【数3】
【0031】
式(6)において、Nは、イジングモデルの全ビット数である。つまり、max(ΔE)は、重み係数Wijの絶対値の総和を、全ビット数Nで割った値により近似される。
制御部12は、たとえば、イジングモデル情報に含まれる重み係数群Wと、全ビット数Nとに基づいて、式(6)を計算することでmax(ΔE)を決定する。そして、制御部12は、max(ΔE)と、基準値Amaxに基づいて、式(5)を計算することで、最高値Tmaxを決定する。
【0032】
たとえば、重み係数Wijを符号付き16ビットで全て最大値とし、イジングモデルの全ビット数Nを1024とし、バイアス係数bを無視すると、max(ΔE)は、1024×215=33554432となる。Amax=0.75とした場合、式(5)より、Tmax=-33554432/ln(0.75)=116637202となる。なお、実際には、重み係数Wijが全て最大値となることはないため、最高値Tmaxは上記の値より小さい。
【0033】
また、ビット間の相互作用の有無のみが考慮される最適化問題では、重み係数Wijは、1、0、-1の何れかである。この場合、max(ΔE)は、1024×1=1024となり、Amax=0.75とした場合、最高値Tmaxは3560程度となる。
【0034】
このように、計算対象の最適化問題によって、最高値Tmaxは大きく異なる。
なお、max(ΔE)の他の算出方法(バイアス係数bを用いる方法など)については、後述する。
【0035】
制御部12は、決定した最低値Tminと最高値Tmaxとを、たとえば、温度スケジュール情報Tscの一部として演算部11に送信する。
演算部11が、シミュレーテッド・アニーリング法により基底状態の探索を行う場合には、温度スケジュール情報Tscとして、さらに、温度パラメータTの値の下げ方を示す情報も演算部11に供給される。なお、制御部12が直接、所定の温度スケジュールにしたがって、温度パラメータTを最高値Tmaxから最低値Tminまで、小さくするように制御してもよい。
【0036】
演算部11が、レプリカ交換法により基底状態の探索を行う場合、制御部12は、最高値Tmaxから最低値Tminまで、演算部11に含まれるレプリカ数分の温度パラメータTの値を含む温度スケジュール情報Tscを決定し、演算部11に送信する。
【0037】
制御部12は、たとえば、ASIC(Application Specific Integrated Circuit)やFPGAなどの特定用途の電子回路にて実現できる。なお、制御部12は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサであってもよい。その場合、プロセッサは、図示しないメモリに記憶されたプログラムを実行することで、上記のような処理を行う。
【0038】
以下、第1の実施の形態の最適化装置10の動作例を説明する。
図1には、最適化装置10の制御部12の動作の流れの一例が示されている。制御部12は、イジングモデル情報(全ビット数N、重み係数群W)、イタレーション回数Nit、分解能R、基準値Amin,Amaxなどの情報を、たとえば、図示しない制御装置から取得する(ステップS1)。そして、制御部12は、前述のTmin決定処理(ステップS2)、Tmax決定処理(ステップS3)を行い、最低値Tmin、最高値Tmaxを含む温度スケジュール情報Tscを、演算部11に送信する(ステップS4)。なお、ステップS2,S3の処理の順序は逆でもよい。
【0039】
その後、演算部11は、温度スケジュール情報Tscによって決まる温度パラメータTと、イジングモデル情報に基づいて、イジングモデルの基底状態を探索する。たとえば、演算部11は、前述の式(1)に示した確率で状態遷移を許容してビットの値の更新を行う処理を、イタレーション回数Nit、繰り返したときの各ビットの値(状態xout)を基底状態の探索結果(解)として出力する。また、演算部11は、そのときのエネルギーEを出力する。
【0040】
図2は、計算対象の最適化問題の違いによるエネルギー変化の違いの例を示す図である。図2において、横軸は状態xを表し、縦軸はエネルギーE(x)を表す。
たとえば、ある最適化問題では、エネルギーE(x)は波形15aで表され、別の最適化問題では、エネルギーE(x)は波形15bで表される。波形15a,15bからわかるように、取り得るエネルギーE(x)の変化分は、波形15aよりも波形15bのほうが大きい。
【0041】
このため、両方の最適化問題を解く際に、同じ温度パラメータTを用いた場合、エネルギーE(x)が波形15aで表される最適化問題を解く際には、状態遷移が頻繁に起こりすぎる可能性がある。または、エネルギーE(x)が波形15bで表される最適化問題を解く際には、状態遷移がまったく起こらない可能性がある。これにより、最適解への収束が困難になるため、解の精度が悪化する。
【0042】
第1の実施の形態の最適化装置10は、イジングモデル情報から、取り得るエネルギーの変化分を決定し、その変化分に基づいて基底状態の探索時の温度パラメータTの範囲を決定する。これにより、計算対象の最適化問題に応じた温度パラメータTの範囲で演算部11が演算を行うことが可能になる。このため、状態遷移の許容確率が適切になり最適化問題の解の精度の悪化を抑制できる。
【0043】
(第2の実施の形態)
図3は、第2の実施の形態の最適化装置の一例を示す図である。
第2の実施の形態の最適化装置20は、演算部21、制御部22を有する。
【0044】
演算部21は、イジングモデル情報と、温度パラメータTとに基づいて、シミュレーテッド・アニーリング法により、イジングモデルの基底状態を探索する。演算部21が用いるイジングモデル情報には、重み係数群W、バイアス係数群b、各ビットの初期値xiniが含まれる。さらに、図3の例では、演算部21には、イタレーション回数Nitと、温度パラメータTの値の下げ方を示す温度下降制御情報Tdが供給されている。イジングモデル情報や、イタレーション回数Nit、温度下降制御情報Tdは、たとえば、PCなどの制御装置から供給される。
【0045】
演算部21は、前述の式(1)に示した確率で状態遷移を許容してビットの値の更新を行う処理を、イタレーション回数Nit、繰り返したときの各ビットの値(状態xout)を基底状態の探索結果(解)として出力する。また、演算部21は、そのときのエネルギーEを出力する。演算部21の回路例については後述する。
【0046】
制御部22は、情報取得部22a、Tmax計算部22b、Tmin計算部22c、送信部22dを有する。
情報取得部22aは、たとえば、PCなどの制御装置から供給される、重み係数群W、全ビット数N、前述した基準値Amin,Amax、分解能Rを取得する。
【0047】
max計算部22bは、重み係数群Wと、全ビット数Nとに基づいて、前述の式(6)を計算することで、max(ΔE)を決定し、max(ΔE)と、基準値Amaxに基づいて、式(5)を計算することで、温度パラメータTの最高値Tmaxを決定する。
【0048】
min計算部22cは、分解能Rと基準値Aminに基づいて前述の式(4)を計算することで、最低値Tminを決定する。
送信部22dは、最低値Tmin、最高値Tmaxを演算部21に送信する。
【0049】
(演算部21の例)
図4は、シミュレーテッド・アニーリング法により基底状態の探索を行う演算部の一例を示す図である。
【0050】
演算部21は、記憶部21a、演算回路部21b、選択回路部21c、状態更新部21d、エネルギー更新部21e、制御回路21fを有する。
記憶部21aは、重み係数群W(重み係数W11~WNN)を記憶する。記憶部21aは、たとえば、レジスタやSRAM(Static Random Access Memory)などである。
【0051】
演算回路部21bは、バイアス係数群bや記憶部21aに記憶された重み係数群Wを取得し、状態更新部21dから全ビットのうち更新された更新ビットの値を受け、選択回路部21cから更新ビットを識別するindexを受ける。そして、演算回路部21bは、それらに基づいて、N個のビットの何れか1つが変化することによるイジングモデルのエネルギー変化をN個のビットのそれぞれについて算出する。さらに、演算回路部21bは、熱励起エネルギーと、N個のビットのそれぞれについて算出したエネルギー変化との大小関係に基づいて、各ビットについて更新を許容するか否かを判定する。そして、演算回路部21bは、N個のビットのそれぞれについての更新を許容するか否かの判定結果を示すフラグ情報と、エネルギー変化を出力する。
【0052】
熱励起エネルギーは、たとえば、後述の乱数発生回路が生成した乱数と、制御回路21fから供給される温度パラメータTとに基づいて決定される。
図4の例では、演算回路部21bは、N個の演算回路21b1,21b2,…,21bNを有する。
【0053】
演算回路21b1は、index=1のビットが変化することによるイジングモデルのエネルギー変化を算出し、熱励起エネルギーと、その算出したエネルギー変化との大小関係に基づいて、更新を許容するか否かを判定する。そして、演算回路21b1は、フラグ情報と、エネルギー変化とを出力する。演算回路21b2~21bNは、index=2~Nのビットについて、演算回路21b1と同様の処理を行う。
【0054】
演算回路21b1~21bNの回路例については後述する。
選択回路部21cは、フラグ情報に基づいて、乱数を用いて、更新を許容する1つの許容ビットを選択し、選択した許容ビットについてのフラグ情報、エネルギー変化、その許容ビットを識別するindexを出力する。選択回路部21cは、indexを自身で生成してもよいし、演算回路21b1~21bNがそれぞれindexを保持している場合には、演算回路21b1~21bNから各indexを取得し、選択した許容ビットのindexを出力してもよい。
【0055】
状態更新部21dは、各ビットの値を保持し、選択回路部21cが出力するフラグ情報と、indexとに基づいて、保持内容を更新する。状態更新部21dには、各ビットの初期値xiniが設定され、制御回路21fの制御のもと、ビットの値の更新を行う処理が、イタレーション回数Nit、繰り返されたときの各ビットの値(状態xout)を基底状態の探索結果として出力する。
【0056】
エネルギー更新部21eは、選択回路部21cが出力するフラグ情報と、エネルギー変化とに基づいて、イジングモデルのエネルギーを更新する。エネルギー更新部21eは、制御回路21fの制御のもと、ビットの値の更新を行う処理が、イタレーション回数Nit、繰り返されたときのエネルギーEを出力する。
【0057】
制御回路21fは、温度パラメータTの最高値Tmax、最低値Tmin、温度下降制御情報Tdに基づいて、演算回路部21bに供給する温度パラメータTを制御する。また、制御回路21fは、ビットの値の更新を行う処理が、イタレーション回数Nit、繰り返されたか否かを判定する。そして、制御回路21fは、ビットの値の更新を行う処理が、イタレーション回数Nit、繰り返されたときに、状態更新部21dに保持している各ビットの値を出力させ、エネルギー更新部21eにそのときのエネルギーEを出力させる。
【0058】
(演算回路の一例)
図5は、演算回路の一例を示す図である。図5では、図4に示した演算回路21b1の例が示されている。図4に示した他の演算回路についても同様の回路により実現できる。
【0059】
演算回路21b1は、ΔE計算部30、状態遷移判定部31を有する。
ΔE計算部30は、選択回路30a,30b、乗算器30c、加算器30d、レジスタ30e、乗算器30f、選択回路30gを有する。
【0060】
選択回路30aは、図4に示した選択回路部21cから供給されるindex=jに基づき、記憶部21aに格納されている重み係数W1j(j=1~N)のうち1つを選択して出力する。
【0061】
たとえば、index=Nが選択回路30aに入力されたとき、選択回路30aは、重み係数W1Nを選択する。
選択回路30bは、index=jのビットの変化分Δxの演算を実現するものである。index=jのビットの値である変数xが1から0に変化するとき、Δxは-1となり、変数xが0から1に変化するとき、Δxは1となる。選択回路30bは、状態更新部21dから供給される変数x(index=jのビットの更新値)が0のときには、-1を選択して出力し、変数xが1のときには、1を選択して出力する。
【0062】
乗算器30cは、選択回路30aが出力する重み係数W1jと、選択回路30bが出力する値との積を出力する。
加算器30dは、乗算器30cが出力する値と、レジスタ30eに格納されている値とを加算して出力する。
【0063】
レジスタ30eは、図示しないクロック信号に同期して、加算器30dが出力する値(ローカルフィールドh)を取り込む。レジスタ30eは、たとえば、フリップフロップである。なお、レジスタ30eに格納されるローカルフィールドhの初期値はバイアス係数bである。
【0064】
乗算器30fは、レジスタ30eが出力するローカルフィールドhと選択回路30gが出力する値との積を出力する。この積が、エネルギー変化ΔEである。
選択回路30gは、-Δxの演算を実現するものである。選択回路30gは、たとえば、状態更新部21dに保持されている現在の変数xが0のときは、-1を出力し、現在の変数xが1のときは1を出力する。
【0065】
状態遷移判定部31は、符号反転部31a、オフセット加算部31b、乱数発生回路31c、選択法則適用部31d、乗算器31e、比較回路31fを有する。
符号反転部31aは、エネルギー変化ΔEに-1を掛けて符号を反転させる。
【0066】
オフセット加算部31bは、符号反転部31aの出力値(-ΔE)に、オフセット値を加える。オフセット加算部31bは、前述の選択回路部21cから供給されるフラグ情報であるflgが、状態遷移を許容しないことを示すとき(つまり状態遷移が生じないとき)、オフセット値を増加していく。一方、オフセット加算部31bは、flgが、状態遷移を許容することを示すとき(つまり状態遷移が生じるとき)には、オフセット値を0にする。オフセット値が大きくなると状態遷移が許容されやすくなり、現在の状態が局所解にある場合、その局所解からの脱出が促進される。
【0067】
乱数発生回路31cは、0以上、1以下の一様乱数rを発生する。
選択法則適用部31dは、シミュレーテッド・アニーリングを行うための選択法則(たとえば、メトロポリス法)に基づいた値を出力する。
【0068】
シミュレーテッド・アニーリングが行われる場合、前述のように、あるエネルギー変化ΔEを引き起こす状態遷移を許容する確率Aを、たとえば、式(1)のように決めることで、時刻無限大の極限で状態が最適解に到達することが証明されている。
【0069】
式(1)で表される確率Aを用いた場合、十分な反復後に定常状態に達したとすると、各状態の占有確率は熱力学における熱平衡状態に対するボルツマン分布にしたがう。そして、高い温度から徐々に下げていくとエネルギーの低い状態の占有確率が増加するため、十分温度が下がるとエネルギーの低い状態が得られるはずである。この様子が材料を焼き鈍したときの状態変化とよく似ているため、この方法はシミュレーテッド・アニーリングと呼ばれるのである。このとき、エネルギーが上がる状態遷移が確率的に起こることは、物理学における熱励起に相当する。
【0070】
確率Aでエネルギー変化ΔEを引き起こす状態遷移を許容することを示すフラグ情報(=1)を出力する回路は、式(1)のf(-ΔE/T)と、一様乱数rとの比較結果に基づいた値を出力する比較器によって実現できる。
【0071】
ただ、次のような変形を行っても同じ機能が実現できる。2つの数に同じ単調増加関数を作用させても大小関係は変化しない。したがって比較器の2つの入力に同じ単調増加関数を作用させても比較器の出力は変わらない。たとえば、f(-ΔE/T)に作用させる単調増加関数としてf(-ΔE/T)の逆関数f-1(-ΔE/T)、一様乱数rに作用させる単調増加関数としてf-1(-ΔE/T)の-ΔE/Tをrとしたf-1(r)を用いることができる。その場合、上記の比較器と同様の機能を有する回路は、-ΔE/Tがf-1(r)より大きいとき1を出力する回路でよいことがわかる。さらに温度パラメータTが正であることから、その回路は、-ΔEがT・f-1(r)より大きいとき1を出力する回路でよい。
【0072】
選択法則適用部31dは、入力される一様乱数rを上記のf-1(r)の値に変換する変換テーブルを用いて、f-1(r)の値を出力する。メトロポリス法が適用される場合、f-1(r)は、ln(r)である。変換テーブルは、たとえば、RAM(Random Access Memory)、フラッシュメモリなどのメモリに記憶されている。
【0073】
乗算器31eは、制御回路21fから供給される温度パラメータTと、f-1(r)との積(T・f-1(r))を出力する。T・f-1(r)は、熱励起エネルギーに相当する。
【0074】
比較回路31fは、オフセット加算部31bによる加算結果と、T・f-1(r)とを比較し、加算結果が、T・f-1(r)より大きい場合、フラグ情報としてflg=1を出力し、T・f-1(r)より小さい場合、flg=0を出力する。
【0075】
以下、第2の実施の形態の最適化装置20の動作例を説明する。
制御部22の情報取得部22aは、イジングモデル情報(全ビット数N、重み係数群W)、分解能R、基準値Amin,Amaxを、たとえば、図示しない制御装置から取得する。そして、Tmax計算部22bとTmin計算部22cは、情報取得部22aが取得した情報に基づいて、温度パラメータTの最高値Tmaxと最低値Tminとを決定し、送信部22dは、最高値Tmaxと最低値Tminを演算部21に送信する。
【0076】
その後、演算部21は、前述の式(1)に示した確率で状態遷移を許容してビットの値の更新を行う処理を、イタレーション回数Nit、繰り返す。演算部21の制御回路21fは、ビットの更新を行う処理が、所定回数(<Nit)、繰り返されるごとに、温度パラメータTの値を温度下降制御情報Tdに基づいて小さくしていく。温度パラメータTの初期値は最高値Tmaxであり、終値は最低値Tminである。
【0077】
図6は、温度パラメータTの制御例を示す図である。図6において、横軸は更新処理回数を表し、縦軸は温度パラメータTの値を表している。
温度パラメータTは、最高値Tmaxからビットの値の更新を行う処理の回数(更新処理回数)が大きくなるごとに小さくなっている。更新処理回数が大きいほど、温度パラメータTが下がる度合いが小さくなり、最低値Tminに達したときに、制御回路21fによる温度パラメータTの制御が終わる。なお、図6では更新処理回数が増えるとともに、連続的に温度パラメータTが減少しているように見えるが、前述のように各温度パラメータTの値で、所定回数の更新処理が行われる。
【0078】
演算部21は、ビットの値の更新を行う処理が、イタレーション回数Nit、繰り返されたときの各ビットの値(状態xout)を基底状態の探索結果として出力する。また、演算部21は、そのときのエネルギーEを出力する。
【0079】
以上のような第2の実施の形態の最適化装置20は、イジングモデル情報から、取り得るエネルギーの変化分を決定し、その変化分に基づいて基底状態の探索時の温度パラメータTの範囲を決定する。これにより、計算対象の最適化問題に応じた温度パラメータTの範囲で演算部21がシミュレーテッド・アニーリング法を用いた演算を行うことが可能になる。このため、状態遷移の許容確率が適切になり最適化問題の解の精度の悪化を抑制できる。
【0080】
(第3の実施の形態)
図7は、第3の実施の形態の最適化装置の一例を示す図である。図7において、図3に示した要素と同じ要素については同一符号が付されている。
【0081】
第3の実施の形態の最適化装置40は、演算部41、制御部42を有する。
演算部41は、イジングモデル情報と、温度パラメータTとに基づいて、レプリカ交換法により、イジングモデルの基底状態を探索する。演算部41は、それぞれ同じN個のビットについての前述の更新処理を行う複数のレプリカを有する。各レプリカには、異なる温度パラメータTが設定され、更新処理が所定回数に達するごとに、レプリカ間のエネルギー差と温度差(温度パラメータTの値の差)に応じて、レプリカ間で状態または温度パラメータTの値が交換される。
【0082】
演算部41が用いるイジングモデル情報には、重み係数群W、バイアス係数群b、各ビットの初期値xiniが含まれる。さらに、図7の例では、演算部41には、イタレーション回数Nitが供給されている。イジングモデル情報や、イタレーション回数Nitは、たとえば、PCなどの制御装置から供給される。
【0083】
演算部41は、たとえば、各レプリカにおいて、前述の更新処理を、イタレーション回数Nit、繰り返したとき、最低のエネルギーEを示したレプリカにおいて、最低のエネルギーEを示したときの各ビットの値(状態xout)を基底状態の探索結果として出力する。また、演算部41は、その最低のエネルギーEを出力する。演算部41の回路例については後述する。
【0084】
制御部42の情報取得部42aは、第2の実施の形態の最適化装置20の制御部22の情報取得部22aが取得する情報のほか、演算部41のレプリカ数nを取得する。レプリカ数nも、たとえば、PCなどの制御装置から供給される。
【0085】
さらに、制御部42は、第2の実施の形態の最適化装置20の制御部22と異なり、Tsc計算部42bを有する。
Tsc計算部42bは、情報取得部42aが取得したレプリカ数nと、Tmax計算部22bとTmin計算部22cが決定した温度パラメータTの最高値Tmaxと最低値Tminとを受ける。そして、Tsc計算部42bは、レプリカ数n、最高値Tmax、最低値Tminに基づいて、最高値Tmaxから最低値Tminの範囲で、n個の温度パラメータT,T,T,…,Tを含む温度スケジュール情報Tscを計算する。
【0086】
温度パラメータT~Tは、たとえば、T=Tmin、T=2×(Tmax-Tmin)/(T-1)、T=3×(Tmax-Tmin)/(T-1)、…、T=Tmaxなどのように計算される。
【0087】
なお、温度パラメータT~Tは等差数列または等比数列になるように生成されてもよい。
送信部42cは、温度スケジュール情報Tscを演算部41に送信する。
【0088】
(演算部41の例)
図8は、レプリカ交換法により基底状態の探索を行う演算部の一例を示す図である。
演算部41は、n個のレプリカ41a1,41a2,…,41anと、交換制御部41bを有する。
【0089】
レプリカ41a1~41anの各々は、図4に示したような記憶部21a、演算回路部21b、選択回路部21c、状態更新部21d、エネルギー更新部21eを有する。レプリカ41a1~41anには、同じ重み係数群Wが記憶され、同じバイアス係数群b、同じ初期値xiniが設定される。しかし、レプリカ41a1~41anには、交換制御部41bによって、それぞれ異なる温度パラメータT(温度パラメータT~Tの何れか)が設定され、レプリカ41a1~41anは、その温度パラメータTを用いてビットの値を更新する処理を行う。
【0090】
なお、レプリカ41a1~41anの各々は、現時点におけるエネルギーの最低値と、その最低値が得られたときの状態を保持する。
交換制御部41bは、温度スケジュール情報Tscに基づいて、n個のレプリカ41a1~41anに、それぞれ異なる温度パラメータTを設定する。また、交換制御部41bは、たとえば、レプリカ41a1~41anでの更新処理回数が所定回数に達するたびに、レプリカ41a1~41anにおけるエネルギーを観測する。そして、交換制御部41bは、レプリカ41a1~41anのうちの2つにおけるエネルギーと温度パラメータを用い、以下の式(7)で表される交換確率に基づいて2つのレプリカに設定された温度パラメータTを交換する。なお、交換制御部41bは、温度パラメータTの代りに、2つのレプリカの状態を交換してもよい。
【0091】
ij=f((1/T-1/T)(E-E)) (7)
式(7)において、Tは、レプリカ41a1~41anのうち、i番目のレプリカに設定された温度パラメータであり、Tは、レプリカ41a1~41anのうち、j番目のレプリカに設定された温度パラメータである。また、Eは、レプリカ41a1~41anのうち、i番目のレプリカにおけるエネルギー、Eは、レプリカ41a1~41anのうち、j番目のレプリカにおけるエネルギーである。また、式(7)において、関数fは、たとえば、式(1)と同じものであり、式(1)のmin[1,exp(-ΔE/T)]の-ΔE/Tの代りに、(1/T-1/T)(E-E)が用いられる。
【0092】
このような交換を行ってもそれぞれの温度パラメータTの値における状態の確率分布はその温度パラメータTの値に対するボルツマン分布に収束する。なお、交換が行われる2つのレプリカは、交換確率が小さくなりすぎないように、設定される温度パラメータTの値が近いものが選択される。
【0093】
交換制御部41bは、レプリカ41a1~41anにおけるビットの値の更新処理の回数が、イタレーション回数Nitに達したとき、レプリカ41a1~41anの各々におけるエネルギーの最低値と、その最低値が得られたときの状態を取得する。そして、交換制御部41bは、レプリカ41a1~41anの各々におけるエネルギーの最低値のうち、最も低いエネルギーEと、そのエネルギーEが得られたときの状態xoutを出力する。
【0094】
以下、第3の実施の形態の最適化装置40の動作例を説明する。
図9は、第3の実施の形態の最適化装置の制御部の動作の流れの一例を示すフローチャートである。
【0095】
最適化装置40の制御部42の情報取得部42aは、イジングモデル情報(全ビット数N、重み係数群W)、レプリカ数n、分解能R、基準値Amin,Amaxを、たとえば、図示しない制御装置から取得する(ステップS10)。そして、Tmax計算部22bとTmin計算部22cは、情報取得部42aが取得した情報に基づいて、温度パラメータTの最高値Tmaxと最低値Tminとを決定する(ステップS11,S12)。その後、Tsc計算部42bは、レプリカ数n、最高値Tmax、最低値Tminに基づいて、最高値Tmaxから最低値Tminの範囲で、n個の温度パラメータT,T,T,…,Tを含む温度スケジュール情報Tscを計算する(ステップS13)。そして、送信部42cは、温度スケジュール情報Tscを演算部41に送信する(ステップS14)。
【0096】
これにより制御部42の処理が終了する。その後、演算部41の処理が行われる。なお、ステップS11,S12は処理の順序が逆であってもよい。
演算部41の各レプリカ41a1~41anは、前述の式(1)に示した確率で状態遷移を許容してビットの値の更新を行う処理を、イタレーション回数Nit、繰り返す。交換制御部41bは、レプリカ41a1~41anでの更新処理回数が所定回数に達するたびに、式(7)で表される交換確率に基づいて2つのレプリカに設定された温度パラメータTを交換する。そして、交換制御部41bは、レプリカ41a1~41anでの更新処理回数が、イタレーション回数Nitに達したとき、レプリカ41a1~41anの各々におけるエネルギーの最低値と、その最低値が得られたときの状態を取得する。そして、交換制御部41bは、レプリカ41a1~41anの各々におけるエネルギーの最低値のうち、最も低いエネルギーEと、そのエネルギーEが得られたときの状態xoutを出力する。
【0097】
以上のような第3の実施の形態の最適化装置40は、イジングモデル情報から、取り得るエネルギーの変化分を決定し、その変化分に基づいて基底状態の探索時の温度パラメータTの範囲を決定する。これにより、計算対象の最適化問題に応じた温度パラメータTの範囲で演算部41が、レプリカ交換法を用いた演算を行うことが可能になる。このため、状態遷移の許容確率が適切になり最適化問題の解の精度の悪化を抑制できる。
【0098】
(第4の実施の形態)
図10は、第4の実施の形態の最適化装置の一例を示す図である。図10において、図3に示した要素と同じ要素については同一符号が付されている。
【0099】
第4の実施の形態の最適化装置50において、制御部51の情報取得部51aは、分解能R及び基準値Amin,Amaxと、イジングモデル情報として、全ビット数N、重み係数群Wのほか、バイアス係数群bを、たとえば、図示しない制御装置から取得する。
【0100】
そして、Tmax計算部51bは、重み係数群Wと、全ビット数Nと、バイアス係数群bとに基づいて、以下の式(8)を計算することで、max(ΔE)を決定する。
【0101】
【数4】
【0102】
式(8)において、max(|b|)は、イジングモデル情報に含まれる全ビットのそれぞれについてのバイアス係数の絶対値のうち、最大の値を示す。
その後、Tmax計算部51bは、決定したmax(ΔE)と、基準値Amaxに基づいて、式(5)を計算することで、温度パラメータTの最高値Tmaxを決定する。
【0103】
最適化装置50のその他の要素は、第2の実施の形態の最適化装置20と同じである。
バイアス係数群bも考慮してmax(ΔE)を決定することで、より高精度なmax(ΔE)が得られる。そして、そのmax(ΔE)を用いて温度パラメータTの最高値Tmaxを決定することで、計算対象の最適化問題に応じた温度パラメータTの範囲をより適切に設定可能になる。
【0104】
(第5の実施の形態)
図11は、第5の実施の形態の最適化装置の一例を示す図である。図11において、図7に示した要素と同じ要素については同一符号が付されている。
【0105】
第5の実施の形態の最適化装置60において、制御部61の情報取得部61aは、分解能R、基準値Amin,Amax、レプリカ数n、全ビット数N及び重み係数群Wのほか、バイアス係数群bを、たとえば、図示しない制御装置から取得する。
【0106】
そして、Tmax計算部61bは、重み係数群Wと、全ビット数Nと、バイアス係数群bとに基づいて、前述の式(8)を計算することで、max(ΔE)を決定する。
その後、Tmax計算部61bは、決定したmax(ΔE)と、基準値Amaxに基づいて、式(5)を計算することで、温度パラメータTの最高値Tmaxを決定する。
【0107】
最適化装置60のその他の要素は、第3の実施の形態の最適化装置40と同じである。
上記のような第5の実施の形態の最適化装置60でも、第4の実施の形態の最適化装置50と同様の効果が得られる。
【0108】
(第6の実施の形態)
図12は、第6の実施の形態の最適化装置の一例を示す図である。図12において、図10に示した要素と同じ要素については同一符号が付されている。
【0109】
第6の実施の形態の最適化装置70は、図10に示した最適化装置50とほぼ同様の構成であるが、制御部71のTmax計算部71aは、各ビットについてのエネルギー変化の最大値を、以下の式(9)により計算する。
【0110】
【数5】
【0111】
式(9)において、max(ΔE)は、i番目(i=1~N)のビットについての、エネルギー変化の最大値を表す。式(5)の計算に用いるmax(ΔE)は、全ビットのそれぞれが変化するときのエネルギー変化の最大値のうち、最大の値を示すものであり、以下の式(10)のように表せる。
【0112】
【数6】
【0113】
max計算部71aは、全ビットについてのエネルギー変化の最大値(max(ΔE))からmax(ΔE)を計算し、決定したmax(ΔE)と、基準値Amaxに基づいて、式(5)を計算することで、温度パラメータTの最高値Tmaxを決定する。
【0114】
最適化装置70のその他の要素は、第4の実施の形態の最適化装置50と同じである。
図13は、第6の実施の形態の最適化装置の制御部の動作の流れの一例を示すフローチャートである。
【0115】
最適化装置70の制御部71の情報取得部51aは、イジングモデル情報(全ビット数N、重み係数群W、バイアス係数群b)、分解能R、基準値Amin,Amaxを、たとえば、図示しない制御装置から取得する(ステップS20)。そして、Tmin計算部22cは、分解能Rと基準値Aminに基づいて前述の式(4)を計算することで、最低値Tminを決定する(ステップS21)。
【0116】
max計算部71aは、最高値Tmaxの決定処理(ステップS22)として、以下のステップS22a,S22b,S22cの処理を行う。Tmax計算部71aは、各ビットについてのエネルギー変化の最大値(max(ΔE))を計算し(ステップS22a)、各ビットについてのエネルギー変化の最大値(max(ΔE))からmax(ΔE)を計算する(ステップS22b)。そして、Tmax計算部71aは、決定したmax(ΔE)と、基準値Amaxに基づいて、温度パラメータTの最高値Tmaxを計算する(ステップS22c)。
【0117】
そして、送信部22dは、最低値Tminと最高値Tmaxを演算部21に送信する(ステップS23)。
これにより制御部71の処理が終了する。その後、前述の演算部21の処理が行われる。なお、ステップS21,S22は処理の順序が逆であってもよい。
【0118】
上記のような第6の実施の形態の最適化装置70は、各ビットについてのエネルギー変化の最大値からmax(ΔE)を決定することで、より高精度なmax(ΔE)が得られる。そして、そのmax(ΔE)を用いて温度パラメータTの最高値Tmaxを決定することで、計算対象の最適化問題に応じた温度パラメータTの範囲をより適切に設定可能になる。
【0119】
(第7の実施の形態)
図14は、第7の実施の形態の最適化装置の一例を示す図である。図14において、図11に示した要素と同じ要素については同一符号が付されている。
【0120】
第7の実施の形態の最適化装置80は、図11に示した最適化装置60とほぼ同様の構成であるが、制御部81のTmax計算部81aは、各ビットについてのエネルギー変化の最大値を、前述の式(9)により計算する。そして、Tmax計算部81aは、式(5)の計算に用いるmax(ΔE)を、前述の式(10)により計算し、max(ΔE)と、基準値Amaxに基づいて、式(5)を計算することで、温度パラメータTの最高値Tmaxを決定する。
【0121】
最適化装置80のその他の要素は、第5の実施の形態の最適化装置60と同じである。
図15は、第7の実施の形態の最適化装置の制御部の動作の流れの一例を示すフローチャートである。
【0122】
最適化装置80の制御部81の情報取得部61aは、分解能R、基準値Amin,Amax、レプリカ数n、全ビット数N及び重み係数群Wのほか、バイアス係数群bを、たとえば、図示しない制御装置から取得する(ステップS30)。そして、Tmin計算部22cは、分解能Rと基準値Aminに基づいて前述の式(4)を計算することで、最低値Tminを決定する(ステップS31)。
【0123】
max計算部81aは、最高値Tmaxの決定処理(ステップS32)として、以下のステップS32a,S32b,S32cの処理を行う。Tmax計算部81aは、各ビットについてのエネルギー変化の最大値(max(ΔE))を計算し(ステップS32a)、各ビットについてのエネルギー変化の最大値(max(ΔE))からmax(ΔE)を計算する(ステップS32b)。そして、Tmax計算部81aは、決定したmax(ΔE)と、基準値Amaxに基づいて、温度パラメータTの最高値Tmaxを計算する(ステップS32c)。
【0124】
その後、Tsc計算部42bは、レプリカ数n、最高値Tmax、最低値Tminに基づいて、最高値Tmaxから最低値Tminの範囲で、n個の温度パラメータT,T,T,…,Tを含む温度スケジュール情報Tscを計算する(ステップS33)。そして、送信部42cは、温度スケジュール情報Tscを演算部41に送信する(ステップS34)。
【0125】
これにより制御部81の処理が終了する。その後、演算部41の処理が行われる。なお、ステップS31,S32は処理の順序が逆であってもよい。
上記のような第7の実施の形態の最適化装置80でも、第6の実施の形態の最適化装置70と同様の効果が得られる。
【0126】
なお、上記の最適化装置70,80では、制御部71,81は、バイアス係数群bの影響を考慮してmax(ΔE)を決定したが、バイアス係数群bに対して重み係数群Wが支配的な場合には、バイアス係数群bの影響を考慮しなくてもよい。
【0127】
ところで、上記の最適化装置10,20,40,50,60,70,80において制御部12,22,42,51,61,71,81の機能は、たとえば、PCなどの制御装置内のプロセッサが制御プログラムを実行することで実現してもよい。
【0128】
図16は、制御装置のハードウェア例を示す図である。
制御装置90は、CPU91、RAM92、HDD(Hard Disk Drive)93、画像信号処理部94、入力信号処理部95、媒体リーダ96、通信インタフェース97及びインタフェース98を有する。上記ユニットは、バスに接続されている。
【0129】
CPU91は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU91は、HDD93に記憶されたプログラムやデータの少なくとも一部をRAM92にロードし、プログラムを実行する。なお、CPU91は複数のプロセッサコアを備えてもよく、制御装置90は複数のプロセッサを備えてもよく、最適化装置98aの制御を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。
【0130】
RAM92は、CPU91が実行するプログラムやCPU91が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、制御装置90は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0131】
HDD93は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、前述の温度パラメータTの最低値Tmin、最高値Tmaxなどを決定し、最適化装置98aの演算部98a1に送信することで、適切な温度範囲でイジングモデルの基底状態を探索させる制御プログラムが含まれる。なお、制御装置90は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【0132】
画像信号処理部94は、CPU91からの命令にしたがって、制御装置90に接続されたディスプレイ94aに画像(たとえば、最適化問題の計算結果を表す画像)を出力する。ディスプレイ94aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
【0133】
入力信号処理部95は制御装置90に接続された入力デバイス95aから入力信号を取得し、CPU91に出力する。入力デバイス95aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、制御装置90に、複数の種類の入力デバイスが接続されていてもよい。
【0134】
媒体リーダ96は、記録媒体96aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体96aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0135】
媒体リーダ96は、たとえば、記録媒体96aから読み取ったプログラムやデータを、RAM92やHDD93などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、CPU91によって実行される。なお、記録媒体96aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体96aやHDD93を、コンピュータ読み取り可能な記録媒体ということがある。
【0136】
通信インタフェース97は、ネットワーク97aに接続され、ネットワーク97aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース97は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
【0137】
インタフェース98は、最適化装置98aと通信を行うインタフェースである。最適化装置98aの演算部98a1は、たとえば、第1乃至第7の実施の形態の最適化装置10,20,40,50,60,70,80における、演算部11,21,41である。
【0138】
なお、前述のように、上記の制御装置90の処理内容は、コンピュータにプログラムを実行させることで実現できる。
プログラムは、コンピュータ読み取り可能な記録媒体(たとえば、記録媒体96a)に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FD及びHDDが含まれる。光ディスクには、CD、CD-R(Recordable)/RW(Rewritable)、DVD及びDVD-R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体(たとえば、HDD93)にプログラムをコピーして実行してもよい。
【0139】
以上、実施の形態に基づき、本発明の最適化装置、最適化装置の制御方法及び最適化装置の制御プログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【0140】
10 最適化装置
11 演算部
12 制御部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16