Quali funzionalità di OpenQASM sono supportate daBraket? - Amazon Braket

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Quali funzionalità di OpenQASM sono supportate daBraket?

La sezione seguente elenca i tipi di dati, le istruzioni e le istruzioni pragmatiche di OpenQASM 3.0 supportati daBraket.

Tipi di dati OpenQASM supportati

I tipi di dati OpenQASM seguenti sono supportati daAmazon Braket.

  • Gli interi non negativi vengono utilizzati per gli indici di qubit (virtuali e fisici):

    • cnot q[0], q[1];

    • h $0;

  • I numeri a virgola mobile vengono utilizzati per gli angoli di rotazione del gate:

    • rx(-0.314) $0;

  • Array di numeri complessi (con OpenQASMimnotazione per parte immaginaria) sono consentiti nei pragmi del tipo di risultato per la definizione di osservabili hermitiani generali e nei pragmi unitari:

    • #pragma braket unitary [[0, -1im], [1im, 0]] q[0]

    • #pragma braket result expectation hermitian([[0, -1im], [1im, 0]]) q[0]

Istruzioni OpenQASM supportate

Le seguenti istruzioni OpenQASM sono supportate daAmazon Braket.

  • Header: OPENQASM 3;

  • Dichiarazioni bit classiche:

    • bit b1;(in modo equivalente,creg b1;)

    • bit[10] b2;(in modo equivalente,creg b2[10];)

  • Dichiarazioni Qubit:

    • qubit b1;(in modo equivalente,qreg b1;)

    • qubit[10] b2;(in modo equivalente,qreg b2[10];)

  • Indicizzazione all'interno di array:q[0]

  • specifica delle attività fisichequbits:$0

  • Porte e operazioni supportate su un dispositivo:

    • h $0;

    • iswap q[0], q[1];

Nota

I gate supportati da un dispositivo possono essere trovati nelle proprietà del dispositivo per le azioni OpenQASM; non sono necessarie definizioni di gate per utilizzare queste porte.

  • Istruzioni Verbatim box (Attualmente non supportiamo la notazione della durata dei box. Porte native e fisichequbitssono richiesti nelle caselle letterali.)

#pragma braket verbatim box{ rx(0.314) $0; }
  • Assegnazione di misurazione e misurazione suqubitso un interoqubitregistrati.

    • measure $0;

    • measure q;

    • measure q[0];

    • b = measure q;

    • measure q → b;

BraketOpenQASM

Le seguenti istruzioni pragma di OpenQASM sono supportate daAmazon Braket.

  • Noise pragma

    • #pragma braket noise bit_flip(0.2) q[0]

    • #pragma braket noise phase_flip(0.1) q[0]

    • #pragma braket noise pauli_channel

  • Verbatim pragma

    • #pragma braket verbatim

  • Tipo di risultato: pragma

    • Tipi di risultati invarianti di base:

      • Vettore di stato:#pragma braket result state_vector

      • Matrice di densità:#pragma braket result density_matrix

    • Tipi di risultati base Z:

      • Amplitude:#pragma braket result amplitude "01"

      • Probability:#pragma braket result probability q[0], q[1]

    • Tipi di risultati ruotati di base

      • Expect:#pragma braket result expectation x(q[0]) @ y([q1])

      • variance:#pragma braket result variance hermitian([[0, -1im], [1im, 0]]) $0

      • Esempio:#pragma braket result sample h($1)

Nota

OpenQASM 3.0 è retrocompatibile con OpenQASM 2.0, quindi i programmi scritti con 2.0 possono essere eseguiti suBraket. Tuttavia, le funzionalità di OpenQASM 3.0 supportate daBrakethanno alcune differenze di sintassi minori. Ad esempio,qregcontrocregequbitcontrobit, così come la sintassi di misura, e questi devono essere supportati con la loro sintassi corretta.