A5: Generate state 13(∣0⟩+∣1⟩+∣2⟩))\frac{1}{\sqrt{3}} (\ket{0} + \ket{1} + \ket{2})) II

実行時間制限:3 秒

メモリ制限:512 MiB

配点:100点

Writer:admin

解説

問題 A4 では、3つの計算基底状態 ∣00⟩, ∣10⟩, ∣01⟩\ket{00},\ \ket{10},\ \ket{01} の重ね合わせ状態 12∣00⟩+12(∣10⟩+∣01⟩)\frac{1}{\sqrt{2}} \ket{00} + \frac{1}{2}(\ket{10} + \ket{01}) を生成しました。

この問題では3つの計算基底状態の複素振幅をすべて 1/31/\sqrt{3} に揃える必要があります。

これは、回転ゲート を利用し、 問題 A4 解説 (1)(1) 式のアダマールゲートを回転ゲートで置き換え、遷移後の状態を 13∣00⟩+23∣10⟩\frac{1}{\sqrt{3}} \ket{00} + \sqrt{\frac{2}{3}} \ket{10} とすることで解決できます。

∣00⟩→Ry(θ,0)13∣00⟩+23∣10⟩→CH(0,1)13(∣00⟩+∣10⟩+∣11⟩)→CX(1,0)13(∣00⟩+∣10⟩+∣01⟩)\begin{align} \ket{00} &\xrightarrow{Ry(\theta, 0)} \frac{1}{\sqrt{3}} \ket{00} + \sqrt{\frac{2}{3}} \ket{10} \nonumber\\ &\xrightarrow{CH(0, 1)} \frac{1}{\sqrt{3}} (\ket{00} + \ket{10} + \ket{11}) \nonumber\\ &\xrightarrow{CX(1, 0)} \frac{1}{\sqrt{3}} (\ket{00} + \ket{10} + \ket{01}) \end{align}

ここで、任意の 11 量子ビットの状態 ∣ψ⟩\ket{\psi} は 2つの角度パラメータ θ, ϕ\theta,\ \phi により次式で表現できます。

∣ψ⟩=cos⁡(θ/2)∣0⟩+(cos⁡(ϕ)+isin⁡(ϕ))sin⁡(θ/2)∣1⟩\begin{equation} \ket{\psi} = \cos(\theta/2) \ket{0} + (\cos(\phi) + i \sin(\phi))\sin(\theta/2) \ket{1} \end{equation}

このように 11 量子ビットの量子状態を半径1の球面上に表す方法は、ブロッホ球 と呼ばれており、角度パラメータ θ, ϕ\theta,\ \phi を元に位相ゲートや回転ゲートを用いて任意の 11 量子ビットの状態を異なる任意の状態に遷移させることができます。

Bloch Sphereブロッホ球

では、状態 13∣00⟩+23∣10⟩\frac{1}{\sqrt{3}} \ket{00} + \sqrt{\frac{2}{3}} \ket{10} の角度パラメータ θ, ϕ\theta,\ \phi を求めます。

虚数成分は 00 なので、ϕ=0\phi = 0 としてよく、次の連立方程式を立式できます。

{ cos⁡(θ/2)=1/3sin⁡(θ/2)=2/3\begin{equation} \left\{ \, \begin{aligned} & \cos(\theta/2) = 1/\sqrt{3} \\ & \sin(\theta/2) = \sqrt{2/3} \end{aligned} \right. \end{equation}

方程式を 解くと 、0≤θ<2π0 \leq \theta < 2 \pi の範囲で次の解が得られます。

θ=4arctan⁡(63+3)\begin{equation} \theta = 4 \arctan\left(\frac{\sqrt{6}}{3 + \sqrt{3}}\right) \end{equation}

ここで、ブロッホ球 をみると角度パラメータ θ\theta は yy 軸上の回転角を表すことがわかります。

よって、yy 軸上の回転ゲートである RyR_y ゲートを利用して、θ\theta の回転を加えることで、∣00⟩→Ry(θ,0)13∣00⟩+23∣10⟩\ket{00} \xrightarrow{Ry(\theta, 0)} \frac{1}{\sqrt{3}} \ket{00} + \sqrt{\frac{2}{3}} \ket{10} の遷移を実現できます。

結果として、次のような遷移によってこの問題を解くことができます。

∣00⟩→Ry(θ,0)13∣00⟩+23∣10⟩→CH(0,1)13(∣00⟩+∣10⟩+∣11⟩)→CX(1,0)13(∣00⟩+∣10⟩+∣01⟩)\begin{align} \ket{00} &\xrightarrow{Ry(\theta, 0)} \frac{1}{\sqrt{3}} \ket{00} + \sqrt{\frac{2}{3}} \ket{10} \nonumber \\ &\xrightarrow{CH(0, 1)} \frac{1}{\sqrt{3}} (\ket{00} + \ket{10} + \ket{11}) \nonumber \\ &\xrightarrow{CX(1, 0)} \frac{1}{\sqrt{3}} (\ket{00} + \ket{10} + \ket{01}) \end{align}

解答例

解答例は以下の通りです。

from qiskit import QuantumCircuit
import math
 
def solve() -> QuantumCircuit:
    qc = QuantumCircuit(2)
 
    theta = 4 * math.atan(math.sqrt(6)/ (3 + math.sqrt(3)))
 
    qc.ry(theta, 0)
    qc.ch(0, 1)
    qc.cx(1, 0)
 
    return qc