こんにちは、まったく馴染みのなかった光量子コンピュータの計算ですが、ようやくおぼろげに何を計算しているのかがわかり始めてきました。きっかけは紹介してもらったこちらの記事です。詳しい人はリンク先の記事を見てください。
Strawberry Fieldsで光量子計算をする(その1)
https://qiita.com/ryuNagai/items/b106f81c17224d512189
よく世間にある量子ビットの方式の量子コンピュータを利用する場合には、0と1の重ね合わせだとかそういう話が出てきますが、光量子コンピュータで現在主流となっている連続量プログラミング(CVプログラミング)では、光の状態を「位置x」と「運動量p」で表現するようです。高校の物理で行った、重りのついたバネが単振動するときの位置と運動量の関係を使って二次元平面上で状態を表現するようです。その二次元平面上での位置xと運動量pは揺らぎをもつので、ばっちりとは決まらず確率分布という形で表現されるようです。
引用: https://qiita.com/ryuNagai/items/b106f81c17224d512189
ばねの動きは、位置が小さいと運動量が大きく、運動量が小さければ位置が大きいという関係がベースにあり、揺らぎがあるのでΔxとΔpが出てきます。このようなxとpをWigner関数という関数を使って表現するということのようです。
量子ゲートは上記のxp平面上の量子状態をどのように操作するかに対応していて、xp平面上を移動させる変位ゲートDゲート。xp平面上を原点からの角度で回転させる回転ゲートRゲート。xとpの分散をバーターで変化させるスクイージングゲートSゲート。モード同士の重ね合わせを作る2モードゲートのビームスプリッターゲートBSゲートなどです。
また、上記はガウシアンゲートと呼ばれ、量子ビットタイプではクリフォードゲートに対応するようなものらしく、非クリフォードゲートが必要のごとく、非ガウシアンゲートがないとユニバーサルにならないようなので、その対応として、Cubic Phase GateやKerr Gateなどが必要となるようです。
ちなみにSゲートは、
引用: https://qiita.com/ryuNagai/items/b106f81c17224d512189
上記のように確率分布のx成分とp成分の分散を変化させることができるようです。このようなゲートを組合わせてxp平面上での分布を変化させるのがCVプログラミングのようですね。
上記は、Wigner関数を用いた確率分布という形で表現されていますが、光子数を離散的に数えるphoton countingも使えるようです。記事ではコヒーレント状態やスクイーズド状態には使えるということですが、使える場面が限定されているのかどうか気になります。
測定は、xを測定するホモダイン測定、よくわからないヘテロダイン測定、光の強度を図るフォトンカウンティングなどがあるようです。
正直、統一してほしいと感じましたが、まだ発展途上なのでしょうか?全くわからなかった光量子コンピュータの計算ですが、光の特性をxp平面上の関数として表現し、それを操作するという基本操作はおぼろげに把握することができてうれしいです。以上です。