Blueqatで爆弾検査問題やってみる
爆弾検査問題?
とても敏感な爆弾がある「かもしれない」とします。たった1つの光子でも、当たると爆発する爆弾です。
そんなもん、外乱で既に爆発してるだろうと思うのですが、そういう細かいことは無視します。
たった1つの光子でも爆発する爆弾を、爆発させずにあるかどうかを判定することは非常に難しいです。
何らかの形で光を使って検査することは不可能でしょう。
そう、古典物理ならね。
量子力学なら、爆弾を爆発させずに、爆弾かどうか分かるかもしれない
ビームスプリッタという、ひとつの光子に対してアダマールゲートのような働きをする素子を使い、図のように、爆弾がある「かもしれない」位置を光が通るように、実験系を組みます。
ミラーは単に光の向きを変えているだけで、ここでは、何も起こらないと考えて構いません。
これは、量子回路で書くと、次のようになります。
爆弾がなければ、測定結果は常に|0>です。
from blueqat import Circuit
Circuit().h[0].h[0].m[0].run(shots=1000)
# 結果: Counter({'0': 1000})
爆弾がある場合のことを考えます。
爆弾も量子回路に取り入れてみましょう。
爆弾は、もし0qubit目が|1>だったら爆発するので、CNOTゲートで置くことができます。
また、爆発したかしてないかは、明らかに分かるので、観測も行われていると考えられます。
from blueqat import Circuit
Circuit().h[0].cx[0, 1].m[1].run(shots=1000)
# 観測結果が0なら、爆弾に光は当たらなかった。1なら、爆弾に光が当たった。
1qubit目の観測結果が1だったなら、爆弾が爆発してしまって、実験は終了です。
ところで、もし観測結果が1にならなかったら、先ほどの量子回路の観測結果はどうなるでしょう?
from blueqat import Circuit
Circuit().h[0].cx[0, 1].h[0].m[1].m[0].run(shots=1000)
# 結果(ランダムに変わります): Counter({'00': 243, '01': 271, '10': 233, '11': 253})
まず、1qubit目の観測結果(0から数えるので、1から数えると2番目)が1の場合は、爆発してしまい、終了です。
つまり、'01'と'11'の場合は、爆発エンドです。
今回、1000回試しましたが、271+253 = 524回は爆発エンドでした。
爆発は免れた場合を考えます。
その前に、そもそも爆弾がなければ観測結果は0だったことを思い出してください。
爆発したかしてないか(1qubit目)を観測した場合、爆弾がないと爆発は起こらず(0を観測)、0qubit目と合わせて00が観測されます。
念の為Blueqatで計算しておきます。
from blueqat import Circuit
# 爆弾(CNOTゲート)がなければ、観測結果は00になる
Circuit().h[0].h[0].m[1].m[0].run(shots=1000)
爆弾がなければ、観測結果は必ず'00'になることが確認できました。
爆弾があった場合の話に戻ります。
先ほどの結果を見ると、1000回試して、243回は'00'でした。
'00'は、爆弾がなかった場合の結果と同じですので「実験したけど爆弾があるかないかは分からなかった」という結果になります。
しかし、233回だけ'10'が出ています。
これは、爆発していなくて、かつ、爆弾がない場合には絶対に出ない観測結果です。
もしも'10'が出たなら、爆弾を爆発させることなく「爆弾はあった」と結論付けることができます。
ところで、それぞれ、どれくらいの確率で観測されるのでしょうか。
観測前の状態ベクトルを見てみましょう。
from blueqat import Circuit
Circuit().h[0].cx[0, 1].h[0].run()
# array([ 0.5+0.j, 0.5+0.j, 0.5+0.j, -0.5+0.j])
観測確率は状態ベクトルの絶対値の2乗なので、00, 01, 10, 11ともに0.25の確率で観測されることが分かります。
つまり、この実験を行うと、爆弾があった場合、
- 50%の確率で、爆弾は爆発してしまう
- 25%の確率で、爆弾があるのかないのか分からない
- 25%の確率で、爆弾を爆発させることなく、爆弾があることが分かる
ということになります。
まとめ
今回、量子力学を使った、一風変わった問題を取り扱ってみました。
古典だと
- 何も実験をしない。爆弾があるかどうか分からない
- 何か実験をする。爆弾があった場合、100%爆発する
しか選択肢がなかったのですが、量子の世界では、このように、
- 何か実験をする。爆弾があった場合、50%の確率で爆発するが、25%の確率で、爆弾を爆発させることなく爆弾の存在を検知できる
といった選択肢も取ることができます。
Author And Source
この問題について(Blueqatで爆弾検査問題やってみる), 我々は、より多くの情報をここで見つけました https://qiita.com/gyu-don/items/1203c6b784182b69e61c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .