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

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

▶ 国立大学法人東北大学の特許一覧

特許7579579組合せ最適化問題処理装置、組合せ最適化問題処理方法及びプログラム
<>
  • 特許-組合せ最適化問題処理装置、組合せ最適化問題処理方法及びプログラム 図1
  • 特許-組合せ最適化問題処理装置、組合せ最適化問題処理方法及びプログラム 図2
  • 特許-組合せ最適化問題処理装置、組合せ最適化問題処理方法及びプログラム 図3
  • 特許-組合せ最適化問題処理装置、組合せ最適化問題処理方法及びプログラム 図4
  • 特許-組合せ最適化問題処理装置、組合せ最適化問題処理方法及びプログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-30
(45)【発行日】2024-11-08
(54)【発明の名称】組合せ最適化問題処理装置、組合せ最適化問題処理方法及びプログラム
(51)【国際特許分類】
   G06N 10/60 20220101AFI20241031BHJP
   G06F 17/11 20060101ALI20241031BHJP
【FI】
G06N10/60
G06F17/11
【請求項の数】 8
(21)【出願番号】P 2021553521
(86)(22)【出願日】2020-10-22
(86)【国際出願番号】 JP2020039702
(87)【国際公開番号】W WO2021085297
(87)【国際公開日】2021-05-06
【審査請求日】2023-08-09
(31)【優先権主張番号】P 2019196324
(32)【優先日】2019-10-29
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】504157024
【氏名又は名称】国立大学法人東北大学
(74)【代理人】
【識別番号】100165179
【弁理士】
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100188558
【弁理士】
【氏名又は名称】飯田 雅人
(74)【代理人】
【識別番号】100175824
【弁理士】
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100152272
【弁理士】
【氏名又は名称】川越 雄一郎
(74)【代理人】
【識別番号】100181722
【弁理士】
【氏名又は名称】春田 洋孝
(72)【発明者】
【氏名】大関 真之
【審査官】渡辺 順哉
(56)【参考文献】
【文献】国際公開第2018/074006(WO,A1)
【文献】特表2018-533106(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 17/11
(57)【特許請求の範囲】
【請求項1】
解析対象の組合せ最適化問題を表す関数であって変数qの3次以上の項を含む関数である解析対象関数をハミルトニアンとする分配関数であり前記ハミルトニアンが変数Xによる所定の積分表示によって表された前記分配関数であり前記ハミルトニアンが前記変数qの2次以下の項だけを含む第1式と前記変数qを含まない第2式との和で表される前記分配関数を求根対象分配関数とし、前記変数qのみを独立変数とし前記求根対象分配関数の最大値に関する第1の所定の条件を満たす前記変数qの値を取得する処理を第1最適化処理とし、前記第1最適化処理によって取得された前記第1の所定の条件を満たす変数qを第1解とし、前記変数Xのみを独立変数とし前記求根対象分配関数の最大値に関する第2の所定の条件を満たす前記変数Xの値を取得する処理を第2最適化処理とし、前記第2最適化処理によって取得された前記第2の所定の条件を満たす変数Xを第2解として、前記第1最適化処理と前記第2最適化処理とを所定の終了条件が満たされるまで繰り返す交互最適化アルゴリズムにおける前記第1解の候補をアニーリングの手法によって取得するアニーリング部と、
前記第2解を取得する演算部と、
前記終了条件が満たされた場合に直前に得られた前記第1解の候補を、前記組合せ最適化問題の解の候補として取得する解候補取得部と、
を備える組合せ最適化問題処理装置。
【請求項2】
前記第1の所定の条件は、前記分配関数の値が極大値である、という条件である、
請求項1に記載の組合せ最適化問題処理装置。
【請求項3】
前記第2の所定の条件は、前記分配関数の値が極大値である、という条件である、
請求項1又は2に記載の組合せ最適化問題処理装置。
【請求項4】
前記所定の積分表示は、フーリエ積分表示である、
請求項1から3のいずれか一項に記載の組合せ最適化問題処理装置。
【請求項5】
前記アニーリングの手法は、量子アニーリングである、
請求項1から4のいずれか一項に記載の組合せ最適化問題処理装置。
【請求項6】
前記演算部は、前記第2解を求根アルゴリズムによって取得する、
請求項1から5のいずれか一項に記載の組合せ最適化問題処理装置。
【請求項7】
コンピュータが、解析対象の組合せ最適化問題を表す関数であって変数qの3次以上の項を含む関数である解析対象関数をハミルトニアンとする分配関数であり前記ハミルトニアンが変数Xによる所定の積分表示によって表された前記分配関数であり前記ハミルトニアンが前記変数qの2次以下の項だけを含む第1式と前記変数qを含まない第2式との和で表される前記分配関数を求根対象分配関数とし、前記変数qのみを独立変数とし前記求根対象分配関数の最大値に関する第1の所定の条件を満たす前記変数qの値を取得する処理を第1最適化処理とし、前記第1最適化処理によって取得された前記第1の所定の条件を満たす変数qを第1解とし、前記変数Xのみを独立変数とし前記求根対象分配関数の最大値に関する第2の所定の条件を満たす前記変数Xの値を取得する処理を第2最適化処理とし、前記第2最適化処理によって取得された前記第2の所定の条件を満たす変数Xを第2解として、前記第1最適化処理と前記第2最適化処理とを所定の終了条件が満たされるまで繰り返す交互最適化アルゴリズムにおける前記第1解の候補をアニーリングの手法によって取得するアニーリングステップと、
コンピュータが、前記第2解を取得する演算ステップと、
コンピュータが、前記終了条件が満たされた場合に直前に得られた前記第1解の候補を、前記組合せ最適化問題の解の候補として取得する解候補取得ステップと、
を有する組合せ最適化問題処理方法。
【請求項8】
請求項1から6のいずれか一項に記載の組合せ最適化問題処理装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、組合せ最適化問題処理装置、組合せ最適化問題処理方法及びプログラムに関する。
本願は、2019年10月29日に、日本に出願された特願2019-196324号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【0002】
近年、機械学習、深層学習又は人工知能の研究が進んでいる。機械学習、深層学習又は人工知能においては、巡回セールスマン問題等の組合せ最適化問題を高速に処理することが重要な課題の一つとなっている。そのため、組合せ最適化問題を高速に処理する装置の実装への期待が高まっている。このような組合せ最適化問題を高速に処理する装置の1つは、量子アニーリングによって最適化問題を処理する量子アニーリングマシン(非特許文献1)である。量子アニーリングマシンは、量子ビットを基本素子とする計算機であり複数の量子ビットを備える計算機である。量子アニーリングマシンは、自装置が備える複数の量子ビットを含む系(以下「ビット系」という。)における所定の固有状態(例えば基底状態)を示す情報をビット系の測定によって取得する(量子アニーリング)。固有状態を示す情報とは、具体的には、固有状態における各量子ビットの示す値の分布を示す情報である。そして、量子アニーリングマシンは、取得結果を組合せ最適化問題の解の候補として出力する。
【先行技術文献】
【非特許文献】
【0003】
【文献】”The D-Wave 2000Q System”、[online]、D Wave The Quantum Computing Company、[令和1年10月8日検索]、インターネット〈URL:https://www.dwavesys.com/d-wave-two-system>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の量子アニーリングマシンは隣接する量子ビット間の相互作用を用いるため2次形式で表される組合せ最適化問題しか扱うことができないという問題がある。そのため、従来はアニーリングの手法を利用して変数の3次以上の項を含む方程式の解の候補を取得することはできなかった。
また、このような問題は、量子アニーリングマシンに限らず、アニーリングの手法を利用して組合せ最適化問題の解の候補を出力する装置について共通の課題であった。
【0005】
上記事情に鑑み、本発明は、変数の3次以上の項を含む関数で表される組合せ最適化問題の解の候補をアニーリングの手法を利用して取得する技術を提供することを目的としている。
【課題を解決するための手段】
【0006】
本発明の一態様は、解析対象の組合せ最適化問題を表す関数であって変数qの3次以上の項を含む関数である解析対象関数をハミルトニアンとする分配関数であり前記ハミルトニアンが変数Xによる所定の積分表示によって表された前記分配関数であり前記ハミルトニアンが前記変数qの2次以下の項だけを含む第1式と前記変数qを含まない第2式との和で表される前記分配関数を求根対象分配関数とし、前記変数qのみを独立変数とし前記求根対象分配関数の最大値に関する第1の所定の条件を満たす前記変数qの値を取得する処理を第1最適化処理とし、前記第1最適化処理によって取得された前記第1の所定の条件を満たす変数qを第1解とし、前記変数Xのみを独立変数とし前記求根対象分配関数の最大値に関する第2の所定の条件を満たす前記変数Xの値を取得する処理を第2最適化処理とし、前記第2最適化処理によって取得された前記第2の所定の条件を満たす変数Xを第2解として、前記第1最適化処理と前記第2最適化処理とを所定の終了条件が満たされるまで繰り返す交互最適化アルゴリズムにおける前記第1解の候補をアニーリングの手法によって取得するアニーリング部と、前記第2解を取得する演算部と、前記終了条件が満たされた場合に直前に得られた前記第1解の候補を、前記組合せ最適化問題の解の候補として取得する解候補取得部と、を備える組合せ最適化問題処理装置である。
【0007】
本発明の一態様は、上記の組合せ最適化問題処理装置であって、前記第1の所定の条件は、前記分配関数の値が極大値である、という条件である。
【0008】
本発明の一態様は、上記の組合せ最適化問題処理装置であって、前記第2の所定の条件は、前記分配関数の値が極大値である、という条件である。
【0009】
本発明の一態様は、上記の組合せ最適化問題処理装置であって、前記所定の積分表示は、フーリエ積分表示である。
【0010】
本発明の一態様は、上記の組合せ最適化問題処理装置であって、前記アニーリングの手法は、量子アニーリングである。
【0011】
本発明の一態様は、上記の組合せ最適化問題処理装置であって、前記演算部は、前記第2解を求根アルゴリズムによって取得する。
【0012】
本発明の一態様は、解析対象の組合せ最適化問題を表す関数であって変数qの3次以上の項を含む関数である解析対象関数をハミルトニアンとする分配関数であり前記ハミルトニアンが変数Xによる所定の積分表示によって表された前記分配関数であり前記ハミルトニアンが前記変数qの2次以下の項だけを含む第1式と前記変数qを含まない第2式との和で表される前記分配関数を求根対象分配関数とし、前記変数qのみを独立変数とし前記求根対象分配関数の最大値に関する第1の所定の条件を満たす前記変数qの値を取得する処理を第1最適化処理とし、前記第1最適化処理によって取得された前記第1の所定の条件を満たす変数qを第1解とし、前記変数Xのみを独立変数とし前記求根対象分配関数の最大値に関する第2の所定の条件を満たす前記変数Xの値を取得する処理を第2最適化処理とし、前記第2最適化処理によって取得された前記第2の所定の条件を満たす変数Xを第2解として、前記第1最適化処理と前記第2最適化処理とを所定の終了条件が満たされるまで繰り返す交互最適化アルゴリズムにおける前記第1解の候補をアニーリングの手法によって取得するアニーリングステップと、前記第2解を取得する演算ステップと、前記終了条件が満たされた場合に直前に得られた前記第1解の候補を、前記組合せ最適化問題の解の候補として取得する解候補取得ステップと、を有する組合せ最適化問題処理方法である。
【0013】
本発明の一態様は、上記の組合せ最適化問題処理装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0014】
本発明により、変数の3次以上の項を含む関数で表される組合せ最適化問題の解の候補をアニーリングの手法を利用して取得することが可能となる。
【図面の簡単な説明】
【0015】
図1】実施形態の組合せ最適化問題処理装置1の機能構成の一例を示す図。
図2】実施形態における制御部11の機能構成の一例を示す図。
図3】実施形態における状態測定部15の一例を説明する説明図。
図4】実施形態における複数の物理量子ビット101の位置関係の一例を示す図。
図5】実施形態の組合せ最適化問題処理装置1が実行する処理の流れの一例を示すフローチャート。
【発明を実施するための形態】
【0016】
(実施形態)
図1は、実施形態の組合せ最適化問題処理装置1の機能構成の一例を示す図である。まず、組合せ最適化問題処理装置1の概要を説明する。
【0017】
<組合せ最適化問題処理装置1の概要>
組合せ最適化問題処理装置1は、交通管理の最適化等の組合せ最適化問題であって解析対象の組合せ最適化問題の解の候補をアニーリングの手法を利用して取得する装置である。より具体的には、組合せ最適化問題処理装置1は、変数の3次以上の項gを含む関数(以下「解析対象関数」という。)によって表される組合せ最適化問題の解をアニーリングの手法を利用して取得する装置である。解析対象関数によって表される組合せ最適化問題の解は、具体的には、解析対象の組合せ最適化問題を表す所定の条件(以下「組合せ条件」という。)を満たす変数の値の候補をアニーリングの手法を利用して取得することで取得される。
【0018】
組合せ条件は、解析対象の組合せ最適化問題を表す条件であればどのような条件であってもよい。組合せ条件は、例えば解析対象関数の値が最小値であるという条件である。組合せ条件は、解析対象の組合せ最適化問題によっては、例えば解析対象関数の値が極小値であるという条件である。組合せ条件は、解析対象の組合せ最適化問題によっては、例えば解析対象関数の値が極大値であるという条件である。以下、説明の簡単のため、組合せ条件が、解析対象関数の値が最小値であるという条件である場合を例に組合せ最適化問題処理装置1を説明する。以下、組合せ条件を満たす変数の値を、解析対象関数の条件下解という。すなわち、解析対象関数の条件下解は、解析対象の組合せ最適化問題の解である。なお、iは1以上I以下の整数(Iは1以上の整数)である。異なるiは、3次以上の各項gを区別するための記号である。解析対象関数は、例えば式(1)で表される式である。
【0019】
【数1】
【0020】
【数2】
【0021】
式(1)においてf(q)は、解析対象関数を表す。式(1)においてqは、解析対象関数中の変数を表す。変数qは、スカラー又はベクトルである。以下、説明の簡単のためqがN個の要素を有するベクトルである場合を例に、組合せ最適化問題処理装置1を説明する。変数qの各要素は、2値変数である。
【0022】
式(1)において、f(q)は、解析対象関数f(q)が含む項であって変数qの二次の項を表す。式(1)において、中式の第2項は、解析対象関数f(q)の各項のうち、変数qの3次以上の項の和を表す。式(2)において、上付きのTは、変数qの転置を表す。式(2)においてQは、係数行列を表す。
【0023】
解析対象関数f(q)を量子系等の所定の系を表すハミルトニアンと見なした場合、ハミルトニアンf(q)によって表される分配関数Zは、以下の式(3)によって表される。
【0024】
【数3】
【0025】
式(3)においてβは、後述するアニーリングの手法によって系の状態を測定するときの系の温度の逆温度を表す。式(3)においてシグマ記号Σは、変数qの要素ごとにシグマ記号Σの右に記載の項の値を算出し、算出した値の和をとることを意味する。式(3)の右辺のネイピア数を底とする指数関数の指数を、変数xによるフーリエ積分表示によって表すと、式(3)は以下の式(4)で表される。以下、式(4)を第1フーリエ表示式という。変数xはxを要素にもつI次元のベクトルである。qがベクトルである場合、xiもベクトルである。
【0026】
【数4】
【0027】
式(4)において、δ(・・・)は、ディラックのデルタ関数を表す。このように、第1フーリエ表示式は変数xと変数qとの差分を引数とするデルタ関数を含む。
【0028】
式(4)のデルタ関数を変数Xによるフーリエ積分表示によって表すと、式(4)のデルタ関数は以下の式(5)で表される。変数XはXを要素にもつI次元のベクトルである。qがベクトルである場合、Xiもベクトルである。
【0029】
【数5】
【0030】
式(3)、式(4)及び式(5)より、分配関数Zは、以下の式(6)で表される。以下、式(6)を第2フーリエ表示式という。
【0031】
【数6】
【0032】
式(3)と式(6)とを比較すると、解析対象関数f(q)は以下の式(7)で表されることがわかる。
【0033】
【数7】
【0034】
ただし、式(7)のHは以下の式(8)で表され、式(7)のHは、以下の式(9)で表される。以下、Hを第1解析対象項という。以下、Hを第2解析対象項という。
【0035】
【数8】
【0036】
【数9】
【0037】
このように、変数qの3次以上の項をふくむ関数である解析対象関数f(q)は、変数Xおよびxを用いることで、変数qの2次以下の項だけを含む関数に変換される。より具体的には、解析対象関数f(q)は、変数Xおよびxを用いることで、変数qの2次以下の項だけを含む第1解析対象項と変数qを含まない第2解析対象項との和の式に変形される。変数qの2次以下の項だけを含む関数の値が0に等しいことを示す方程式の場合、量子アニーリング等のアニーリングの手法でその解の取得が可能である(例えば非特許文献1参照)。
【0038】
量子統計力学等の量子系の物理学でよく知られているように、分配関数が最大の場合にハミルトニアンは最低値である。そのため、解析対象関数の条件下解は変数q、変数X及び変数xを変数とする関数の極小値を与える変数q、変数X及び変数xにおける変数qである。特に、変数xが変数q又は変数Xの関数である場合、解析対象関数の条件下解は変数q及び変数Xを変数とする関数の極小値を与える変数q及び変数Xにおける変数qである。
【0039】
後述するように変数xは変数qの関数であるため、組合せ最適化問題処理装置1は、アニーリングの手法及び非アニーリングの手法を用いて以下で説明する交互最適化アルゴリズムを実行することで解析対象関数の条件下解を取得する。非アニーリングの手法とは、アニーリング以外の手法を意味する。
【0040】
組合せ最適化問題処理装置1が実行する交互最適化アルゴリズムは、所定の終了条件が満たされるまで第1最適化処理と第2最適化処理とを交互に繰り返すアルゴリズムである。第1最適化処理は、変数qのみを独立変数として、分配関数Zの最大値に関する第1の所定の条件(以下「第1分配関数条件」という。)を満たす変数qを取得する処理である。以下、第1分配関数条件を満たす変数qを第1解という。第1分配関数条件は、例えば分配関数Zの値と分配関数Zの最大値との差が所定の値未満という条件である。第1分配関数条件は、例えば分配関数Zの値が分配関数Zの最大値である、という条件であってもよい。第1分配関数条件は、分配関数Zの値が極大値である、という条件であってもよい。以下、説明の簡単のため、第1分配関数条件が、分配関数Zの値が極大値であるという条件である場合を例に組合せ最適化問題処理装置1を説明する。
【0041】
第2最適化処理は、変数Xのみを独立変数として、分配関数Zの最大値に関する第2の所定の条件(以下「第2分配関数条件」という。)を満たす変数Xを取得する処理である。以下、第2分配関数条件を満たす変数Xを第2解という。第2分配関数条件は、例えば分配関数Zの値と分配関数Zの最大値との差が所定の値未満という条件である。第2分配関数条件は、例えば分配関数Zの値が分配関数Zの最大値である、という条件であってもよい。第2分配関数条件は、分配関数Zの値が極大値である、という条件であってもよい。以下、説明の簡単のため、第2分配関数条件が、分配関数Zの値が極大値であるという条件である場合を例に組合せ最適化問題処理装置1を説明する。
【0042】
より具体的には、組合せ最適化問題処理装置1が実行する交互最適化アルゴリズムでは、まず第1最適化処理の実行により第1解が取得される。次に、第1解が分配関数Zに代入される。次に、変数Xを独立変数とする代入後の分配関数Zの極大値を与える変数X(すなわち第2解)が取得される。次に、変数qを独立変数とし第2解が代入された分配関数Zの極大値を与える変数qの値が取得される。次に、変数Xを独立変数とし取得された変数qの代入後の分配関数Zの極大値を与える変数Xが取得される。組合せ最適化問題処理装置1が実行する交互最適化アルゴリズムでは、以下このような第1解と第2解とを取得する処理が、所定の終了条件(以下「最適化終了条件」という。)が満たされるまで繰り返される。最適化終了条件は、例えば第1解の値の変化が所定の値未満という条件である。
【0043】
組合せ最適化問題処理装置1は、第1最適化処理を量子アニーリング等のアニーリングの手法で実行する。組合せ最適化問題処理装置1は、第1最適化処理をアニーリングの手法で取得するため、組合せ最適化問題処理装置1が取得する第1解は、変数qの値と変数qの各値の確率密度との組である。
【0044】
ここで、組合せ最適化問題処理装置1が取得する第1解が変数qの値と変数qの各値の確率密度との組であることを説明する。アニーリングの手法では、アニーリングの対象の系(以下「アニーリング対象系」という。)の状態を測定する。アニーリング対象系は、複数の物理量子ビットを含み、ハミルトニアンが式(8)で表される系である。アニーリング対象系は、例えばイジングモデルで表されるスピン系等の量子系である。以下、アニーリングの手法が量子アニーリングであってアニーリング対象系がイジングモデルで表されるスピン系である場合を例に組合せ最適化問題処理装置1を説明する。変数qの値は、アニーリング対象系が有する電子のスピン等の物理量子ビットの状態を示す。
【0045】
アニーリング対象系に対して状態が測定された場合、量子力学等の量子系の物理学でよく知られているように、物理量の値とその物理量の確率密度とが測定される。そのため、組合せ最適化問題処理装置1が量子アニーリングの手法で変数qの値を取得する場合、組合せ最適化問題処理装置1は変数qに対応する物理量の値と変数qに対応する物理量の値の確率密度とを測定する。なお、物理量の値だけでなく物理量の値の確率密度も測定されることは、量子アニーリングに限らずアニーリングの手法であればどのような方法においても同様である。
【0046】
アニーリングの手法において変数X及び変数xの値は、それぞれハミルトニアンが式(8)で表されるアニーリング対象系の状態を制御するための情報(以下「アニーリング制御情報」という。)のひとつである。例えばアニーリングの手法が量子アニーリングであってアニーリング対象系がイジングモデルで表されるスピン系である場合、アニーリングの手法において変数Xの値は、スピンに印加する磁場の向き及び強さに関する値である。なお、磁場の向き及び強さは、具体的には、分配関数Zの値と変数Xとによって決まる値である。また、このような場合、アニーリングの手法において変数xの値は、直前の第1最適化処理において取得された第1解が示す変数qの期待値である。なお、変数qの期待値は、具体的には、分配関数Zに応じた値である。アニーリング制御情報は、変数X及び変数xの値に加えて後述する形式情報、式係数情報及び温度情報を含む。
【0047】
変数x及び変数Xの値は、非アニーリングの手法で値を取得する装置であればどのような装置で値が取得されてもよい。非アニーリングの手法で値を取得する装置は、例えばノイマン型コンピュータある。
【0048】
<アニーリングの手法の詳細>
ここで、変数qの値を取得するためのアニーリングの手法についてより詳細に説明する。上述したように解析対象関数f(q)は量子系等の所定の系を表すハミルトニアンと見なすことができるので、第1解析対象項Hもハミルトニアンf(q)の部分系のハミルトニアンと見なすことができる。ハミルトニアンHによって表される分配関数Zは、以下の式(10)で表される。
【0049】
【数10】
【0050】
また、上述したように、組合せ最適化問題処理装置1は、式(6)で表される分配関数Zの極大値を与える変数qをアニーリングの手法で取得する。第2解析対象項が変数qを陽に含まないため、分配関数Zの極大値を与える変数qを取得する処理は、分配関数Zの極大値を与える変数qを取得する処理に等価である。そのため、組合せ最適化問題処理装置1は、第1解析対象項をハミルトニアンとする分配関数の一次微分の値を0にする解をアニーリングの手法によって取得する。すなわち、組合せ最適化問題処理装置1は、アニーリングの手法によって以下の式(11)及び式(12)を満たす解をアニーリングの手法で取得する。
【0051】
【数11】
【0052】
【数12】
【0053】
アニーリングの手法で式(11)及び式(12)を満たす解を取得する処理は、例えばアニーリングの手法が量子アニーリングである場合、ハミルトニアンが式(8)で表される量子系の量子状態であって分配関数Zが最大である量子状態を測定する処理である。以下、ハミルトニアンが式(8)で表される量子系の量子状態であって分配関数Zが最大である量子状態を対象量子状態という。分配関数Z1が最大である量子状態は、ハミルトニアンが式(8)で表される量子系の基底状態である。
【0054】
<第2最適化処理について>
ここで、第2最適化処理ついてより詳細に説明する。第2最適化処理において、変数xには直前のアニーリングによって取得された変数qの期待値が代入される。すなわち、第2最適化処理によって変数xは以下の式(13)で表される値に更新される。
【0055】
【数13】
【0056】
第2解は、例えば更新式が以下の式(14)のである求根アルゴリズムによって取得される。
【0057】
【数14】
【0058】
式(14)の更新式は、変数xの値が式(13)で表される値である場合において、以下の式(15)の解を求めるための求根アルゴリズムの更新式である。
【0059】
【数15】
【0060】
式(15)は、第2解析対象項の値が0に等しいことを表す。
【0061】
なお、求根アルゴリズムは、変数xの値が式(13)で表される値である場合において、以下の式(15)の解を求めることができればどのようなアルゴリズムであってもよい。求根アルゴリズムは、例えば勾配法であってもよい。求根アルゴリズムは、例えば2分法であってもよい。求根アルゴリズムは、例えば反復代入法であってもよい。
【0062】
<装置の詳細>
以下、組合せ最適化問題処理装置1が備える各機能部を説明することで、より具体的に組合せ最適化問題処理装置1を説明する。
【0063】
組合せ最適化問題処理装置1は、バスで接続されたCPU(Central Processing Unit)等のバスで接続されたCPU(Central Processing Unit)等のプロセッサ91とメモリ92とを備える制御部11を備え、プログラムを実行する。組合せ最適化問題処理装置1は、プログラムの実行によって制御部11、記憶部12、入力部13、出力部14及び状態測定部15を備える装置として機能する。
【0064】
なお、組合せ最適化問題処理装置1の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【0065】
制御部11は、組合せ最適化問題処理装置1の各機能部の動作を制御する。
図2は、実施形態における制御部11の機能構成の一例を示す図である。図2では、解析対象関数の解の候補の取得に関する機能部を示す。制御部11は、条件取得部111、解候補取得部112、非アニーリング演算部113及び状態測定制御部114を備える。
【0066】
条件取得部111は、解析対象関数と、逆温度等のアニーリングの手法によって系の状態を測定するときの系の温度を示す情報(以下「温度情報」という。)と、を取得する。解析対象関数を取得するとは具体的には、解析対象関数の各項を構成する変数、次数等の解析対象関数の形を示す情報と解析対象関数の各項の係数の値を示す情報と、解析対象関数の値が0であることを示す情報とを取得することを意味する。解析対象関数の形を示す情報(以下「形式情報」という。)と解析対象関数の各項の係数の値を示す情報(以下「式係数情報」という。)と解析対象関数の値が0であることを示す情報(以下「零情報」という。)とは、それぞれアニーリング制御情報の1つである。温度情報は、例えば逆温度を示してもよい。
【0067】
条件取得部111は、どのようにして解析対象関数及び温度情報を取得してもよい。条件取得部111は、例えば入力部13に入力された解析対象関数及び温度情報をバスを介して取得することで解析対象関数及び温度情報を取得してもよい。条件取得部111は、例えば記憶部12に記憶された解析対象関数及び温度情報を記憶部12から読み出すことで解析対象関数と系の温度を示す値とを取得してもよい。
【0068】
解候補取得部112は、最適化終了条件が満たされたか否かを判定し、最適化終了条件が満たされた場合に、直前の第1最適化処理によって取得された第1解を解析対象関数の解の候補として取得する。解候補取得部112が取得した解の候補が、解析対象の組合せ最適化問題の解の候補である。
【0069】
非アニーリング演算部113は、詳細を後述する状態測定部15の測定結果に基づき、詳細を後述する記憶部12が記憶する変数xの値を式(13)が表す値に更新する。また、非アニーリング演算部113は、詳細を後述する状態測定部15の測定結果に基づき、第2解を取得する。状態測定部15の測定結果は、具体的には、変数qの値と変数qの各値の確率密度とである。非アニーリング演算部113は、非アニーリングの方法で第2解を取得する。非アニーリング演算部113は、取得した第2解によって詳細を後述する記憶部12が記憶する変数Xの値を更新する。
【0070】
状態測定制御部114は、アニーリング制御情報に基づいて状態測定部15の動作を制御する。状態測定制御部114は、最適化終了条件が満たされるまでは第2解が取得されるたびに、状態測定部15にアニーリング開始指示を出力する。アニーリング開始指示は、状態測定部15にアニーリングを開始させる信号である。また、状態測定部15は、解析対象関数及び温度情報が入力部13に入力された場合にも、状態測定制御部114にアニーリング開始指示を出力する。解析対象関数が入力されるとは、形式情報、式係数情報及び零情報が入力部13に入力されることを意味する。
【0071】
制御部11は、条件取得部111、解候補取得部112、非アニーリング演算部113及び状態測定制御部114が動作すれば、どのような仕組みで動作してもよい。制御部11は、例えばノイマン型のコンピュータと同様の仕組みで動作をしてもよい。
【0072】
図1の説明に戻る。
記憶部12は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。記憶部12は、自装置に関する各種情報を記憶する。記憶部12は、例えば状態測定部15の測定結果を記憶する。記憶部12は、例えばアニーリング制御情報を記憶する。より具体的には、記憶部12は、例えば変数X及び変数xの初期値を記憶する。また、記憶部12は、例えば第2最適化処理の実行によって変数X及び変数xが更新されるたびに、更新後の変数X及び変数xを記憶する。また、記憶部12は、例えば解析対象関数を記憶する。解析対象関数を記憶するとは、具体的には、形式情報、式係数情報及び零情報を記憶することを意味する。また、記憶部12は、例えば温度情報を記憶する。
【0073】
記憶部12は、例えば第1解析対象項を記憶する。第1解析対象項を記憶するとは、具体的には、第1解析対象項を記憶するとは、具体的には、第1解析対象項を構成する変数、次数等の第1解析対象項の形を示す情報と第1解析対象項の係数の値とを記憶することを意味する。記憶部12は、例えば第2解析対象項を記憶する。第2解析対象項を記憶するとは、具体的には、第2解析対象項を構成する変数、次数等の第2解析対象項の形を示す情報と第2解析対象項の係数の値とを記憶することを意味する。記憶部12は、例えば第1解を記憶する。記憶部12は、例えば第2解を記憶する。記憶部12は、例えば組合せ条件を予め記憶する。
【0074】
入力部13は、マウスやキーボード、タッチパネル等の入力装置を含んで構成される。入力部13は、これらの入力装置を自装置に接続するインタフェースとして構成されてもよい。入力部13は、自装置に対する各種情報の入力を受け付ける。入力部13は、解析対象関数の入力を受け付ける。解析対象関数の入力を受け付けるとは、具体的には、形式情報、式係数情報及び零情報の入力を受け付けることを意味する。入力部13は、入力された解析対象関数を制御部11及び記憶部12に出力する。
【0075】
出力部14は、解候補取得部112によって取得された解析対象関数の条件下解の候補を出力する。出力部14は、取得された解析対象関数の条件下解の候補を出力可能であればどのようなものであってもよい。出力部14は、例えばCRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ等の表示装置を含んで構成される。出力部14は、これらの表示装置を自装置に接続するインタフェースとして構成されてもよい。
【0076】
状態測定部15は、量子アニーリングの手法によってアニーリング対象系の対象量子状態を測定する。状態測定部15は、対象量子状態の測定によって第1解を取得する。状態測定部15は、アニーリング開始指示を取得するたび、アニーリング制御情報に基づいてアニーリング対象系の状態を制御する。状態測定部15は、アニーリング対象系の状態の1つであって状態測定部15によって制御された状態の1つである対象量子状態を測定する。
【0077】
アニーリング制御情報に基づいてアニーリング対象系の状態を制御するとは、具体的には、アニーリング対象系の状態を以下のハミルトニアン条件を満たす状態であるように制御する。ハミルトニアン条件は、アニーリング対象系のハミルトニアンは、式(8)で表されるハミルトニアンであって、式(8)の変数q以外の各変数及び定数の値はアニーリング制御情報が示す値である、という条件である。アニーリング対象系は、例えば状態測定部15によるアニーリング対象系への磁場の印加によって制御される。状態測定部15が状態を測定する際のアニーリング対象系の温度は温度情報が示す温度である。
【0078】
なお、第2最適化処理の実行が開始されるまでは、第1最適化処理の実行時の変数X及び変数xの値は、変数X及び変数xの初期値である。
【0079】
図3は、実施形態における状態測定部15の一例を説明する説明図である。
状態測定部15は、量子ビット体501、状態制御部502、測定装置503及び第1解取得部504を備える。
【0080】
量子ビット体501は、複数の物理量子ビット101を有する。量子ビット体501は、例えば量子ドットを有する半導体基板である。このような場合、物理量子ビット101は、例えば量子ドット中の電子のスピンである。量子ビット体501は、窒素欠陥を有するダイヤモンド基盤であってもよい。このような場合、物理量子ビット101は、例えば窒素欠陥中の電子のスピンである。量子ビット体501は、超電導回路であってもよい。このような場合、物理量子ビット101は、例えば超電導量子ビットである。量子ビット体501は、アニーリング対象系の一例である。
【0081】
状態制御部502は、量子ビット体501の状態を制御する。より具体的には、状態制御部502は、量子ビット体501のハミルトニアンがハミルトニアン条件を満たすハミルトニアンであるように量子ビット体501の状態を制御する。
【0082】
状態制御部502は、例えば量子ビット体501の物理量子ビット101が超電導量子ビットである場合には、各超電導回路に流す電流の制御と、量子ビット体501に印加する磁場の制御とによって量子ビット体501の状態を制御する。このような場合、状態制御部502は、例えば超電導回路に流す電流を制御する回路と、磁場の発生装置とを備える装置である。状態制御部502は、さらに温度を制御してもよい。状態制御部502は、温度制御によっても量子ビット体501の状態を制御してもよい。このような場合、状態制御部502は、例えば発熱機又は冷却器を備える。状態制御部502は、例えば温度を温度情報が示す温度に制御する。量子ビット体501の状態の測定は、室温未満の低温であることが望ましい。特に測定は0Kで行われることが望ましい。以下、説明の簡単のため、物理量子ビット101が電子のスピンである場合であって測定時の温度が0Kである場合を例に組合せ最適化問題処理装置1を説明する。
【0083】
測定装置503は、量子ビット体501の量子状態を測定する。測定装置503は、量子ビット体501の量子状態を取得可能であればどのようなものであってもよい。量子ビット体501の量子状態とは、具体的には、複数の物理量子ビット101の量子状態である。測定装置503は、例えば磁束計を備える装置であってもよいし、光センサを備える装置であってもよい。測定装置503は、測定結果に基づき量子ビット体501の状態が対象量子状態であるか否かを判定する。より具体的には、測定装置503は、分配関数Zの極大値に関する所定の条件が満たされた場合に、量子ビット体501の状態が対象量子状態であると判定する。分配関数Zの極大値に関する所定の条件(以下「極大条件」という。)とは、例えば分配関数Zの一次微分の値が0を含む所定の範囲内の値であり、かつ、分配関数Zの一次微分の符号がプラスからマイナスへの変化であるという条件である。
【0084】
ここで、状態制御部502と測定装置503との動作についてより詳細に説明する。状態制御部502は、アニーリング開始指示を取得すると、量子ビット体501の状態を変化させる。具体的には、各物理量子ビット101の量子状態を変化させるように量子ビット体501の状態を変化させる。
【0085】
測定装置503は、状態制御部502によって変化させられた量子ビット体501の状態を測定する。測定装置503は、測定結果に基づき、量子ビット体501の状態が対象量子状態であるか否かを判定する。測定装置503によって対象量子状態ではないと判定された場合、状態制御部502は、再び量子ビット体501の状態を変化させる。量子ビット体501の状態の変化は、断熱的に行われることが望ましい。そして、測定装置503が、変化後の量子ビット体501の状態を測定する。以下、同様の処理が極大条件が満たされるまで実行される。このような繰り返しによって、測定装置503は、対象量子状態における各物理量子ビット101の状態を測定する。
【0086】
第1解取得部504は、測定装置503の測定結果に基づいて量子ビット体501の対象量子状態における各物理量子ビット101の状態を示す値と各状態が生じる確率密度とを取得する。物理量子ビット101の状態とは、例えば物理量子ビット101が電子のスピンであれば、電子のスピンの向き及び大きさである。第1解取得部504が取得した各物理量子ビット101の状態を示す値は第1解における変数qの値である。状態が生じる確率密度は第1解における変数qの各値の確率密度である。すなわち、第1解取得部504は、測定により第1解を取得する。第1解取得部504が取得した第1解は、記憶部12に記憶される。第1解取得部504が取得した第1解は、制御部11に出力されてもよい。
【0087】
図4は、実施形態における複数の物理量子ビット101の位置関係の一例を示す図である。図4は、量子ビット体501内に位置する複数の物理量子ビット101の図である。図4は、複数の物理量子ビット101が格子状に位置することを示す。
【0088】
図5は、実施形態の組合せ最適化問題処理装置1が実行する処理の流れの一例を示すフローチャートである。
条件取得部111が解析対象関数及び温度情報を取得する(ステップS101)。次に、状態測定制御部114が状態測定部15に対してアニーリング開始指示を出力する(ステップS102)。次に、状態測定部15は、極大条件が満たされるまで、ハミルトニアン条件を満たすように量子ビット体501の状態を変化させながら量子ビット体501の状態を測定する(ステップS103)。次に、状態測定部15が、対象量子状態における各物理量子ビット101の状態を測定する(ステップS104)。ステップS104で測定された各物理量子ビット101の状態は変数qの値と変数qの各値の確率密度とを示すため、ステップS103からステップS104までの処理は第1最適化処理であり第1解を取得する処理である。
【0089】
ステップS104の次に、ステップS104の結果に基づき、非アニーリング演算部113が非アニーリングの方法で第2解を取得する(ステップS105)。非アニーリング演算部113は、取得した第2解によって記憶部12に記憶された変数Xの値を更新する。また、非アニーリング演算部113は、第2解の取得に際して、ステップS104の結果に基づき記憶部12に記憶された変数xの値を式(13)が表す値に更新する。より具体的には、直前のステップS104において取得された変数qの値と変数qの各値の確率密度を用いて変数qの期待値に変数xの値を更新する。ステップS105の処理は第2最適化処理である。
【0090】
ステップS105の次に、解候補取得部112が、最適化終了条件が満たされたか否かを判定する(ステップS106)。最適化終了条件が満たされた場合(ステップS106:YES)、解候補取得部112は、直前の第1最適化処理によって取得された第1解を解析対象関数の条件下解の候補として取得する(ステップS107)。ステップS107の次に、出力部14がステップS107において取得された条件下解の候補を出力する(ステップS108)。
【0091】
一方、ステップS106において最適化終了条件が満たされない場合、ステップS102の処理に戻る。
【0092】
このように構成された実施形態の組合せ最適化問題処理装置1は、式(1)そのものではなく式(1)をハミルトニアンとする分配関数Zを用いて解析対象関数の条件下解の候補を取得する。分配関数Zは、変数(1)には存在しない変数Xを用いることで、変数qの2次以下の項だけを含む式に変形される。
【0093】
そこで、組合せ最適化問題処理装置1は、第1最適化処理と、第2最適化処理とを交互に繰り返す。第1最適化処理と第2最適化処理との繰り返しによって、第1分配関数条件を満たす変数qが取得される。第1最適化処理と第2最適化処理との繰り返しによって取得された変数qのうち、最適化終了条件が満たされた時点における変数qが解析対象関数で表される組合せ最適化問題の解の候補である。
【0094】
ところで、変数qの2次以下の項だけを含む式の解は、アニーリングの手法によって取得可能である。そこで、組合せ最適化問題処理装置1は、アニーリングを実行する状態測定部15を備える。そのため、このように構成された組合せ最適化問題処理装置1は、変数の3次以上の項を含む関数で表される組合せ最適化問題の解の候補をアニーリングの手法を利用して取得することができる。
【0095】
(変形例)
なお、状態測定部15は、必ずしも、量子アニーリングによって第1解を取得する必要は無い。状態測定部15は、例えば非量子的なアニーリングによって第1解を取得してもよい。非量子的なアニーリングによって第1解を取得する装置は、例えばCMOS(Complementary MOS)アニーリングマシンである。
【0096】
なお式(4)のデルタ関数と式(6)で表される分配関数Zの指数とは変数Xによる所定の積分表示であれば、必ずしもフーリエ積分表示によって表されなくてもよい。より具体的には、所定の積分表示は、分配関数Zを表す指数関数の指数に補助変数を導入可能な表示であればどのような積分表示であってもよい。
【0097】
なお、組合せ条件は、必ずしも予め記憶部12に記憶されている必要はなく、例えば入力部13を介して入力されてもよい。
【0098】
組合せ最適化問題処理装置1は、ネットワークを介して通信可能に接続された複数台の情報処理装置を用いて実装されてもよい。この場合、組合せ最適化問題処理装置1が備える各機能部は、複数の情報処理装置に分散して実装されてもよい。例えば条件取得部111、解候補取得部112、非アニーリング演算部113及び状態測定制御部114と状態測定部15とはそれぞれ異なる情報処理装置に実装されてもよい。
なお、第1解取得部504は、制御部11が備えてもよい。
【0099】
なお、式(6)によって表される分配関数Zは、求根対象分配関数の一例である。なお、状態測定部15は、アニーリング部の一例である。なお、非アニーリング演算部113は、演算部の一例である。なお、第1解析対象項は第1式の一例である。なお、第2解析対象項は第2式の一例である。
【0100】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0101】
1…組合せ最適化問題処理装置、 11…制御部、 12…記憶部、 13…入力部、 14…出力部、 15…状態測定部、 111…条件取得部、 112…解候補取得部、 113…非アニーリング演算部、 114…状態測定制御部、 501…量子ビット体、 502…状態制御部、 503…測定装置、 504…第1解取得部
図1
図2
図3
図4
図5