はじめに
最近は量子アニーリングやイジングモデルと呼ばれる問題を実装する必要があります。その中で、実はイジングモデル において最近の量子コンピュータ関係が解けるのは2体問題、つまり量子ビット同士の掛け算が2個までの問題に限られています。
しかし世の中色々な問題はこの多体問題が出てくることがあります。そんな時にテクニックとして2体問題に分解する方法があります。今回はそのあたりを見ていきたいと思います。
ちなみに使用するマシンはD-Waveで紹介します。
参考文献
勉強会でも質問が多かったのが、下記のタンパク質折りたたみ問題に関するイジング実装で、
有名なのが2012年のハーバード大学のAlán Aspuru-Guzik先生から出ている下記の論文です。
Finding low-energy conformations of lattice protein models by quantum annealing
Alejandro Perdomo-Ortiz, Neil Dickson, Marshall Drew-Brook, Geordie Rose & Alán Aspuru-Guzik
他にも色々な資料がありますが、今回は上記の論文に出てきている通り、多体問題を分解して見たいと思います。
他の資料
Non-perturbative k-body to two-body commuting conversion Hamiltonians and
embedding problem instances into Ising spins
使用するマシン
カナダD-Wave社のマシン。
二体問題の解き方
簡単です。例えば下記のようなハミルトニアン(エネルギー関数)があった時には、そのままその係数をD-waveにかけられます。
三体問題はどうか?
では、三体問題という量子ビットが複数掛け算されているものはどうでしょうか?
相互作用項は二量子ビット同士の係数しかないので、そのままでは設定できません。
どうするのか?
その際に量子アニーリングマシン、イジングマシンの特性を利用して、ペナルティをつけます。
これらのマシンは数式の最小値を取るようになっているので、新しい余剰量子ビットを導入して、
その量子ビットに対して条件を最小値において(大概が0の場合)満たすように制約条件を付け加えます。
Supplementary Information: Finding low-energy conformations of lattice protein
models by quantum annealing
を参考として、下記の新しい量子ビットをつけ加えます。
という新しい量子ビットを導入して、これらの量子ビットの関係式を満たす場合に0になり、それ以外は+になる(マイナスになる場合は成り立たない)という新しいペナルティを作ることになります。
満たすべき条件は、
というペナルティを導入すれば良いことになります。なので、例題は、
と分解できました。デルタはハイパーパラメータです。
確認方法
これらのペナルティ項を作るために何をすれば良いのか確認していきましょう。
多元連立方程式をつくって、適当に係数を決めていきたいと思います。
この式を満たす条件を考えて見ます。
この式を下記の表を満たすように、
実際に成り立つのかD-Waveでやってみる
という式ですが、最小値を取るのは、
の時になりそうです。
QUBOmatrixに
これを縦横4量子ビットずつのQUBOmatrixに置いてみると、
となります。
QUBO変換でイジングへ
ここでQUBOmatrixをイジングへ変換します。
そのままD-Waveにかけてみる
かけてみて、とりあえず100回計算を試行してみました。
いい感じでエネルギー基底状態の時に解がもとまっています。
ちなみに、0.125を設定しないといけない時に、設定の都合上0.13にまるまってしまっているので、
五番目の近い答えも求めるべき解でした。
ということで、簡単な立式でしたがうまく多体問題を分解してD-Waveで求まりました。