from qiskit_textbook.widgets import gate_demo
gate_demo(gates='pauli')
그리고 코드 상에서는 다음과 같이 큐비트에 적용할 수 있다.
qc.y(0)
qc.z(0)
qc.draw('mpl')
여담
∣0⟩ 상태와 ∣1⟩ 상태에서는 Z 게이트를 적용해도 그 어떤 변화도 확인할 수 없다.
이는 ∣0⟩와 ∣1⟩가 Z 게이트의 고유상태The eigenstates이기 때문이다.
이들은 종종 Z 기저라고 불린다.
Z 기저 외에도, X 게이트의 고유상태인 X 기저도 많이 쓰이는데 그것은 ∣+⟩과 ∣−⟩라고 불린다.
∣+⟩=21(∣0⟩+∣1⟩)=21[11]
∣−⟩=21(∣0⟩−∣1⟩)=21[1−1]
그리고 Y 게이트의 고유상태인 Y 기저는 다음과 같다.
∣↺⟩=∣L⟩=21(∣0⟩+i∣1⟩)=21[1i]
∣↻⟩=∣R⟩=21(∣0⟩−i∣1⟩)=21[1−i]
하다마드 게이트 The Hadamard Gates
하다마드 게이트는 주로 H 게이트로 줄여 부르는, 기본적인 양자 게이트다.
H=21[111−1]
이 게이트를 통해 ∣0⟩과 ∣1⟩의 중첩을 만들 수 있다.
즉, 다음과 같은 변환이 성립한다.
H∣0⟩=∣+⟩
H∣1⟩=∣−⟩
이 게이트는 블로흐 구면에서 x축과 z축의 중앙에 있는 축을 기준으로 뒤집는 효과가 있다.
여담
Z 기저는 본질적으로 특별한 녀석이 아니며 그 외에도 다양한 기저가 있음을 이야기하며
그 다양한 기저 중 대표적인 것 일부를 알아보았다.
그렇게 다양한 기저가 있듯이 측정할 때도 반드시 Z 기저를 측정해야 하는 것은 아니다.
예를 들어, X 기저인 ∣+⟩과 ∣−⟩을 측정할 수 있다.
p(∣+⟩)=∣⟨+∣q⟩∣2
p(∣−⟩)=∣⟨−∣q⟩∣2
Qiskit은 Z 기저만을 측정하기에 X 기저를 측정하기 위해서는 H 게이트를 사용해야 한다.
from qiskit.extensions import Initialize
defx_measurement(qc,qubit,cbit):"""Measure 'qubit' in the X-basis, and store the result in 'cbit'"""
qc.h(qubit)
qc.measure(qubit, cbit)
qc.h(qubit)return qc
qc = QuantumCircuit(1,1)
initial_state =[0,1]
initializer = Initialize(initial_state)
initializer.label ="init"
qc.append(initializer,[0])
x_measurement(qc,0,0)
qc.draw()
그리고 같은 원리로 두 개의 H 게이트 사이에 Z 기저 측정을 넣어 X 기저를 측정할 수 있다.
backend = Aer.get_backend('statevector_simulator')# Tell Qiskit how to simulate our circuit
out_state = execute(qc,backend).result().get_statevector()# Do the simulation, returning the state vector
plot_bloch_multivector(out_state)# Display the output state vector
또는
initial_state를 ∣1⟩로 초기화하고 실행하였는데 ∣+⟩ 또는 ∣−⟩로 붕괴되는 것을 확인할 수 있다.
Rϕ 게이트 The Rϕ-Gates
Rϕ 게이트는 실수 매개변수 ϕ를 필요로 하며, z축 방향으로 ϕ만큼 회전한다. Rz 게이트라고도 불리며 다음과 같은 행렬로 나타낼 수 있다.
Z 게이트는 Rϕ 게이트의 특수한 경우이며, Z 게이트 외에도 Rϕ 게이트의 특수한 형태는 몇 가지 더 있다.
I 게이트 The I-Gates
I 게이트는 Identity 게이트다.
단위 행렬로 표현되며 이 게이트는 아무 일도 하지 않는다.
I=[1001]
의미 없어보이지만 때로는 계산에 사용되므로 게이트가 존재한다.
그리고 때로는 아무 작업도 하지 않는 상황에서 이를 명시해줄 필요가 있는 경우도 있다.
S 게이트 The S-Gates
S 게이트는 Phase 게이트다. Z 게이트라고 불리며 ϕ=2π인 특수한 경우의 Rϕ다.
이것은 큐비트를 블로흐 구면 상에서 90도 회전하게 한다.
여기서 다루는 다른 게이트들과 달리 S 게이트는 거듭행렬이 아니며, 따라서 종종 S† 게이트를 만나게 된다. S† 게이트는 ϕ=−2π인 특수한 경우의 Rϕ다.