Hadamard 게이트: 중첩을 만드는 가장 핵심적인 연산
Hadamard 게이트는 큐비트를 확정된 상태에서 균등한 중첩 상태로 변환하는 1큐비트 양자 게이트이다. 양자 알고리즘 대부분이 이 게이트로 시작하며, 양자 병렬성의 출발점 역할을 한다. 행렬 표현이 단순하면서도 자기 역원(self-inverse)이라는 독특한 성질을 지닌다.
개념 소개
동전을 테이블 위에 앞면이 보이도록 놓는 상황을 생각해 보자. 이 동전은 100% 앞면, 즉 확정된 상태다. 이제 동전을 손가락으로 튕겨 팽이처럼 돌리면, 그 순간 앞면도 뒷면도 아닌 '둘 다의 가능성'을 지닌 상태가 된다. Hadamard 게이트는 큐비트에 이와 같은 역할을 한다.
고전 컴퓨터의 비트는 항상 0 또는 1이다. 반면 큐비트는 이나 같은 확정 상태뿐 아니라, 두 상태가 동시에 공존하는 중첩(superposition) 상태에 있을 수 있다. Hadamard 게이트(기호: )는 확정 상태를 균등 중첩 상태로 바꾸는 가장 기본적인 연산이다.
핵심 원리
행렬 표현
Hadamard 게이트는 다음 유니터리 행렬로 표현된다.
작동 방식
과 에 각각 적용하면 다음과 같다.
은 과 을 같은 확률(각 50%) 로 측정할 수 있는 균등 중첩 상태다. 은 확률은 동일하지만 두 항 사이에 위상 차이(부호) 가 존재한다.
자기 역원(Self-inverse) 성질
Hadamard 게이트를 두 번 연속 적용하면 원래 상태로 돌아온다.
이는 (에르미트 행렬이면서 동시에 유니터리)임을 의미하며, 복호화 게이트를 별도로 정의하지 않아도 된다는 편리함을 준다.
예시·응용
1. 양자 병렬성의 시작점
개의 큐비트 모두에 를 적용하면 개의 상태를 동시에 표현하는 중첩이 만들어진다.
예를 들어 3큐비트에 적용하면 부터 까지 8가지 상태가 균등하게 중첩된다. 이 상태를 출발점으로 삼아 양자 알고리즘은 모든 입력에 대한 연산을 '동시에' 수행할 수 있다.
2. 간단한 코드 예시 (Qiskit)
from qiskit import QuantumCircuit
qc = QuantumCircuit(1, 1)
qc.h(0) # Hadamard 게이트 적용
qc.measure(0, 0) # 측정
print(qc.draw())
위 회로를 시뮬레이터로 반복 실행하면 측정 결과 0과 1이 약 50:50 비율로 나타난다.
3. 실제 알고리즘에서의 역할
| 알고리즘 | Hadamard의 역할 |
|---|---|
| Deutsch-Jozsa | 균등 중첩 초기화 + 위상 판별 |
| Grover 탐색 | 진폭 증폭의 반전(diffusion) 연산 |
| 양자 푸리에 변환(QFT) | 핵심 구성 블록 중 하나 |
| BB84 양자 암호 | 기저(basis) 전환 |
정리
Hadamard 게이트는 '아무 일도 일어나지 않은' 큐비트에 가능성의 문을 열어주는 연산이다. 확정 상태 을 균등 중첩 으로 변환하고, 자기 자신이 역원이 되며, 큐비트로 확장하면 지수적으로 큰 상태 공간을 한 번에 준비할 수 있다. 대부분의 양자 알고리즘이 첫 단계로 를 사용하는 이유는 바로 이 특성 덕분이다.
연습문제
Q1.$H|1\rangle$을 계산하고, 이 상태를 측정했을 때 $|0\rangle$과 $|1\rangle$이 나올 확률을 각각 구하시오.
힌트 보기
$H$를 열벡터 $|1\rangle = (0, 1)^T$에 행렬 곱으로 적용해 본다.
해설 보기
$H|1\rangle = \frac{1}{\sqrt{2}}\begin{pmatrix}1&1\\1&-1\end{pmatrix}\begin{pmatrix}0\\1\end{pmatrix} = \frac{1}{\sqrt{2}}\begin{pmatrix}1\\-1\end{pmatrix} = \frac{|0\rangle - |1\rangle}{\sqrt{2}}$. 각 진폭의 절댓값 제곱이 확률이므로 $P(0) = \left|\frac{1}{\sqrt{2}}\right|^2 = \frac{1}{2}$, $P(1) = \left|\frac{-1}{\sqrt{2}}\right|^2 = \frac{1}{2}$. 위상 부호($-$)는 확률에 영향을 주지 않는다.
Q2.Hadamard 게이트를 같은 큐비트에 두 번 연속 적용했을 때의 결과를 행렬 계산으로 확인하시오.
해설 보기
$H \cdot H = \frac{1}{\sqrt{2}}\begin{pmatrix}1&1\\1&-1\end{pmatrix} \cdot \frac{1}{\sqrt{2}}\begin{pmatrix}1&1\\1&-1\end{pmatrix} = \frac{1}{2}\begin{pmatrix}2&0\\0&2\end{pmatrix} = \begin{pmatrix}1&0\\0&1\end{pmatrix} = I$. 따라서 $H^2 = I$이고, Hadamard 게이트는 자기 자신이 역원이 된다.
Q3.2큐비트 모두에 Hadamard 게이트를 적용했을 때 생성되는 중첩 상태를 수식으로 쓰고, 측정 결과로 나올 수 있는 상태의 가짓수와 각각의 확률을 구하시오.
힌트 보기
$H^{\otimes 2}|00\rangle = (H|0\rangle) \otimes (H|0\rangle)$로 텐서곱을 이용한다.
해설 보기
$H^{\otimes 2}|00\rangle = |+\rangle \otimes |+\rangle = \frac{1}{2}(|00\rangle + |01\rangle + |10\rangle + |11\rangle)$. 가능한 측정 결과는 $|00\rangle, |01\rangle, |10\rangle, |11\rangle$의 4가지이며, 각각의 확률은 $\left|\frac{1}{2}\right|^2 = \frac{1}{4}$, 즉 25%로 균등하다.