解説
生成したい状態は 2つの計算基底状態 と の一様重ね合わせ状態です。
はじめに、1つ目の量子ビットにアダマールゲートを作用させます。
ここで、生成したい状態は なので、 式の計算基底状態 を に遷移させることができればよいです。
制御ゲート を使うことで、重ね合わせ状態のうちの作用させたい計算基底状態のみに量子ゲートを作用させることができます。
制御ゲートとは、2つの量子ビットに作用する量子ゲートで、作用する2つの量子ビットのうち、1つを「制御ビット」、もう一方を「標的ビット」と呼びます。制御ゲートでは、制御ビットが でなく の計算基底状態にのみ、標的ビットに対して、制御されたゲートが作用します。
今回の問題では、1ビット目を制御ビットとし、2ビット目を標的ビットとする 制御 (controlled-X; ) ゲートを作用させることで、1ビット目が である計算基底状態 にのみ ゲートを作用させ、ビットを反転させることができます。
解答例
解答例は以下の通りです。
from qiskit import QuantumCircuit
def solve() -> QuantumCircuit:
qc = QuantumCircuit(2)
qc.h(0)
# qc.cx(control qubit, target qubit)
qc.cx(0, 1)
return qc
補足
- 本問の状態 では、片方の量子ビットを測定し、状態を観測すると、もう一方の量子ビットの状態が確定します。このような現象を量子もつれ (entanglement) と呼ぶことがあります。
- 複数の制御ビットをもつような量子ゲート(複数の制御ビットがすべて の状態の標的ビットのみに作用する)を実装することもできます。