Diagrammi di circuiti quantistici

Questo articolo illustra le convenzioni relative ai diagrammi dei circuiti quantistici. Dopo averne compreso le convenzioni visive, alcuni algoritmi quantistici sono più facili da comprendere in un diagramma del circuito rispetto alla rappresentazione di matrice scritta equivalente.

Con Azure Quantum è possibile inviare circuiti quantistici con Qiskit, Cirq e circuiti formattati specifici del provider.

Suggerimento

Vedere quantum-viz.js, uno strumento configurabile per il rendering dei circuiti quantistici. È possibile integrare la libreria quantum-viz.js (o qviz) in qualsiasi progetto. Mira a essere facilmente configurabile, consentendo interazioni utente complesse, ad esempio la disattivazione tra risultati di misurazione diversi.

Convenzioni del diagramma del circuito quantistico

Nel diagramma di un circuito, ogni linea continua rappresenta un qubit o, più in generale, un registro di qubit. Per convenzione, la linea superiore indica il registro di qubit $0$ e le restanti vengono etichettate in sequenza.

Le operazioni sono rappresentate da porte quantistiche. Il termine porta quantistica è un'analogia con le porte logiche classiche. Le porte che agiscono su uno o più registri di qubit sono definite riquadri. Ad esempio, il simbolo

Simbolo per un'operazione Hadamard che agisce su un registro a qubit singolo.

è un'operazione Hadamard che agisce su un registro a qubit singolo.

In un circuito quantistico il tempo scorre da sinistra a destra. Le porte quantistiche vengono ordinate cronologicamente, quindi la porta più a sinistra è quella applicata per prima ai qubit. In altre parole, se si immaginano le linee che tengono insieme lo stato quantistico, le linee portano lo stato quantistico attraverso ognuna delle porte nel diagramma da sinistra a destra. Vale a dire l'azione del circuito quantistico

Diagramma dei cancelli quantistici applicati a sinistra a destra in un circuito quantistico.

è la matrice unitaria $CBA$.

Nota

La moltiplicazione della matrice rispetta la convenzione opposta: la matrice più a destra viene applicata per prima. Nei diagrammi dei circuiti quantistici, tuttavia, la porta più a sinistra viene applicata per prima. Questa differenza può a volte causare confusione, è quindi importante notare questa differenza significativa tra la notazione algebrica lineare e i diagrammi dei circuiti quantistici.

Esempio: Trasformazione unitaria

Si consideri la trasformazione unitaria $\text{ CNOT}_{01}(H\otimes 1)$. Questa sequenza di porte è di fondamentale importanza per il calcolo quantistico perché crea uno stato a due qubit con entanglement massimo:

$\mathrm{CNOT}_{01}(H\otimes 1)\left=\ket{00}\frac{1}{\sqrt{2}}({00}\ket{ + ), \ket{11}\right$

Le operazioni con questa o maggiore complessità sono onnipresenti negli algoritmi quantistici e nella correzione degli errori quantistici.

Il diagramma del circuito per la preparazione di questo stato quantistico con entanglement massimo è:

Diagramma del circuito per uno stato a due qubit massimamente intangilato.

Il simbolo dietro il cancello Hadamard rappresenta un cancello CNOT, dove il cerchio nero indica il qubit di controllo e la croce all'interno di un cerchio indica il target qubit. Questo circuito quantistico viene rappresentato come se agisse su due qubit (o, in modo equivalente, come due registri costituiti da un qubit).

Input e output di circuiti quantistici

Gli esempi precedenti hanno avuto esattamente lo stesso numero di linee (qubit) di input a una porta quantistica del numero di linee esterne alla porta quantistica. All'inizio può sembrare ragionevole che i circuiti quantistici possano avere più, o meno, output rispetto agli input in generale. Questo è impossibile, tuttavia, perché tutte le operazioni quantistiche, ad eccezione delle misurazioni, sono unitarie e quindi reversibili. Se non hanno lo stesso numero di output e di input, non sono reversibili e quindi neanche unitarie. Si verifica una contraddizione. Per questo motivo, qualsiasi riquadro disegnato in un diagramma del circuito deve avere esattamente lo stesso numero di linee in entrata e in uscita.

I diagrammi dei circuiti a qubit multipli seguono convenzioni simili a quelle a qubit singolo. Come esempio più chiaro, un'operazione unitaria a due qubit $B$ può essere definita come $(H S\otimes X)$, quindi il circuito quantistico equivalente è:

Diagramma del circuito di un'operazione unitaria a due qubit.

È anche possibile visualizzare $B$ come un'azione su un singolo registro a due qubit anziché su due registri a un qubit, a seconda del contesto in cui viene usato il circuito.

La proprietà più utile di questi diagrammi dei circuiti astratti è forse che consentono di descrivere algoritmi quantistici complessi a livello generale senza doverli compilare fino alle porte fondamentali. Ciò significa che è possibile ottenere un'idea del flusso di dati per un algoritmo quantistico di grandi dimensioni senza dover comprendere tutti i dettagli del funzionamento di ognuna delle subroutine all'interno dell'algoritmo.

Porte controllate

L'azione di una porta quantistica controllata singolarmente, indicata come $\Lambda(G)$, in cui il valore di un singolo qubit controlla l'applicazione di $G$, può essere compresa analizzando l'esempio seguente di un input dello stato del prodotto:

$\Lambda(G) (\alpha\ket{{0} + \beta\ket{1}) \ket{\psi}=\alpha\ket{{0}\ket{\psi} + \beta\ket{{1} G\ket{\psi}$

Vale a dire che la porta controllata applica $G$ al registro contenente $\psi$ se e solo se il qubit di controllo accetta il valore $1$. In generale, tali operazioni controllate sono descritte nei diagrammi dei circuiti come

Diagramma del circuito di un cancello controllato da singly.

Qui il cerchio nero indica il bit quantistico su cui viene controllata la porta e una linea verticale indica l'unità applicata quando il qubit di controllo accetta il valore $1$. Per i casi speciali in cui $G=X e $G=Z$, viene usata la notazione seguente per descrivere la versione controllata dei cancelli (si noti che il gate controllato-X$ è il gate CNOT):

Diagramma del circuito per casi speciali di cancelli controllati.

Q# fornisce metodi per generare automaticamente la versione controllata di un'operazione, che consente al programmatore di non dover eseguire manualmente queste operazioni. Di seguito è illustrato un esempio di questa situazione:

operation PrepareSuperposition(qubit : Qubit) : Unit
is Ctl { // Auto-generate the controlled specialization of the operation
    H(qubit);
}

Operatore di misurazione

L'operazione rimanente da visualizzare nei diagrammi dei circuiti è la misurazione. La misurazione accetta un registro di qubit, lo misura e restituisce il risultato come informazioni classiche.

Un'operazione di misurazione viene indicata da un simbolo del contatore e accetta sempre come input un registro di qubit (indicato da una linea continua) e restituisce informazioni classiche (indicate da una linea doppia). In particolare, un sottocircuito di questo tipo è simile al seguente:

Simbolo che rappresenta un'operazione di misurazione.

Q# implementa un operatore Measure a questo scopo.

Analogamente, il sottocircuito

Diagramma del circuito che rappresenta un'operazione controllata.

fornisce una porta controllata in modo classico, in cui $G$ viene applicata in modo condizionato dal bit di controllo classico che è il valore $1$.

Diagramma del circuito di teletrasporto

Il teletrasporto quantistico è forse il miglior algoritmo quantistico per illustrare questi componenti.

Il teletrasporto quantistico è un metodo per spostare i dati all'interno di un computer quantistico (o anche tra computer quantistici distanti in una rete quantistica) tramite l'uso di entanglement e misurazioni. È interessante notare che è effettivamente in grado di spostare uno stato quantistico, ad esempio il valore in un qubit specifico, da un qubit a un altro, senza nemmeno conoscere il valore del qubit. Questo è necessario per il funzionamento del protocollo in base alle leggi della meccanica quantistica.

Il circuito di teletrasporto quantistico viene illustrato di seguito insieme a una versione commentata del circuito che descrive come leggerlo.

Diagramma di un circuito di teleportazione quantistica.

Passaggi successivi