MATLAB을 활용한 양자 컴퓨팅 시작하기 안내서
MATLAB Support Package for Quantum Computing을 통해 양자 알고리즘을 구축하고 시뮬레이션하며 실행할 수 있습니다.
| 단일 큐비트 게이트 | |||
| 양자 회로에 단일 큐비트 게이트를 적용합니다. 괄호 () 안의 값은 게이트를 적용할 큐비트의 인덱스입니다. | |||
| 양자 회로 객체 | 플롯 | 행렬 | |
|---|---|---|---|
| 구문 | >> qc=quantumCircuit(xGate(1)) |
|
>> getMatrix(qc) |
| 출력 |
|
|
|
| 단일 큐비트 게이트 | 설명 |
|---|---|
|
xGate = 큐비트 1에 대해 x축을 기준으로 π만큼 회전하는 게이트 |
|
yGate = 큐비트 1에 대해 y축을 기준으로 π만큼 회전하는 게이트 |
|
zGate = 큐비트 1에 대해 z축을 기준으로 π만큼 회전하는 게이트 |
|
sGate = z축을 기준으로 +π/2만큼 회전하는 게이트 |
|
tGate = z축을 기준으로 +π/4만큼 회전하는 게이트 |
|
tiGate = z축을 기준으로 -π/4만큼 회전하는 게이트 |
|
hGate = 아다마르 게이트 |
|
idGate = 항등 게이트 (아무 동작도 수행하지 않음) |
회전 게이트는 두 개의 인수를 받는 단일 큐비트 게이트입니다. 첫 번째 인수는 게이트를 적용할 큐비트의 인덱스이고, 두 번째 인수는 라디안 단위의 회전 각도 또는 위상(θ)입니다.
파라미터화된 단일 큐비트 게이트 |
설명 |
|
rxGate = x축 회전 게이트 |
|
ryGate = y축 회전 게이트 |
|
rzGate = z축 회전 게이트 |
|
r1Gate = 전역 위상을 포함하는 z축 회전 게이트 |
제어 큐비트가 하나인 게이트
제어 큐비트가 하나인 게이트를 양자 회로에 적용합니다. 이러한 게이트는 괄호 () 안에 두 개의 인수를 가지며, 첫 번째 인수는 제어 큐비트이고 두 번째 인수는 대상 큐비트입니다. 제어 큐비트가 |0> 상태이면 게이트는 아무 동작도 수행하지 않습니다. 제어 큐비트가 |1> 상태이면 지정된 게이트가 대상 큐비트에 적용됩니다. >> cxGate(control,target)
큐비트 인덱스 1: 제어 큐비트
큐비트 인덱스 2: 대상 큐비트
제어 회전 게이트는 세 개의 인수를 받는 2-큐비트 게이트입니다. 첫 번째 인수는 제어 큐비트이고 두 번째 인수는 대상 큐비트이며 세 번째 인수는 라디안 단위의 회전 각도 또는 위상(θ)입니다.
2-큐비트 게이트 |
설명 |
|
cxGate 또는 cnotGate = 큐비트 1이 |1> 상태일 때 큐비트 2에 x축 기준 π 회전을 적용하는 게이트 |
|
cyGate = 큐비트 1이 |1> 상태일 때 큐비트 2에 y축 기준 π 회전을 적용하는 게이트 |
|
czGate = 큐비트 1이 |1> 상태일 때 큐비트 2에 z축 기준 π 회전을 적용하는 게이트 |
|
chGate = 제어 아다마르 게이트 |
파라미터화된 2-큐비트 게이트 |
설명 |
|
crxGate = 제어 X축 회전 게이트 |
|
cryGate = 제어 y축 회전 게이트 |
|
crzGate = 제어 z축 회전 게이트 |
|
cr1Gate = 전역 위상을 포함하는 제어 z축 회전 게이트 |
특수 게이트
게이트 |
설명 |
compositeGate (qc, [1,2]) |
내부 양자 회로로부터 복합 게이트를 생성하고 CompositeGate 객체를 반환합니다. 이 예제에서 qc는 내부 양자 회로입니다. |
|
제어-제어 X 게이트 (CCNOT 또는 토폴리 게이트) |
mcxGate(1:3,4,5) |
다중 제어 X 게이트 첫 번째 인수는 세 개의 제어 큐비트(1,2,3)이고, 두 번째 인수는 하나의 대상 큐비트(4)이며, 세 번째 인수는 하나의 보조 큐비트(5)입니다. 이 게이트는 제어 큐비트들의 상태에 따라 단일 대상 큐비트에 작용하며, 보조 큐비트의 수에 따라 필요한 단순 게이트 수가 결정됩니다. |
|
QFT(양자 푸리에 변환) 게이트 |
아래 게이트들에서 인수가 두 개인 swapGate를 제외하고 첫 번째 및 두 번째 인수는 큐비트 인덱스이고 세 번째 인수는 위상(θ)입니다. 아래 게이트들은 두 대상 큐비트의 순서를 서로 바꾸어도 게이트 연산이 달라지지 않습니다.
게이트 |
설명 |
|
이징 XX 결합 게이트 |
|
이징 YY 결합 게이트 |
|
이징 ZZ 결합 게이트 |
|
큐비트의 값을 서로 교환합니다. |
| 양자 회로 연산 | ||
연산 |
예시 |
출력 |
|
|
|
|
|
|
getMatrix = 양자 회로 또는 게이트의 행렬 표현 |
>> getMatrix(bell) |
|
generateQASM = QASM 코드 생성 |
>> generateQASM(bell) |
|
simulate(circuit, inputState), 회로 시뮬레이션 및 회로의 초기 양자 상태를 지정해 QuantumState 객체 반환 |
>> simulate(bell) |
|
unpack = 양자 회로 내의 복합 게이트 펼치기 |
|
|
시뮬레이션된 양자 회로 연산 |
||
연산 |
예시 |
출력 |
회로 플롯의 큐비트 1(맨 위 큐비트)을 |1> 상태로, 두 번째 큐비트를 |0> 상태로 설정하여 회로의 양자 상태 초기화 |
S=simulate(bell,"10") |
|
출력 기저 상태 및 진폭 표시 |
|
|
각 큐비트를 어떤 기저로 표현할지 지정해 회로의 최종 상태 표시 |
|
|
가능한 상태 및 각 상태의 측정 확률 표시 |
|
states = "00" P= |
| 임의의 샷(Shot) 수를 사용하여 양자 상태를 무작위 샘플링 |
|
|
함수 |
설명 |
|
디바이스 이름, 리전 및 결과 저장용 S3 버킷 경로를 지정해 Amazon Braket 디바이스에 연결 |
|
디바이스 이름 및 계정 자격 증명을 지정해 IBM Quantum 디바이스에 연결 |
|
디바이스에 대한 추가 정보 가져오기 |
|
디바이스에서 회로를 실행하기 위한 작업 생성 |
|
작업 상태 확인 |
|
회로 실행 결과 가져오기 |
|
>> plot(qftGate(1:3))
|
|
| >> GitHub 예제 | ||