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

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

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

特許7401739次数変換装置、次数変換方法、および次数変換プログラム
<>
  • 特許-次数変換装置、次数変換方法、および次数変換プログラム 図1
  • 特許-次数変換装置、次数変換方法、および次数変換プログラム 図2
  • 特許-次数変換装置、次数変換方法、および次数変換プログラム 図3
  • 特許-次数変換装置、次数変換方法、および次数変換プログラム 図4
  • 特許-次数変換装置、次数変換方法、および次数変換プログラム 図5
  • 特許-次数変換装置、次数変換方法、および次数変換プログラム 図6
  • 特許-次数変換装置、次数変換方法、および次数変換プログラム 図7
  • 特許-次数変換装置、次数変換方法、および次数変換プログラム 図8
  • 特許-次数変換装置、次数変換方法、および次数変換プログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-12
(45)【発行日】2023-12-20
(54)【発明の名称】次数変換装置、次数変換方法、および次数変換プログラム
(51)【国際特許分類】
   G06N 99/00 20190101AFI20231213BHJP
【FI】
G06N99/00 180
【請求項の数】 7
(21)【出願番号】P 2019183619
(22)【出願日】2019-10-04
(65)【公開番号】P2021060714
(43)【公開日】2021-04-15
【審査請求日】2022-06-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】高橋 憲彦
【審査官】渡辺 順哉
(56)【参考文献】
【文献】国際公開第2014/192153(WO,A1)
【文献】特開2014-191564(JP,A)
【文献】特表2019-513276(JP,A)
【文献】XIA, Rongxin ほか,Electronic Structure Calculations and the Ising Hamiltonian,arXiv[online],2017年06月01日,pp.1-21,[retrieved on 2023.05.26], Retrieved from the Internet: <URL: https://arxiv.org/pdf/1706.00271.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 10/00-10/80,99/00
(57)【特許請求の範囲】
【請求項1】
イジングモデルのエネルギーを表したハミルトニアンに含まれる複数の項から、N個(Nは3以上の整数)のパウリ行列を含む項を変換対象項として選択する選択処理と、前記ハミルトニアン内の前記変換対象項を、変換後の複数の第1の項のうちの1以上の第1の項に前記変換対象項に含まれない追加のパウリ行列を含み、それぞれがN個未満のパウリ行列を含む前記複数の第1の項に変換する変換処理と、変換後の前記ハミルトニアンに含まれる同類項どうしを加算して1つの項とするまとめ処理とを、繰り返し実行する処理部、
を有する次数変換装置。
【請求項2】
前記処理部は、前記選択処理が実行されるごとに三次以上の項を1つずつ前記変換対象項として選択し、前記選択処理、前記変換処理、および前記まとめ処理を、前記ハミルトニアン内のすべての項の次数が二次以下になるまで繰り返し実行する、
請求項1記載の次数変換装置。
【請求項3】
前記処理部は、前記選択処理において、前記ハミルトニアンに含まれる複数の項のうち次数が大きい項から順に前記変換対象項として選択する、
請求項2記載の次数変換装置。
【請求項4】
コンピュータが、
イジングモデルのエネルギーを表したハミルトニアンに含まれる複数の項から、N個(Nは3以上の整数)のパウリ行列を含む項を変換対象項として選択する選択処理と、前記ハミルトニアン内の前記変換対象項を、変換後の複数の第1の項のうちの1以上の第1の項に前記変換対象項に含まれない追加のパウリ行列を含み、それぞれがN個未満のパウリ行列を含む前記複数の第1の項に変換する変換処理と、変換後の前記ハミルトニアンに含まれる同類項どうしを加算して1つの項とするまとめ処理とを、繰り返し実行する、
次数変換方法。
【請求項5】
コンピュータに、
イジングモデルのエネルギーを表したハミルトニアンに含まれる複数の項から、N個(Nは3以上の整数)のパウリ行列を含む項を変換対象項として選択する選択処理と、前記ハミルトニアン内の前記変換対象項を、変換後の複数の第1の項のうちの1以上の第1の項に前記変換対象項に含まれない追加のパウリ行列を含み、それぞれがN個未満のパウリ行列を含む前記複数の第1の項に変換する変換処理と、変換後の前記ハミルトニアンに含まれる同類項どうしを加算して1つの項とするまとめ処理とを、繰り返し実行する、
処理を実行させる次数変換プログラム。
【請求項6】
前記選択処理が実行されるごとに三次以上の項を1つずつ前記変換対象項として選択し、前記選択処理、前記変換処理、および前記まとめ処理を、前記ハミルトニアン内のすべての項の次数が二次以下になるまで繰り返し実行する、
請求項記載の次数変換プログラム。
【請求項7】
前記選択処理において、前記ハミルトニアンに含まれる複数の項のうち次数が大きい項から順に前記変換対象項として選択する、
請求項記載の次数変換プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、次数変換装置、次数変換方法、および次数変換プログラムに関する。
【背景技術】
【0002】
ノイマン型コンピュータが不得意とする多変数の組み合わせ最適化問題を解く方法として、イジング型のエネルギー関数(ハミルトニアン)を用いたイジングマシン(ボルツマンマシンと呼ばれる場合もある)がある。イジングマシンは、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。
【0003】
イジングマシンは、例えばニューラルネットワークを用いてモデル化することもできる。その場合、イジングモデルに含まれる複数のスピンに対応した複数の状態変数のそれぞれが、他の状態変数の値と、他の状態変数と自身の状態変数との相互作用の大きさを示す重み係数とに応じて0または1を出力するニューロンとして機能する。イジングマシンは、例えば、シミュレーテッド・アニーリングなどの確率的探索法により、上記のようなハミルトニアンの最小値が得られる各状態変数の値の組み合わせを、解として求める。
【0004】
組み合わせ最適化問題に対応するイジングモデルのハミルトニアンに三次以上の項(以下、三次以上の項を高次項と呼ぶ)が含まれる場合がある。なお、イジングモデルのハミルトニアンの各項の次数とは、その項に含まれるパウリ行列の数である。他方、イジングマシンで組み合わせ最適化問題を解くのに用いるハミルトニアンには、高次項が含まれないことが要求される。そこで、イジングモデルのハミルトニアンに高次項が含まれる場合、イジングマシンに問題の情報を入力する前に、コンピュータにより、ハミルトニアンを二次以下の項のみを含む形式(イジング形式)に変換する。
【0005】
ハミルトニアンの高次項を次数の少ない項へと変換する方法は、以下の非特許文献1,2に開示されている。
また、最適化問題の解法に関する技術としては、例えば離散的最適化を伴う問題を複数のより小さな下位問題に分解する方法が提案されている。また、ユーザがquantum-readyまたはquantum-enabledのソリューションを構築することを可能にし得る、ソフトウェア開発キットが提案されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特表2019-512779号公報
【文献】特表2019-513276号公報
【非特許文献】
【0007】
【文献】Rongxin Xia, Teng Bian, and Sabre Kais, "Electronic Structure Calculations and the Ising Hamiltonian", The Journal of Physical Chemistry B, 122(13), 3384-3395, 3 November 2017
【文献】Michael Streif, Florian Neukart, Martin Leib, “Solving Quantum Chemistry Problems with a D-Wave Quantum Annealer”, arXiv:1811.05256v2, 15 March 2019
【発明の概要】
【発明が解決しようとする課題】
【0008】
ハミルトニアンの高次項を二次項に変換すると、ハミルトニアンに含まれるパウリ行列の数が増加する。パウリ行列の数は、イジングマシンでハミルトニアンを計算する際に使用するビット数に相当する。イジングマシンでは、計算に用いることができるビット数に上限があり、その上限を超えたビット数の計算を一度に行うことはできない。そして、解くべきハミルトニアンに多数の高次項が含まれていると、高次項の二次項への変換の結果、使用するビット数が膨大な数となり、イジングマシンでの計算が困難となる。
【0009】
1つの側面では、本件は、高次項の二次項への変換による使用ビット数の増加を抑止することを目的とする。
【課題を解決するための手段】
【0010】
1つの案では、イジングモデルのエネルギーを表したハミルトニアンに含まれる複数の項から、所定数以上の次数の項を変換対象項として選択する選択処理と、ハミルトニアン内の変換対象項を、変換対象項より低い次数の項に変換する変換処理と、変換後のハミルトニアンに含まれる同類項どうしを加算して1つの項とするまとめ処理とを、繰り返し実行する処理部、を有する次数変換装置が提供される。
【発明の効果】
【0011】
1態様によれば、高次項の二次項への変換による使用ビット数の増加が抑止できる。
【図面の簡単な説明】
【0012】
図1】第1の実施の形態に係る次数変換方法の一例を示す図である。
図2】第2の実施の形態のシステム構成の一例を示す図である。
図3】サーバのハードウェアの一構成例を示す図である。
図4】イジングマシンの一例を示す図である。
図5】サーバが有する機能の一例を示すブロック図である。
図6】サーバの処理手順の一例を示すフローチャートである。
図7】次数変換処理の手順の一例を示すフローチャートである。
図8】高次項の変換例を示す第1の図である。
図9】高次項の変換例を示す第2の図である。
【発明を実施するための形態】
【0013】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。第1の実施の形態は、イジングマシンを用いた解探索に使用するハミルトニアンの高次項の二次項への変換による使用ビット数の増加が抑止する次数変換方法である。
【0014】
図1は、第1の実施の形態に係る次数変換方法の一例を示す図である。次数変換方法は、例えばイジングマシン1に接続された次数変換装置10で実施される。次数変換装置10は、例えばコンピュータである。次数変換装置10は、次数変換方法を実現するための処理手順が記述された次数変換プログラムを実行することにより、次数変換方法を実施することができる。
【0015】
次数変換装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば次数変換装置10が有するメモリ、またはストレージ装置である。処理部12は、例えば次数変換装置10が有するプロセッサ、または演算回路である。
【0016】
記憶部11は、イジングモデルのエネルギーを表したハミルトニアン11aを記憶する。ハミルトニアン11aは、例えば組み合わせ最適化問題を定式化したイジングモデルのエネルギーを表す関数である。ハミルトニアン11aには、1以上のパウリ行列を含む複数の項が含まれる。各項に含まれるパウリ行列の数が、その項の次数である。
【0017】
処理部12は、以下に示す選択処理と変換処理とまとめ処理とを、繰り返し実行することで、ハミルトニアン11aの次数を低減させる。例えば処理部12は、選択処理、変換処理、およびまとめ処理を、ハミルトニアン11a内のすべての項の次数が二次以下になるまで繰り返し実行する。
【0018】
処理部12は、選択処理では、ハミルトニアン11aに含まれる複数の項から、所定数以上の次数の項を変換対象項として選択する。例えば処理部12は、選択処理が実行されるごとに三次以上の項(高次項)を1つずつ変換対象項として選択する。この際、処理部12は、ハミルトニアン11aに含まれる複数の項のうち次数が大きい項から順に変換対象項として選択してもよい。
【0019】
処理部12は、変換処理では、ハミルトニアン11a内の変換対象項を、変換対象項より低い次数の項に変換する。例えば処理部12は、N個(Nは3以上の整数)のパウリ行列を含む変換対象項を、それぞれがN個未満のパウリ行列を含む複数の項に変換する。この際、変換後の複数の項のうちの1以上の項には、変換対象項に含まれないパウリ行列(追加のパウリ行列)が含まれる。
【0020】
処理部12は、まとめ処理では、変換後のハミルトニアン11aに含まれる同類項どうしを加算して1つの項とする。同類項とは、係数以外の部分が同じ項である。ハミルトニアン11aに含まれる項の場合、含まれるパウリ行列が共通の複数の項が同類項である。同類項どうしの加算は、係数以外の部分(パウリ行列の積)をそのままにして、各項の係数の合計を、加算結果の項の係数とすることである。
【0021】
このように高次項の次数を低減するごとに、ハミルトニアン11a内の同類項をまとめることで、高次項の次数を低減する変換処理の回数が削減される。変換処理を行うと追加のパウリ行列が生じるため、変換処理の回数が低減されることは、追加されるパウリ行列の数が削減されることを意味する。
【0022】
イジングマシン1において、ハミルトニアン11aの基底状態(エネルギー最小値)となる解探索を行う場合、ハミルトニアン11aに含まれるパウリ行列の数分のビットを使用した計算(例えばシミュレーテッド・アニーリング)が行われる。ハミルトニアン11aに含まれるパウリ行列の数が削減されることで、イジングマシン1が計算に使用するビット数も削減される。すなわち上記の次数変換方法によりハミルトニアン11aの次数変換を行うことで、使用するビット数の増加が抑止される。
【0023】
イジングマシン1には、計算に使用できるビット数に上限があり、その上限を超えたビット数の計算はできない。ハミルトニアン11aに含まれるパウリ行列の数が削減されれば、イジングマシン1を用いて求解可能な問題の範囲が拡大する。
【0024】
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、デジタル回路を用いてシミュレーテッド・アニーリングを行うことでエネルギーが最小となる各状態変数の値の組み合わせを計算するイジングマシンを用いたシステムの例である。
【0025】
図2は、第2の実施の形態のシステム構成の一例を示す図である。サーバ100には、ネットワーク20を介して端末装置31,32,・・・が接続されている。端末装置31,32,・・・は、組み合わせ最適化問題の求解を依頼するユーザが使用するコンピュータである。サーバ100は、端末装置31,32,・・・から組み合わせ最適化問題の求解の依頼を受け付け、組み合わせ最適化問題に対応するイジングモデルのエネルギー関数であるハミルトニアンを生成する。サーバ100には、イジングマシン300の制御装置200が接続されている。サーバ100は、生成したハミルトニアンの最小値の探索要求を制御装置200に入力する。なお、図2に示すサーバ100は、第1の実施の形態に示す次数変換装置10の一例である。
【0026】
制御装置200は、イジングマシン300を制御し、サーバ100から入力された探索要求に応じて、ハミルトニアンの最小値の解探索を行う。例えば制御装置200は、各ニューロンについての結合先のニューロンのidを、結合先情報としてイジングマシン300に送信する。また、制御装置200は、ローカルフィールドの初期値(例えばバイアス係数)や、値が0ではない重み係数、アニーリング条件などについてもイジングマシン300に送信する。さらに、制御装置200は、イジングマシン300から解(各ニューロンのビット値)を受信した場合、解を図示しない表示装置に表示させてもよい。
【0027】
制御装置200は、例えばPC(Personal Computer)などのコンピュータであってもよいし、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサであってもよい。
【0028】
イジングマシン300は、制御装置200からの制御に基づいて、デジタル回路を用いたシミュレーテッド・アニーリングを行い、ハミルトニアンの最小値を探索する。
図3は、サーバのハードウェアの一構成例を示す図である。サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、MPU(Micro Processing Unit)、またはDSPである。プロセッサ101が実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)などの電子回路で実現してもよい。
【0029】
メモリ102は、サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0030】
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108a,108bがある。
【0031】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0032】
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0033】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0034】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0035】
機器接続インタフェース107は、サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0036】
ネットワークインタフェース108aは、ネットワーク20に接続されている。ネットワークインタフェース108aは、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0037】
ネットワークインタフェース108bは、制御装置200に接続されている。ネットワークインタフェース108bは、制御装置200との間でデータの送受信を行う。
サーバ100は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお制御装置200も、サーバ100と同様のハードウェアにより実現することができる。また第1の実施の形態に示した次数変換装置10も、図3に示したサーバ100と同様のハードウェアにより実現することができる。
【0038】
サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またサーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0039】
図4は、イジングマシンの一例を示す図である。イジングマシン300は、ニューロン回路311,312,…,31n、更新制御回路320、制御回路330を有する。
ニューロン回路311~31nはそれぞれ、自身以外の複数の他のニューロン回路との接続の有無を示す複数の重み値と、複数の他のニューロン回路の複数の出力信号との積の総和に基づく第1の値を算出する。そしてニューロン回路311~31nそれぞれは、第1の値にノイズ値を加算した第2の値と閾値との比較結果に基づき、0または1のビット値を出力する。
【0040】
更新制御回路320は、例えば各ニューロンのビット値を保持する保持部321を有する。保持部321は、例えばレジスタやRAMなどによって実現できる。
制御回路330は、制御装置200から供給される情報に基づいて、イジングマシン300の初期設定処理などを行う。また、制御回路330は、シミュレーテッド・アニーリングを行う場合、更新対象ニューロンを決定する処理がアニーリング条件に基づいた回数繰り返されるごとに、例えば温度パラメータの値を小さくしていく。
【0041】
さらに、制御回路330は、更新対象ニューロンを決定する処理が所定回数、繰り返された後、保持部321に保持されている各ニューロンのビット値を取得し、最適化問題に対する解として制御装置200に送信する。
【0042】
なお、保持部321には、エネルギーの最小値や最小値が得られたときの各ニューロンのビット値を保持しておくこともできる。この場合、制御回路330は、更新対象ニューロンを決定する処理が所定回数、繰り返されたのちに、エネルギーの最小値や最小値が得られたときの各ニューロンのビット値を保持部321から取得して、制御装置200に送信してもよい。
【0043】
制御回路330は、例えばASICやFPGAなどの特定用途の電子回路にて実現できる。なお、制御回路330は、CPUやDSPなどのプロセッサであってもよい。その場合、プロセッサは、図示しないメモリに記憶されたプログラムを実行することで、上記の処理を行う。
【0044】
また、制御回路330の一部または全ての機能を行う要素が、更新制御回路320または制御装置200に含まれていてもよい。
このようなシステムにおいて、サーバ100は、組み合わせ最適化問題の求解の依頼に応じて、その組み合わせ最適化問題に対応するイジングモデルのハミルトニアンを生成する。生成されるハミルトニアンには、三次以上の高次項が含まれる場合がある。
【0045】
以下に、1つの四次項、および2つの三次項からなるハミルトニアンの例を示す。
【0046】
【数1】
【0047】
ここで、σz iは、i番目のビットに作用するパウリ演算子のz成分を表す行列(パウリ行列)である。式(1)では、σz 1,σz 2,σz 3,σz 4の4つのパウリ行列が含まれる。1つのパウリ行列が作用する1つのビットの値の計算には、1つのニューロン回路が割り当てられる。パウリ行列が4つであれば、イジングマシン300では4つのニューロン回路を用いて解の探索を行う。ただし、式(1)に示すようにハミルトニアンに高次項が含まれたままでは、イジングマシン300による解探索を行うことができない。そこで、式(1)に示すように、解くべきハミルトニアンに三次以上の高次項が含まれる場合、サーバ100は、二次以下の項のみを含む形式(イジング形式)にハミルトニアンを変換する。
【0048】
前述の非特許文献1によると、σz iに関する三次以上の高次項に対して次の2つの式が成り立つ。
【0049】
【数2】
【0050】
【数3】
【0051】
サーバ100は、式(2)および式(3)を式(1)の各項に適用して二次項に落とす。その際、サーバ100は、係数の符号が正(+)の項については式(2)を適用する。またサーバ100は、係数の符号が負(-)の項については式(3)を適用する。
【0052】
なお、四次項に対して式(2)または式(3)を適用すると複数の三次項が出てくる。そこでサーバ100は、四次項を変換して得られた三次項に対して再度式(2)または式(3)を適用する。これにより、四次項を二次項へ落とすことができる。
【0053】
五次以上の高次項がハミルトニアンに含まれる場合についても同様に、サーバ100は、式(2)または式(3)を繰り返し適用することで、最終的にすべての項を二次項以下に落とすことができる。高次項を二次項に落とすと、ハミルトニアンに含まれるパウリ行列の数が増加する。すなわちパウリ行列で示されるパウリ演算子が作用するビット数が増加する。以下、増加した分のビットを補助ビットと呼ぶ。
【0054】
増加した補助ビットの分だけ、解の探索時には、イジングマシン300においてニューロン回路が余分に使用される。解くべきハミルトニアンに多数の高次項が含まれていると、高次項を二次項に変換することで発生する補助ビットが膨大な数になる。変換前のハミルトニアンに含まれるパウリ行列に対応するビットと補助ビットとの総数が、イジングマシン300が有するニューロン回路数を超えてしまうと、そのハミルトニアンの最小値の探索処理を、イジングマシン300で扱うことができなくなってしまう。
【0055】
例えば式(1)のハミルトニアンの第1項、第2項、第3項それぞれに対して、補助ビットの削減策を適用せずに、式(2)または式(3)によって二次項に落とし込むと、以下の通りとなる。
(第1項)
【0056】
【数4】
【0057】
(第2項)
【0058】
【数5】
【0059】
(第3項)
【0060】
【数6】
【0061】
上記第1項~第3項には、σz 5,σz 6,σz 7,σz 8,σz 9,σz 10の6個の追加のパウリ行列が含まれる。すなわちσz 5,σz 6,σz 7,σz 8,σz 9,σz 10それぞれに対応する6個の補助ビットが発生している。組み合わせ最適化問題の規模が大きくなると、補助ビット数も大量となる。
【0062】
そこでサーバ100は、複数の高次項を二次項に落とす際に、途中の段階で出てくる同類項をまとめることで、補助ビット数を削減する。
以下、図5を参照して、サーバ100が有する機能について説明する。
【0063】
図5は、サーバが有する機能の一例を示すブロック図である。サーバ100は、問題受付部110、イジングモデル生成部120、記憶部130、および解探索依頼部140を有する。
【0064】
問題受付部110は、端末装置31から、ユーザが求解を希望する組み合わせ最適化問題を取得する。問題受付部110は、取得した組み合わせ最適化問題をイジングモデル生成部120に送信する。また問題受付部110は、イジングマシン300を利用して得られた、組み合わせ最適化問題の解を、解探索依頼部140から取得する。問題受付部110は、取得した解(例えばハミルトニアンが最小値となる複数のビットの値)に基づいて、組み合わせ最適化問題における最適な組み合わせを示す情報(例えば最短の配送ルート)を生成する。そして問題受付部110は、最適な組み合わせを示す情報を端末装置31に送信する。
【0065】
イジングモデル生成部120は、問題受付部110から組み合わせ最適化問題を取得すると、その組み合わせ最適化問題に対応するイジングモデルを生成する。すなわちイジングモデル生成部120は、取得した組み合わせ最適化問題を、イジングモデルの基底状態を求める問題として定式化する。例えばイジングモデル生成部120は、組み合わせ最適化問題に対応するイジングモデルのエネルギー関数であるハミルトニアン131を生成する。イジングモデル生成部120は、生成したハミルトニアン131を記憶部130に格納する。
【0066】
イジングモデル生成部120は、高次項を含まないハミルトニアン131を生成するために、ハミルトニアン生成部121と次数変換部122とを有する。
ハミルトニアン生成部121は、組み合わせ最適化問題に対応するイジングモデルのエネルギー関数を表すハミルトニアン131を生成する。ハミルトニアン生成部121が生成した段階のハミルトニアン131は、三次以上の高次項を含む。ハミルトニアン生成部121は、生成したハミルトニアン131を記憶部130に格納する。
【0067】
なおハミルトニアン生成部121は、システムの管理者から、組み合わせ最適化問題に対応するハミルトニアン131の入力を受け付けてもよい。例えば組み合わせ最適化問題のイジングモデルへの定式化を自動で行うのが困難な場合、システムの管理者が組み合わせ最適化問題を解釈し、対応するハミルトニアン131をハミルトニアン生成部121に入力する。この場合、ハミルトニアン生成部121は、管理者によって入力されたハミルトニアン131を記憶部130に格納する。
【0068】
次数変換部122は、記憶部130からハミルトニアン131を取得し、ハミルトニアン131を二次以下の次数の項のみを含む式に変換する。この際、次数変換部122は、ハミルトニアン131に含まれるパウリ行列数の増加を抑止することができる変換手順によって、ハミルトニアン131を変換する。次数変換部122は、変換後のハミルトニアン131を記憶部130に格納する。
【0069】
イジングモデル生成部120は、二次以下の次数の項のみを含むように変換されたハミルトニアン131を記憶部130から取得し、解探索依頼部140に送信する。
記憶部130は、組み合わせ最適化問題に対応するイジングモデルのハミルトニアン131を記憶する。記憶部130は、例えばサーバ100のメモリ102またはストレージ装置103の記憶領域の一部である。
【0070】
解探索依頼部140は、イジングモデル生成部120から取得したハミルトニアンの最小値の探索依頼を制御装置200に送信する。解探索依頼部140は、制御装置200から探索結果として得られた解を取得すると、その解を問題受付部110に送信する。
【0071】
なお、図5に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図5に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【0072】
上記のように、サーバ100では、次数変換部122において、パウリ行列の数の増加を抑止することができる変換手順によって、ハミルトニアンを変換する。その結果、大規模な組み合わせ最適化問題であっても、イジングマシン300を用いた解探索が可能となる。
【0073】
次にサーバ100における処理の手順について、フローチャートを参照して詳細に説明する。
図6は、サーバの処理手順の一例を示すフローチャートである。以下、図6に示す処理をステップ番号に沿って説明する。
【0074】
[ステップS101]問題受付部110は、端末装置31から、組み合わせ最適化問題を受け付ける。問題受付部110は、受け付けた組み合わせ最適化問題をイジングモデル生成部120に送信する。
【0075】
[ステップS102]イジングモデル生成部120では、ハミルトニアン生成部121が取得した組み合わせ最適化問題をイジングモデルで定式化し、そのイジングモデルのハミルトニアン131を生成する。例えばハミルトニアン生成部121は、組み合わせ最適化問題が巡回セールスマン問題のような代表的な問題であれば、その問題に対応する定型の式に、巡回する町の数などの値を設定し、ハミルトニアン131を生成する。ハミルトニアン生成部121は、生成したハミルトニアン131を記憶部130に格納する。なお、ステップS102で生成したハミルトニアン131は、三次以上の項を含む場合がある。
【0076】
[ステップS103]イジングモデル生成部120の次数変換部122は、ハミルトニアン生成部121が生成したハミルトニアン131の各項の次数が二次以下になるように変換する。次数変換処理の詳細は後述する(図7参照)。
【0077】
[ステップS104]イジングモデル生成部120は、生成したハミルトニアン131を解探索依頼部140に送信する。解探索依頼部140は、ハミルトニアン131が最小値となるビット値の探索依頼を制御装置200に送信する。
【0078】
[ステップS105]解探索依頼部140は、制御装置200から探索によって得られた解を取得する。解は、例えばハミルトニアン131の最小値が得られる各状態変数の値の組み合わせである。解探索依頼部140は、取得した解を問題受付部110に送信する。
【0079】
[ステップS106]問題受付部110は、取得した解に基づいて、組み合わせ最適化問題の最適な組み合わせを示す情報を、端末装置31に送信する。
次に、次数変換処理の手順について具体的に説明する。
【0080】
図7は、次数変換処理の手順の一例を示すフローチャートである。以下、図7に示す処理をステップ番号に沿って説明する。
[ステップS111]次数変換部122は、ハミルトニアン生成部121が生成した、三次以上の項を含むハミルトニアン131を記憶部130から取得する。
【0081】
[ステップS112]次数変換部122は、取得したハミルトニアンの解を探索する際に使用するビット数をカウントし、変数nに設定する。例えば次数変換部122は、取得したハミルトニアンに含まれるパウリ行列の種類数を、使用ビット数を表す変数nに設定する。
【0082】
[ステップS113]次数変換部122は、変換過程のハミルトニアンに含まれる最高次の項を1つ選択し、式(2)または式(3)を用いて、選択した項をその項より一次だけ低い次数の項に変換する。例えば次数変換部122は、選択した項の符号が正であれば、その項を式(2)によって変換する。また次数変換部122は、選択した項の符号が負であれば、その項を式(3)によって変換する。次数変換部122は、選択した項の変換により生じたパウリ行列に対応するビットを、n+1番目のビット(補助ビット)とする。
【0083】
[ステップS114]次数変換部122は、使用ビット数nに1を加算する(n=n+1)。
[ステップS115]次数変換部122は、変換過程のハミルトニアンに含まれる項のうち、同類項を1つの項にまとめる。例えば次数変換部122は、係数以外が共通の複数の項の係数の和を計算し、その和を新たな項(係数以外は元と同じ)の係数とする。
【0084】
[ステップS116]次数変換部122は、変換過程のハミルトニアンのすべての項が二次以下となったか否かを判断する。次数変換部122は、すべての項が二次以下となった場合、処理をステップS117に進める。また次数変換部122は、三次以上の高次項が残っている場合、処理をステップS113に進める。
【0085】
[ステップS117]次数変換部122は、すべての項が二次以下となったハミルトニアンを出力する。
このように高次項を変換するごとに、係数以外が共通の同類項どうしをまとめることで、式(2)または式(3)を用いて項を変換する回数が削減される。項の次数の変換が行われるごとに補助ビットが発生するため、変換回数が少なければ、その分、発生する補助ビットの数も削減される。
【0086】
以下、式(1)を変換する場合の例を用いて、補助ビットの削減効果について説明する。
図8は、高次項の変換例を示す第1の図である。式(1)では、第1項が四次項であり、他の2項が三次項である。そこで次数変換部122は、まず第1項を三次項に変換する。第1項の符号は正であるため、次数変換部122は、式(2)を用いて変換を行う。
【0087】
式(1)に示した高次項を含むハミルトニアン131aの第1項を変換すると、以下の式が得られる。
【0088】
【数7】
【0089】
式(7)に示すように、次数変換部122は、式(1)の第1項のみ三次まで落とし、式(1)の第2項と第3項とは三次のまま残しておく。式(7)において追加されたパウリ行列「σz 5」が、高次項を変換することで生じる補助ビットに対応する。
【0090】
ここで第1項を変換することで得られた三次の項のうちの「-σz 1σz 3σz 4」の項は、式(1)の第2項「-4σz 1σz 3σz 4」と係数以外のパウリ行列が同じである。次数変換部122は、係数以外が共通のこれらの同類項を1つの項「-5z 1σz 3σz 4」にまとめる。また第1項を変換することで得られた三次の項のうちの「-σz 2σz 3σz 4」の項は、式(1)の第2項「-2σz 2σz 3σz 4」と係数以外のパウリ行列が同じである。次数変換部122は、係数以外が共通のこれらの同類項を1つの項「-3σz 2σz 3σz 4」にまとめる。
【0091】
係数以外が共通の項をまとめた結果、以下の式(8)に示すようなハミルトニアン131bが得られる。
【0092】
【数8】
【0093】
式(8)には、3つの三次項が含まれている。そこで次数変換部122は、三次項それぞれを、式(2)または式(3)に基づいて二次項に変換する。
図9は、高次項の変換例を示す第2の図である。次数変換部122が式(8)の項「2z 3σz 4σz 5」を式(2)に基づいて変換すると、追加のパウリ行列「σz 6」が生じる。次数変換部122が式(8)の項「-5z 1σz 3σz 4」を式(3)に基づいて変換すると、追加のパウリ行列「σz 7」が生じる。次数変換部122が式(8)の項「-3σz 2σz 3σz 4」を式(3)に基づいて変換すると、追加のパウリ行列「σz 8」が生じる。
【0094】
三次項それぞれを二次項に変換した結果、ハミルトニアンは以下の式(9)となる。
【0095】
【数9】
【0096】
式(9)において、式(1)から増加したパウリ行列は、「σz 5」「σz 6」「σz 7」「σz 8」の4つである。すなわち式(9)で表されるハミルトニアンの最小値を求解するために使用する補助ビット数は「4」である。式(4)~式(6)に示したように、ビット数削減の工夫を伴わずに変換をすると補助ビット数が「6」になる。したがって、図7に示す手順で次数変換処理を行うことで、補助ビット数が33%削減される。全使用ビット数の削減率は20%である。
【0097】
なお組み合わせ最適化問題の規模が大きくなるほど、補助ビット数の削減効果も大きくなる。例えば前述の非特許文献2によれば、水素分子の量子化学計算で使用する補助ビット数が「424」(全使用ビット数「440」)である。それに対して、図7に示した手順で高次式から二次式への変換を行えば、補助ビット数が「168」(全使用ビット数「184」)となる。すなわち補助ビット数が60%削減される。全使用ビット数の削減率は58%である。
【0098】
このようにイジングモデルを用いた求解において使用する補助ビット数が削減できることで、大規模な組み合わせ最適化問題を、イジングマシン300を利用して高速に解くことが可能となる。すなわちイジングマシン300を用いて解くことが可能な組み合わせ最適化問題の範囲が広がり、複雑な問題を高速に解くことができる。
【0099】
〔その他の実施の形態〕
第2の実施の形態は、サーバ100と制御装置200とが別に設けられているが、サーバ100と制御装置200とを1つのコンピュータで実現することもできる。
【0100】
また第2の実施の形態では、ビットの値をニューロン回路で算出するイジングマシン300の例を示したが、量子コンピュータをイジングマシン300として利用することもできる。量子コンピュータをイジングマシン300として利用した場合、ハミルトニアンのパウリ行列に対応するビットが量子ビットとなる。
【0101】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0102】
1 イジングマシン
10 次数変換装置
11 記憶部
11a ハミルトニアン
12 処理部
図1
図2
図3
図4
図5
図6
図7
図8
図9