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

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

▶ 日本電気株式会社の特許一覧

<>
  • 特許-求解システムおよび求解方法 図1
  • 特許-求解システムおよび求解方法 図2
  • 特許-求解システムおよび求解方法 図3
  • 特許-求解システムおよび求解方法 図4
  • 特許-求解システムおよび求解方法 図5
  • 特許-求解システムおよび求解方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-29
(45)【発行日】2024-02-06
(54)【発明の名称】求解システムおよび求解方法
(51)【国際特許分類】
   G06N 99/00 20190101AFI20240130BHJP
【FI】
G06N99/00 180
【請求項の数】 8
(21)【出願番号】P 2022556312
(86)(22)【出願日】2020-10-21
(86)【国際出願番号】 JP2020039619
(87)【国際公開番号】W WO2022085133
(87)【国際公開日】2022-04-28
【審査請求日】2023-03-16
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103090
【弁理士】
【氏名又は名称】岩壁 冬樹
(74)【代理人】
【識別番号】100124501
【弁理士】
【氏名又は名称】塩川 誠人
(72)【発明者】
【氏名】井手口 裕太
【審査官】小太刀 慶明
(56)【参考文献】
【文献】特開2020-106917(JP,A)
【文献】特開2020-35000(JP,A)
【文献】米国特許出願公開第2016/0260013(US,A1)
【文献】鈴木 基己 ほか,投機を用いた擬似焼きなまし法の分散並列処理手法,情報処理学会 研究報告 ハイパフォーマンスコンピューティング(HPC),日本,情報処理学会,2020年09月25日,Vol.2020-HPC-176, No.2,pp.1-6,ISSN 2188-8841
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
組合せ最適化問題におけるエネルギーを表す式であって、目的関数および制約項を含む式が与えられると、前記組合せ最適化問題の各局所解においていずれかのスピンをフリップするときの前記制約項の値の変化である第1エネルギー変化を算出する第1エネルギー変化算出手段と、
各局所解においていずれかのスピンをフリップするときの前記目的関数の値の変化である第2エネルギー変化を算出する第2エネルギー変化算出手段と、
前記第1エネルギー変化および前記第2エネルギー変化とに基づいて、各局所解においていずれかのスピンをフリップするときの前記式が表すエネルギーの変化である第3エネルギー変化を複数種類、算出する第3エネルギー変化算出手段と、
個々の第3エネルギー変化毎に、各局所解においていずれかのスピンをフリップすることができる逆温度を算出するとともに、各局所解においてスピンをフリップできないとみなすことができる逆温度を算出する逆温度算出手段と、
算出された複数の逆温度を用いて疑似量子アニーリングを実行するアニーリング手段とを備える
ことを特徴とする求解システム。
【請求項2】
前記第1エネルギー変化算出手段は、
前記制約項を展開することによって、スピン毎の状態を表す各変数の係数を、第1エネルギー変化として算出する
請求項1に記載の求解システム。
【請求項3】
前記第2エネルギー変化算出手段は、
前記目的関数を所定のモデルの形式に変形し、少なくとも、前記所定のモデルの形式におけるスピン間の相互作用を表す定数の統計値と、前記所定のモデルの形式における各スピンに対応する各定数の統計値のいずれかを、第2エネルギー変化として算出する
請求項1または請求項2に記載の求解システム。
【請求項4】
前記アニーリング手段は、
全てのスピンを未選択として定める処理、
未選択のスピンの中から1つのスピンを選択する処理、
選択した1つのスピンをフリップするか否かを判定し、フリップすると判定した場合には、前記スピンをフリップする処理、および、
前記全てのスピンについてフリップするか否かを判定した後に、少なくとも1つのスピンに対してフリップすると判定していた場合には、逆温度を、現時点の逆温度よりも高く、現時点の逆温度に最も近い逆温度に変更し、前記全てのスピンに対してフリップしないと判定していた場合には、逆温度を、現時点の逆温度よりも低く、現時点の逆温度に最も近い逆温度に変更する処理
を繰り返す
請求項1から請求項3のうちのいずれか1項に記載の求解システム。
【請求項5】
コンピュータが、
組合せ最適化問題におけるエネルギーを表す式であって、目的関数および制約項を含む式が与えられると、前記組合せ最適化問題の各局所解においていずれかのスピンをフリップするときの前記制約項の値の変化である第1エネルギー変化を算出し、
各局所解においていずれかのスピンをフリップするときの前記目的関数の値の変化である第2エネルギー変化を算出し、
前記第1エネルギー変化および前記第2エネルギー変化とに基づいて、各局所解においていずれかのスピンをフリップするときの前記式が表すエネルギーの変化である第3エネルギー変化を複数種類、算出し、
個々の第3エネルギー変化毎に、各局所解においていずれかのスピンをフリップすることができる逆温度を算出するとともに、各局所解においてスピンをフリップできないとみなすことができる逆温度を算出し、
算出された複数の逆温度を用いて疑似量子アニーリングを実行する
ことを特徴とする求解方法。
【請求項6】
前記コンピュータが、
前記制約項を展開することによって、スピン毎の状態を表す各変数の係数を、第1エネルギー変化として算出する
請求項5に記載の求解方法。
【請求項7】
コンピュータに、
組合せ最適化問題におけるエネルギーを表す式であって、目的関数および制約項を含む式が与えられると、前記組合せ最適化問題の各局所解においていずれかのスピンをフリップするときの前記制約項の値の変化である第1エネルギー変化を算出する第1エネルギー変化算出処理、
各局所解においていずれかのスピンをフリップするときの前記目的関数の値の変化である第2エネルギー変化を算出する第2エネルギー変化算出処理、
前記第1エネルギー変化および前記第2エネルギー変化とに基づいて、各局所解においていずれかのスピンをフリップするときの前記式が表すエネルギーの変化である第3エネルギー変化を複数種類、算出する第3エネルギー変化算出処理、
個々の第3エネルギー変化毎に、各局所解においていずれかのスピンをフリップすることができる逆温度を算出するとともに、各局所解においてスピンをフリップできないとみなすことができる逆温度を算出する逆温度算出処理、および、
算出された複数の逆温度を用いて疑似量子アニーリングを実行するアニーリング処理
を実行させるための求解プログラム。
【請求項8】
前記コンピュータに、
前記第1エネルギー変化算出処理で、
前記制約項を展開することによって、スピン毎の状態を表す各変数の係数を、第1エネルギー変化として算出させる
求項7に記載の求解プログラム
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、組合せ最適化問題の最適解を求める求解システム、求解方法、および、求解プログラムに関する。
【背景技術】
【0002】
組合せ最適化問題の最適解を求める場合には、組合せ最適化問題におけるエネルギーを表す式を作成する。このエネルギーを表す式は、イジングモデルの形式に変換可能である。この変換方法は、公知である。イジングモデルは、個々のスピンによって磁性体の振る舞いを表す統計力学上のモデルであるが、組合せ最適化問題の求解にも適用可能である。イジングモデルでは、個々のスピンの状態は、“1”または“-1”で表される。
【0003】
イジングモデルは、以下の式(1)のように表される。
【0004】
【数1】
【0005】
式(1)におけるi,jは、いずれもスピンを表す変数である。また、式(1)におけるsは、スピンiの状態を表す変数であり、sは、スピンjの状態を表す変数である。式(1)におけるJijは、スピンiおよびスピンjの組合せに対応する定数である。より具体的には、Jijは、スピンi、スピンj間の相互作用を表す定数である。iの取り得る値とjの取り得る値の組合せ毎に、Jijは定数として定められる。また、式(1)におけるhは、スピンiに対応する定数である。iの取り得る値毎に、hは定数として定められる。
【0006】
イジングモデルを表す式(1)が、疑似量子アニーリングに適用され、疑似量子アニーリングを実行することで、組合せ最適化問題の最適解が求められる。なお、疑似量子アニーリングは、シミュレーテッドアニーリングとも称される。
【0007】
また、疑似量子アニーリング(シミュレーテッドアニーリング)において、温度の逆数は逆温度と称される。
【0008】
疑似量子アニーリングでは、複数の局所解の中から最適解を見つける。個々の局所解は、組合せ最適化問題における制約が満たされているスピン群の状態に該当する。
【0009】
特許文献1には、温度を下げていく制御を行う疑似焼き鈍し法が記載されている。
【先行技術文献】
【特許文献】
【0010】
【文献】特開2020-106917号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
疑似量子アニーリングにおいて、逆温度を上げたり下げたりしながら、組合せ最適化問題の最適解を求める場合もある。
【0012】
ある局所解が最適解であるとは限らないため、局所解においていずれかのスピンをフリップして、別の局所解に遷移することが必要になる。
【0013】
ここで、逆温度が低い場合には、局所解においていずれかのスピンをフリップすることができる。逆温度が高くなるほど、局所解においてスピンをフリップしにくくなり、ある逆温度よりも高くなると、局所解においてスピンをフリップできなくなる。
【0014】
一般に、疑似量子アニーリングにおいて、逆温度を上げたり下げたりしながら、最適解を求める場合、疑似量子アニーリングを複数回、試行することによって、逆温度の範囲や、逆温度を変化させる場合にどの程度変化させるかといったパラメータを決定する。その後、決定したパラメータを用いて、疑似量子アニーリングを実行する。従って、パラメータの決定に時間がかかる。
【0015】
また、疑似量子アニーリングの実行時に、到達した局所解の近辺に最適解がない場合には、その局所解から最適解に到達するまでに時間がかかるという問題もあった。
【0016】
そこで、本発明は、組合せ最適化問題の最適解を求めるまでの時間を短縮することができる求解システム、求解方法、および、求解プログラムを提供することを目的とする。
【課題を解決するための手段】
【0017】
本発明による求解システムは、組合せ最適化問題におけるエネルギーを表す式であって、目的関数および制約項を含む式が与えられると、組合せ最適化問題の各局所解においていずれかのスピンをフリップするときの制約項の値の変化である第1エネルギー変化を算出する第1エネルギー変化算出手段と、各局所解においていずれかのスピンをフリップするときの目的関数の値の変化である第2エネルギー変化を算出する第2エネルギー変化算出手段と、第1エネルギー変化および第2エネルギー変化とに基づいて、各局所解においていずれかのスピンをフリップするときの式が表すエネルギーの変化である第3エネルギー変化を複数種類、算出する第3エネルギー変化算出手段と、個々の第3エネルギー変化毎に、各局所解においていずれかのスピンをフリップすることができる逆温度を算出するとともに、各局所解においてスピンをフリップできないとみなすことができる逆温度を算出する逆温度算出手段と、算出された複数の逆温度を用いて疑似量子アニーリングを実行するアニーリング手段とを備えることを特徴とする。
【0018】
本発明による求解方法は、コンピュータが、組合せ最適化問題におけるエネルギーを表す式であって、目的関数および制約項を含む式が与えられると、組合せ最適化問題の各局所解においていずれかのスピンをフリップするときの制約項の値の変化である第1エネルギー変化を算出し、各局所解においていずれかのスピンをフリップするときの目的関数の値の変化である第2エネルギー変化を算出し、第1エネルギー変化および第2エネルギー変化とに基づいて、各局所解においていずれかのスピンをフリップするときの式が表すエネルギーの変化である第3エネルギー変化を複数種類、算出し、個々の第3エネルギー変化毎に、各局所解においていずれかのスピンをフリップすることができる逆温度を算出するとともに、各局所解においてスピンをフリップできないとみなすことができる逆温度を算出し、算出された複数の逆温度を用いて疑似量子アニーリングを実行することを特徴とする。
【0019】
本発明による求解プログラムは、コンピュータに、組合せ最適化問題におけるエネルギーを表す式であって、目的関数および制約項を含む式が与えられると、組合せ最適化問題の各局所解においていずれかのスピンをフリップするときの制約項の値の変化である第1エネルギー変化を算出する第1エネルギー変化算出処理、各局所解においていずれかのスピンをフリップするときの目的関数の値の変化である第2エネルギー変化を算出する第2エネルギー変化算出処理、第1エネルギー変化および第2エネルギー変化とに基づいて、各局所解においていずれかのスピンをフリップするときの式が表すエネルギーの変化である第3エネルギー変化を複数種類、算出する第3エネルギー変化算出処理、個々の第3エネルギー変化毎に、各局所解においていずれかのスピンをフリップすることができる逆温度を算出するとともに、各局所解においてスピンをフリップできないとみなすことができる逆温度を算出する逆温度算出処理、および、算出された複数の逆温度を用いて疑似量子アニーリングを実行するアニーリング処理を実行させる。
【発明の効果】
【0020】
本発明によれば、組合せ最適化問題の最適解を求めるまでの時間を短縮することができる。
【図面の簡単な説明】
【0021】
図1】本発明の実施形態の求解システムの構成例を示すブロック図である。
図2】巡回セールスマン問題の局所解の例を示す模式図である。
図3】本発明の実施形態の求解システムの処理経過の例を示すフローチャートである。
図4】疑似量子アニーリング実行部が実行するステップS7の処理経過の例を示すフローチャートである。
図5】本発明の実施形態の求解システムに係るコンピュータの構成例を示す概略ブロック図である。
図6】本発明の求解システムの概要を示すブロック図である。
【発明を実施するための形態】
【0022】
以下、本発明の実施形態を図面を参照して説明する。
【0023】
本発明の実施形態の求解システムは、組合せ最適化問題の最適解を求めるときに、複数の逆温度を求め、その複数の逆温度を用いて疑似量子アニーリング(シミュレーテッドアニーリング)を実行する。
【0024】
本実施形態の求解システムは、疑似量子アニーリングにおいて、まず、全てのスピンを未選択と定め、未選択のスピンの中からスピンを1つずつ選択する。そして、求解システムは、選択したスピンに対して、フリップするか否かを判定し、スピンをフリップすると判定した場合には、そのスピン(選択したスピン)をフリップする。なお、スピンをフリップするとは、スピンの状態を反転させることである。具体的には、スピンをフリップするとは、スピンの状態を“1”から“-1”に反転させたり、“-1”から“1”に反転させたりすることである。全てのスピンを選択し、全てのスピンに対して上記の判定を行った後、求解システムは、少なくとも1つのスピンに対してフリップすると判定していた場合には、逆温度を、現時点の逆温度より高く、現時点の逆温度に最も近い逆温度に変更する。また、求解システムは、全てのスピンに対してフリップしないと判定していた場合には、逆温度を、現時点の逆温度より低く、現時点の逆温度に最も近い逆温度に変更する。その後、求解システムは、再度、全てのスピンを未選択と定め、同様の処理を繰り返す。求解システムは、この処理を繰り返すことで、組合せ最適化問題の最適解を求める。
【0025】
ここで、求解システムは、選択したスピンをフリップするか否かを判定するときに、そのスピンをフリップした場合における組合せ最適化問題のエネルギー変化を算出する。このエネルギー変化をΔEとする。また、その時点の逆温度をTとする。求解システムは、確率p=exp(-ΔE*T)を求め、その確率pによって、選択したスピンをフリップするか否かを判定する。
【0026】
図1は、本発明の実施形態の求解システムの構成例を示すブロック図である。本実施形態の求解システム1は、入力部10と、第1エネルギー変化算出部11と、第2エネルギー変化算出部12と、第3エネルギー変化算出部13と、逆温度算出部14と、疑似量子アニーリング実行部15とを備える。
【0027】
入力部10には、組合せ最適化問題におけるエネルギーを表す式が入力される。この式は、目的関数および制約項を含む式である。入力部10に入力される式の例を、式(2)に示す。式(2)の左辺に示すEは、組合せ最適化問題におけるエネルギーを表す。また、式(2)は、組合せ最適化問題が、巡回セールスマン問題である場合の例を示している。ここでは、組合せ最適化問題が、巡回セールスマン問題である場合を例にして説明する。
【0028】
【数2】
【0029】
目的関数は、組合せ最適化問題において値を最小化する事項を表す関数である。式(2)では、右辺の第1項が目的関数に該当する。
【0030】
制約項は、組合せ最適化問題における制約を表す項である。組合せ最適化問題における制約は、1つとは限らず、複数存在し得る。式(2)では、右辺の第2項が制約項に該当する。
【0031】
図2は、巡回セールスマン問題の局所解の例を示す模式図である。図2では、セールスマンが4つの都市を訪問する場合を例示している。また、図2では、横軸に4つの都市を示し、縦軸にセールスマンが都市を訪問する順番を示している。本例では、順番が0から始まるものとしている。本例では、16個のスピンが存在し、個々のスピンには0~15の識別番号(整数)が割り当てられているものとする。スピンの状態が“1”であるということは、セールスマンが存在していることを意味し、スピンの状態が“-1”であるということは、セールスマンが存在していないことを意味する。
【0032】
巡回セールスマン問題では、セールスマンは1つの都市を1回しか訪問しないという制約がある。従って、例えば、都市0(図2参照)の列に着目した場合、その列で、1つのスピンだけが“1”であるという制約がある。他の都市の3つの列に関しても同様である。従って、図2に示す例では、列に関して、4つの制約がある。
【0033】
また、巡回セールスマン問題では、セールスマンが同時に2つ以上の都市に存在し得ないという制約がある。従って、例えば、順番0(図2参照)の行に着目した場合、その行で、1つのスピンだけが“1”であるという制約がある。他の順番の3つの行に関しても同様である。従って、図2に示す例では、行に関して、4つの制約がある。
【0034】
よって、図2に示す例では、8個の制約があることになる。図2に示す16個のスピンの状態は、この8個の制約を全て満たしているので、この状態は、局所解になっていると言える。
【0035】
式(2)におけるi,jは、スピンの識別番号を表す変数である。そして、式(2)におけるsは、スピンiの状態を表す変数であり、sは、スピンjの状態を表す変数である。また、dijは、スピンiに対応する都市(図2においてスピンiが存在する列に対応する都市)と、スピンjに対応する都市(図2においてスピンjが存在する列に対応する都市)との距離であり、i,jの組合せに応じたdijは、予め定められている。
【0036】
また、式(2)におけるkは、制約を表す変数である。上記のように、図2に示す例では8個の制約があるので、kは、0~7の整数である。
【0037】
また、式(2)におけるf(0)は、制約kに対応するスピン群のうちの最初の(0番目の)スピンの識別番号である。f(n)は、制約kに対応するスピン群のうちの最後の(n番目の)スピンの識別番号である。本例では、8個のどの制約においても、対応するスピンの個数は4個であるので、どの制約においてもn=3である。ただし、組合せ最適化問題の種類によっては、制約に応じて、制約に対応するスピンの数が異なる場合もある。
【0038】
制約項の値は、組合せ最適化問題の全ての制約が満たされている場合には、0となり、いずれかの制約が満たされていない場合には、0以外の値となる。
【0039】
また、全ての制約が満たされていないと最適解にならないため、制約項に含まれている定数A(式(2)を参照)の値は、比較的大きな値に定められる。
【0040】
目的関数および制約項は、それぞれ、イジングモデル(式(1)を参照)と同じ形式に変換することができる。式(2)における目的関数(右辺の第1項)および制約項(右辺の第2項)をそれぞれ、イジングモデルと同じ形式に変換した式を、以下の式(3)に示す。
【0041】
【数3】
【0042】
式(3)における右辺の第1項および第2項は、式(2)における目的関数をイジングモデルの形式に変換した結果である。式(3)における右辺の第3項および第4項は、式(2)における制約項をイジングモデルの形式に変換した結果である。
【0043】
さらに、式(3)に示す式を、式(1)に示すイジングモデルの形式の式に変換することができる。従って、式(2)に例示するエネルギーを表す式は、式(1)に示すイジングモデルの形式の式に変換できる。
【0044】
式(2)に示すような、目的関数および制約項を含む式(エネルギーを表す式)は、予め、求解システム1のユーザによって作成され、入力部10に入力される。
【0045】
入力部10は、例えば、キーボード等の入力デバイスであってもよい。あるいは、入力部10は、例えば、光学ディスク等のデータ記録媒体に記録された式(式(2)に例示する目的関数および制約項を含む式)を読み込むデータ読み込み装置によって実現されてもよい。
【0046】
全ての制約が満たされている各スピンの状態(換言すれば、局所解)から、いずれかのスピンをフリップする際のエネルギー変化は大きい。
【0047】
また、選択されたスピンをフリップするか否かは、確率的に判定されるので、逆温度がある程度高くても、局所解においていずれかのスピンをフリップし得る。
【0048】
ここで、組合せ最適化問題の各局所解においていずれかのスピンをフリップするときのエネルギー変化は、各局所解においていずれかのスピンをフリップするときの制約項の値の変化に近いと言うことができる。
【0049】
一方、エネルギーは、制約項だけでなく、目的関数にも影響される(式(2)を参照)。従って、各局所解においていずれかのスピンをフリップするときのエネルギー変化を求める場合には、各局所解においていずれかのスピンをフリップするときの目的関数の値の変化も求める。ただし、目的関数の値の変化は、概算で求めればよい。
【0050】
以下、各局所解においていずれかのスピンをフリップするときの制約項の値の変化を、第1エネルギー変化と記す。
【0051】
また、各局所解においていずれかのスピンをフリップするときの目的関数の値の変化を、第2エネルギー変化と記す。
【0052】
また、各局所解においていずれかのスピンをフリップするときの、組合せ最適化問題におけるエネルギーを表す式であって目的関数および制約項を含む式(例えば、式(2)に例示する式。)が示すエネルギーの変化を第3エネルギー変化と記す。第3エネルギー変化は、前述のp=exp(-ΔE*T)におけるΔEに相当する。
【0053】
第1エネルギー変化算出部11は、第1エネルギー変化を算出する。具体的には、第1エネルギー変化算出部11は、制約項(式(2)に示す例では、右辺の第2項)を展開することによって、スピン毎の状態を表す各変数(例えば、s~s15)の係数を算出する。スピン毎の状態を表す各変数の係数が、第1エネルギー変化である。
【0054】
また、制約を展開することによって得られる上記の係数の種類が、第1エネルギー変化の値の種類である。例えば、図2に例示する巡回セールスマン問題におけるエネルギーを表す式(2)の制約項を展開した場合、スピン毎の状態を表す各変数の係数はいずれも2Aである。従って、この場合、第1エネルギー変化の値は、“2A”の1種類のみである。
【0055】
何種類の(換言すれば、何個の)第1エネルギー変化が得られるかは、組合せ最適化問題におけるエネルギーを表す式に含まれる制約項に依存する。
【0056】
以下の説明では、説明を簡単にするため、2個の第1エネルギー変化が算出された場合を例にして説明する。2個の第1エネルギー変化うち、一方の第1エネルギー変化をΔEc1と記し、もう一方の第1エネルギー変化をΔEc2と記す。
【0057】
第2エネルギー変化算出部12は、第2エネルギー変化を算出する。ここで、目的関数をイジングモデルの形式に変換した場合において、変換後の式におけるスピン間の相互作用を表す定数(式(3)の右辺の第1項におけるJ’ij。以下、単にJ’ijと記す。)の平均値や分散といった統計値は、第2エネルギー変化の概算値であると言える。また、目的関数をイジングモデルの形式に変換した場合において、変換後の式における各スピンに対応する各定数(式(3)の右辺の第2項におけるh’。以下、単にh’と記す。)の平均値や分散といった統計値も、第2エネルギー変化の概算値であると言える。
【0058】
また、任意の制約に対応するスピン群によって定まるJ’ijの統計値や、任意の制約に対応するスピン群によって定まるh’の統計値も、第2エネルギー変化の概算値として用いることができる。
【0059】
ここでは、説明を簡単にするため、第2エネルギー変化算出部12が、第2エネルギー変化として、J’ijの平均値(以下、ΔEo1と記す。)、J’ijの分散(以下、ΔEo2と記す。)、h’の平均値(以下、ΔEo3と記す。)、および、h’の分散(以下、ΔEo4と記す。)を算出する場合を例にする。ただし、第2エネルギー変化算出部12は、ΔEo1、ΔEo2、ΔEo3、ΔEo4のうちの一部のみを算出してもよく、これらのうちの少なくとも1つを算出してもよい。
【0060】
第2エネルギー変化算出部12は、入力部10を介して入力された式(例えば、式(2))における目的関数をイジングモデルの形式に変換する。すなわち、第2エネルギー変化算出部12は、与えられた目的関数を、式(3)の右辺の第1項および第2項の形式に変換する。そして、第2エネルギー変化算出部12は、その変換後の式に基づいて、J’ijの平均値ΔEo1、J’ijの分散ΔEo2、h’の平均値ΔEo3、h’の分散ΔEo4を算出する。
【0061】
第3エネルギー変化算出部13は、第1エネルギー変化算出部11によって算出された第1エネルギー変化、および、第2エネルギー変化算出部12によって算出された第2エネルギー変化に基づいて、複数種類の(換言すれば、複数個の)第3エネルギー変化を算出する。ここでは、算出された第1エネルギー変化が、ΔEc1,ΔEc2であり、算出された第2エネルギー変化が、ΔEo1,ΔEo2,ΔEo3,ΔEo4であるものとする。
【0062】
まず、第3エネルギー変化算出部13は、第1エネルギー変化をそのまま、第3エネルギー変化として定める。前述のように、各局所解においていずれかのスピンをフリップするときのエネルギー変化は、各局所解においていずれかのスピンをフリップするときの制約項の値の変化に近いと言えるからである。本例では、第3エネルギー変化算出部13は、ΔEc1,ΔEc2をそれぞれ、第3エネルギー変化として定める。
【0063】
さらに、第3エネルギー変化算出部13は、1つの第1エネルギー変化と、1つの第2エネルギー変化とを選択し、その第1エネルギー変化と第2エネルギー変化の和、および、その第1エネルギー変化から第2エネルギー変化を減算した値を、それぞれ、第3エネルギー変化として定める。例えば、第3エネルギー変化算出部13が、第1エネルギー変化ΔEc1と、第2エネルギー変化ΔEo1を選択したとする。この場合、第3エネルギー変化算出部13は、ΔEc1+ΔEo1、および、ΔEc1-ΔEo1をそれぞれ算出し、その算出結果をそれぞれ第3エネルギー変化として定める。第3エネルギー変化算出部13は、選択し得る1つの第1エネルギー変化と1つの第2エネルギー変化との組毎に、同様に、第3エネルギー変化を算出する。
【0064】
この結果、本例では、第3エネルギー変化算出部13は、以下に示す複数の第3エネルギー変化を得る。
【0065】
ΔEc1,ΔEc1+ΔEo1,ΔEc1-ΔEo1,ΔEc1+ΔEo2,ΔEc1-ΔEo2,ΔEc1+ΔEo3,ΔEc1-ΔEo3,ΔEc1+ΔEo4,ΔEc1-ΔEo4,ΔEc2,ΔEc2+ΔEo1,ΔEc2-ΔEo1,ΔEc2+ΔEo2,ΔEc2-ΔEo2,ΔEc2+ΔEo3,ΔEc2-ΔEo3,ΔEc2+ΔEo4,ΔEc2-ΔEo4
【0066】
これらの第3エネルギー変化は、各局所解においていずれかのスピンをフリップするときの、入力された式が表すエネルギーの変化である。
【0067】
逆温度算出部14は、第3エネルギー変化算出部13によって算出された個々の第3エネルギー変化毎に逆温度を算出する。従って、逆温度算出部14は、複数の逆温度を算出する。
【0068】
既に述べたように、求解システム1は、疑似量子アニーリングにおいて、まず、全てのスピンを未選択と定め、未選択のスピンの中からスピンを1つずつ選択する。そして、求解システム1は、選択したスピンに対して、フリップするか否かを判定し、スピンをフリップすると判定した場合には、そのスピン(選択したスピン)をフリップする。全てのスピンを選択し、全てのスピンに対して上記の判定を行った後、求解システム1は、少なくとも1つのスピンに対してフリップすると判定していた場合には、逆温度を、現時点の逆温度より高く、現時点の逆温度に最も近い逆温度に変更する。また、求解システム1は、全てのスピンに対してフリップしないと判定していた場合には、逆温度を、現時点の逆温度より低く、現時点の逆温度に最も近い逆温度に変更する。その後、求解システム1は、再度、全てのスピンを未選択と定め、同様の処理を繰り返す。ここで、全てのスピンを選択し、全てのスピンに対して上記の判定を行ったときに、1つのスピンのみがフリップされていることが好ましい。
【0069】
そこで、逆温度算出部14は、前述の確率p=exp(-ΔE*T)における確率pを、“1/スピン数”とし、ΔEを個々の第3エネルギー変化として、逆温度Tを求める。以下、スピン数をMで表す。また、算出された複数の第3エネルギー変化のうちの任意の第3エネルギー変化をΔE’で表す。前述の確率p=exp(-ΔE*T)において、確率pを“1/M”とし、ΔEを第3エネルギー変化ΔE’とすると、以下の式(4)のように表される。なお、Tは、逆温度である。
【0070】
1/M=exp(-ΔE’*T) ・・・(4)
【0071】
式(4)から、逆温度Tは、以下の式(5)で表される。
【0072】
T=ln(M)/ΔE’ ・・・(5)
【0073】
従って、逆温度算出部14は、第3エネルギー変化算出部13によって算出された個々の第3エネルギー変化をそれぞれ、式(5)のΔE’に代入することによって、複数の逆温度Tを算出する。すなわち、逆温度算出部14は、第3エネルギー変化算出部13によって算出された個々の第3エネルギー変化毎に、逆温度Tを算出する。
【0074】
このようにして得られた複数の逆温度は、各局所解においていずれかのスピンをフリップすることができる比較的高い逆温度であると言うことができる。
【0075】
また、逆温度算出部14は、各局所解においてスピンをフリップできないとみなすことができる逆温度も算出する。この場合、前述の確率pが、例えば、(1/M)の0.01倍であると定めればよい。また、逆温度を計算するときの第3エネルギー変化として、複数の第3エネルギー変化のうちの最小値(ΔminE’とする。)を用いる。すなわち、逆温度算出部14は、各局所解においてスピンをフリップできないとみなすことができる逆温度を、例えば、以下の式(6)によって算出する。
【0076】
T=ln(M/0.01)/ΔminE’ ・・・(6)
【0077】
各局所解においていずれかのスピンをフリップすることができる比較的高い逆温度として算出された複数の逆温度、および、各局所解においてスピンをフリップできないとみなすことができる逆温度(例えば、式(6)によって算出された逆温度)は、離散的な値である。
【0078】
また、各局所解においてスピンをフリップできないとみなすことができる逆温度は、逆温度算出部14が算出した逆温度の中で、最も高い逆温度である。
【0079】
疑似量子アニーリング実行部15は、入力されたエネルギーを表す式(例えば、式(2)に例示する式)を、式(1)に示すイジングモデルの形式の式に変換する。そして、疑似量子アニーリング実行部15は、そのイジングモデルの形式の式と、逆温度算出部14によって算出された複数の逆温度とを用いて、疑似量子アニーリングを実行し、組合せ最適化問題の最適解を求める。なお、算出された複数の逆温度のうち、最も低い逆温度を、疑似量子アニーリングにおける逆温度の初期値とする。
【0080】
疑似量子アニーリング実行部15の詳細な動作については、後述の図4のフローチャートを参照して説明する。
【0081】
第1エネルギー変化算出部11、第2エネルギー変化算出部12、第3エネルギー変化算出部13、逆温度算出部14、および疑似量子アニーリング実行部15は、例えば、求解プログラムに従って動作するコンピュータのCPU(Central Processing Unit )によって実現される。この場合、CPUは、コンピュータのプログラム記憶装置等のプログラム記録媒体から求解プログラムを読み込み、その求解プログラムに従って、第1エネルギー変化算出部11、第2エネルギー変化算出部12、第3エネルギー変化算出部13、逆温度算出部14、および疑似量子アニーリング実行部15として動作すればよい。
【0082】
次に、処理経過について説明する。図3は、本実施形態の求解システム1の処理経過の例を示すフローチャートである。なお、既に説明した事項については、適宜、説明を省略する。
【0083】
まず、組合せ最適化問題におけるエネルギーを表す式であって、目的関数および制約項を含む式が、入力部10を介して入力される(ステップS1)。例えば、式(2)に例示する式が、ステップS1において入力される。
【0084】
ステップS1で入力される式は、予め、求解システム1のユーザによって作成される。
【0085】
ステップS1で、組合せ最適化問題におけるエネルギーを表す式が入力されると、第1エネルギー変化算出部11は、入力された式に含まれる制約項を展開することによって、スピン毎の状態を表す各変数の係数を、第1エネルギー変化として算出する(ステップS2)。
【0086】
また、第2エネルギー変化算出部12は、ステップS1で入力された式に含まれる目的関数をイジングモデルの形式に変換し、その変換結果に基づいて、第2エネルギー変化を算出する(ステップS3)。
【0087】
例えば、第2エネルギー変化算出部12は、目的関数を式(3)の右辺の第1項および第2項のように変換し、J’ijの平均値、J’ijの分散、h’の平均値、および、h’の分散を、第2エネルギー変化として算出する。既に説明したように、第2エネルギー変化算出部12は、これらのうちの一部のみを算出してもよく、これらのうちの少なくとも1つを算出してもよい。
【0088】
次に、第3エネルギー変化算出部13は、ステップS2で算出された第1エネルギー変化、および、ステップS3で算出された第2エネルギー変化に基づいて、複数種類の第3エネルギー変化を算出する(ステップS4)。第3エネルギー変化算出部13が複数種類の第3エネルギー変化を算出する動作については、既に説明したので、ここでは説明を省略する。
【0089】
次に、逆温度算出部14は、個々の第3エネルギー変化毎に、逆温度を算出する(ステップS5)。逆温度算出部14は、個々の第3エネルギー変化をそれぞれ、前述の式(5)のΔE’に代入することによって、複数の逆温度Tを算出すればよい。
【0090】
ステップS5で算出された複数の逆温度は、各局所解においていずれかのスピンをフリップすることができる比較的高い逆温度であると言うことができる。
【0091】
また、逆温度算出部14は、各局所解においてスピンをフリップできないとみなすことができる逆温度を算出する(ステップS6)。逆温度算出部14は、例えば、前述の式(6)の計算によって、この逆温度を算出すればよい。
【0092】
ステップS6で得られる逆温度は、ステップS5で得られる各逆温度よりも高い。
【0093】
次に、疑似量子アニーリング実行部15は、ステップS5およびステップS6で算出された逆温度を用いて、疑似量子アニーリングを実行する(ステップS7)。ステップS7により、組合せ最適化問題の最適解が得られる。
【0094】
図4は、疑似量子アニーリング実行部15が実行するステップS7の処理経過の例を示すフローチャートである。なお、図4では、図示を省略しているが、疑似量子アニーリング実行部15は、疑似量子アニーリングを実行するときに、ステップS1(図3参照)で入力された式を、式(1)に示すイジングモデルの形式に変換する。また、疑似量子アニーリング実行部15は、ステップS5で算出された複数の逆温度の最低値を、逆温度の初期値に設定する。また、疑似量子アニーリング実行部15は、各スピンの状態を任意の状態に定める。そして、図4に示す処理を実行する。
【0095】
まず、疑似量子アニーリング実行部15は、全てのスピンを未選択として定める(ステップS11)。具体的には、疑似量子アニーリング実行部15は、全てのスピンを、次に述べるステップS12でまだ選択されていないスピンとして定める。
【0096】
ステップS11の後、疑似量子アニーリング実行部15は、未選択のスピンの中から、ランダムに1つのスピンを選択する(ステップS12)。疑似量子アニーリング実行部15は、選択したスピンを、選択済みのスピンとして定める。
【0097】
次に、疑似量子アニーリング実行部15は、選択した1つのスピンをフリップした場合のエネルギー変化ΔEを、エネルギーを表す式(イジングモデルの形式の式)に基づいて算出する(ステップS13)。
【0098】
次に、疑似量子アニーリング実行部15は、確率p=exp(-ΔE*T)を算出する。Tは、現時点における逆温度である。そして、疑似量子アニーリング実行部15は、確率pに基づいて、選択した1つのスピンをフリップするか否かを判定する(ステップS14)。選択した1つのスピンをフリップすると判定した場合には、疑似量子アニーリング実行部15は、選択したスピンをフリップする処理もステップS14で行う。しかし、選択した1つのスピンをフリップしないと判定した場合には、疑似量子アニーリング実行部15は、選択したスピンをフリップしない。
【0099】
次に、疑似量子アニーリング実行部15は、未選択のスピンがあるか否かを判定する(ステップS15)。未選択のスピンがある場合には(ステップS15のYes)、疑似量子アニーリング実行部15は、ステップS12以降の処理を繰り返す。
【0100】
また、未選択のスピンがない場合には(ステップS15のNo)、ステップS16に移行する。ステップS16において、疑似量子アニーリング実行部15は、ステップS12~S15の繰り返し処理において、少なくとも1つのスピンに対してフリップすると判定していたか否かに応じて、逆温度を変更する。
【0101】
具体的には、少なくとも1つのスピンに対してフリップすると判定していた場合には、疑似量子アニーリング実行部15は、逆温度を、現時点の逆温度より高く、現時点の逆温度に最も近い逆温度に変更する。
【0102】
また、全てのスピンに対してフリップしないと判定していた場合には、疑似量子アニーリング実行部15は、逆温度を、現時点の逆温度より低く、現時点の逆温度に最も近い逆温度に変更する。
【0103】
なお、ステップS14でフリップすると判定されたスピンは、ステップS14でフリップされている。
【0104】
ステップS16における変更後の逆温度は、ステップS5,S6で算出された逆温度のうちのいずれか1つの逆温度である。
【0105】
ステップS16の後、疑似量子アニーリング実行部15は、ステップS11からステップS16に至る処理を予め定められた所定回数、実行したか否かを判定する(ステップS17)。
【0106】
ステップS11からステップS16に至る処理の実行回数が所定回数に達していないならば(ステップS17のNo)、疑似量子アニーリング実行部15は、ステップS11以降の処理を繰り返す。ステップS17では全てのスピンが選択済みとなっているが、ステップS11で、疑似量子アニーリング実行部15は、再度、全てのスピンを未選択として定める。
【0107】
ステップS11からステップS16に至る処理の実行回数が所定回数に達したならば(ステップS17のYes)、疑似量子アニーリング実行部15は、その時点におけるスピン群の状態を最適解として定め、処理を終了する。
【0108】
図4に示すステップS11からステップS16に至る処理を所定回数、実行する過程で、各スピンの状態は初期状態から局所解に遷移していく。ここで、逆温度として、ステップS5,S6(図3参照)で算出された逆温度が用いられる。ステップS5で算出された各逆温度は、各局所解においていずれかのスピンをフリップすることができる比較的高い逆温度である。従って、局所解に遷移した場合であっても、その状態からいずれかのスピンをフリップすることができ、その結果、別の局所解に遷移することができる。そして、ステップS6で算出された逆温度は、局所解においてスピンをフリップできないとみなすことができる逆温度である。従って、局所解に遷移し、逆温度が、ステップS6で算出された逆温度になったならば、スピン群の状態は、その局所解に収束し、その局所解が最適解であると言える。また、図4に示す処理では、各局所解においていずれかのスピンをフリップすることができる比較的高い逆温度を用いるので、局所解の近辺に最適解がない場合であっても、その局所解においていずれかのスピンをフリップすることができる。そのため、他の局所解に遷移しやすいので、最適解から離れた局所解に遷移していたとしても速く最適解に到達することができる。
【0109】
本実施形態によれば、第3エネルギー変化算出部13は、各局所解においていずれかのスピンをフリップするときの、入力された式(例えば、式(2))が表すエネルギー変化(第3エネルギー変化)を複数種類、算出する。そして、逆温度算出部14は、その第3エネルギー変化毎に、各局所解においていずれかのスピンをフリップすることができる比較的高い逆温度を算出する。また、逆温度算出部14は、各局所解においてスピンをフリップできないとみなすことができる逆温度も算出する。そして、疑似量子アニーリング実行部15は、それらの逆温度を用いて、逆温度を上げ下げしながら、疑似量子アニーリング(図4参照)を実行する。
【0110】
従って、本実施形態では、疑似量子アニーリングを複数回、試行することによって、逆温度の範囲や、逆温度を変化させる場合にどの程度変化させるかといったパラメータを決定する必要がない。また、前述のように、図4に示す処理では、各局所解においていずれかのスピンをフリップすることができる比較的高い逆温度を用いるので、局所解の近辺に最適解がない場合であっても、その局所解においていずれかのスピンをフリップすることができる。そのため、他の局所解に遷移しやすいので、最適解から離れた局所解に遷移していたとしても速く最適解に到達することができる。よって、本実施形態によれば、組合せ最適化問題の最適解を求めるまでの時間を短縮することができる。
【0111】
図5は、本発明の実施形態の求解システム1に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、入力デバイス1005とを備える。
【0112】
本発明の実施形態の求解システム1は、コンピュータ1000によって実現される。求解システム1の動作は、求解プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、その求解プログラムを補助記憶装置1003から読み出して、その求解プログラムを主記憶装置1002に展開し、その求解プログラムに従って、上記の実施形態で説明した処理を実行する。
【0113】
補助記憶装置1003は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。また、プログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000がそのプログラムを主記憶装置1002に展開し、そのプログラムに従って上記の実施形態で説明した処理を実行してもよい。
【0114】
また、各構成要素の一部または全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組合せによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。
【0115】
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【0116】
次に、本発明の概要について説明する。図6は、本発明の求解システムの概要を示すブロック図である。本発明の求解システムは、第1エネルギー変化算出手段71と、第2エネルギー変化算出手段72と、第3エネルギー変化算出手段73と、逆温度算出手段74と、アニーリング手段75とを備える。
【0117】
第1エネルギー変化算出手段71(例えば、第1エネルギー変化算出部11)は、組合せ最適化問題におけるエネルギーを表す式であって、目的関数および制約項を含む式が与えられると、組合せ最適化問題の各局所解においていずれかのスピンをフリップするときの制約項の値の変化である第1エネルギー変化を算出する。
【0118】
第2エネルギー変化算出手段72(例えば、第2エネルギー変化算出部12)は、各局所解においていずれかのスピンをフリップするときの目的関数の値の変化である第2エネルギー変化を算出する。
【0119】
第3エネルギー変化算出手段73(例えば、第3エネルギー変化算出部13)は、第1エネルギー変化および第2エネルギー変化とに基づいて、各局所解においていずれかのスピンをフリップするときの式が表すエネルギーの変化である第3エネルギー変化を複数種類、算出する。
【0120】
逆温度算出手段74(例えば、逆温度算出部14)は、個々の第3エネルギー変化毎に、各局所解においていずれかのスピンをフリップすることができる逆温度を算出するとともに、各局所解においてスピンをフリップできないとみなすことができる逆温度を算出する。
【0121】
アニーリング手段75(例えば、疑似量子アニーリング実行部15)は、算出された複数の逆温度を用いて疑似量子アニーリングを実行する。
【0122】
そのような構成によって、組合せ最適化問題の最適解を求めるまでの時間を短縮することができる。
【0123】
また、第1エネルギー変化算出手段71が、制約項を展開することによって、スピン毎の状態を表す各変数の係数を、第1エネルギー変化として算出してもよい。
【0124】
また、第2エネルギー変化算出手段72が、目的関数を所定のモデル(例えば、イジングモデル)の形式に変形し、少なくとも、所定のモデルの形式におけるスピン間の相互作用を表す定数(例えば、J’ij)の統計値と、所定のモデルの形式における各スピンに対応する各定数(例えば、h’)の統計値のいずれかを、第2エネルギー変化として算出してもよい。
【0125】
また、アニーリング手段75が、
全てのスピンを未選択として定める処理、
未選択のスピンの中から1つのスピンを選択する処理、
選択した1つのスピンをフリップするか否かを判定し、フリップすると判定した場合には、そのスピンをフリップする処理、および、
全てのスピンについてフリップするか否かを判定した後に、少なくとも1つのスピンに対してフリップすると判定していた場合には、逆温度を、現時点の逆温度よりも高く、現時点の逆温度に最も近い逆温度に変更し、全てのスピンに対してフリップしないと判定していた場合には、逆温度を、現時点の逆温度よりも低く、現時点の逆温度に最も近い逆温度に変更する処理
を繰り返してもよい。
【0126】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用の可能性】
【0127】
本発明は、組合せ最適化問題の求解に好適に適用される。
【符号の説明】
【0128】
1 求解システム
10 入力部
11 第1エネルギー変化算出部
12 第2エネルギー変化算出部
13 第3エネルギー変化算出部
14 逆温度算出部
15 疑似量子アニーリング実行部
図1
図2
図3
図4
図5
図6