A1: Generate State −∣0⟩- \ket{0}

実行時間制限:3 秒

メモリ制限:512 MiB

配点:100点

Writer:ST12

解説

量子コンピュータでは「量子ゲート」という概念を用いて、量子ビットの状態を操作します。

今回の問題では、量子ゲートの一種である XX ゲートと ZZ ゲートを量子ビットに作用させることで、ゼロ状態 ∣0⟩\ket{0} から目的の量子状態 −∣0⟩-\ket{0} への遷移を実現できます。 以下の量子回路にて、行なったゲート操作を示します。

まず、 XX ゲートを量子状態 ∣0⟩\ket{0} に対して作用させることにより、量子状態 ∣1⟩\ket{1} へと遷移させます。

∣0⟩→X(0)∣1⟩\begin{equation} \ket{0} \xrightarrow{X(0)} \ket{1} \end{equation}

次に、 ZZ ゲートを量子状態 ∣1⟩\ket{1} に対して作用させることにより、量子状態 −∣1⟩ - \ket{1} へと遷移させます。

∣1⟩→Z(0)−∣1⟩\begin{equation} \ket{1} \xrightarrow{Z(0)} - \ket{1} \end{equation}

最後に、 XX ゲートを量子状態 −∣1⟩ - \ket{1} に対して作用させることにより、量子状態 −∣0⟩ - \ket{0} へと遷移させます。

−∣1⟩→X(0)−∣0⟩\begin{equation} - \ket{1} \xrightarrow{X(0)} - \ket{0} \end{equation}

この量子ビットを測定すると、元の状態と変わらず計算基底状態 ∣0⟩\ket{0} が確率 11 で観測されます。一方で、 ∣0⟩\ket{0} の グローバル位相 は 00 から π\pi に変化しています。

このようなビット反転や位相反転は、基本の量子操作となります。

解答例

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

from qiskit import QuantumCircuit
 
 
def solve() -> QuantumCircuit:
    qc = QuantumCircuit(1)
 
    # 1 番目の量子ビット(インデックス 0)に X ゲートと Z ゲートを作用させます。
    qc.x(0)
    qc.z(0)
    qc.x(0)
 
    return qc

補足

  • X ゲート、Z ゲート以外にも多くの量子ゲートが存在します。
    それぞれの量子ゲートの意味や役割を理解しておくと、今後の問題を解く際に役立つかもしれません。