주 콘텐츠로 건너뛰기

Qiskit 구현

이 레슨에서는 Qiskit을 사용하여 얽힘의 활용 레슨에서 다룬 몇 가지 개념을 구현합니다.

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

print(__version__)
2.1.1
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit_aer import AerSimulator
from qiskit.visualization import plot_histogram, array_to_latex
from qiskit.result import marginal_distribution
from qiskit.circuit.library import UGate
from numpy import pi, random

아래는 순간이동 프로토콜을 양자 Circuit으로 구현한 것입니다.

qubit = QuantumRegister(1, "Q")
ebit0 = QuantumRegister(1, "A")
ebit1 = QuantumRegister(1, "B")
a = ClassicalRegister(1, "a")
b = ClassicalRegister(1, "b")

protocol = QuantumCircuit(qubit, ebit0, ebit1, a, b)

# Prepare ebit used for teleportation
protocol.h(ebit0)
protocol.cx(ebit0, ebit1)
protocol.barrier()

# Alice's operations
protocol.cx(qubit, ebit0)
protocol.h(qubit)
protocol.barrier()

# Alice measures and sends classical bits to Bob
protocol.measure(ebit0, a)
protocol.measure(qubit, b)
protocol.barrier()

# Bob uses the classical bits to conditionally apply gates
with protocol.if_test((a, 1)):
protocol.x(ebit1)
with protocol.if_test((b, 1)):
protocol.z(ebit1)

display(protocol.draw(output="mpl"))

이전 코드 셀의 출력

이 Circuit은 이전 레슨에서 아직 다루지 않은 Qiskit의 몇 가지 기능을 사용합니다. 바로 barrierif_test 함수입니다. barrier 함수는 Circuit 다이어그램을 더 읽기 쉽게 시각적으로 구분해 주며, 실제 하드웨어에서 Circuit을 실행할 때 컴파일 과정에서 barrier를 넘나드는 다양한 단순화 및 최적화를 Qiskit이 수행하지 못하도록 막아 줍니다. if_test 함수는 고전 비트 또는 레지스터에 따라 조건부로 연산을 적용합니다.

이 Circuit은 먼저 (A,B)(\mathsf{A},\mathsf{B})ϕ+\vert \phi^+\rangle 상태로 초기화(이 부분은 프로토콜 자체에는 포함되지 않습니다)한 뒤, Alice의 연산, 측정, 마지막으로 Bob의 연산 순서로 실행됩니다. 프로토콜이 올바르게 동작하는지 검증하기 위해, 무작위로 생성된 단일 Qubit Gate를 Q\mathsf{Q}의 초기 상태 0\vert 0\rangle에 적용하여 순간이동할 임의의 양자 상태 벡터를 만들겠습니다. 그런 다음 프로토콜 실행 후 해당 Gate의 역연산(켤레 전치)을 B\mathsf{B}에 적용하면, 상태가 0\vert 0\rangle으로 돌아왔는지를 측정하여 순간이동이 성공했는지 확인할 수 있습니다.

먼저 단일 Qubit 유니터리 Gate를 무작위로 선택합니다.

random_gate = UGate(
theta=random.random() * 2 * pi,
phi=random.random() * 2 * pi,
lam=random.random() * 2 * pi,
)

display(array_to_latex(random_gate.to_matrix()))
[0.98972121580.01950801030.141673401i0.0603319186+0.1296609988i0.8319925233+0.5360378028i] \begin{bmatrix} 0.9897212158 & -0.0195080103 - 0.141673401 i \\ 0.0603319186 + 0.1296609988 i & -0.8319925233 + 0.5360378028 i \\ \end{bmatrix}

이제 Q\mathsf{Q}에 무작위 Gate를 먼저 적용하고, 순간이동 Circuit을 실행한 뒤, Qubit B\mathsf{B}에 무작위 Gate의 역연산을 적용하고 측정하는 새로운 테스트 Circuit을 만들겠습니다. 결과는 확실히 00이어야 합니다.

# Create a new circuit including the same bits and qubits used in the
# teleportation protocol.

test = QuantumCircuit(qubit, ebit0, ebit1, a, b)

# Start with the randomly selected gate on Q

test.append(random_gate, qubit)
test.barrier()

# Append the entire teleportation protocol from above.

test = test.compose(protocol)
test.barrier()

# Finally, apply the inverse of the random unitary to B and measure.

test.append(random_gate.inverse(), ebit1)
result = ClassicalRegister(1, "Result")
test.add_register(result)
test.measure(ebit1, result)

display(test.draw(output="mpl"))

이전 코드 셀의 출력

마지막으로, 이 Circuit에 Aer 시뮬레이터를 실행하고 출력 히스토그램을 그려 보겠습니다. 세 개의 고전 비트 모두에 대한 통계를 확인할 수 있습니다. 하단/가장 왼쪽 비트는 항상 00이어야 하며, 이는 Qubit Q\mathsf{Q}B\mathsf{B}로 성공적으로 순간이동되었음을 나타냅니다. 나머지 두 비트는 대략 균등하게 분포해야 합니다.

result = AerSimulator().run(test).result()
statistics = result.get_counts()
display(plot_histogram(statistics))

이전 코드 셀의 출력

원한다면 다음과 같이 테스트 결과 Qubit에 대해서만 통계를 필터링할 수도 있습니다.

filtered_statistics = marginal_distribution(statistics, [2])
display(plot_histogram(filtered_statistics))

이전 코드 셀의 출력

초밀집 부호화

초밀집 부호화는 어떤 의미에서 순간이동과 상보적인 목표를 달성하는 프로토콜입니다. 순간이동이 두 비트의 고전 통신을 사용하여 하나의 Qubit을 전송(e-bit 얽힘 1개 소모)하는 것처럼, 초밀집 부호화는 하나의 양자 통신 Qubit을 사용하여 두 개의 고전 비트를 전송합니다(마찬가지로 e-bit 얽힘 1개 소모).

더 구체적으로 설명하면, 송신자 Alice와 수신자 Bob이 e-bit 얽힘을 하나 공유합니다. 레슨의 표기 관례에 따라, Alice는 Qubit A\mathsf{A}를 갖고 Bob은 Qubit B\mathsf{B}를 가지며, 쌍 (A,B)(\mathsf{A},\mathsf{B})는 함께 ϕ+\vert\phi^+\rangle 상태에 있습니다. Alice는 Bob에게 두 개의 고전 비트 ccdd를 전달하려 하며, 이를 위해 Qubit 하나를 전송합니다.

이 성과는 순간이동이 달성하는 것보다 덜 흥미롭다고 볼 수도 있습니다. 당분간은 Qubit을 전송하는 것이 고전 비트를 전송하는 것보다 훨씬 어려울 것이기 때문에, e-bit 비용까지 감수하면서 양자 통신 하나를 고전 비트 두 개와 교환하는 것은 그다지 가치 없어 보일 수 있습니다. 그러나 이것이 초밀집 부호화가 흥미롭지 않다는 의미는 아닙니다. 초밀집 부호화는 분명 흥미롭습니다.

레슨의 주제에 맞게, 초밀집 부호화가 흥미로운 이유 중 하나는 얽힘의 구체적이고 (정보 이론의 맥락에서) 꽤 놀라운 활용 사례를 보여 준다는 점입니다. 양자 정보 이론의 유명한 정리인 *홀레보 정리(Holevo's theorem)*에 따르면, 공유된 얽힘 상태 없이는 단일 Qubit 전송으로 1비트를 초과하는 고전 정보를 전달하는 것이 불가능합니다. (홀레보 정리는 이보다 더 일반적입니다. 정확한 진술은 기술적이고 설명이 필요하지만, 이것이 그 결론 중 하나입니다.) 따라서 초밀집 부호화를 통해, 공유된 얽힘은 Qubit 전송의 고전 정보 용량을 사실상 두 배로 늘려 줍니다.

프로토콜

다음 양자 Circuit 다이어그램은 초밀집 부호화 프로토콜을 설명합니다.

초밀집 부호화 Circuit

Alice가 수행하는 동작을 말로 설명하면 다음과 같습니다.

  1. d=1d=1이면 Alice는 자신의 Qubit A\mathsf{A}ZZ Gate를 적용합니다 (d=0d=0이면 아무것도 하지 않습니다).

  2. c=1c=1이면 Alice는 자신의 Qubit A\mathsf{A}XX Gate를 적용합니다 (c=0c=0이면 아무것도 하지 않습니다).

그런 다음 Alice는 자신의 Qubit A\mathsf{A}를 Bob에게 전송합니다.

Bob은 Qubit A\mathsf{A}를 받으면, 먼저 A\mathsf{A}를 제어 비트로 하고 B\mathsf{B}를 대상으로 하는 CNOT Gate를 수행한 뒤, A\mathsf{A}에 Hadamard Gate를 적용합니다. 그런 다음 표준 기저 측정으로 B\mathsf{B}를 측정하여 cc를 얻고, A\mathsf{A}를 측정하여 dd를 얻습니다.

분석

이 프로토콜의 기본 아이디어는 간단합니다. Alice는 Bob과 공유할 Bell 상태를 선택하고, Bob에게 자신의 Qubit을 전송하면, Bob은 Alice가 어떤 Bell 상태를 선택했는지 측정을 통해 알아냅니다.

즉, 처음에 ϕ+\vert\phi^+\rangle를 공유하고, 비트 ccdd에 따라 Alice는 자신의 Qubit A\mathsf{A}I\mathbb{I}, XX, ZZ, 또는 XZXZ를 적용하여 이 상태를 유지하거나 다른 Bell 상태 중 하나로 변환합니다.

(II)ϕ+=ϕ+(IZ)ϕ+=ϕ(IX)ϕ+=ψ+(IXZ)ϕ+=ψ\begin{aligned} (\mathbb{I} \otimes \mathbb{I}) \vert \phi^+ \rangle & = \vert \phi^+\rangle \\ (\mathbb{I} \otimes Z) \vert \phi^+ \rangle & = \vert \phi^-\rangle \\ (\mathbb{I} \otimes X) \vert \phi^+ \rangle & = \vert \psi^+\rangle \\ (\mathbb{I} \otimes XZ) \vert \phi^+ \rangle & = \vert \psi^-\rangle \end{aligned}

Bob의 동작이 네 개의 Bell 상태에 미치는 효과는 다음과 같습니다.

ϕ+00ϕ01ψ+10ψ11\begin{aligned} \vert \phi^+\rangle & \mapsto \vert 00\rangle\\ \vert \phi^-\rangle & \mapsto \vert 01\rangle\\ \vert \psi^+\rangle & \mapsto \vert 10\rangle\\ \vert \psi^-\rangle & \mapsto -\vert 11\rangle\\ \end{aligned}

이는 Bob의 연산 결과를 각 상태별로 직접 계산하여 확인할 수 있습니다.

따라서 Bob이 측정을 수행하면 Alice가 선택한 Bell 상태를 파악할 수 있습니다. 프로토콜이 올바르게 동작하는지 검증하려면 각 경우를 확인하면 됩니다.

  • cd=00cd = 00이면, Bob이 A\mathsf{A}를 받았을 때 (B,A)(\mathsf{B},\mathsf{A})의 상태는 ϕ+\vert \phi^+\rangle입니다. Bob은 이 상태를 00\vert 00\rangle으로 변환하고 cd=00cd = 00을 얻습니다.

  • cd=01cd = 01이면, Bob이 A\mathsf{A}를 받았을 때 (B,A)(\mathsf{B},\mathsf{A})의 상태는 ϕ\vert \phi^-\rangle입니다. Bob은 이 상태를 01\vert 01\rangle으로 변환하고 cd=01cd = 01을 얻습니다.

  • cd=10cd = 10이면, Bob이 A\mathsf{A}를 받았을 때 (B,A)(\mathsf{B},\mathsf{A})의 상태는 ψ+\vert \psi^+\rangle입니다. Bob은 이 상태를 10\vert 10\rangle으로 변환하고 cd=10cd = 10을 얻습니다.

  • cd=11cd = 11이면, Bob이 A\mathsf{A}를 받았을 때 (B,A)(\mathsf{B},\mathsf{A})의 상태는 ψ\vert \psi^-\rangle입니다. Bob은 이 상태를 11-\vert 11\rangle으로 변환하고 cd=11cd = 11을 얻습니다. (마이너스 1 위상 인수는 여기서 아무런 영향을 미치지 않습니다.)

초밀집 부호화 구현

다음은 전송할 비트에 따라 Circuit을 직접 지정하는 초밀집 부호화의 간단한 구현입니다. 먼저 전송할 두 비트를 선택합니다. (나중에 무작위로 선택하겠지만, 지금은 임의의 값을 사용합니다.)

c = "1"
d = "0"

이제 이에 따라 Circuit을 구성합니다. 여기서는 Qiskit이 Qubit의 기본 이름을 사용하도록 합니다. 상단 Qubit은 q0\mathsf{q}_0, 하단 Qubit은 q1\mathsf{q}_1입니다.

protocol = QuantumCircuit(2)

# Prepare ebit used for superdense coding
protocol.h(0)
protocol.cx(0, 1)
protocol.barrier()

# Alice's operations
if d == "1":
protocol.z(0)
if c == "1":
protocol.x(0)
protocol.barrier()

# Bob's actions
protocol.cx(0, 1)
protocol.h(0)
protocol.measure_all()

display(protocol.draw(output="mpl"))

이전 코드 셀의 출력

새로 등장한 기능은 measure_all 함수로, 모든 Qubit을 측정하여 결과를 단일 고전 레지스터에 저장합니다(이 경우 두 비트가 됩니다).

Aer 시뮬레이터를 실행하면 예상된 출력이 나옵니다.

result = AerSimulator().run(protocol).result()
statistics = result.get_counts()

for outcome, frequency in statistics.items():
print(f"Measured {outcome} with frequency {frequency}")

display(plot_histogram(statistics))
Measured 10 with frequency 1024

이전 코드 셀의 출력

이번에는 추가 Qubit을 무작위 비트 생성기로 사용하여, 공평한 동전을 던기는 것처럼 ccdd를 무작위로 선택한 뒤 초밀집 부호화 프로토콜을 실행해 보겠습니다.

rbg = QuantumRegister(1, "coin")
ebit0 = QuantumRegister(1, "A")
ebit1 = QuantumRegister(1, "B")

Alice_c = ClassicalRegister(1, "Alice c")
Alice_d = ClassicalRegister(1, "Alice d")

test = QuantumCircuit(rbg, ebit0, ebit1, Alice_d, Alice_c)

# Initialize the ebit
test.h(ebit0)
test.cx(ebit0, ebit1)
test.barrier()

# Use the 'coin' qubit twice to generate Alice's bits c and d.
test.h(rbg)
test.measure(rbg, Alice_c)
test.h(rbg)
test.measure(rbg, Alice_d)
test.barrier()

# Now the protocol runs, starting with Alice's actions, which depend
# on her bits.
with test.if_test((Alice_d, 1), label="Z"):
test.z(ebit0)
with test.if_test((Alice_c, 1), label="X"):
test.x(ebit0)
test.barrier()

# Bob's actions
test.cx(ebit0, ebit1)
test.h(ebit0)
test.barrier()

Bob_c = ClassicalRegister(1, "Bob c")
Bob_d = ClassicalRegister(1, "Bob d")
test.add_register(Bob_d)
test.add_register(Bob_c)
test.measure(ebit0, Bob_d)
test.measure(ebit1, Bob_c)

display(test.draw(output="mpl"))

이전 코드 셀의 출력

Aer 시뮬레이터를 실행하면 결과가 나타납니다. Alice와 Bob의 고전 비트는 항상 일치합니다.

result = AerSimulator().run(test).result()
statistics = result.get_counts()
display(plot_histogram(statistics))

이전 코드 셀의 출력

CHSH 게임

이 강의에서 마지막으로 다룰 예시는 프로토콜이 아니라 CHSH 게임이라고 알려진 게임입니다.

여기서 게임이라고 할 때는 재미나 스포츠를 위해 즐기는 것을 말하는 게 아니라, 게임 이론의 관점에서 수학적 추상화를 의미합니다. 게임의 수학적 추상화는 예를 들어 경제학과 컴퓨터 과학에서 연구되며, 매우 흥미롭고 유용합니다.

CHSH라는 글자는 이 예시를 처음 기술한 1969년 논문의 저자들인 John Clauser, Michael Horne, Abner Shimony, Richard Holt의 이름 앞 글자를 딴 것입니다. 그들은 이 예시를 게임이 아닌 실험으로 기술했지만, 게임으로 설명하는 것이 더 자연스럽고 직관적입니다.

CHSH 게임은 *비국소 게임(nonlocal games)*이라고 알려진 게임 종류에 속합니다. 비국소 게임은 매우 흥미로우며 물리학, 컴퓨터 과학, 수학과 깊은 연관성을 가지고 있으며, 아직 풀리지 않은 수수께끼를 품고 있습니다. 이 절에서는 먼저 비국소 게임이 무엇인지 설명한 후, CHSH 게임과 그것이 왜 흥미로운지에 대해 집중적으로 살펴보겠습니다.

비국소 게임

비국소 게임은 두 플레이어인 Alice와 Bob이 특정 결과를 달성하기 위해 협력하는 협력 게임입니다. 게임은 *심판(referee)*이 진행하며, 심판은 Alice와 Bob이 알고 있는 엄격한 규칙에 따라 행동합니다.

Alice와 Bob은 원하는 방식으로 게임을 준비할 수 있지만, 게임이 시작되면 서로 소통하는 것이 금지됩니다. 마치 심판이 형사 역할을 하고 Alice와 Bob이 각각 다른 방에서 심문받는 용의자처럼 어떤 보안 시설에서 게임이 진행되는 것을 상상할 수 있습니다. 또 다른 관점으로는, Alice와 Bob이 광대한 거리로 떨어져 있고, 빛의 속도로는 게임 진행 시간 내에 통신이 불가능하기 때문에 소통이 금지된 것으로 생각할 수도 있습니다. 즉, Alice가 Bob에게 메시지를 보내려 해도 그가 받을 때쯤이면 이미 게임이 끝나 있고, 그 반대도 마찬가지입니다.

비국소 게임은 다음과 같이 진행됩니다. 먼저 심판이 Alice와 Bob에게 각각 하나씩 질문을 합니다. Alice의 질문은 xx, Bob의 질문은 yy로 표기하겠습니다. 여기서 xxyy는 고전적인 상태로 생각하며, CHSH 게임에서는 xxyy 모두 비트입니다.

심판은 무작위성을 이용하여 이 질문들을 선택합니다. 정확히 말하면, 각 질문 쌍 (x,y)(x,y)에 대해 확률 p(x,y)p(x,y)가 정해져 있으며, 심판은 게임 시작 시에 이 방식으로 무작위로 질문을 선택하겠다고 약속한 것입니다. Alice와 Bob을 포함한 모든 사람이 이 확률들을 알고 있지만, 게임이 시작되기 전까지는 구체적으로 어떤 쌍 (x,y)(x,y)가 선택될지 아무도 모릅니다.

Alice와 Bob이 질문을 받은 후에는 답을 제공해야 합니다. Alice의 답은 aa이고 Bob의 답은 bb입니다. 마찬가지로, 이들은 일반적으로 고전적인 상태이며 CHSH 게임에서는 비트입니다.

이 시점에서 심판이 판정을 내립니다. 답의 쌍 (a,b)(a,b)가 어떤 고정된 규칙에 따라 질문 쌍 (x,y)(x,y)에 대해 정답으로 인정되면 Alice와 Bob이 이기고, 그렇지 않으면 집니다. 규칙이 다르면 게임이 달라지며, CHSH 게임의 구체적인 규칙은 다음 절에서 설명합니다. 이미 언급했듯이, 규칙은 모두에게 알려져 있습니다.

다음 다이어그램은 이 상호작용을 그래픽으로 나타낸 것입니다.

Nonlocal game

어떤 질문이 제시될지에 대한 불확실성, 특히 각 플레이어가 상대방의 질문을 모른다는 사실이 비국소 게임을 Alice와 Bob에게 어렵게 만드는 요인입니다 — 마치 각기 다른 방에서 심문받는 공모 용의자들이 진술을 맞추려는 것처럼요.

심판에 대한 정확한 기술이 비국소 게임의 한 인스턴스를 정의합니다. 여기에는 각 질문 쌍에 대한 확률 p(x,y)p(x,y)의 명세와 각 가능한 질문 쌍 (x,y)(x,y)에 대해 각 답의 쌍 (a,b)(a,b)가 이기는지 지는지를 결정하는 규칙이 포함됩니다.

CHSH 게임은 잠시 후에 살펴보겠지만, 그전에 다른 비국소 게임을 고려하는 것도 흥미롭다는 점을 잠시 짚고 넘어가겠습니다. 사실 매우 흥미롭습니다. Alice와 Bob이 얽힘을 사용하여 얼마나 잘 플레이할 수 있는지 현재까지 알려져 있지 않은 꽤 단순한 비국소 게임들이 존재합니다. 설정은 단순하지만 복잡성이 숨어 있으며, 일부 게임에서는 Alice와 Bob을 위한 최적 또는 최적에 가까운 전략을 계산하는 것이 불가능할 만큼 어려울 수 있습니다. 이것이 비국소 게임 모델의 놀랍도록 직관에 반하는 특성입니다.

CHSH 게임 설명

다음은 CHSH 게임의 정확한 설명입니다. (위와 같이) xx는 Alice의 질문, yy는 Bob의 질문, aa는 Alice의 답, bb는 Bob의 답입니다.

  • 질문과 답은 모두 비트입니다: x,y,a,b{0,1}.x,y,a,b\in\{0,1\}.

  • 심판은 질문 (x,y)(x,y)균등하게 무작위로 선택합니다. 즉, 네 가지 가능성인 (0,0),(0,0), (0,1),(0,1), (1,0),(1,0), (1,1)(1,1) 각각이 1/41/4의 확률로 선택됩니다.

  • 답의 쌍 (a,b)(a,b)는 질문 (x,y)(x,y)에 대해 ab=xya\oplus b = x\wedge y이면 이기고, 그렇지 않으면 집니다. 다음 표는 각 질문 쌍 (x,y)(x,y)에 대해 답의 쌍 (a,b)(a,b)의 이기는 조건과 지는 조건을 나열하여 이 규칙을 표현합니다.

(x,y)winlose(0,0)a=bab(0,1)a=bab(1,0)a=bab(1,1)aba=b\begin{array}{ccc} (x,y) & \text{win} & \text{lose} \\[1mm]\hline \rule{0mm}{4mm}(0,0) & a = b & a \neq b \\[1mm] (0,1) & a = b & a \neq b \\[1mm] (1,0) & a = b & a \neq b \\[1mm] (1,1) & a \neq b & a = b \end{array}

고전적 전략의 한계

이제 CHSH 게임에서 Alice와 Bob의 전략을 고전적 전략부터 시작하여 살펴보겠습니다.

결정론적 전략

먼저 결정론적 전략을 살펴보겠습니다. 여기서 Alice의 답 aa는 그녀가 받는 질문 xx의 함수이고, 마찬가지로 Bob의 답 bb는 그가 받는 질문 yy의 함수입니다. 예를 들어, Alice의 질문이 00일 때의 답을 a(0)a(0), 질문이 11일 때의 답을 a(1)a(1)로 표기할 수 있습니다.

어떤 결정론적 전략도 CHSH 게임에서 항상 이길 수는 없습니다. 이를 이해하는 한 가지 방법은 모든 가능한 결정론적 전략을 하나씩 살펴보고, 그 모든 전략이 네 가지 가능한 질문 쌍 중 적어도 하나에서 진다는 것을 확인하는 것입니다. Alice와 Bob은 각각 단일 시스템 강의에서 접했던 1비트에서 1비트로의 네 가지 가능한 함수 중에서 선택할 수 있으므로, 총 1616가지의 다른 결정론적 전략을 확인해야 합니다.

또한 분석적으로도 추론할 수 있습니다. Alice와 Bob의 전략이 (x,y)=(0,0)(x,y) = (0,0)일 때 이기면 a(0)=b(0)a(0) = b(0)이어야 하고, (x,y)=(0,1)(x,y) = (0,1)일 때 이기면 a(0)=b(1)a(0) = b(1)이어야 합니다. 마찬가지로 (x,y)=(1,0)(x,y)=(1,0)일 때 이기면 a(1)=b(0)a(1) = b(0)이어야 합니다. 따라서 세 가지 경우 모두에서 전략이 이기면,

b(1)=a(0)=b(0)=a(1).b(1) = a(0) = b(0) = a(1).

이는 마지막 경우 (x,y)=(1,1)(x,y) = (1,1)에서 전략이 진다는 것을 의미하는데, 이 경우에 이기려면 a(1)b(1)a(1) \neq b(1)이어야 하기 때문입니다. 따라서 항상 이기는 결정론적 전략은 존재할 수 없습니다.

반면, a(0)=a(1)=b(0)=b(1)=0a(0)=a(1)=b(0)=b(1)=0과 같이 네 가지 경우 중 세 가지에서 이기는 결정론적 전략은 쉽게 찾을 수 있습니다. 이로부터 결정론적 전략을 사용하여 Alice와 Bob이 이길 수 있는 최대 확률은 3/43/4라고 결론 내릴 수 있습니다.

확률론적 전략

방금 결론 내렸듯이, Alice와 Bob은 결정론적 전략을 사용하면 CHSH 게임에서 75% 이상 이길 수 없습니다. 그렇다면 확률론적 전략은 어떨까요? 무작위성을 사용하면 — 무작위 선택이 상관되어 있는 공유 무작위성의 가능성을 포함하여 — Alice와 Bob에게 도움이 될까요?

결론적으로 확률론적 전략은 Alice와 Bob이 이길 확률을 높이는 데 전혀 도움이 되지 않습니다. 이는 모든 확률론적 전략이 결정론적 전략의 무작위 선택으로 볼 수 있기 때문입니다. 마치 (단일 시스템 강의에서 언급되었듯이) 확률론적 연산이 결정론적 연산의 무작위 선택으로 볼 수 있는 것과 같습니다. 평균은 최대값을 초과할 수 없으므로, 확률론적 전략은 전체 승률 측면에서 어떠한 이점도 제공하지 않습니다.

따라서, 결정론적이든 확률론적이든 어떠한 고전적 전략을 사용해도 Alice와 Bob이 달성할 수 있는 최선은 3/43/4의 확률로 이기는 것입니다.

CHSH 게임 전략

이 시점에서 자연스럽게 떠오르는 질문은, Alice와 Bob이 양자 전략을 사용하면 더 잘 할 수 있는지입니다. 특히, 다음 그림과 같이 게임 이전에 미리 준비해 둔 얽힌 양자 상태를 공유하고 있다면, 승리 확률을 높일 수 있을까요?

Nonlocal game with entanglement

대답은 '그렇다'입니다. 이것이 바로 이 예제의 핵심이자 흥미로운 이유입니다. 그러면 Alice와 Bob이 얽힘을 이용하여 이 게임에서 어떻게 더 잘 할 수 있는지 정확하게 살펴봅시다.

필요한 벡터와 행렬

먼저, 각 실수 θ\theta (라디안 단위의 각도로 생각합니다)에 대해 Qubit 상태 벡터 ψθ\vert \psi_{\theta}\rangle를 다음과 같이 정의해야 합니다.

ψθ=cos(θ)0+sin(θ)1\vert\psi_{\theta}\rangle = \cos(\theta)\vert 0\rangle + \sin(\theta) \vert 1\rangle

몇 가지 간단한 예시는 다음과 같습니다:

ψ0=0ψπ/2=1ψπ/4=+ψπ/4=\begin{aligned} \vert\psi_{0}\rangle & = \vert 0\rangle \\ \vert\psi_{\pi/2}\rangle & = \vert 1\rangle \\ \vert\psi_{\pi/4}\rangle & = \vert + \rangle \\ \vert\psi_{-\pi/4}\rangle & = \vert - \rangle \end{aligned}

아래의 분석에서 등장하는 예시들도 있습니다:

ψπ/8=2+2202221ψπ/8=2+220+2221ψ3π/8=2220+2+221ψ5π/8=2220+2+221\begin{aligned} \vert\psi_{-\pi/8}\rangle & = \frac{\sqrt{2 + \sqrt{2}}}{2}\vert 0\rangle -\frac{\sqrt{2 - \sqrt{2}}}{2}\vert 1\rangle \\[1mm] \vert\psi_{\pi/8}\rangle & = \frac{\sqrt{2 + \sqrt{2}}}{2}\vert 0\rangle + \frac{\sqrt{2 - \sqrt{2}}}{2}\vert 1\rangle \\[1mm] \vert\psi_{3\pi/8}\rangle & = \frac{\sqrt{2 - \sqrt{2}}}{2}\vert 0\rangle + \frac{\sqrt{2 + \sqrt{2}}}{2}\vert 1\rangle \\[1mm] \vert\psi_{5\pi/8}\rangle & = -\frac{\sqrt{2 - \sqrt{2}}}{2}\vert 0\rangle + \frac{\sqrt{2 + \sqrt{2}}}{2}\vert 1\rangle \end{aligned}

일반적인 형태를 살펴보면, 이 벡터들 중 임의의 두 벡터 사이의 내적은 다음 공식을 따릅니다:

ψαψβ=cos(α)cos(β)+sin(α)sin(β)=cos(αβ).(3)\langle \psi_{\alpha} \vert \psi_{\beta} \rangle = \cos(\alpha)\cos(\beta) + \sin(\alpha)\sin(\beta) = \cos(\alpha-\beta). \tag{3}

자세히 보면, 이 벡터들의 성분은 모두 실수이므로 복소켤레를 신경 쓸 필요가 없습니다: 내적은 코사인끼리의 곱과 사인끼리의 곱의 합입니다. 삼각법의 각도 덧셈 공식 중 하나를 이용하면 위와 같이 단순화할 수 있습니다. 이 공식은 실수 단위 벡터 사이의 내적이 두 벡터 사이의 각도의 코사인과 같다는 기하학적 의미를 드러냅니다.

이 벡터들 중 임의의 두 벡터의 텐서곱ϕ+\vert \phi^+\rangle 상태의 내적을 계산하면, 분모에 2\sqrt{2}가 있다는 점만 제외하고 유사한 식을 얻습니다:

ψαψβϕ+=cos(α)cos(β)+sin(α)sin(β)2=cos(αβ)2.(4)\langle \psi_{\alpha} \otimes \psi_{\beta} \vert \phi^+ \rangle = \frac{\cos(\alpha)\cos(\beta) + \sin(\alpha)\sin(\beta)}{\sqrt{2}} = \frac{\cos(\alpha-\beta)}{\sqrt{2}}. \tag{4}

이 특정 내적에 관심을 갖는 이유는 곧 명확해지겠지만, 지금은 단순히 이를 하나의 공식으로 관찰하는 것으로 충분합니다.

다음으로, 각 각도 θ\theta에 대해 유니터리 행렬 UθU_{\theta}를 다음과 같이 정의합니다.

Uθ=0ψθ+1ψθ+π/2U_{\theta} = \vert 0 \rangle \langle \psi_{\theta} \vert + \vert 1\rangle\langle \psi_{\theta+\pi/2} \vert

직관적으로, 이 행렬은 ψθ\vert\psi_{\theta}\rangle0\vert 0\rangle으로, ψθ+π/2\vert \psi_{\theta + \pi/2}\rangle1\vert 1\rangle로 변환합니다. 이것이 유니터리 행렬임을 확인하기 위한 핵심 관찰은, 벡터 ψθ\vert\psi_{\theta}\rangleψθ+π/2\vert\psi_{\theta + \pi/2}\rangle이 모든 각도 θ\theta에 대해 직교한다는 점입니다:

ψθψθ+π/2=cos(π/2)=0.\langle \psi_{\theta} \vert \psi_{\theta + \pi/2} \rangle = \cos(\pi/2) = 0.

따라서 다음이 성립합니다:

UθUθ=(0ψθ+1ψθ+π/2)(ψθ0+ψθ+π/21)=0ψθψθ0+0ψθψθ+π/21+1ψθ+π/2ψθ0+1ψθ+π/2ψθ+π/21=00+11=I.\begin{aligned} U_{\theta} U_{\theta}^{\dagger} & = \bigl(\vert 0 \rangle \langle \psi_{\theta} \vert + \vert 1\rangle\langle \psi_{\theta+\pi/2} \vert\bigr) \bigl(\vert \psi_{\theta} \rangle \langle 0 \vert + \vert \psi_{\theta+\pi/2}\rangle\langle 1 \vert\bigr) \\[1mm] & = \vert 0 \rangle \langle \psi_{\theta} \vert \psi_{\theta} \rangle \langle 0 \vert + \vert 0 \rangle \langle \psi_{\theta} \vert \psi_{\theta+\pi/2} \rangle \langle 1 \vert + \vert 1 \rangle \langle \psi_{\theta+\pi/2} \vert \psi_{\theta} \rangle \langle 0 \vert + \vert 1 \rangle \langle \psi_{\theta+\pi/2} \vert \psi_{\theta+\pi/2} \rangle \langle 1 \vert \\[1mm] & = \vert 0 \rangle \langle 0 \vert + \vert 1 \rangle \langle 1 \vert\\[1mm] & = \mathbb{I}. \end{aligned}

이 행렬을 명시적으로 쓰면 다음과 같습니다:

Uθ=(cos(θ)sin(θ)cos(θ+π/2)sin(θ+π/2))=(cos(θ)sin(θ)sin(θ)cos(θ)).U_{\theta} = \begin{pmatrix} \cos(\theta) & \sin(\theta)\\[1mm] \cos(\theta+ \pi/2) & \sin(\theta + \pi/2) \end{pmatrix} = \begin{pmatrix} \cos(\theta) & \sin(\theta)\\[1mm] -\sin(\theta) & \cos(\theta) \end{pmatrix}.

이것은 회전 행렬의 한 예시로, 구체적으로는 실수 성분을 가진 2차원 벡터를 원점 기준으로 θ-\theta만큼 회전시킵니다. 다양한 형태의 회전에 대한 표준 명명 및 매개변수화 관례를 따르면, Uθ=Ry(2θ)U_{\theta} = R_y(-2\theta)이며, 여기서

Ry(θ)=(cos(θ/2)sin(θ/2)sin(θ/2)cos(θ/2)).R_y(\theta) = \begin{pmatrix} \cos(\theta/2) & -\sin(\theta/2)\\[1mm] \sin(\theta/2) & \cos(\theta/2) \end{pmatrix}.

전략 설명

이제 양자 전략을 설명할 수 있습니다.

  • 준비 단계: Alice와 Bob은 게임을 시작할 때 e-비트를 공유합니다. Alice는 Qubit A\mathsf{A}를 보유하고, Bob은 Qubit B\mathsf{B}를 보유하며, 두 Qubit (X,Y)(\mathsf{X},\mathsf{Y})는 함께 ϕ+\vert\phi^+\rangle 상태에 있습니다.

  • Alice의 행동:

    • Alice가 질문 x=0x=0을 받으면, 자신의 Qubit A\mathsf{A}U0U_{0}을 적용합니다.
    • Alice가 질문 x=1x=1을 받으면, 자신의 Qubit A\mathsf{A}Uπ/4U_{\pi/4}를 적용합니다.

    Alice가 A\mathsf{A}에 수행하는 연산은 다음과 같이 표현할 수도 있습니다:

    {U0x=0인 경우Uπ/4x=1인 경우\begin{cases} U_0 & \text{$x = 0$인 경우}\\ U_{\pi/4} & \text{$x = 1$인 경우} \end{cases}

    Alice는 이 연산을 적용한 후, A\mathsf{A}를 표준 기저 측정으로 측정하고 측정 결과를 자신의 답 aa로 설정합니다.

  • Bob의 행동:

    • Bob이 질문 y=0y=0을 받으면, 자신의 Qubit B\mathsf{B}Uπ/8U_{\pi/8}을 적용합니다.
    • Bob이 질문 y=1y=1을 받으면, 자신의 Qubit B\mathsf{B}Uπ/8U_{-\pi/8}을 적용합니다.

    Alice의 경우와 마찬가지로, Bob이 B\mathsf{B}에 수행하는 연산을 다음과 같이 나타낼 수 있습니다:

    {Uπ/8y=0인 경우Uπ/8y=1인 경우\begin{cases} U_{\pi/8} & \text{$y = 0$인 경우}\\ U_{-\pi/8} & \text{$y = 1$인 경우} \end{cases}

    Bob은 이 연산을 적용한 후, B\mathsf{B}를 표준 기저 측정으로 측정하고 측정 결과를 자신의 답 bb로 설정합니다.

이 전략을 나타내는 양자 Circuit 다이어그램은 다음과 같습니다:

CHSH game circuit

이 다이어그램에는 두 개의 일반적인 제어 Gate가 있습니다. 위쪽에 Uπ/8U_{-\pi/8}에 대한 것, 아래쪽에 Uπ/4U_{\pi/4}에 대한 것입니다. 또한 제어 Gate처럼 보이는 두 개의 Gate도 있는데, 위쪽에 Uπ/8U_{\pi/8}, 아래쪽에 U0U_{0}이며, 제어를 나타내는 원이 채워져 있지 않습니다. 이는 제어 비트가 00으로 설정될 때 Gate가 수행되는 다른 종류의 제어 Gate를 나타냅니다 (일반적인 제어 Gate처럼 11일 때가 아닙니다). 즉, 실질적으로 Bob은 y=0y=0이면 자신의 Qubit에 Uπ/8U_{\pi/8}을, y=1y=1이면 Uπ/8U_{-\pi/8}을 적용하고, Alice는 x=0x=0이면 자신의 Qubit에 U0U_0을, x=1x=1이면 Uπ/4U_{\pi/4}를 적용합니다. 이는 위에서 설명한 프로토콜과 일치합니다.

이제 Alice와 Bob의 이 전략이 얼마나 잘 작동하는지 알아봐야 합니다. 네 가지 가능한 질문 쌍을 각각 살펴보면서 이를 확인해 보겠습니다.

경우별 분석

  • 경우 1: (x,y)=(0,0).(x,y) = (0,0).

    이 경우 Alice는 자신의 Qubit에 U0U_{0}을 적용하고 Bob은 자신의 Qubit에 Uπ/8U_{\pi/8}을 적용합니다. 따라서 두 Qubit (A,B)(\mathsf{A},\mathsf{B})가 각자의 연산을 수행한 후의 상태는 다음과 같습니다.

    (U0Uπ/8)ϕ+=00ψ0ψπ/8ϕ++01ψ0ψ5π/8ϕ++10ψπ/2ψπ/8ϕ++11ψπ/2ψ5π/8ϕ+=cos(π8)00+cos(5π8)01+cos(3π8)10+cos(π8)112.\begin{aligned} \bigl(U_0 \otimes U_{\pi/8}\bigr) \vert \phi^+\rangle & = \vert 00 \rangle \langle \psi_0 \otimes \psi_{\pi/8}\vert \phi^+\rangle + \vert 01 \rangle \langle \psi_0 \otimes\psi_{5\pi/8}\vert \phi^+\rangle \\ & \qquad + \vert 10 \rangle \langle \psi_{\pi/2} \otimes \psi_{\pi/8}\vert \phi^+\rangle + \vert 11 \rangle \langle \psi_{\pi/2} \otimes \psi_{5\pi/8}\vert \phi^+\rangle\\[2mm] & = \frac{ \cos\bigl(-\frac{\pi}{8}\bigr) \vert 00\rangle + \cos\bigl(-\frac{5\pi}{8}\bigr) \vert 01\rangle + \cos\bigl(\frac{3\pi}{8}\bigr) \vert 10\rangle + \cos\bigl(-\frac{\pi}{8}\bigr) \vert 11\rangle}{\sqrt{2}}. \end{aligned}

    네 가지 가능한 답 쌍 (a,b)(a,b)에 대한 확률은 다음과 같습니다.

    Pr((a,b)=(0,0))=12cos2(π8)=2+28Pr((a,b)=(0,1))=12cos2(5π8)=228Pr((a,b)=(1,0))=12cos2(3π8)=228Pr((a,b)=(1,1))=12cos2(π8)=2+28\begin{aligned} \operatorname{Pr}\bigl((a,b)=(0,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(-\frac{\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8} \\[2mm] \operatorname{Pr}\bigl((a,b)=(0,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(-\frac{5\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{3\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(-\frac{\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8} \end{aligned}

    a=ba=baba\neq b의 확률은 합산을 통해 구할 수 있습니다.

    Pr(a=b)=2+24Pr(ab)=224\begin{aligned} \operatorname{Pr}(a = b) & = \frac{2 + \sqrt{2}}{4}\\[2mm] \operatorname{Pr}(a \neq b) & = \frac{2 - \sqrt{2}}{4} \end{aligned}

    질문 쌍 (0,0)(0,0)에서는 a=ba=b이면 Alice와 Bob이 이기므로, 이 경우 이길 확률은

    2+24\frac{2 + \sqrt{2}}{4}

    입니다.

  • 경우 2: (x,y)=(0,1).(x,y) = (0,1).

    이 경우 Alice는 자신의 Qubit에 U0U_{0}을 적용하고 Bob은 자신의 Qubit에 Uπ/8U_{-\pi/8}을 적용합니다. 따라서 두 Qubit (A,B)(\mathsf{A},\mathsf{B})가 각자의 연산을 수행한 후의 상태는 다음과 같습니다.

    (U0Uπ/8)ϕ+=00ψ0ψπ/8ϕ++01ψ0ψ3π/8ϕ++10ψπ/2ψπ/8ϕ++11ψπ/2ψ3π/8ϕ+=cos(π8)00+cos(3π8)01+cos(5π8)10+cos(π8)112.\begin{aligned} \bigl(U_0 \otimes U_{-\pi/8}\bigr) \vert \phi^+\rangle & = \vert 00 \rangle \langle \psi_0 \otimes \psi_{-\pi/8}\vert \phi^+\rangle + \vert 01 \rangle \langle \psi_0 \otimes\psi_{3\pi/8}\vert \phi^+\rangle \\ & \qquad + \vert 10 \rangle \langle \psi_{\pi/2} \otimes \psi_{-\pi/8}\vert \phi^+\rangle + \vert 11 \rangle \langle \psi_{\pi/2} \otimes \psi_{3\pi/8}\vert \phi^+\rangle\\[2mm] & = \frac{ \cos\bigl(\frac{\pi}{8}\bigr) \vert 00\rangle + \cos\bigl(-\frac{3\pi}{8}\bigr) \vert 01\rangle + \cos\bigl(\frac{5\pi}{8}\bigr) \vert 10\rangle + \cos\bigl(\frac{\pi}{8}\bigr) \vert 11\rangle}{\sqrt{2}}. \end{aligned}

    네 가지 가능한 답 쌍 (a,b)(a,b)에 대한 확률은 다음과 같습니다.

    Pr((a,b)=(0,0))=12cos2(π8)=2+28Pr((a,b)=(0,1))=12cos2(3π8)=228Pr((a,b)=(1,0))=12cos2(5π8)=228Pr((a,b)=(1,1))=12cos2(π8)=2+28\begin{aligned} \operatorname{Pr}\bigl((a,b)=(0,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8} \\[2mm] \operatorname{Pr}\bigl((a,b)=(0,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(-\frac{3\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{5\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8} \end{aligned}

    마찬가지로, 합산을 통해 a=ba=baba\neq b의 확률을 구할 수 있습니다.

    Pr(a=b)=2+24Pr(ab)=224\begin{aligned} \operatorname{Pr}(a = b) & = \frac{2 + \sqrt{2}}{4}\\[2mm] \operatorname{Pr}(a \neq b) & = \frac{2 - \sqrt{2}}{4} \end{aligned}

    질문 쌍 (0,1)(0,1)에서는 a=ba=b이면 Alice와 Bob이 이기므로, 이 경우 이길 확률은

    2+24\frac{2 + \sqrt{2}}{4}

    입니다.

  • 경우 3: (x,y)=(1,0).(x,y) = (1,0).

    이 경우 Alice는 자신의 Qubit에 Uπ/4U_{\pi/4}를 적용하고 Bob은 자신의 Qubit에 Uπ/8U_{\pi/8}을 적용합니다. 따라서 두 Qubit (A,B)(\mathsf{A},\mathsf{B})가 각자의 연산을 수행한 후의 상태는 다음과 같습니다.

    (Uπ/4Uπ/8)ϕ+=00ψπ/4ψπ/8ϕ++01ψπ/4ψ5π/8ϕ++10ψ3π/4ψπ/8ϕ++11ψ3π/4ψ5π/8ϕ+=cos(π8)00+cos(3π8)01+cos(5π8)10+cos(π8)112.\begin{aligned} \bigl(U_{\pi/4} \otimes U_{\pi/8}\bigr) \vert \phi^+\rangle & = \vert 00 \rangle \langle \psi_{\pi/4} \otimes \psi_{\pi/8}\vert \phi^+\rangle + \vert 01 \rangle \langle \psi_{\pi/4} \otimes\psi_{5\pi/8}\vert \phi^+\rangle \\ & \qquad + \vert 10 \rangle \langle \psi_{3\pi/4} \otimes \psi_{\pi/8}\vert \phi^+\rangle + \vert 11 \rangle \langle \psi_{3\pi/4} \otimes \psi_{5\pi/8}\vert \phi^+\rangle\\[2mm] & = \frac{ \cos\bigl(\frac{\pi}{8}\bigr) \vert 00\rangle + \cos\bigl(-\frac{3\pi}{8}\bigr) \vert 01\rangle + \cos\bigl(\frac{5\pi}{8}\bigr) \vert 10\rangle + \cos\bigl(\frac{\pi}{8}\bigr) \vert 11\rangle}{\sqrt{2}}. \end{aligned}

    네 가지 가능한 답 쌍 (a,b)(a,b)에 대한 확률은 다음과 같습니다.

    Pr((a,b)=(0,0))=12cos2(π8)=2+28Pr((a,b)=(0,1))=12cos2(3π8)=228Pr((a,b)=(1,0))=12cos2(5π8)=228Pr((a,b)=(1,1))=12cos2(π8)=2+28\begin{aligned} \operatorname{Pr}\bigl((a,b)=(0,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8} \\[2mm] \operatorname{Pr}\bigl((a,b)=(0,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(-\frac{3\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{5\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8} \end{aligned}

    다시 한번, a=ba=baba\neq b의 확률은 다음과 같습니다.

    Pr(a=b)=2+24Pr(ab)=224\begin{aligned} \operatorname{Pr}(a = b) & = \frac{2 + \sqrt{2}}{4}\\[2mm] \operatorname{Pr}(a \neq b) & = \frac{2 - \sqrt{2}}{4} \end{aligned}

    질문 쌍 (1,0)(1,0)에서는 a=ba=b이면 Alice와 Bob이 이기므로, 이 경우 이길 확률은

    2+24\frac{2 + \sqrt{2}}{4}

    입니다.

  • 경우 4: (x,y)=(1,1).(x,y) = (1,1).

    마지막 경우는 승리 조건이 다르기 때문에 다소 다릅니다. xxyy가 모두 11일 때, Alice와 Bob은 aabb서로 다를 때 이깁니다. 이 경우 Alice는 자신의 Qubit에 Uπ/4U_{\pi/4}를 적용하고 Bob은 자신의 Qubit에 Uπ/8U_{-\pi/8}을 적용합니다. 따라서 두 Qubit (A,B)(\mathsf{A},\mathsf{B})가 각자의 연산을 수행한 후의 상태는 다음과 같습니다.

    (Uπ/4Uπ/8)ϕ+=00ψπ/4ψπ/8ϕ++01ψπ/4ψ3π/8ϕ++10ψ3π/4ψπ/8ϕ++11ψ3π/4ψ3π/8ϕ+=cos(3π8)00+cos(π8)01+cos(7π8)10+cos(3π8)112.\begin{aligned} \bigl(U_{\pi/4} \otimes U_{-\pi/8}\bigr) \vert \phi^+\rangle & = \vert 00 \rangle \langle \psi_{\pi/4} \otimes \psi_{-\pi/8}\vert \phi^+\rangle + \vert 01 \rangle \langle \psi_{\pi/4} \otimes\psi_{3\pi/8}\vert \phi^+\rangle \\ & \qquad + \vert 10 \rangle \langle \psi_{3\pi/4} \otimes \psi_{-\pi/8}\vert \phi^+\rangle + \vert 11 \rangle \langle \psi_{3\pi/4} \otimes \psi_{3\pi/8}\vert \phi^+\rangle\\[2mm] & = \frac{ \cos\bigl(\frac{3\pi}{8}\bigr) \vert 00\rangle + \cos\bigl(-\frac{\pi}{8}\bigr) \vert 01\rangle + \cos\bigl(\frac{7\pi}{8}\bigr) \vert 10\rangle + \cos\bigl(\frac{3\pi}{8}\bigr) \vert 11\rangle}{\sqrt{2}}. \end{aligned}

    네 가지 가능한 답 쌍 (a,b)(a,b)에 대한 확률은 다음과 같습니다.

    Pr((a,b)=(0,0))=12cos2(3π8)=228Pr((a,b)=(0,1))=12cos2(π8)=2+28Pr((a,b)=(1,0))=12cos2(7π8)=2+28Pr((a,b)=(1,1))=12cos2(3π8)=228\begin{aligned} \operatorname{Pr}\bigl((a,b)=(0,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{3\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8} \\[2mm] \operatorname{Pr}\bigl((a,b)=(0,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(-\frac{\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{7\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{3\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8} \end{aligned}

    확률이 나머지 세 경우와 사실상 자리를 바꿨습니다. 합산을 통해 a=ba=baba\neq b의 확률을 구합니다.

    Pr(a=b)=224Pr(ab)=2+24\begin{aligned} \operatorname{Pr}(a = b) & = \frac{2 - \sqrt{2}}{4}\\[2mm] \operatorname{Pr}(a \neq b) & = \frac{2 + \sqrt{2}}{4} \end{aligned}

    질문 쌍 (1,1)(1,1)에서는 aba\neq b이면 Alice와 Bob이 이기므로, 이 경우 이길 확률은

    2+24\frac{2 + \sqrt{2}}{4}

    입니다.

모든 경우에서 이길 확률은 동일합니다.

2+240.85. \frac{2 + \sqrt{2}}{4} \approx 0.85.

따라서 이것이 전체적인 승리 확률입니다. 이는 어떤 고전적 전략보다도 훨씬 높은 결과입니다. 고전적 전략의 승리 확률은 3/43/4로 제한됩니다. 그래서 이 예시는 매우 흥미로운 사례가 됩니다.

이 값은 양자 전략의 최적 승리 확률이기도 합니다. 어떤 얽힘 상태나 측정 방법을 선택하더라도 이보다 더 나은 결과를 낼 수는 없습니다. 이 사실은 Tsirelson 부등식으로 알려져 있으며, 이를 처음 증명한 Boris Tsirelson의 이름을 따서 명명되었습니다. 그는 또한 CHSH 실험을 게임으로 처음 기술한 인물이기도 합니다.

기하학적 그림

위에서 설명한 전략을 기하학적으로 생각하면, Alice와 Bob이 선택한 다양한 각도 사이의 관계를 이해하는 데 도움이 될 수 있습니다.

Alice가 실질적으로 하는 일은 질문 xx에 따라 각도 α\alpha를 선택한 뒤 UαU_{\alpha}를 자신의 Qubit에 적용하고 측정하는 것입니다. 마찬가지로 Bob은 yy에 따라 각도 β\beta를 선택한 뒤 UβU_{\beta}를 자신의 Qubit에 적용하고 측정합니다. α\alphaβ\beta는 다음과 같이 선택합니다.

α={0x=0π/4x=1β={π/8y=0π/8y=1\begin{aligned} \alpha & = \begin{cases} 0 & x=0\\ \pi/4 & x=1 \end{cases}\\[4mm] \beta & = \begin{cases} \pi/8 & y = 0\\ -\pi/8 & y = 1 \end{cases} \end{aligned}

우선은 α\alphaβ\beta를 임의의 값으로 두겠습니다. α\alpha를 선택함으로써 Alice는 다음과 같이 생긴 정규 직교 기저 벡터들을 효과적으로 정의합니다:

Alice의 기저

Bob도 마찬가지이며, 그의 각도는 β\beta입니다:

Bob의 기저

벡터의 색상은 Alice와 Bob의 답변에 대응합니다: 파란색은 00, 빨간색은 11을 나타냅니다.

이제 (33)과 (44)를 결합하면 다음 공식을 얻습니다.

ψαψβϕ+=12ψαψβ;\langle \psi_{\alpha} \otimes\psi_{\beta} \vert \phi^+ \rangle = \frac{1}{\sqrt{2}} \langle \psi_{\alpha} \vert \psi_{\beta} \rangle;

이것은 모든 실수 α\alphaβ\beta에 대해 성립합니다.

위에서 진행한 분석과 같은 방식으로, α\alphaβ\beta를 변수로 두고 계산하면 다음을 얻습니다:

(UαUβ)ϕ+=00ψαψβϕ++01ψαψβ+π/2ϕ++10ψα+π/2ψβϕ++11ψα+π/2ψβ+π/2ϕ+=ψαψβ00+ψαψβ+π/201+ψα+π/2ψβ10+ψα+π/2ψβ+π/2112. \begin{aligned} & \bigl(U_{\alpha} \otimes U_{\beta}\bigr) \vert \phi^+\rangle\\[1mm] & \qquad = \vert 00 \rangle \langle \psi_{\alpha} \otimes \psi_{\beta}\vert \phi^+\rangle + \vert 01 \rangle \langle \psi_{\alpha} \otimes\psi_{\beta + \pi/2}\vert \phi^+\rangle \\ & \qquad \qquad + \vert 10 \rangle \langle \psi_{\alpha+\pi/2} \otimes \psi_{\beta}\vert \phi^+\rangle + \vert 11 \rangle \langle \psi_{\alpha+\pi/2} \otimes \psi_{\beta+\pi/2}\vert \phi^+\rangle\\[2mm] & \qquad = \frac{ \langle \psi_\alpha \vert \psi_\beta \rangle \vert 00\rangle + \langle \psi_\alpha \vert \psi_{\beta+\pi/2} \rangle \vert 01\rangle + \langle \psi_{\alpha+\pi/2} \vert \psi_\beta \rangle \vert 10\rangle + \langle \psi_{\alpha+\pi/2} \vert \psi_{\beta+\pi/2} \rangle \vert 11\rangle }{\sqrt{2}}. \end{aligned}

이로부터 다음 두 공식을 도출합니다:

Pr(a=b)=12ψαψβ2+12ψα+π/2ψβ+π/22=cos2(αβ)Pr(ab)=12ψαψβ+π/22+12ψα+π/2ψβ2=sin2(αβ).\begin{aligned} \operatorname{Pr}(a = b) & = \frac{1}{2} \vert \langle \psi_\alpha \vert \psi_\beta \rangle \vert^2 + \frac{1}{2} \vert \langle \psi_{\alpha+\pi/2} \vert \psi_{\beta+\pi/2} \rangle \vert^2 = \cos^2(\alpha - \beta)\\[2mm] \operatorname{Pr}(a \neq b) & = \frac{1}{2} \vert \langle \psi_\alpha \vert \psi_{\beta+\pi/2} \rangle \vert^2 + \frac{1}{2} \vert \langle \psi_{\alpha+\pi/2} \vert \psi_\beta \rangle \vert^2 = \sin^2(\alpha - \beta). \end{aligned}

이 식들은 Alice와 Bob이 선택한 기저를 겹쳐 놓은 위 그림들과 연결 지을 수 있습니다.

전략 탐색

(x,y)=(0,0)(x,y) = (0,0)일 때, Alice와 Bob은 α=0\alpha = 0, β=π/8\beta = \pi/8을 선택하며, 두 기저를 겹치면 다음 그림을 얻습니다:

Alice와 Bob의 기저 경우 1

빨간색 벡터 사이의 각도는 π/8\pi/8이며, 두 파란색 벡터 사이의 각도도 마찬가지입니다. Alice와 Bob의 결과가 일치할 확률은 이 각도의 코사인 제곱이며,

cos2(π8)=2+24,\cos^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2 + \sqrt{2}}{4},

결과가 다를 확률은 이 각도의 사인 제곱입니다.

sin2(π8)=224.\sin^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2 - \sqrt{2}}{4}.

(x,y)=(0,1)(x,y) = (0,1)일 때, Alice와 Bob은 α=0\alpha = 0, β=π/8\beta = -\pi/8을 선택하며, 두 기저를 겹치면 다음 그림을 얻습니다:

Alice와 Bob의 기저 경우 1

빨간색 벡터 사이의 각도는 다시 π/8\pi/8이며, 파란색 벡터 사이의 각도도 마찬가지입니다. Alice와 Bob의 결과가 일치할 확률은 다시 이 각도의 코사인 제곱이며,

cos2(π8)=2+24,\cos^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2 + \sqrt{2}}{4},

결과가 다를 확률은 이 각도의 사인 제곱입니다.

sin2(π8)=224.\sin^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2 - \sqrt{2}}{4}.

(x,y)=(1,0)(x,y) = (1,0)일 때, Alice와 Bob은 α=π/4\alpha = \pi/4, β=π/8\beta = \pi/8을 선택하며, 두 기저를 겹치면 다음 그림을 얻습니다:

Alice와 Bob의 기저 경우 1

기저는 바뀌었지만 각도는 그대로입니다 — 다시 한번 같은 색 벡터 사이의 각도는 π/8\pi/8입니다. Alice와 Bob의 결과가 일치할 확률은

cos2(π8)=2+24,\cos^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2 + \sqrt{2}}{4},

결과가 다를 확률은

sin2(π8)=224.\sin^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2 - \sqrt{2}}{4}.

(x,y)=(1,1)(x,y) = (1,1)일 때, Alice와 Bob은 α=π/4\alpha = \pi/4, β=π/8\beta = -\pi/8을 선택합니다. 두 기저를 겹치면 무언가 달라졌음을 알 수 있습니다:

Alice와 Bob의 기저 경우 1

각도를 선택한 방식에 의해, 이번에는 같은 색 벡터 사이의 각도가 π/8\pi/8이 아니라 3π/83\pi/8입니다. Alice와 Bob의 결과가 일치할 확률은 여전히 이 각도의 코사인 제곱이지만, 이번의 값은 다음과 같습니다:

cos2(3π8)=224.\cos^2\Bigl(\frac{3\pi}{8}\Bigr) = \frac{2 - \sqrt{2}}{4}.

결과가 다를 확률은 이 각도의 사인 제곱으로, 이 경우에는 다음과 같습니다:

sin2(3π8)=2+24.\sin^2\Bigl(\frac{3\pi}{8}\Bigr) = \frac{2 + \sqrt{2}}{4}.

비고

CHSH 게임과 같이 얽힘이 순수한 고전적 추론과 일치하지 않는 통계적 결과를 낳는 실험의 기본 개념은 Bell 상태의 이름이 붙은 John Bell에 의해 제안되었습니다. 이러한 이유로 이런 종류의 실험을 흔히 *Bell 검정(Bell tests)*이라고 부릅니다. 때로는 *Bell의 정리(Bell's theorem)*라고도 하는데, 이는 다양한 방식으로 공식화될 수 있지만 그 핵심은 양자역학이 소위 *국소 숨은 변수 이론(local hidden variable theories)*과 양립하지 않는다는 것입니다. CHSH 게임은 Bell 검정의 특히 깔끔하고 단순한 예시이며, Bell의 정리에 대한 증명 또는 시연으로 볼 수 있습니다.

CHSH 게임은 양자 정보 이론을 실험적으로 검증하는 방법을 제공합니다. CHSH 게임을 구현하는 실험을 수행하고, 위에서 설명한 얽힘 기반 전략을 검증할 수 있습니다. 이를 통해 얽힘이 실재한다는 높은 신뢰를 얻을 수 있으며, 얽힘을 설명하는 때로는 모호하거나 시적인 표현과 달리 CHSH 게임은 얽힘을 관찰하는 구체적이고 검증 가능한 방법을 제시합니다. 2022년 노벨 물리학상은 이러한 연구의 중요성을 인정하여, 얽힌 광자에 대한 Bell 검정을 통해 얽힘을 관측한 Alain Aspect, John Clauser(CHSH의 C), Anton Zeilinger에게 수여되었습니다.

Qiskit 구현

위에서 정의한 양자 전략과 함께 CHSH 게임을 Qiskit으로 다음과 같이 구현할 수 있습니다.

먼저 게임 자체를 정의합니다. 임의의 전략을 인수로 전달할 수 있도록 구성합니다.

def chsh_game(strategy):
# This function runs the CHSH game, using the strategy (a function
# from two bits to two bits), returning 1 for a win and 0 for a loss.

# Choose x and y randomly
x, y = random.randint(0, 1), random.randint(0, 1)

# Use the strategy to determine a and b
a, b = strategy(x, y)

# Decide if the strategy wins or loses
if (a != b) == (x & y):
return 1 # Win
return 0 # Lose

이제 Alice와 Bob의 질문에 따라 Circuit을 출력하는 함수를 만들겠습니다. 단순함을 위해 Qubit의 기본 이름을 사용하고, Alice와 Bob의 동작에는 내장된 Ry(θ)R_y(\theta) Gate를 사용합니다.

def chsh_circuit(x, y):
# This function creates a `QuantumCircuit` implementing the quantum
# strategy described above (including the e-bit preparation).

qc = QuantumCircuit(2, 2)

# Prepare an e-bit
qc.h(0)
qc.cx(0, 1)
qc.barrier()

# Alice's actions
if x == 0:
qc.ry(0, 0)
else:
qc.ry(-pi / 2, 0)
qc.measure(0, 0)

# Bob's actions
if y == 0:
qc.ry(-pi / 4, 1)
else:
qc.ry(pi / 4, 1)
qc.measure(1, 1)

return qc

다음은 질문이 무엇이냐에 따른 네 가지 가능한 Circuit입니다.

# Draw the four possible circuits

print("(x,y) = (0,0)")
display(chsh_circuit(0, 0).draw(output="mpl"))

print("(x,y) = (0,1)")
display(chsh_circuit(0, 1).draw(output="mpl"))

print("(x,y) = (1,0)")
display(chsh_circuit(1, 0).draw(output="mpl"))

print("(x,y) = (1,1)")
display(chsh_circuit(1, 1).draw(output="mpl"))
(x,y) = (0,0)

Output of the previous code cell

(x,y) = (0,1)

Output of the previous code cell

(x,y) = (1,0)

Output of the previous code cell

(x,y) = (1,1)

Output of the previous code cell

이제 Aer 시뮬레이터를 사용하여 주어진 입력 쌍 (x,y)(x,y)에 대해 Circuit을 한 번 실행하는 작업을 생성합니다.

def quantum_strategy(x, y):
# This function runs the appropriate quantum circuit defined above
# one time and returns the measurement results

# Setting `shots=1` to run the circuit once
result = AerSimulator().run(chsh_circuit(x, y), shots=1).result()
statistics = result.get_counts()

# Determine the output bits and return them
bits = list(statistics.keys())[0]
a, b = bits[0], bits[1]
return a, b

마지막으로, 게임을 1000번 진행하고 전략이 이기는 비율을 계산합니다.

NUM_GAMES = 1000
TOTAL_SCORE = 0

for _ in range(NUM_GAMES):
TOTAL_SCORE += chsh_game(quantum_strategy)

print("Fraction of games won:", TOTAL_SCORE / NUM_GAMES)
Fraction of games won: 0.867

고전적 전략도 정의하여 얼마나 잘 작동하는지 확인할 수 있습니다. 이것은 하나의 전략일 뿐이며 — 코드를 변경하면 다른 전략도 테스트할 수 있습니다 — 하지만 이 전략은 최적의 고전적 전략 중 하나입니다.

def classical_strategy(x, y):
# This function implements just one example of an optimal classical
# strategy for the CHSH game. Other classical strategies can be
# implemented by changing the bit values assigned to a and b.

# Alice's answer
if x == 0:
a = 0
elif x == 1:
a = 1

# Bob's answer
if y == 0:
b = 1
elif y == 1:
b = 0

return a, b

다시 게임을 1000번 진행하여 얼마나 잘 작동하는지 확인합니다.

NUM_GAMES = 1000
TOTAL_SCORE = 0

for _ in range(NUM_GAMES):
TOTAL_SCORE += chsh_game(classical_strategy)

print("Fraction of games won:", TOTAL_SCORE / NUM_GAMES)
Fraction of games won: 0.747

무작위성이 관여하지만, 1000번 실행 후 통계가 크게 벗어날 가능성은 매우 낮습니다. 양자 전략은 약 85%의 승률을 보이는 반면, 고전적 전략은 약 75% 이상 이길 수 없습니다.