【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$と記録しておく。
すると
であることが分かる。
よって$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