[2025.06.27] : Link 변경
이전 글:
출처 Link : https://quantum.cloud.ibm.com/learning/en/courses/utility-scale-quantum-computing/teleportation
이 글은 IBM의 자료들을 이용하여 포스팅 했습니다. (작성 날짜 : 2025.06.21)
혹시 잘못된 정보가 있으면 말씀해주세요!
다룰 내용
- Quantum Teleportation (양자 원격전송)
- Ssuperdense coding (양자 초고밀도 코딩)
4. Quantum teleportation (양자 원격전송)
보내고자 하는 물질이 이동하는게 아니라, quantum state로 표현되는 정보만 이동한다. 그리고 원본은 이 과정에서 파괴된다.
qubit 전송이 불가한 상황에서 quantum state를 보내기 위해 classic 통신을 활용하는 기술.
- Alice가 Bob에게 전송하는 과정
1) Alice가 가진 임의의 qubit |ψ⟩ = α|0⟩ + β|1⟩을 전달
2) Alice와 Bob은 EPR pair(e-bit이라고도 표현함) 이라는 것을 공유하고 있다.
3) Alice가 가진 2개의 qubit( |ψ⟩, EPR pair의 A)에 bell measurement을 한다.
4) 4개의 결과 중 하나를 각각 25% 확률로 얻게 되며, 측정과 동시에 2개의 qubit( |ψ⟩, EPR pair의 A)은 파괴됨.
5) 결과는 2 bit의 classic 정보로 나오고, Bob에게 classic 채널을 통해 전송
6) Bob은 전송받은 classic 정보로, EPR pair의 B를 변환하여 원본 |ψ⟩을 만들어냄. (전송 완료)
- 00 : 그대로 유지
- 01 : X 게이트 적용
- 10 : Z 게이트 적용
- 11 : ZX 게이트 적용
- code로 구현해보기
qubit 3개가 들어가는 양자 회로를 만들고, 임의의 qubit |ψ⟩을 구현하기 위해 U 게이트를 적용
EPR pair 제작
Bell measurement 후 Alice가 2개의 qubit을 측정
2개의 classic bit를 통해 Bob의 qubit를 변환
U 게이트가 적용된 게 맞는지 확인하기 위해 U^-1 게이트 넣기.
최종적으로 Aer 시뮬레이터로 회로 run하기
그 다음의 예제는, 실제 양자 컴퓨터를 이용하여 실행해본 예시이다.
위의 Aer 시뮬레이터를 사용한 경우와 비슷하니, 쭉 따라서 실행해보면 되겠다.
밑의 사진은 IBM Sherbrooke 서버의 coupling map이다.
- 서버마다 qubit의 연결 구조(Coupling map)가 다를 수 있다. 특정 큐비트가 이웃한 어떤 큐비트와만 양방향 게이트(예: CNOT)를 수행할 수 있는지를 나타내는 하드웨어의 물리적 제약
- 어떤 큐비트는 오류율이 더 낮고, 어떤 연결부는 게이트 실행 시간이 더 짧을 수 있음. 트랜스파일러는 이 정보까지 고려하여 최적화를 수행.
- 양자 컴퓨터마다 실행할 수 있는 고유의 native gates가 다를 수 있음.
- 회로를 transpile 하는 것은, user가 작성한 quantum circuit을 양자 컴퓨터가 실행할 수 있는 게이트들을 사용하여 다시 작성하고, (여러 최적화 작업과 더불어) 물리적 qubit로 최적 mapping을 선택하는 과정.
5. Superdense coding (초고밀도 coding)
양자 원격전송과는 다르게, 2 bit의 classic 정보를 보내기 위해 qubit을 전송.
classic 통신이 불가능한 상황에서 qubit를 전송하여 classic 정보를 보내는 기술.
1) Alice가 보내고 싶은 2개의 bit의 정보에 따라, 자신의 EPR pair에 특정 gate(I, X, Z, Y)를 적용
2) Alice의 EPR pair만 Bob에 전송
3) Bob은 받은 qubit을, 원래 가지고 있던 entangled qubit를 함께 측정하여 2 bit 정보를 완벽하게 해독
# Step 1: Map problem to quantum circuits and operators
# Create 2-qubits circuit
qc=QuantumCircuit(2,2)
# Eve creates EPR pair and send q0 to Alice and q1 to Bob
qc.h(0)
qc.cx(0,1)
qc.barrier()
# set message which Alice wants to transform to Bob
msg = "11" # You can change the message
if msg == "00":
pass
elif msg == "10":
qc.x(0)
elif msg == "01":
qc.z(0)
elif msg == "11":
qc.z(0)
qc.x(0)
qc.barrier()
# Bob receives EPR qubit from Alice and performs unitery operations
qc.cx(0,1)
qc.h(0)
qc.barrier()
# Bob measures q0 and q1
qc.measure(0,0)
qc.measure(1,1)
qc.draw(output="mpl")
보내고자 하는 2개의 classic bit이 11일 때 :
ZX 게이트를 적용한 결과, 벨 측정을 거치면 수학적으로는 -|11⟩이 되지만, 물리적으로 측정되는 값은 |11⟩과 동일한 "11"이다.