この記事の立ち位置
- 正確性は保証できない
- アマチュアの意見に過ぎない。トンデモかもしれない。各自判断。
- つぶやきであって議論ではない
量子コンピューターと疑似量子コンピューター
アニーリング界隈
組み合わせ最適化問題をイジングモデルに落として解く際に、専用に作られたHWをイジングマシンと呼んでいます。
イジングマシンの実現としては、
- FPGA
- ASIC (application specific integrated circuit)
- CMOS
- GPU
- 物理系
- 古典系
- 量子系
など色々考えられます。
FPGAは、HWであるものの論理回路の構成が可変になっています。
なので、(手間はかかるのですが)計算アルゴリズムを変えて色々試したい場合などに向いています。
演算CLK速度は数百MHz程度、何百パラレルの並列演算も出来ます。
対してASICは、基本的に論理回路の構成は固定で、アルゴリズムが変わると作り直しになるらしいです。
注意すべきは、イジングマシンという概念は量子特有のものではないです。
イジングモデルとしては、古典的なモデルと量子的なモデルが考えられます。
古典的なイジングモデルでは、変数はスカラーであり、コストもスカラーです。
量子的なイジングモデルでは、変数は演算子(行列)であり、コストも演算子です。
演算子自体は測定できないので、演算子の固有値や期待値(スカラー)を測定します。
古典イジングモデルと量子イジングモデルを混同した記載などもよくみられます。
注意したいですね。
古典的なイジングモデルは、例えば古典シミュレーテッドアニーリング(SA)アルゴリズムで解くことが出来ます。
SAでは、変数をランダムに変化させ、コスト関数の変化を計算し、コストが下がる場合は許容し、上がる場合も確率的に許容します。
変数を変化→コスト計算→変数をアップデート が終わるまで、次のiterationは出来ません。
しかし並列処理ができるリソースがある場合は、うまいこと並列に処理をさせること(+若干の修正を入れること)でメリットが得られる場合もあります。
もちろんこれは、(私の理解では)古典確率的アルゴリズム(SA)の時間方向(sequential)計算量を空間方向(parallel)に展開したことと
ほぼ同じです。そのため、古典確率的アルゴリズムの範疇かと思います。
しかしこのような並列処理アプローチが ”疑似量子コンピューター” ”量子インスパイヤコンピューター” ”量子アニーリングの挙動を再現” などと言われている状況にあります。
ちょっと、しっくりきません。
並列処理アルゴリズムはSAに限らずいくらでも存在しますが、それをわざわざ「疑似量子アルゴリズム」とは言わないはずです。
そもそも、古典的な確率的探索と、量子的な重ね合わせ探索は本質的に全く異なるものです。(混合状態と純粋状態)
量子的なイジングモデルは、例えば量子アニーリング(QA)アルゴリズムで解くことが出来ます。
QAもSAと似ていますが、変数の候補が重ね合わせ状態として同時に探索されることや、変化をもたらすのが量子ゆらぎ(横磁場)であることなどが異なります。
特に、重ね合わせは興味深いです。SAではあくまで変数は1種類しか持てず、それを確率的に上書きしていくのみです。
しかしQAでは、原理的には全変数の候補を重ね合わせとして同時に持っていて、同時に(相互作用しながら)探索が進みます。
もちろん、解の候補も重ね合わせになってしまうので、求めたい解が強く生き残るようにうまく仕向ける(QAをうまく行う)必要はあります。
QAは量子力学の世界のアルゴリズムですが、計算量を別にすれば紙とペンで計算可能です。
(ただし候補間の相互作用も全て計算することになるので、膨大な計算量です)
これを専用HWで並列計算として(近似を入れつつ)行うマシンもあります。
これはQAの(近似あり)シミュレーターとも呼べるものです。
このマシンだけが、”疑似量子アニーリングマシン”と呼ばれてもよいのではないかと思っています。
ゲート界隈
ゲート界隈では、今の所、”疑似量子ゲートコンピューター”というものは出てきていません。
ただ、アニーリングの場合を考えると、単に古典確率的アルゴリズムに従う計算機が出てきて”疑似量子ゲート”と言い張るパターンも想定されますかね。
まとめ
「疑似量子」、しっくりこない。