View a markdown version of this page

OpenQASM 3.0으로 노이즈 시뮬레이션 - Amazon Braket

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

OpenQASM 3.0으로 노이즈 시뮬레이션

OpenQASM3으로 노이즈를 시뮬레이션하려면 pragma 명령을 사용하여 노이즈 연산자를 추가합니다. 예를 들어 이전에 제공된 GHZ 프로그램의 노이즈 있는 버전을 시뮬레이션하려면 다음 OpenQASM 프로그램을 제출할 수 있습니다.

// ghz.qasm // Prepare a GHZ state OPENQASM 3; qubit[3] q; bit[3] c; h q[0]; #pragma braket noise depolarizing(0.75) q[0] cnot q[0], q[1]; #pragma braket noise depolarizing(0.75) q[0] #pragma braket noise depolarizing(0.75) q[1] cnot q[1], q[2]; #pragma braket noise depolarizing(0.75) q[0] #pragma braket noise depolarizing(0.75) q[1] c = measure q;

지원되는 모든 pragma 노이즈 연산자에 대한 사양은 다음 목록에 나와 있습니다.

#pragma braket noise bit_flip(<float in [0,1/2]>) <qubit> #pragma braket noise phase_flip(<float in [0,1/2]>) <qubit> #pragma braket noise pauli_channel(<float>, <float>, <float>) <qubit> #pragma braket noise depolarizing(<float in [0,3/4]>) <qubit> #pragma braket noise two_qubit_depolarizing(<float in [0,15/16]>) <qubit>, <qubit> #pragma braket noise two_qubit_dephasing(<float in [0,3/4]>) <qubit>, <qubit> #pragma braket noise amplitude_damping(<float in [0,1]>) <qubit> #pragma braket noise generalized_amplitude_damping(<float in [0,1]> <float in [0,1]>) <qubit> #pragma braket noise phase_damping(<float in [0,1]>) <qubit> #pragma braket noise kraus([[<complex m0_00>, ], ...], [[<complex m1_00>, ], ...], ...) <qubit>[, <qubit>] // maximum of 2 qubits and maximum of 4 matrices for 1 qubit, 16 for 2

Kraus 연산자

Kraus 연산자를 생성하려면 행렬 목록을 반복하여 행렬의 각 요소를 복소수 표현식으로 출력하면 됩니다.

Kraus 연산자를 사용할 때는 다음 사항에 유의하세요.

  • qubits의 수는 2를 초과할 수 없습니다. 스키마의 현재 정의는 이 제한을 설정합니다.

  • 인수 목록의 길이는 8의 배수여야 합니다. 즉, 2x2 행렬로만 구성되어야 합니다.

  • 총 길이는 22*num_qubits 행렬을 초과하지 않습니다. 즉, 1qubit의 경우 행렬이 4개이고 2qubits의 경우 행렬이 16개입니다.

  • 제공된 모든 행렬은 완전 양성 트레이스 보존(Completely Positive Trace Preserving, CPTP)입니다.

  • Kraus 연산자와 그 전치 켤레의 곱은 단위 행렬에 합산되어야 합니다.