이 가이드에서는 큐비트를 표현하는 데 사용하는 수학적 모델을 배웁니다. 이 모델은 John von Neumann이라는 뛰어난 수학자가 발명했으며, 매우 성공적인 것으로 입증되었습니다. 거듭 테스트되었고 계속해서 세상을 정확히 예측합니다. 그것이 좋은 모델의 조건입니다!
추신. 많은 사람이 모델을 큐비트와 혼동합니다. 큐비트가 아래에서 볼 수학 그 자체라고 생각합니다. 이는 단순한 오해입니다. 물리학은 자연에서 보는 것을 정확히 나타내는 수학적 모델을 구축하는 데 전념하는 분야입니다. 큐비트는 우리가 이해하기 시작할 수도 없는 자연의 물리적 객체입니다. 아래 수학은 그저 그 행동을 예측하기 위해 우리가 만든 모델 — 도구 — 입니다.
단일 큐비트
큐비트의 상태를 적는 두 가지 일반적인 방법이 있습니다: 하나는 직관적이고, 다른 하나는 매우 유용합니다. 직관적인 것은 3D 공간의 벡터인 블로흐 벡터를 적는 것입니다 — 큐비트란 무엇인가? 가이드에서 모두 배울 수 있습니다. 그리기 쉽지만, 양자 얽힘 상태의 큐비트를 표현하려고 하면 심각한 한계에 부딪힙니다. 그래서 진지한 작업에는 상태 벡터 표기법이라 알려진 것을 사용합니다.
상태 벡터 표기법은 큐비트를 측정할 때 가능한 측정 결과에 근거하고 있어 좋습니다.
1단계: 측정 결과 선택
첫 번째 단계는 양자 측정 결과가 무엇이 될 수 있는지 선택하는 것입니다. 예를 들어 유명한 슈테른-게를라흐 실험에서 슈테른과 게를라흐는 전자의 스핀이 위인지 아래인지 측정했습니다. 그들의 측정 결과는 위 또는 아래였습니다.
그 두 결과에 이름을 붙입니다. 관례적으로 켓 표기법으로 적습니다:
|0⟩
“켓 영”으로 읽습니다. 첫 번째 결과에 대한 우리의 관례 — 예: 슈테른-게를라흐의
위.|1⟩
“켓 일”로 읽습니다. 다른 결과 — 예: 슈테른-게를라흐의
아래.
2단계: 상태를 벡터로 적기
상태 벡터는 단지 각 측정 결과에 얼마나 많은 가중치(또는 진폭)가 있는지에 항목이 대응되는 벡터입니다. 첫 번째 항목은 |0⟩의 진폭에, 두 번째 항목은 |1⟩의 진폭에 대응됩니다.
두 결과를 두 개의 수직 축(|0⟩과 |1⟩)으로, 상태 |ψ⟩를 그 평면의 벡터로 그립니다.
켓 형태로 같은 것을 |ψ⟩ = α|0⟩ + β|1⟩로 적습니다. 열 벡터로는 단지 [α, β]입니다.
|ψ⟩ = α|0⟩ + β|1⟩ ⇔ [α, β]
진폭은 확률이 아니다
진폭은 익숙해질 개념입니다. 진폭은 확률이 아닙니다 — 확률의 “제곱근”입니다. 예를 들어 상태가 |0⟩에 대해 1/√2의 진폭을 가지면 |0⟩을 측정할 확률은 (1/√2)² = 1/2 = 50%입니다. 이를 보른 규칙이라고 합니다.
P(measure |0⟩) = |α|2
P(measure |1⟩) = |β|2
예시 상태 벡터
|0⟩에 모든 가중치
[1, 0]
|0⟩을 측정할 확률 =1² = 100%.|1⟩에 모든 가중치
[0, 1]
|1⟩을 측정할 확률 =1² = 100%.동일한 중첩
[1/√2, 1/√2]
각 결과의 확률
(1/√2)² = 1/2. 50/50.복소수 중첩
[1/√2, i/√2]
여전히 50/50 — 크기 제곱
|i/√2|² = 1/2— 그러나 두 번째 항목의 위상이 다릅니다.비대칭 중첩
[√0.3, √0.7]
|0⟩에 대해(√0.3)² = 30%,|1⟩에 대해(√0.7)² = 70%.
중요한 점을 주목하세요: 위의 모든 예에서 진폭 제곱의 합은 1입니다. 우연이 아닙니다 — 엄격한 규칙입니다. 모든 가능한 결과의 확률이 100%가 되어야 하므로:
|α|2 + |β|2 = 1
그리고 진폭은 복소수일 수 있습니다. 복소수 진폭을 사용한 보른 규칙은 α²가 아닌 크기 제곱 |α|² = α·α*를 사용합니다.
전역 위상은 중요하지 않다
상태 벡터를 이렇게 적는 것에는 약간의 중복이 있습니다. 모든 진폭에 크기 1의 같은 복소수(-1, i, 또는 e^(iπ/3) 같은 “위상 인수”)를 곱하면 같은 물리 상태를 기술하는 것입니다. 보른 규칙은 |진폭|²에 의존하므로 모든 진폭에 단위 크기 인수를 곱해도 측정 확률은 변하지 않습니다.
이 공유 인수를 전역 위상이라고 합니다. 전역 위상만 다른 두 상태 벡터는 물리적으로 구별할 수 없습니다 — 가능한 모든 측정에 대해 정확히 같은 결과를 예측합니다.
여러 큐비트
이제 여러 큐비트의 상태를 표현하는 방법을 배웁니다. 우리가 하는 일은 가능한 측정 결과의 각 조합에 대해 새로운 차원을 만드는 것입니다.
그래서 특정 상태를 나타내는 벡터는 n개의 큐비트에 대해 2ⁿ개의 항목을 가집니다. 이 벡터도 상태 벡터라고 합니다. 단일 큐비트 경우와 마찬가지로 항목은 복소수일 수 있으며, 그 크기 제곱의 합은 1이어야 합니다.
statevector dimension = 2n
두 큐비트의 경우 네 결과는 |00⟩, |01⟩, |10⟩, |11⟩이므로 상태 벡터는 4개의 항목을 가집니다. 세 큐비트의 경우: 8개. 열 큐비트의 경우: 1024개. 차원은 큐비트 수에 따라 기하급수적으로 성장합니다 — 이것이 바로 고전 컴퓨터에서 큰 양자계를 시뮬레이션하는 것이 그렇게 어려운 이유입니다.
연산
양자계에 수행되는 모든 연산은 상태 벡터를 받아 상태 벡터를 출력해야 합니다. 그리고 새 상태 벡터는 단위 구에 있는 것을 포함해 상태 벡터의 모든 규칙을 만족해야 합니다.
연산이 선형이라면 행렬로 표현할 수 있습니다. 제약은 입력과 출력 모두 노름 1이어야 한다는 것입니다. 단위 구를 보존하는 행렬을 유니터리라고 합니다.
상태 벡터에 연산을 적용하는 것은 행렬 곱셈입니다: 유니터리 행렬 U를 가져와 상태 벡터 |ψ⟩에 곱하면 결과 U|ψ⟩가 새 상태 벡터입니다.
|ψ’⟩ = U|ψ⟩
측정
양자 컴퓨터에 하는 마지막 종류의 연산은 측정입니다 — 양자계에서 정보를 추출하는 방법.
측정을 수행하려면 세 단계:
- 보른 규칙(
|진폭|²)을 사용해 각 가능한 결과의 확률을 계산합니다. - 그 확률을 사용해 무작위로 하나의 결과를 샘플링합니다.
- 상태 벡터를 샘플링된 결과에 해당하는 단위 벡터로 대체합니다.
예를 들어 상태 |ψ⟩ = (1/√2)|0⟩ + (1/√2)|1⟩을 측정하면: 50% 확률로 |0⟩, 50% 확률로 |1⟩을 얻습니다. |0⟩을 샘플링했다면 측정 후의 상태 벡터는 단지 |0⟩ = [1, 0]입니다. 중첩은 사라졌습니다 — 그것이 사람들이 측정이 상태를 “붕괴”한다고 말할 때 의미하는 것입니다.
여기서 어디로
세 가지 좋은 다음 단계:
- 블로흐 구란 무엇인가?는 단일 큐비트에 대한 3D 기하학적 그림을 진지하게 다룹니다.
- 아다마르 게이트는 가장 중요한 유니터리 연산 중 하나입니다 —
|0⟩을 동일한 중첩인(1/√2)|0⟩ + (1/√2)|1⟩로 변환합니다. - 양자 얽힘이란 무엇인가?는 두 큐비트가 상관관계가 될 때 다중 큐비트 상태 벡터에 어떤 일이 일어나는지 보여줍니다.