butch’s blog

メモ置き場。

【Qiskit Textbook】What is Quantum?のQuantum Coin Tossについて

現在QiskitのTextbookを読んで量子コンピュータについて勉強しています。
0章に入る前の導入部分「What is Quantum?」で紹介されている「Quantum Coin Toss」について考察したいと思います。

qiskit.org

いきなり「Quantum Coin Toss」が導入されて何のことか分からなかった人も多いはずです。
これは1量子ビットアダマールゲートを作用させて状態を観測することに対応していると思います。
まだアダマールゲートなどが紹介されていないので分からなくて当然ですね。

最初のQuantum Coin Tossを1回行う操作は、1量子ビットの初期状態$\left|{\psi_i}\right\rangle$にアダマールゲートを作用させて状態を観測することに対応しています。

初期状態が$\left|{0}\right\rangle$の場合、


\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\ket{0} \rightarrow \frac{1}{\sqrt{2}}(\ket{0} + \ket{1})

初期状態が$\left|{1}\right\rangle$の場合、


\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\ket{0} \rightarrow \frac{1}{\sqrt{2}}(\ket{0} - \ket{1})

となります。
いずれの初期状態からスタートしても観測後に得られる状態は50%の確率で$\left|{0}\right\rangle$, $\left|{1}\right\rangle$がそれぞれ得られることが分かります。

続いてQuantum Coin Tossを2回行う場合について考えます。
これはアダマールゲートを2回連続で量子ビットに作用させることに対応しています。
以下で実際に計算していますが、2回連続でアダマールゲートを作用させると元の状態に戻ります。

初期状態が$\left|{0}\right\rangle$の場合、


\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\ket{0} \rightarrow \frac{1}{\sqrt{2}}(\ket{0} + \ket{1}) \rightarrow \frac{1}{2}(\ket{0} + \ket{1}) + \frac{1}{2}(\ket{0} - \ket{1}) = \ket{0}

初期状態が$\left|{1}\right\rangle$の場合、


\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\ket{1} \rightarrow \frac{1}{\sqrt{2}}(\ket{0} - \ket{1}) \rightarrow \frac{1}{2}(\ket{0} + \ket{1}) - \frac{1}{2}(\ket{0} - \ket{1}) = \ket{1}

となります。

古典のコイントスでは2回連続で行っても50%の確率で表と裏になっていたのに対して、量子計算では表(0)から始めると必ず表(0)に、裏(1)から始めると必ず裏(1)になってしまうことが分かります。
負の確率振幅が計算の途中に現れることである状態に遷移する確率が打ち消しあって0になっています。
(1の状態にアダマールゲートを作用させると係数に-1が出てくる。)
この負の確率振幅を使ったアルゴリズムを考えることで計算の高速化が行える可能性があるそうです。