Quantum Algorithm (1) - Quantum Circuit Evaluation
양자 컴퓨팅에서 양자 회로의 동작을 이해하고 계산하는 것은 핵심적인 작업입니다. 이번 글에서는 같은 양자 회로를 두 가지 다른 방법으로 평가하는 과정을 살펴보겠습니다.
우리가 분석할 회로는 다음과 같습니다:
- 입력: 2개의 큐비트가 얽힌 상태 21∣00⟩+21∣11⟩
- 게이트: 첫 번째 큐비트에 H(Hadamard) 게이트, 두 번째 큐비트에 NOT 게이트 적용
이는 벨 상태(Bell state)의 한 형태로, 양자 얽힘을 보여주는 대표적인 예입니다.
첫 번째 접근법은 각 기저 상태에 대해 개별적으로 게이트 연산을 수행하는 것입니다.
(compute Au ⊗ Bv)
먼저 사용할 게이트들의 정의를 확인하고 각 basis를 input으로 제공했을 때 어떤 결과를 제공하는지 확인해봅시다.
Hadamard 게이트 (H):
H=21(111−1)
- H∣0⟩=21(∣0⟩+∣1⟩) (균등 중첩상태 생성)
- H∣1⟩=21(∣0⟩−∣1⟩) (위상이 반전된 중첩상태)
NOT 게이트:
NOT=21(11−11)
- NOT∣0⟩=21(∣0⟩+∣1⟩)
- NOT∣1⟩=21(∣1⟩−∣0⟩)=21(−∣0⟩+∣1⟩)
|00⟩ 상태에 대해:
-
초기 상태: 21∣00⟩=21(∣0⟩⊗∣0⟩)
- |00>은 줄여쓴 것이므로 원래 형태로 풀어쓰면 우변에 해당하는 식이 나옵니다.
-
첫 번째 큐비트에 H 게이트 적용:
- H∣0⟩=21(∣0⟩+∣1⟩)
- 따라서: 21⋅21(∣0⟩+∣1⟩)⊗∣0⟩=21(∣0⟩+∣1⟩)⊗∣0⟩
-
두 번째 큐비트에 √NOT 게이트 적용:
- NOT∣0⟩=21(∣0⟩+∣1⟩)
- 따라서: 21(∣0⟩+∣1⟩)⊗21(∣0⟩+∣1⟩)=221(∣0⟩+∣1⟩)⊗(∣0⟩+∣1⟩)
-
텐서곱 전개:
- 221[(∣0⟩⊗∣0⟩)+(∣0⟩⊗∣1⟩)+(∣1⟩⊗∣0⟩)+(∣1⟩⊗∣1⟩)]
- =221(∣00⟩+∣01⟩+∣10⟩+∣11⟩)
|11⟩ 상태에 대해:
- 21∣11⟩=21(∣1⟩⊗∣1⟩)
- H와 √NOT 적용 후: 221(∣0⟩−∣1⟩)⊗(∣1⟩−∣0⟩)
- 결과: 221(∣01⟩−∣00⟩−∣11⟩+∣10⟩)
두 결과를 합산하면
=> 21(∣01⟩+∣10⟩)
두 번째 접근법은 전체 시스템을 하나의 행렬로 표현하여 계산하는 것입니다.
(compute A ⊗ B then compute A ⊗ B(u ⊗ v))
H⊗NOT의 텐서곱을 계산하면:
H⊗NOT=21(NOTNOTNOT−NOT)=211111−11−1111−1−1−111−1
초기 상태를 벡터로 표현하면:
∣ψ⟩=21∣00⟩+21∣11⟩=210021
(H⊗NOT)×∣ψ⟩=211111−11−1111−1−1−111−1210021=021210
결과적으로 동일한 최종 상태 21(∣01⟩+∣10⟩)를 얻습니다.
특징 | 방법 1 (개별 계산) | 방법 2 (행렬 연산) |
---|
직관성 | 높음 - 각 상태의 변화를 추적 가능 | 낮음 - 전체적인 변환만 확인 |
계산 복잡도 | 상태 수에 비례 | 행렬 크기에 비례 |
확장성 | 큐비트 수가 많을 때 비효율적 | 대규모 시스템에 적합 |
구현 | 손계산에 적합 | 컴퓨터 시뮬레이션에 적합 |
이 두 접근법은 양자 컴퓨팅에서 서로 다른 상황에 유용합니다:
방법 1은 양자 알고리즘의 동작 원리를 이해하거나 작은 규모의 회로를 분석할 때 유용합니다. 각 상태가 어떻게 변화하는지 직접 볼 수 있어 교육적 가치가 높습니다.
방법 2는 양자 시뮬레이터나 실제 양자 컴퓨터에서 회로를 실행할 때 사용되는 방식입니다. 효율적이고 체계적이며, 복잡한 회로도 일관된 방식으로 처리할 수 있습니다.
양자 회로 평가는 양자 컴퓨팅의 핵심 개념 중 하나입니다. 같은 결과를 얻는 두 가지 방법을 이해함으로써, 양자 상태의 진화와 양자 게이트의 동작을 더 깊이 이해할 수 있습니다. 실제 양자 프로그래밍에서는 두 접근법을 상황에 맞게 활용하는 것이 중요합니다.