[2025.06.27] : Link 변경
첨부파일 1. jupyter notebook 형식
첨부파일 2. pdf 자료
출처 Link : https://quantum.cloud.ibm.com/learning/en/courses/utility-scale-quantum-computing/teleportation
이 글은 IBM의 자료들을 이용하여 포스팅 했습니다. (작성 날짜 : 2025.06.20)
혹시 잘못된 정보가 있으면 말씀해주세요!
1. Introduction
배울 내용 정리
- Density matrices (밀도 행렬)
- Quantum state tomography (양자 단층 촬영)
2. Density matrices (밀도 행렬)
양자 상태를 나타내는 방법을 저번 2강에서 얘기한 적이 있는데, 양자 상태를 저렇게 계산하면 density matrices(밀도 행렬)의 형식으로 나타낼 수 있음.
- 양자 컴퓨터에서 noise와 상호작용하면서 생기는 오류를 감지하거나
- entangled 상태에서 일부 부분만 확인하고 싶을 때 필요
예제에서는 랜덤한 θ 와 φ 을 지정하여 하나의 quantum state를 제작하였고, bloch 구로 나타냈다.
import numpy as np
import matplotlib.pyplot as plt
from qiskit.visualization import plot_bloch_vector
#create a random 1-qubit state from a random (theta, varphi) to define r vector
np.random.seed(1) #fixing seed for repeatibility
theta = np.random.uniform(0.0, 1.0) * np.pi #from 0 to pi
varphi = np.random.uniform(0.0, 2.0) * np.pi #from 0 to 2*pi
def get_r_vec(theta, varphi):
rx = np.sin(theta) * np.cos(varphi)
ry = np.sin(theta) * np.sin(varphi)
rz = np.cos(theta)
return (rx, ry, rz)
# get r vector
rx, ry, rz = get_r_vec(theta, varphi)
r = [rx, ry, rz]
plot_bloch_vector(r)
3. Quantum state tomography (양자 단층 촬영)
양자 상태를 확인하기 위해, 다음과 같은 계산 과정을 거친다.
- rz (z축 기준으로 측정) : |0> 확률 - |1> 확률
- rx (x축 기준으로 측정) : |+> 확률 - |-> 확률
- ry (y축 기준으로 측정) : |i> 확률 - |-i> 확률
먼저 rz을 알아내기 위한 계산.
먼저 회로 qc를 제작하고, 임의의 U 게이트에 아까 지정한 θ 와 φ 를 넣었다.
Backend는 Aer 시뮬레이터를 설정하고, n = 1000개를 지정한 결과, 0은 629개, 1은 371개가 나왔다. (히스토그램은 캡쳐 생략)
rz의 값은 0.258이 산출되었다. 매번 Aer 시뮬레이터를 돌릴 때마다 값은 조금씩 바뀌게 된다.
IBM quantum 시스템은 기본적으로 rz만 측정할 수 있기 때문에, rx과 ry는 다음과 같이 게이트를 적용하여 축을 옮기는 방식으로 측정한다.