butch’s blog

メモ置き場。

【Qiskit Textbook】2. Multiple Qubits and Entanglement

個人的メモ。

2.1 Multiple Qubits Entangled States

複数量子ビット状態の行列表示

状態をベクトルで表現する時はAer.get_backend('statevector_simulator')を使う。
ゲートはAer.get_backend('unitary_simulator')を使うことで行列表示することが出来る。

複数量子ビットのブラケット表記

ゲートの図で表記する時は0から順番に上のビットに割り当てられている。
ブラケット表記する時は一番右のビットが0になり右から左に読んでいく。
$\left|{011}\right\rangle$の場合は0番目の量子ビットが1、1番目の量子ビットが1、2番目の量子ビットが0である。
2進数表記との対応がしやすいためだと思う。

2.2 Phase Kickback

制御NOTゲート

ハードウェアの実装時にはコントロールビットとターゲットビットが一方向にしか定義されていない。
制御NOTゲートの両端にアダマールゲートを作用させることでターゲットとコントールビットを入れ替えることが出来る。

制御Tゲート

単一量子ビットに作用するTゲートで現れる位相はグローバルな量であった。
そのため観測して確率振幅を計算すると相殺される。
制御Tゲートを作用させることで相対的な位相に変わる。
観測時の確率振幅の大きさに影響を与える。

2.4 More Circuit Identities

Arbitrary rotations from H and T

$R_z(\pi/4)$だけでは$\pi$の有利数倍の回転になっている。
8回同じ計算を繰り返すと元に戻る。
よって$\pi$の無理数倍の回転を施すゲートを作成する必要がある。
それが$R_z(\pi/4)~R_x(\pi/4)$である。
$R_z(\pi/4)~R_x(\pi/4)$を1回作用させるたびに$\theta=\cos{\biggl(\frac{2\sqrt{2}-1}{4}\biggr)}^{-1}$の回転を行う。
これは$\pi$の無理数倍になっている。

$2\pi$をn等分にスライスする。
$R_z(\pi/4)~R_x(\pi/4)$を作用させる度に角度はこのスライスのどこか1区間に収まる。
(次に作用させると今のスライスから別のスライスに移動する。)
n+1回の回転を行うと少なくともどこか1つのスライスに2つの角度が存在する。
その時の回数を$n_1, n_2$と記録しておく。
すると


\theta_{n_2-n_1} \neq 0 \\
\frac{2\pi}{n} \leq \theta_{n_2-n_1} \leq \frac{2\pi}{n}

であることが分かる。
よって$n$を大きくしていくことでより小さい角度を表現することが出来る。
参考動画: Qiskit Textbook 日本語解説 2.3章 2.4章 2.5章 - YouTube
参考文献: https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/229039/1/bussei_el_064217.pdf