電子講義:入門量子情報

全卓樹

[電子講義集] [全HP]
[Index] [0] [5] [10] [15] [20] [25] [30]
前へ 次へ

猫でもわかる量子情報(25)

アダマール演算子と量子並列演算

 さて、このようにして函数 f(x) から量子位相オラクル V_f というものを作れる事を見てきましたが、これだけだと一体なんでこんな面倒なものを作るのかよくわかりません。実際 |x> に普通に値を放り込んでV_f に作用させてもその x の値ごとに位相から f(x) が判るだけです。また x が1ビットの例をとって|x>として|0>か|1>を持ってくれば

    <0|V_f|0> = (-1)f(0) 、  <1|V_f|1> = (-1)f(1)

と2回位相オラクルを作動させて、f(0) と f(1) が判ります。でもこれは V_f という行列をわざわざ定義しておいて個々の成分を見てるだけです。これでは「御神託」というほどのご利益とはとてもいえません。行列の性質をうまく利用した、なにかを巧いオラクルの運用法はないでしょうか。この質問に答えるため、ここで今ひとつの量子素子として、次のようなものを考えます。

H =1/√2
[1
1]
[1
-1]

これはアダマール演算子とよばれ、|0>、|1>に対してそれぞれ

       H |0 > = 1/√2 ( |0 > +|1> )
       H |1 > = 1/√2 ( |0 > -|1> )

という作用を及ぼします。
つまり出てきたのは0と1が均等に混じった状態です。これって見覚えありませんか?そう、前に暗号で出た「右/左向き」状態です。こうして作った状態にオラクルを作用させると、ある意味で f(0) と f(1) を同時進行で計算させる並列処理ができるわけです。

複数キュビット状態へのアダマール演算子は個々のキュビットへののアダマール演算子を掛けただけのものです。例えば2キュビットなら次の通り。

[ 1
1
1
1 ]
H =1/2
[ 1
-1
1
-1 ]
[ 1
1
-1
-1 ]
[ 1
-1
-1
1 ]
これでたとえば

   H |00>=1/2{ |00>+|01>+|10>+|11> }

を得ます。量子オラクルが本領を発揮するのは、|0>や|1>といった「純粋」な状態に作用するときではなく、実はそれにアダマール行列を作用させて可能な状態すべてを混ぜたときだけなのです。
行先: 研究のページ
copyright 2004
全卓樹ホーム 教育のページ
t.cheon & associates