주 콘텐츠로 건너뛰기

양자역학 기초

소개

다음 영상에서 Olivia Lanes가 이 수업의 내용을 안내해 드립니다. 또는 별도의 창에서 이 수업의 YouTube 영상을 열 수도 있습니다.

이전 수업에서는 "Bell 상태"라고 알려진 두 Qubit의 얽힘 상태를 만드는 방법을 배웠습니다. 상태를 측정했을 때, 두 Qubit의 측정 결과가 상관관계를 가짐을 확인했습니다. 하나가 0으로 측정되면 다른 하나도 0으로, 하나가 1이면 다른 하나도 1로 측정되었습니다. 이것이 양자 얽힘의 특징임을 알게 되었습니다. 오늘은 이 상태를 더 깊이 파헤쳐 양자 컴퓨팅의 근본이 되는 양자물리학이 무엇인지 살펴보겠습니다.

Bell 상태

양자 컴퓨터가 고전 컴퓨터와 다르게 동작하게 만드는 많은 양자 현상들이, 이전 수업에서 만든 겉보기에 단순한 Bell 상태 안에 이미 담겨 있습니다. 그 Bell 상태 Circuit을 다시 불러와 봅시다:

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit
from qiskit import QuantumCircuit

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
qc.draw("mpl")

위 이미지는 Bell 상태 Φ+\vert\Phi^+\rangle를 만들기 위한 양자 Circuit을 나타냅니다. 두 개의 검은 수평선은 두 Qubit을 나타내며, 그 선 위의 상자와 기호들은 해당 Qubit에 수행되는 Gate 또는 연산을 나타냅니다. 회색 이중선은 두 Qubit을 측정하여 얻은 고전 정보를 저장하는 고전 정보 버스입니다. 이 Circuit의 세부 사항과 그 결과인 Bell 상태를 분석하여 양자 컴퓨팅의 기초를 이해해 보겠습니다.

양자 컴퓨팅의 수학

양자 상태 표현

먼저, 양자 상태와 Circuit을 논의하기 위한 공통 언어가 필요합니다. 양자 상태를 표현하는 방법은 여러 가지가 있습니다. 첫 번째는 Dirac 표기법입니다. Dirac 표기법에서 상태는 다음과 같이 표기됩니다:

Φ+=12(00+11)\vert \Phi^+\rangle =\frac{1}{\sqrt{2}} ( \vert 00 \rangle + \vert 11 \rangle )

여기서 상태는 꺾쇠 괄호와 수직 막대 안에 쓰입니다. 두 항은 각각 상태의 두 가지 가능한 측정 결과를 나타냅니다. 따라서 이 상태를 측정하면, 두 Qubit 모두 상태 0에 있거나 모두 상태 1에 있는 것을 발견하게 됩니다. 12\frac{1}{\sqrt{2}}는 "정규화 상수"라고 합니다. 상태의 각 계수의 제곱의 합이 11이 되도록 보장하기 위해 존재합니다. 이것이 왜 그런지는 나중에 측정에 관한 절에서 설명하겠습니다.

상태를 표현하는 두 번째 방법은 선형 대수학의 표준 언어인 벡터로 나타내는 것입니다. 벡터의 각 원소는 서로 다른 가능한 측정 결과를 나타냅니다. 이 표기법으로 Bell 상태를 쓰면 다음과 같습니다:

ϕ+=12(1001) .\vert\phi^+\rangle = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 0 \\ 0 \\ 1 \end{pmatrix} ~.

관례에 따라 벡터의 원소는 다음 순서로 정렬됩니다:

  • 첫 번째 원소는 두 Qubit 상태 00\vert00\rangle에 해당합니다
  • 두 번째는 01\vert01\rangle에 해당합니다
  • 세 번째는 10\vert10\rangle에 해당합니다
  • 네 번째는 11\vert11\rangle에 해당합니다

예상대로, Bell 상태 벡터 Φ+\vert\Phi^+\rangle에서 첫 번째와 네 번째 원소는 0이 아니고, 두 번째와 세 번째 원소는 0입니다. 정규화 상수 1/21/\sqrt{2}는 벡터의 길이가 11이 되도록 보장합니다.

Qubit 순서에 대한 참고 사항

Qiskit은 little endian 순서를 사용합니다. 이는 가장 오른쪽 Qubit이 첫 번째(또는 최하위) Qubit으로 간주되고, 가장 왼쪽 Qubit이 최상위 Qubit임을 의미합니다. 따라서 01\vert01\rangle과 같은 상태를 쓸 때:

  • 가장 오른쪽 비트는 Qubit 00에 해당하며, 상태 1\vert1\rangle에 있습니다.
  • 가장 왼쪽 비트는 Qubit 11에 해당하며, 상태 0\vert0\rangle에 있습니다.

Gate 표현

상태가 벡터로 표현될 수 있는 것처럼, Gate는 행렬로 표현될 수 있습니다. Gate는 상태의 벡터를 새로운 벡터로 변환함으로써 상태에 작용합니다.

각 Gate는 상태가 어떻게 변환될지를 결정하는 특정 행렬에 해당합니다. 이 변환은 Gate 행렬을 상태 벡터의 왼쪽에 두고 Gate 행렬과 원래 상태 벡터를 곱함으로써 적용합니다. 다음과 같습니다:

UψU |\psi\rangle

여기서 UU는 Gate 행렬을 나타내고 ψ|\psi\rangle는 상태 벡터를 나타냅니다.

Hadamard Gate를 예시로 살펴보겠습니다. Hadamard Gate는 단일 Qubit Gate(위의 Circuit 다이어그램에서 "H"로 표시된 빨간 상자)로, 상태 0\vert0\rangle12(0+1)\frac{1}{\sqrt{2}}(\vert0\rangle+\vert1\rangle)로, 상태 1\vert1\rangle12(01)\frac{1}{\sqrt{2}}(\vert0\rangle-\vert1\rangle)로 변환합니다. 행렬 표기법으로 Hadamard는 다음과 같이 표현됩니다:

H=12(1111) .H = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} ~.

이해 확인

행렬 곱셈을 사용하여 Hadamard 행렬이 예상대로 상태를 변환함을 보이세요. (필요하다면, 행렬 곱셈 방법을 배울 수 있습니다.)

정답
H0=12(1111)(10)=12(11) H |0\rangle = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} \begin{pmatrix} 1 \\ 0 \end{pmatrix} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \end{pmatrix} ~\checkmarkH1=12(1111)(01)=12(11) 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} ~\checkmark

Gate 행렬에 대해 몇 가지 유의해야 할 사항이 있습니다:

  1. Gate 행렬은 항상 정사각형 N×NN \times N 행렬이며, 여기서 NN은 적용되는 상태 벡터의 차원이기도 합니다. 예를 들어, 단일 Qubit만 있을 때 상태 벡터는 Qubit의 두 가능한 상태인 0과 1을 나타내는 2차원입니다. 이 경우 이 시스템에 적용되는 Gate 행렬의 차원은 2×22\times 2가 됩니다.
  2. 양자 Gate는 가역적입니다. 다시 말해, Gate의 이 되는 다른 행렬을 찾을 수 있으며, 이는 Gate의 동작을 취소하고 Qubit을 원래 상태로 되돌립니다.
  3. 양자 Gate는 또한 변환하는 벡터의 길이를 보존합니다. 양자 상태 벡터는 항상 길이 11을 가집니다(앞서 논의한 정규화 상수로 보장됩니다). Gate는 벡터를 늘리거나 줄이지 않고 단순히 회전시킵니다.

이 모두는 유니터리 행렬의 성질입니다. 유니터리 행렬의 수학적 성질에 대해 더 알고 싶다면, 양자 정보 기초 강의의 여러 시스템에 관한 John Watrous의 수업에서 더 읽을 수 있습니다.

측정의 원리

양자 상태를 측정하면, 결과는 항상 가능한 결과 중 하나입니다(단일 Qubit의 경우 0 또는 1). 어떤 결과를 얻는지는 무작위이지만, 양자 상태는 각 결과의 확률을 알려줍니다.

상태 벡터의 원소들이 이 확률을 결정합니다. 특정 결과의 확률을 구하려면 그 결과에 해당하는 원소의 제곱을 취합니다. 예를 들어, Qubit이 다음 상태에 있다면:

ψ=12(11)=12(0+1),|\psi\rangle = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \end{pmatrix} = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle),

첫 번째 원소(0에 해당)는 1/21/\sqrt{2}이고, 두 번째 원소(1에 해당)도 1/21/\sqrt{2}입니다. 이 숫자들을 제곱하면

(12)2=12=0.5,\left(\frac{1}{\sqrt{2}}\right)^2 = \frac{1}{2} = 0.5,

즉, 0이 측정될 확률이 50%이고 1이 측정될 확률이 50%임을 알 수 있습니다.

모든 제곱된 원소의 합은 항상 1이 됨을 기억하세요. 측정 시 반드시 어떤 결과를 얻게 되므로, 모든 가능한 결과의 확률의 합이 100%여야 한다는 점에서 이는 당연합니다.

측정 후 Qubit은 관측된 결과로 붕괴되며, 이전의 중첩은 사라집니다. 이제 Qubit은 고전적인 비트처럼 동작합니다. 측정은 양자 Gate와 근본적으로 다릅니다. Gate가 결정론적이고 가역적인 방식으로 양자 상태를 변환하는 반면, 측정은 본질적으로 무작위이며 비가역적입니다.

다른 기저에서의 측정

기본적으로 양자 Circuit에서 Qubit을 측정할 때, 하나의 축을 따라서만 Qubit의 상태를 측정합니다. 이를 계산 기저 또는 ZZ 기저라고 하며, 상태 0\vert 0\rangle1\vert 1\rangle로 정의됩니다. 0\vert 0\rangle 상태를 위쪽을 가리키는 벡터로, 1\vert 1\rangle 상태를 아래쪽을 가리키는 벡터로 생각할 수 있습니다. 따라서 ZZ 기저에서의 측정은 "Qubit의 상태가 위를 가리키나요, 아래를 가리키나요?"라는 질문에 답합니다.

하지만 이것이 Qubit에 대해 물을 수 있는 유일한 질문은 아닙니다. Qubit의 상태 벡터는 위나 아래만을 가리키지 않습니다. 0\vert 0\rangle1\vert 1\rangle의 중첩은 3차원 공간의 임의의 방향을 가리키는 상태 벡터를 만들어냅니다 — 정확히 어느 방향인지는 중첩의 두 부분의 상대적 진폭과 위상에 따라 달라집니다. 따라서 표준 ZZ-기저 측정이 "위 또는 아래?"를 묻는 반면, "왼쪽 또는 오른쪽?" 또는 "앞 또는 뒤?"라고 물을 수도 있습니다.

이러한 질문들은 서로 다른 기저에서의 측정에 해당합니다. 각 기저는 그 기저에서의 두 가지 가능한 측정 결과를 정의하는 고유한 두 기저 벡터를 가집니다(ZZ-기저에서의 0\vert 0\rangle 또는 1\vert 1\rangle처럼).

  • Z 기저 측정 결과는 0\vert 0\rangle 또는 1\vert 1\rangle로 붕괴됩니다
  • X 기저 측정 결과는 +\vert +\rangle 또는 \vert -\rangle로 붕괴됩니다
  • Y 기저 측정 결과는 i\vert i\rangle 또는 i\vert -i\rangle로 붕괴됩니다

여기서

+=12(0+1)=12(01)i=12(0+i1)i=12(0i1)\begin{aligned} \lvert +\rangle &= \frac{1}{\sqrt{2}}(\lvert 0\rangle + \lvert 1\rangle) \\ \lvert -\rangle &= \frac{1}{\sqrt{2}}(\lvert 0\rangle - \lvert 1\rangle) \\ \lvert i\rangle &= \frac{1}{\sqrt{2}}(\lvert 0\rangle + i\lvert 1\rangle) \\ \lvert -i\rangle &= \frac{1}{\sqrt{2}}(\lvert 0\rangle - i\lvert 1\rangle) \end{aligned}

여기서 i=1i=\sqrt{−1}은 허수 단위입니다. 여기서 처음으로 두 부분 사이에 위상 차이가 있는 중첩을 보게 됩니다. 위상은 보통 eiθe^{i\theta}로 쓰며, 여기서 θ\theta는 복소 평면에서 양자 상태의 진폭의 각도입니다 — 수평 축은 실수를, 수직 축은 허수를 나타내는 2차원 평면입니다. 직관적으로는 한 파동이 다른 파동에 비해 얼마나 이동했는지로 생각할 수 있습니다: 파동의 마루가 정렬되어 있나요, 아니면 한 파동이 이동하여 마루가 다른 파동의 골짜기와 만나나요?

Pauli 행렬과 관측량

이 세 가지 다른 기저 선택 XX, YY, ZZ와 관련된 세 가지 행렬, 이른바 Pauli 행렬이 있습니다:

X=(0110),Y=(0ii0),Z=(1001).X = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}, \quad Y = \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix}, \quad Z = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix}.

이것들이 측정 기저와 정확히 어떻게 관련되나요? 얼핏 보면 이것들은 평범한 Gate 행렬처럼 보입니다 — 실제로 그렇습니다. 각 Pauli 행렬은 Qubit에 작용하여 그 상태를 변경할 수 있습니다:

  • Pauli-X0|0\rangle1|1\rangle을 뒤집습니다. 고전적인 NOT Gate와 같습니다.
  • Pauli-Z0|0\rangle을 변경하지 않지만 1|1\rangle1-1을 곱하여 상대적 위상을 변경합니다.
  • Pauli-Y는 Qubit을 뒤집고 위상을 도입합니다.

하지만 Pauli 행렬은 동등하게 중요한 두 번째 해석을 가지고 있습니다. 양자역학에서 측정 가능한 양을 관측량이라고 하며, 관측량은 행렬로 표현됩니다. Pauli 행렬은 세 가지 다른 축을 따른 측정에 해당하며, 그 고유 상태는 각 축을 따른 두 가지 가능한 측정 결과에 해당합니다. (고유 상태라는 용어가 익숙하지 않더라도 괜찮습니다 — 고유 상태는 주어진 행렬과 관련된 특별한 벡터일 뿐입니다.)

  • ZZ → Z 기저에서의 측정 (0|0\rangle, 1|1\rangle)
  • XX → X 기저에서의 측정 (+|+\rangle, |-\rangle)
  • YY → Y 기저에서의 측정 (i|i\rangle, i|-i\rangle)

이것이 Pauli 행렬이 두 가지 역할을 하는 것처럼 보이는 이유를 설명합니다. Pauli 행렬은 상태에 작용하는(Gate로서) 동시에 측정 방향을 정의합니다(관측량으로서). 두 역할 모두 동일한 수학에서 비롯됩니다.

그렇다면 실제로 X 또는 Y 기저에서 측정하려면 어떻게 해야 할까요? 기본적으로, 양자 컴퓨터는 Z 기저에서만 측정하도록 설정되어 있습니다. 따라서, 관심 있는 정보인 X 또는 Y가 이제 Z 방향을 가리키도록 Qubit의 상태 벡터를 회전하여 기저를 변경해야 합니다. 그런 다음 평소처럼 Z 측정을 수행하면 됩니다.

예를 들어, X 기저에서의 측정은 Hadamard Gate를 적용한 다음 Z 기저에서 측정함으로써 수행할 수 있습니다. Hadamard는 "X 정보"가 "Z 정보"가 되도록 상태를 회전시킵니다. 그 후, 일반적인 측정으로 작업이 완료됩니다.

다음 수업에서 Pauli 행렬을 더 많이 보게 될 것입니다. 새로운 양자 Circuit 작성 기술을 실제 양자물리학 문제에 적용할 때입니다.

Bell 상태 Circuit

이제 출발점이 생겼습니다 — 상태는 벡터로, Gate는 행렬로 표현될 수 있으며, 측정은 상태를 "붕괴"시킨다는 것을 알고 있습니다 — 위에서 Bell 상태를 생성하고 측정하는 Circuit을 살펴보겠습니다.

두 Qubit이 00|00\rangle인 초기 상태에서 시작합니다:

00=(1000)|00\rangle = \begin{pmatrix} 1 \\ 0 \\ 0 \\ 0 \end{pmatrix}

중첩 생성

Circuit은 Qubit 0에 Hadamard Gate를 적용하는 것으로 시작합니다. 이전 절에서 보았듯이, Hadamard는 Qubit을 확정된 상태인 0|0\rangle 또는 1|1\rangle에서 두 상태의 조합으로 변환합니다. Hadamard Gate는 다음과 같습니다:

H=12(1111)H = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}

두 Qubit 시스템에서 첫 번째 Qubit에 이것을 적용하기 위해, Qubit 1을 변경하지 않고 Qubit 0에 HH를 적용하는 확장된 4x4 행렬을 사용합니다. "첫 번째 Qubit에 HH를 적용하고 두 번째 Qubit은 건드리지 마세요"라고 생각하면 됩니다:

H0=12(1100110000110011)H_0 = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 & 0 & 0 \\ 1 & -1 & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 1 & -1 \end{pmatrix}

그런 다음 이것을 초기 상태 벡터와 곱합니다:

H000=12(1100110000110011)(1000)=12(1100)=12(00+01)H_0 |00\rangle = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 & 0 & 0 \\ 1 & -1 & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 1 & -1 \end{pmatrix} \begin{pmatrix} 1 \\ 0 \\ 0 \\ 0 \end{pmatrix} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \\ 0 \\ 0 \end{pmatrix} = \frac{1}{\sqrt{2}}(|00\rangle + |01\rangle)

이제 Qubit 0은 중첩 상태에 있습니다.

양자 중첩에 대한 추가 설명

위와 같은 양자 중첩은 Qubit이 동시에 두 상태에 있다고 종종 설명됩니다. 그러나 이 중첩 상태를 측정하면 결과는 항상 00 또는 11입니다 — 중첩 자체를 직접 관측할 수는 없습니다. 사실, "Qubit이 동시에 두 상태에 있다"는 표현은 오해를 불러일으킬 수 있습니다. 더 정확하게 표현하자면, 중첩은 서로 다른 측정 결과의 확률을 계산할 수 있게 해주는 양자 상태의 수학적 기술입니다. 일부 사람들은 중첩이 물리적으로 실재한다고 생각하지만, 이는 검증할 수 없는 철학적 해석입니다. 양자역학은 단지 측정 결과의 확률만을 예측합니다.

고전적인 확률 분포와 달리, 양자 중첩은 서로 다른 성분들이 서로 간섭할 수 있게 해줍니다. 마치 서로를 증폭하거나 상쇄할 수 있는 중첩된 파동처럼요. 이 간섭이 바로 양자 알고리즘이 고전적인 무작위성만으로는 불가능한 측정 결과 패턴을 만들어낼 수 있게 하는 것입니다.


Qubit 얽힘

다음으로, 제어형 NOT (CNOT) Gate(두 Qubit을 연결하는 파란 점, 수직선, 그리고 더하기 기호가 있는 원으로 표시됨)가 적용됩니다. 이 Gate는 두 Qubit을 서로 얽히게 합니다. 이 단계 이후, 한 Qubit의 상태는 다른 Qubit과 독립적으로 기술될 수 없습니다.

CNOT Gate는 Qubit 0(제어 Qubit이라고 함)이 상태 1\vert 1\rangle 에 있을 때만 Qubit 1(대상 Qubit이라고 함)을 뒤집습니다. 그 행렬은:

CNOT=(1000000100100100)\text{CNOT} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \end{pmatrix}

1단계의 상태에 적용합니다:

(1000000100100100)12(1100)=12(1001)=12(00+11)\begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \end{pmatrix} \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \\ 0 \\ 0 \end{pmatrix} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 0 \\ 0 \\ 1 \end{pmatrix} = \frac{1}{\sqrt{2}}(|00\rangle + |11\rangle)

이제 Qubit들이 얽혀 있습니다: 하나를 측정하면 즉시 다른 하나가 결정됩니다.

양자 얽힘에 대한 추가 설명

얽힘은 중첩과 마찬가지로 고전적인 유사물이 없는 양자 현상입니다. 고전 시스템에서 두 상관된 비트는 값이 연결될 수 있지만, 각 비트는 여전히 확정된 값을 가집니다 — 우리가 모르더라도요. 예를 들어, 두 동전이 항상 같은 면이 나오도록 붙어 있다면, 한 동전이 앞면임을 알면 다른 동전도 앞면임을 즉시 알 수 있습니다. 하지만 보기 전에 각 동전은 이미 확정된 상태에 있습니다.

얽힌 Qubit의 경우, 상황이 근본적으로 다릅니다. 측정 전에 어느 Qubit도 자체적으로 확정된 값을 가지지 않습니다. 쌍만이 잘 정의된 상태를 가집니다. 한 Qubit을 측정하면 아무리 멀리 떨어져 있어도 즉시 다른 Qubit의 확률에 영향을 미칩니다. 이것은 순수한 양자 효과입니다: 고전 통계나 개별 Qubit에 대한 숨겨진 정보로는 설명할 수 없습니다.

상태 측정

마지막으로 두 Qubit 모두 측정됩니다. 측정하면 양자 상태는 고전적으로 허용된 상태 중 하나로 붕괴됩니다:

  • 00은 확률 1/22=0.5|1/\sqrt{2}|^2 = 0.5로 나타납니다.
  • 11은 확률 1/22=0.5|1/\sqrt{2}|^2 = 0.5로 나타납니다.

이것은 수업 1의 Circuit에서 관측한 상관된 측정 결과를 재현합니다.

결론

이 수업에서는 양자 컴퓨터에서 자신 있게 독립적으로 양자 Circuit을 실행하는 데 필요한 양자역학적 개념과 수학적 도구를 빠르게 살펴보았습니다. 양자 상태가 어떻게 표현되는지, Gate가 그 상태를 어떻게 변환하는지, 측정이 어떻게 작동하는지, 그리고 중첩과 얽힘이 간단한 Circuit에서 어떻게 자연스럽게 발생하는지를 소개했습니다.

수업 3에서는 양자 컴퓨터에서 간단한 문제를 푸는 전체 워크플로를 살펴보고 결과를 해석함으로써 이러한 아이디어를 실제로 적용해 보겠습니다.

학습 목표

수업 1의 학습 목표를 떠올려보세요. Ψ\Psi^- Bell 상태를 만들기 위해 Circuit을 수정하는 것이었습니다. 이제 그 Circuit을 사용하여 행렬 대수를 통해 Circuit이 원하는 상태를 만들어냄을 확인해 보세요. (힌트: NOT 또는 X Gate의 행렬 형태를 알아내야 합니다.)

This translation based on the English version of 2026년 5월 7일