量子計算理論(森前 著) の演習問題を解く part1.1
こんにちは。Kumaです。
最近、量子コンピュータについて勉強しています。
今回は有名な以下の本も参考に、コントロールゲート(トフォリゲート含む)を直感的に理解してみます。
量子計算理論 量子コンピュータの原理 | 森北出版株式会社
二量子ビットのコントロールNOTゲート
コントロールNOTゲート、あるいは制御NOTゲートとは二量子ビットの系
に対して
すなわち、
です。
CNOTは次のようにかけます。
この記事では、これを納得しましょう!
演算子表現に納得するには
は一見よくわからない表式にみえます。
これを納得するには、自分で作ってみればよいです。
まず制御bitが0か1かで動作が変わるのだから、制御ビットの情報をなんとかして抜く必要がありますね。
それには 、制御bitについてとの内積を取ればいいのです。
直交性から、制御bitがのときには0, のときには1が得られます。
しかしというのはベクトルであって、演算子ではありません。
演算子であるためには、 のようにする必要があります。
これは方向への射影演算子と呼ばれるものです。
これで、制御bitがのときには0, のときには が得られます。
制御bitの0/1に応じて、標的bitのほうにはNOTを作用させたりさせなかったりするのだから、NOTとテンソル積をとってみます。
としてみましょう。
作用は、
となりました。おお!うまくいっていますね!
でも実はまだ今ひとつです。制御bitが0だと
となるので状態が消えてしまいました。制御bitの直交性を利用して作ったので当然そうなります。
どうすればいいでしょうか。制御bitが0のときは入力がそのまま出てきてほしいので、
と のテンソル積を取るとよいでしょう。
これをさっきのやつに足してみると
です。作用をみてみると、
よって、制御bitが0のときにちゃんと入力がそのまま出てくるようになりました。
制御bitが1のときの動作も変わりないでしょうか?確かめてみましょう。
変わりなくうまくいっていますね!
制御bitが1のときと0のときの動作を独立に考えて、それを足しただけなのにうまくいきました*1
この表式こそ、理解したかったCNOTの表式そのものですね!
三量子ビットのコントロールNOTゲート
三量子ビットのコントロールNOTも、楽勝で作れます。
まず制御bitが1つで、標的bitが2つの場合を考えますと、
となることが容易に予想できるでしょう。
制御bitが1つで標的bitが1つ(真ん中のbitとします)、最後のbitは何も関与しない場合*2は
です。
少しむずかしいのは制御bitが2つのパターンです。ここで制御bitは左側の2bitとします。
両方の制御bitが1のときだけ標的bitを反転させる場合を作ってみましょう。 への射影を考えるのがポイントです。
ふむふむ。これはよくみると納得できると思います。
しかし更に、これは別の表現もできます。ここがポイント。
何が起こったのかわからないみなさん、大丈夫です。私も一見わかりませんでした!
ここは射影演算子の「完全性」と呼ばれる性質を使いました。それは、以下の関係式です。
1量子ビット系では
2量子ビット系では
です。直感的には「量子状態を各基底に射影して分解したあとに全部足し合わせると元に戻るので、射影演算子の和は恒等演算子といえる」
完全性を適応すると、先程の変な表式もすぐわかると思います!
ちなみにこれがトフォリゲートでした。