양자컴퓨팅에서 큐비트가 여러 개가 되면 단순히 저장공간만 늘어나는 것이 아닙니다. 상태공간은 2ⁿ차원으로 확장되고, 개별 큐비트로 나눌 수 없는 얽힘까지 가능해지면서 계산 방식 자체가 달라지는데요. 다중 큐비트에 대해 알아보시죠.

단일 큐비트와 다중 큐비트를 구분해야 하는 이유
양자컴퓨팅을 처음 공부하면 대부분 한 개의 큐비트에서 시작합니다. |0⟩과 |1⟩을 배우고, 두 상태의 중첩인 α|0⟩ + β|1⟩을 이해한 뒤 X·H·Z와 같은 단일 큐비트 게이트를 익히게 됩니다.
하지만 실제 양자 알고리즘은 한 개의 큐비트만으로 구성되는 경우보다 여러 큐비트를 함께 사용하는 경우가 훨씬 많습니다. 두 번째 큐비트가 추가되는 순간부터 단순히 상태벡터가 하나 더 생기는 것이 아니라 전체 양자시스템의 상태공간 자체가 확장됩니다.
한 큐비트는 2차원 상태공간을 가지지만 두 큐비트는 4차원, 세 큐비트는 8차원, n개의 큐비트는 2ⁿ차원의 상태공간을 가집니다. 그리고 여러 큐비트가 결합되면서 단일 큐비트에서는 나타날 수 없었던 얽힘이라는 새로운 양자상태도 만들 수 있습니다.
| 구분 | 단일 큐비트 | 다중 큐비트 |
|---|---|---|
| 큐비트 수 | 1개 | 2개 이상 |
| 상태공간 차원 | 2차원 | n큐비트에서 2ⁿ차원 |
| 기본 상태 | |0⟩, |1⟩ | |00…0⟩부터 |11…1⟩까지 |
| 상태 표현 | 2개의 복소수 진폭 | 일반적으로 2ⁿ개의 복소수 진폭 |
| 결합 방법 | 해당 없음 | 텐서곱 |
| 얽힘 | 불가능 | 가능 |
| 대표 게이트 | X, H, Z, Rx 등 | CNOT, CZ, SWAP 등 |
따라서 다중 큐비트를 이해하는 것은 단순히 큐비트 수를 늘려 보는 단계가 아닙니다. 양자컴퓨팅이 고전적인 여러 비트의 집합과 근본적으로 다른 구조를 가지는 이유를 본격적으로 이해하는 단계입니다.
먼저 단일 큐비트의 구조를 다시 살펴보자
한 개의 큐비트에는 두 개의 계산 기저 상태가 있습니다.
|0⟩ |1⟩
일반적인 순수 상태는 두 기저 상태의 선형결합으로 표현합니다.
|ψ⟩ = α|0⟩ + β|1⟩ |α|² + |β|² = 1
α와 β는 일반적으로 복소수인 확률진폭입니다. 계산 기저에서 측정하면 각각의 절댓값 제곱이 측정확률과 연결됩니다.
P(0) = |α|² P(1) = |β|²
따라서 단일 큐비트에서는 두 개의 기저 상태에 어떤 진폭과 상대위상이 배분되어 있는지가 양자상태를 결정합니다.
단일 큐비트의 상태공간은 왜 2차원일까
|0⟩과 |1⟩은 서로 직교하는 두 개의 기저벡터입니다. 벡터로 표현하면 다음과 같습니다.
[1] [0]
|0⟩ = [ ] |1⟩ = [ ]
[0] [1]
따라서 일반적인 단일 큐비트 상태는 두 개의 성분을 가진 열벡터가 됩니다.
[α]
|ψ⟩ = [ ]
[β]
이 때문에 단일 큐비트의 상태공간을 2차원 복소 벡터 공간이라고 표현합니다.
다만 이 2차원이라는 표현을 실제 공간의 가로와 세로 방향으로 이해해서는 안 됩니다. 큐비트의 상태를 표현하는 추상적인 힐베르트 공간의 차원입니다.
두 번째 큐비트를 추가하면 왜 4차원이 될까
두 개의 큐비트 A와 B가 있다고 생각해 보겠습니다. 각각은 |0⟩ 또는 |1⟩이라는 두 개의 계산 기저 상태를 가집니다.
두 큐비트를 하나의 시스템으로 결합하면 가능한 계산 기저 상태는 다음 네 개가 됩니다.
|00⟩ |01⟩ |10⟩ |11⟩
따라서 두 큐비트의 일반적인 순수 상태는 다음과 같이 표현할 수 있습니다.
|ψ⟩ = α|00⟩ + β|01⟩ + γ|10⟩ + δ|11⟩
네 개의 복소수 확률진폭은 다음 정규화 조건을 만족해야 합니다.
|α|² + |β|² + |γ|² + |δ|² = 1
즉 두 큐비트가 되면서 상태벡터의 성분 수가 2개에서 4개로 증가합니다.
다중 큐비트는 텐서곱으로 결합한다
서로 다른 양자시스템의 상태공간을 결합할 때 사용하는 수학적 연산이 텐서곱입니다.
예를 들어 첫 번째 큐비트가 |0⟩이고 두 번째 큐비트가 |1⟩이라면 전체 상태는 다음과 같이 표현할 수 있습니다.
|0⟩ ⊗ |1⟩ = |01⟩
벡터로 직접 계산하면 다음과 같습니다.
[1] [0] [0]
[ ] ⊗ [ ] = [1]
[0] [1] [0]
[0]
2차원 상태공간과 2차원 상태공간을 텐서곱하면 4차원 공간이 만들어집니다.
2 × 2 = 4
세 큐비트라면 다시 2차원 공간을 하나 더 텐서곱하므로 8차원이 됩니다.
2 × 2 × 2 = 8
n개의 큐비트는 왜 2ⁿ차원일까
각 큐비트가 2차원의 상태공간을 가지고 있기 때문에 n개의 큐비트를 결합하면 전체 상태공간의 차원은 다음과 같습니다.
2 × 2 × 2 × ... × 2 = 2ⁿ
| 큐비트 수 | 상태공간 차원 | 계산 기저 상태 수 |
|---|---|---|
| 1 | 2 | 2 |
| 2 | 4 | 4 |
| 3 | 8 | 8 |
| 4 | 16 | 16 |
| 10 | 1,024 | 1,024 |
| 20 | 1,048,576 | 1,048,576 |
| n | 2ⁿ | 2ⁿ |
예를 들어 10큐비트의 일반적인 상태벡터를 표현하려면 1,024개의 계산 기저 상태에 대응하는 확률진폭이 필요합니다.
20큐비트에서는 1,048,576개의 진폭이 필요하고 큐비트가 더 늘어나면 필요한 상태벡터의 크기가 매우 빠르게 증가합니다.
그렇다면 큐비트 하나를 추가하면 저장능력이 두 배가 될까
상태공간의 차원만 놓고 보면 큐비트 하나를 추가할 때마다 표현해야 하는 확률진폭 수가 두 배가 되는 것은 맞습니다.
하지만 이를 고전적인 메모리 용량이 단순히 두 배가 된다고 해석하면 오해가 생깁니다.
양자컴퓨터에서는 2ⁿ개의 확률진폭을 상태벡터에 가지고 있다고 해서 측정할 때 그 값을 모두 한 번에 읽을 수 있는 것이 아닙니다. 측정을 수행하면 계산 기저의 비트열 가운데 하나를 얻게 됩니다.
따라서 양자 알고리즘은 거대한 상태공간을 만들기만 하는 것이 아니라 그 안의 진폭과 위상을 적절하게 조작하고 간섭시켜 문제해결에 필요한 정보를 측정 가능한 결과에 집중시키도록 설계해야 합니다.
단일 큐비트에도 중첩은 존재한다
중첩은 다중 큐비트만의 특징이 아닙니다. 단일 큐비트에서도 가능합니다.
|+⟩ = 1/√2(|0⟩ + |1⟩)
이 상태에서는 |0⟩과 |1⟩ 두 계산 기저 상태에 각각 확률진폭이 존재합니다.
다중 큐비트에서는 이 중첩의 범위가 여러 비트열로 확장됩니다.
예를 들어 두 큐비트에 각각 Hadamard 게이트를 적용하면 다음 상태를 만들 수 있습니다.
|++⟩ = 1/2( |00⟩ + |01⟩ + |10⟩ + |11⟩ )
이 경우 네 개의 계산 기저 상태 모두에 확률진폭이 존재합니다.
다중 큐비트의 모든 상태가 얽힌 것은 아니다
여러 큐비트를 결합하면 얽힘이 가능해지지만 다중 큐비트 상태라고 해서 모두 얽혀 있는 것은 아닙니다.
예를 들어 다음 상태를 살펴보겠습니다.
|+⟩ ⊗ |0⟩ = 1/√2( |00⟩ + |10⟩ )
이 상태는 두 큐비트를 각각 |+⟩와 |0⟩라는 개별 상태로 분리해 표현할 수 있습니다.
이러한 상태를 곱상태 또는 separable state라고 합니다.
전체 상태 = 첫 번째 큐비트 상태 ⊗ 두 번째 큐비트 상태
따라서 여러 큐비트가 하나의 시스템에 있다고 해서 자동으로 얽힘이 발생하는 것은 아닙니다.
얽힘은 다중 큐비트에서 나타나는 결정적인 차이다
다중 큐비트가 단일 큐비트와 가장 크게 달라지는 부분 가운데 하나가 얽힘입니다.
대표적인 Bell 상태를 살펴보겠습니다.
|Φ+⟩ = 1/√2( |00⟩ + |11⟩ )
이 상태를 두 개의 독립적인 단일 큐비트 상태의 텐서곱으로 분리할 수 없습니다.
|Φ+⟩ ≠ |ψA⟩ ⊗ |ψB⟩
이런 상태를 얽힌 상태라고 합니다.
얽힘에서는 전체 두 큐비트 상태에 존재하는 정보가 개별 큐비트 각각의 상태만으로는 완전히 설명되지 않습니다. 여러 큐비트 사이의 상관관계 자체가 전체 양자상태의 중요한 일부가 됩니다.
Bell 상태는 어떻게 만들 수 있을까
다중 큐비트 회로의 가장 대표적인 예제로 Bell 상태를 만드는 과정을 살펴볼 수 있습니다.
처음 두 큐비트를 |00⟩으로 준비합니다.
|00⟩
첫 번째 큐비트에 Hadamard 게이트를 적용합니다.
|00⟩ ↓ H ⊗ I 1/√2( |00⟩ + |10⟩ )
아직 이 상태는 첫 번째 큐비트의 |+⟩와 두 번째 큐비트의 |0⟩로 분리할 수 있는 곱상태입니다.
이제 첫 번째 큐비트를 제어 큐비트로 하는 CNOT 게이트를 적용합니다.
1/√2( |00⟩ + |10⟩ ) ↓ CNOT 1/√2( |00⟩ + |11⟩ )
이제 두 큐비트는 개별 상태의 텐서곱으로 분리할 수 없는 Bell 상태가 됩니다.
CNOT은 단일 큐비트 게이트와 무엇이 다를까
단일 큐비트 게이트는 하나의 큐비트 상태에 직접 작용합니다.
예를 들어 X 게이트는 한 큐비트의 |0⟩과 |1⟩을 서로 바꿉니다.
X|0⟩ = |1⟩ X|1⟩ = |0⟩
반면 CNOT은 두 큐비트 사이의 조건부 연산입니다. 첫 번째 큐비트가 제어 큐비트이고 두 번째가 목표 큐비트라고 하면 다음과 같이 작동합니다.
|00⟩ → |00⟩ |01⟩ → |01⟩ |10⟩ → |11⟩ |11⟩ → |10⟩
즉 제어 큐비트가 1인 경우에만 목표 큐비트의 상태를 반전합니다.
이처럼 여러 큐비트에 동시에 작용하는 게이트가 있어야 큐비트 사이의 상관관계를 변화시키고 얽힘을 생성할 수 있습니다.
게이트 행렬의 크기도 큐비트 수에 따라 달라진다
한 큐비트의 상태벡터는 2차원이므로 단일 큐비트에 작용하는 일반적인 유니터리 연산은 2×2 행렬로 표현됩니다.
두 큐비트 전체 상태공간은 4차원이므로 전체 시스템에 작용하는 일반적인 유니터리 연산은 4×4 행렬입니다.
| 큐비트 수 | 상태벡터 크기 | 일반적인 전체 유니터리 크기 |
|---|---|---|
| 1 | 2 | 2×2 |
| 2 | 4 | 4×4 |
| 3 | 8 | 8×8 |
| n | 2ⁿ | 2ⁿ×2ⁿ |
다만 실제 양자 프로그래밍에서 거대한 2ⁿ×2ⁿ 행렬을 직접 작성하는 경우는 많지 않습니다. 대부분 한 큐비트와 두 큐비트 기본 게이트를 조합해 원하는 전체 연산을 구성합니다.
한 큐비트 게이트를 다중 큐비트에 적용하려면 텐서곱이 필요하다
두 큐비트 가운데 첫 번째 큐비트에만 X 게이트를 적용하고 두 번째는 그대로 두고 싶다고 생각해 보겠습니다.
전체 두 큐비트 시스템에서는 다음과 같은 연산으로 표현할 수 있습니다.
X ⊗ I
첫 번째 큐비트에는 X, 두 번째 큐비트에는 항등연산 I를 적용한다는 의미입니다.
반대로 두 번째 큐비트에만 X를 적용하려면 다음과 같습니다.
I ⊗ X
따라서 다중 큐비트 회로에서는 상태뿐 아니라 연산자 역시 텐서곱 구조를 이용해 전체 상태공간에 맞게 확장합니다.
단일 큐비트 측정과 다중 큐비트 측정은 어떻게 다를까
한 큐비트를 계산 기저에서 측정하면 결과는 0 또는 1입니다.
1 qubit → 0 또는 → 1
두 큐비트를 모두 측정하면 네 개의 비트열 가운데 하나가 나타날 수 있습니다.
2 qubits → 00 → 01 → 10 → 11
n개의 큐비트를 모두 계산 기저에서 측정하면 길이가 n인 비트열 하나를 얻습니다.
n qubits → n-bit string
각 비트열이 나타날 확률은 해당 계산 기저 상태에 붙어 있는 전체 확률진폭의 절댓값 제곱과 연결됩니다.
Bell 상태를 측정하면 어떤 결과가 나올까
Bell 상태를 다시 살펴보겠습니다.
|Φ+⟩ = 1/√2( |00⟩ + |11⟩ )
계산 기저에서 두 큐비트를 모두 측정하면 다음 두 결과가 각각 50%의 확률로 나타납니다.
00 → 50% 11 → 50%
01이나 10은 이상적인 Bell 상태에서는 나타나지 않습니다.
중요한 것은 각 큐비트를 따로 보면 0과 1이 각각 50% 확률로 나타나지만 두 결과를 함께 보면 항상 서로 같은 값이라는 강한 상관관계가 존재한다는 점입니다.
전체 상태와 개별 큐비트 상태는 다를 수 있다
다중 큐비트에서 특히 중요한 개념이 전체 상태와 부분시스템의 상태를 구분하는 것입니다.
Bell 상태 전체는 하나의 상태벡터로 표현되는 순수 상태입니다.
전체: |Φ+⟩ = 1/√2( |00⟩ + |11⟩ ) → 순수 상태
하지만 첫 번째 큐비트만 따로 살펴보면 완전 혼합 상태가 됩니다.
첫 번째 큐비트: ρA = I/2 → 완전 혼합 상태
두 번째 큐비트 역시 마찬가지입니다.
즉 전체 시스템에는 분명한 순수 상태가 존재하지만 각 부분만 보면 그 정보를 모두 확인할 수 없습니다. 여러 큐비트 사이의 상관관계 속에 정보가 존재하기 때문입니다.
블로흐 구는 단일 큐비트에는 좋지만 다중 큐비트에는 한계가 있다
단일 큐비트의 순수 상태는 블로흐 구의 표면에 있는 하나의 방향으로 표현할 수 있습니다.
|0⟩과 |1⟩은 Z축, |+⟩과 |−⟩은 X축, |+i⟩와 |−i⟩은 Y축 방향에 놓입니다.
하지만 일반적인 두 큐비트 전체 상태는 하나의 일반적인 블로흐 구로 표현할 수 없습니다.
두 큐비트의 상태공간은 이미 4차원 복소 벡터 공간이며, 얽힘과 큐비트 사이의 상관관계까지 포함하기 때문입니다.
각 큐비트의 축소 상태만 각각 블로흐 벡터로 표현하는 것은 가능하지만 이것만으로 전체 얽힘 정보를 모두 복원할 수 있는 것은 아닙니다.
| 표현 | 단일 큐비트 | 다중 큐비트 |
|---|---|---|
| 상태벡터 | 가능 | 가능 |
| 밀도행렬 | 가능 | 가능 |
| 일반적인 블로흐 구 하나 | 매우 유용 | 전체 상태 표현에는 부족 |
| 얽힘 표현 | 해당 없음 | 전체 상태·상관관계 분석 필요 |
다중 큐비트의 핵심은 단순히 경우의 수가 많다는 것이 아니다
n개의 큐비트가 2ⁿ개의 계산 기저 상태를 가진다는 사실 때문에 양자컴퓨터의 특징을 단순히 ‘경우의 수가 엄청나게 많다’고 설명하기 쉽습니다.
하지만 상태공간의 크기만으로 양자컴퓨팅의 장점을 설명하기에는 부족합니다.
실제 양자 알고리즘에서는 다음과 같은 자원들이 함께 사용됩니다.
- 여러 계산 기저 상태의 중첩
- 확률진폭의 복소수 위상
- 큐비트 사이의 얽힘과 상관관계
- 다중 큐비트 게이트
- 보강 간섭과 상쇄 간섭
- 문제 구조에 맞춘 측정
따라서 큐비트 수가 늘어난다고 자동으로 계산속도가 빨라지는 것은 아닙니다. 커진 상태공간을 문제 해결에 유리한 방식으로 조작할 수 있는 양자 알고리즘이 있어야 합니다.
큐비트 수가 많으면 무조건 좋은 양자컴퓨터일까
양자컴퓨터의 성능을 이야기할 때 큐비트 수가 자주 강조되지만 단순한 숫자만으로 실제 계산성능을 판단하기는 어렵습니다.
큐비트가 많아질수록 더 큰 상태공간을 이용할 수 있지만 동시에 더 많은 게이트와 제어신호, 큐비트 사이의 연결, 오류 관리가 필요합니다.
- 게이트 오류율은 충분히 낮은가
- 큐비트의 coherence가 충분히 오래 유지되는가
- 필요한 큐비트끼리 연결할 수 있는가
- 2큐비트 게이트의 정확도는 충분한가
- 측정오류는 얼마나 발생하는가
- 회로를 실행할 만큼 오류보정 또는 오류완화가 가능한가
즉 실제 양자컴퓨터에서는 큐비트의 수뿐 아니라 큐비트의 품질과 연결성, 게이트 성능도 함께 중요합니다.
고전 컴퓨터로 다중 큐비트를 시뮬레이션하기 어려운 이유
양자컴퓨터가 없어도 고전 컴퓨터에서 상태벡터 시뮬레이터를 이용해 양자회로를 계산할 수 있습니다.
하지만 일반적인 n큐비트 상태벡터에는 2ⁿ개의 복소수 진폭이 필요합니다.
1 qubit → 2 amplitudes 10 qubits → 1,024 amplitudes 20 qubits → 1,048,576 amplitudes 30 qubits → 1,073,741,824 amplitudes
큐비트 하나를 추가할 때마다 필요한 상태벡터 저장공간이 대략 두 배씩 증가하기 때문에 일반적인 상태벡터 방식의 고전 시뮬레이션은 빠르게 어려워집니다.
물론 모든 양자회로가 동일하게 어려운 것은 아닙니다. 회로의 얽힘 구조와 게이트 종류에 따라 텐서 네트워크처럼 더 효율적인 고전 시뮬레이션 방법을 사용할 수 있는 경우도 있습니다.
따라서 2ⁿ차원 상태공간이라는 사실을 곧바로 고전 컴퓨터로는 절대로 계산할 수 없다는 의미로 해석하면 안 됩니다.
단일 큐비트와 다중 큐비트 회로를 비교해보자
한 큐비트 회로에서는 하나의 상태벡터를 회전시키면서 확률진폭과 위상을 조절합니다.
단일 큐비트 |0⟩ ↓ H |+⟩ ↓ Z |−⟩ ↓ H |1⟩
다중 큐비트에서는 각 큐비트의 상태 변화뿐 아니라 큐비트 사이의 상호작용을 만드는 게이트가 추가됩니다.
두 큐비트 |00⟩ ↓ H on qubit 1 1/√2( |00⟩ + |10⟩ ) ↓ CNOT 1/√2( |00⟩ + |11⟩ ) → Bell state
즉 단일 큐비트 회로가 하나의 양자상태를 조작하는 과정이라면 다중 큐비트 회로에서는 개별 상태와 큐비트 사이의 상관관계를 동시에 조작해야 합니다.
단일 큐비트와 다중 큐비트의 차이를 한 번에 정리하면
| 비교 항목 | 단일 큐비트 | 다중 큐비트 |
|---|---|---|
| 계산 기저 | |0⟩, |1⟩ | 모든 n비트 문자열 |
| 상태공간 | 2차원 | 2ⁿ차원 |
| 진폭 수 | 2개 | 일반적으로 2ⁿ개 |
| 중첩 | 가능 | 가능 |
| 상대위상 | 가능 | 더 많은 상태 사이에서 존재 |
| 텐서곱 | 필요 없음 | 시스템 결합에 필요 |
| 얽힘 | 불가능 | 가능 |
| 측정결과 | 1비트 | n비트 문자열 |
| 블로흐 구 | 직관적으로 표현 가능 | 전체 상태 표현에는 일반적으로 부족 |
| 대표 연산 | H·X·Z·Rx·Ry·Rz | CNOT·CZ·SWAP 및 단일 게이트 조합 |
단일 큐비트와 다중 큐비트를 공부하는 추천 순서
다중 큐비트부터 바로 시작하면 텐서곱과 얽힘이 한꺼번에 등장해 어렵게 느껴질 수 있습니다. 다음 순서대로 확장하면 이해하기 쉽습니다.
| 단계 | 학습 내용 | 핵심 확인사항 |
|---|---|---|
| 1단계 | |0⟩·|1⟩ | 단일 큐비트 기저 |
| 2단계 | α|0⟩+β|1⟩ | 중첩과 확률진폭 |
| 3단계 | X·H·Z 게이트 | 단일 큐비트 상태변화 |
| 4단계 | 텐서곱 | 두 상태공간의 결합 |
| 5단계 | |00⟩·|01⟩·|10⟩·|11⟩ | 2큐비트 계산 기저 |
| 6단계 | 곱상태 | 분리 가능한 상태 |
| 7단계 | CNOT | 다중 큐비트 연산 |
| 8단계 | Bell 상태 | 얽힘 |
| 9단계 | 부분 추적 | 전체와 부분시스템 구분 |
| 10단계 | 양자 알고리즘 | 중첩·얽힘·간섭의 결합 |
입문자가 자주 하는 오해
| 오해 | 실제 의미 |
|---|---|
| 2큐비트는 1큐비트 두 개를 나란히 놓은 것뿐이다 | 전체 상태공간이 텐서곱으로 4차원으로 확장된다 |
| 다중 큐비트는 모두 얽혀 있다 | 분리 가능한 곱상태도 존재한다 |
| 2ⁿ개 상태가 있으므로 2ⁿ개의 답을 한 번에 읽을 수 있다 | 한 번의 측정에서는 하나의 비트열을 얻는다 |
| 큐비트 수가 두 배면 계산속도도 두 배다 | 성능은 알고리즘·오류·회로 구조 등에 따라 달라진다 |
| 블로흐 구를 여러 개 그리면 얽힘까지 모두 표현할 수 있다 | 개별 축소 상태만으로 전체 상관관계를 표현할 수 없다 |
| 큐비트가 많을수록 무조건 더 좋은 양자컴퓨터다 | 게이트 정확도·연결성·coherence 등도 중요하다 |
직접 계산해보면 좋은 5가지 연습
- |0⟩⊗|1⟩을 벡터의 텐서곱으로 계산해 |01⟩이 되는지 확인하기
- |+⟩⊗|0⟩을 전개해 (|00⟩+|10⟩)/√2가 되는지 확인하기
- 두 큐비트에 H⊗H를 적용해 네 기저 상태의 균등중첩 만들기
- |00⟩에서 H와 CNOT을 사용해 Bell 상태 만들기
- Bell 상태의 각 큐비트가 단독으로는 I/2가 되는 이유 살펴보기
이 다섯 가지 계산을 직접 해보면 단일 큐비트의 수학이 어떻게 다중 큐비트로 확장되는지 자연스럽게 이해할 수 있습니다.
단일 큐비트와 다중 큐비트 이해 점검 체크리스트
- 한 큐비트의 상태공간이 2차원인 이유를 설명할 수 있는가
- 두 큐비트의 계산 기저 네 개를 모두 쓸 수 있는가
- n큐비트 상태공간이 2ⁿ차원이 되는 이유를 이해했는가
- 텐서곱이 여러 양자시스템의 상태공간을 결합하는 연산임을 알고 있는가
- 곱상태와 얽힌 상태를 구분할 수 있는가
- Bell 상태를 두 개의 독립적인 단일 큐비트로 분해할 수 없다는 점을 이해했는가
- CNOT이 두 큐비트 사이의 조건부 연산이라는 점을 설명할 수 있는가
- 다중 큐비트 측정에서 n비트 문자열을 얻는다는 점을 알고 있는가
- 2ⁿ차원의 상태공간이 곧 2ⁿ개의 답을 한 번에 읽는다는 의미가 아님을 이해했는가
- 일반적인 다중 큐비트 전체 상태를 하나의 블로흐 구로 표현할 수 없다는 점을 알고 있는가
자주 묻는 질문
두 큐비트는 항상 네 가지 값을 동시에 가지고 있나요?
두 큐비트의 상태공간에는 |00⟩, |01⟩, |10⟩, |11⟩이라는 네 개의 계산 기저 상태가 있지만 모든 상태에서 네 진폭이 모두 0이 아닌 것은 아닙니다. 예를 들어 |00⟩은 네 기저 상태 가운데 |00⟩에만 진폭이 존재하는 정상적인 두 큐비트 상태입니다.
큐비트가 많아질수록 양자컴퓨터는 지수적으로 빨라지나요?
그렇지 않습니다. 상태공간의 차원이 2ⁿ으로 증가하는 것과 실제 계산시간이 지수적으로 빨라진다는 것은 서로 다른 주장입니다. 실질적인 속도향상은 문제의 구조와 양자 알고리즘, 회로 구현과 오류 수준 등에 따라 결정됩니다.
얽힘은 큐비트가 여러 개면 자동으로 생기나요?
아닙니다. |+⟩⊗|0⟩처럼 여러 큐비트로 구성됐지만 개별 큐비트 상태의 텐서곱으로 분리할 수 있는 곱상태도 존재합니다. 얽힘은 전체 상태가 개별 상태의 텐서곱으로 분해되지 않을 때 나타납니다.
다중 큐비트에서도 블로흐 구를 사용할 수 있나요?
각 단일 큐비트의 축소 상태를 블로흐 벡터로 표현하는 것은 가능합니다. 하지만 일반적인 다중 큐비트 전체 상태와 큐비트 사이의 모든 상관관계·얽힘을 일반적인 블로흐 구 하나 또는 각 큐비트의 블로흐 구만으로 완전히 나타낼 수는 없습니다.
양자 알고리즘에서는 보통 몇 큐비트 게이트를 사용하나요?
알고리즘 수준에서는 다양한 다중 큐비트 연산을 생각할 수 있지만 실제 회로는 보통 하드웨어가 지원하는 한 큐비트와 두 큐비트 기본 게이트로 분해해 실행합니다. 특히 얽힘을 만들 수 있는 두 큐비트 게이트는 양자회로에서 매우 중요한 역할을 합니다.
핵심 용어와 마무리 정리
| 용어 | 의미 |
|---|---|
| 단일 큐비트 | 2차원 상태공간을 가지는 하나의 양자정보 단위 |
| 다중 큐비트 | 두 개 이상의 큐비트가 하나의 복합 양자시스템을 이루는 구조 |
| 계산 기저 | n큐비트에서 모든 길이 n의 0·1 비트열에 대응하는 기저 상태 |
| 텐서곱 | 여러 양자시스템의 상태공간을 하나의 복합 공간으로 결합하는 연산 |
| 곱상태 | 각 부분시스템의 상태를 텐서곱해 표현할 수 있는 상태 |
| 얽힘 | 개별 부분상태의 단순한 텐서곱으로 분리할 수 없는 복합 양자상태 |
| CNOT | 제어 큐비트 값에 따라 목표 큐비트를 반전하는 대표적인 2큐비트 게이트 |
| Bell 상태 | 두 큐비트 얽힘을 보여주는 대표적인 양자상태 |
| 축소 상태 | 복합 시스템 가운데 특정 부분만 기술한 양자상태 |
| 2ⁿ차원 상태공간 | n개의 큐비트를 결합했을 때 만들어지는 복합 힐베르트 공간의 차원 |
단일 큐비트와 다중 큐비트의 가장 기본적인 차이는 상태공간의 크기입니다. 한 큐비트는 |0⟩과 |1⟩을 기저로 하는 2차원 공간을 가지지만 n개의 큐비트를 결합하면 2ⁿ개의 계산 기저 상태를 갖는 2ⁿ차원의 공간으로 확장됩니다.
하지만 다중 큐비트의 진짜 특징은 차원이 커진다는 사실만이 아닙니다. 여러 큐비트의 전체 상태를 텐서곱으로 구성할 수 있고, 그중에는 개별 큐비트의 상태로 분리할 수 없는 얽힌 상태도 존재합니다.
이 때문에 다중 큐비트에서는 한 큐비트의 진폭과 위상뿐 아니라 큐비트 사이의 상관관계까지 계산의 중요한 자원이 됩니다. CNOT과 같은 다중 큐비트 게이트가 필요한 이유도 이 상관관계를 만들고 조작하기 위해서입니다.
그렇다고 큐비트 수가 늘어나는 것 자체가 양자컴퓨터의 속도향상을 보장하는 것은 아닙니다. 2ⁿ차원의 상태공간에서 유용한 정보를 얻으려면 문제에 맞는 중첩과 얽힘을 만들고 확률진폭을 적절하게 간섭시켜 원하는 측정결과에 정보를 집중시켜야 합니다.
따라서 단일 큐비트에서 다중 큐비트로 넘어갈 때는 ‘큐비트가 몇 개가 되었는가’보다 ‘전체 상태공간이 어떻게 결합되고 큐비트 사이에 어떤 상관관계가 만들어지는가’를 중심으로 이해하는 것이 중요합니다.
참고문헌
단일 큐비트와 다중 큐비트의 상태공간, 텐서곱, 얽힘과 다중 큐비트 연산을 더 깊게 공부하려면 아래의 공식 교육자료를 참고할 수 있습니다.
- Microsoft Learn, The Qubit in Quantum Computing
- Microsoft Learn, Multiple-qubit Operations
- Microsoft Learn, Vectors and Matrices in Quantum Computing
- IBM Quantum Learning, Quantum Information – Single Systems
- IBM Quantum Learning, Quantum Information – Multiple Systems
- IBM Quantum Learning, Multiple-system Quantum Circuits
- IBM Quantum Learning, Entanglement in Action
- IBM Quantum Learning, Introduction to Density Matrices
- Google Quantum AI, Cirq Gates and Operations
- Google Quantum AI, Cirq Simulation