Vai al contenuto principale

IBM Quantum Composer

Cos'è?

IBM Quantum® Composer è uno strumento grafico per la programmazione quantistica che ti permette di trascinare e rilasciare operazioni per costruire circuiti quantistici ed eseguirli su hardware quantistico.

Cosa può fare?

Visualizzare gli stati dei qubit

Guarda come le modifiche al tuo circuito influenzano lo stato dei qubit, mostrato come una q-sphere interattiva, o come istogrammi con le probabilità di misurazione o simulazioni del vettore di stato.

Eseguire su hardware quantistico

Esegui i tuoi circuito su hardware quantistico reale per comprendere gli effetti del rumore del dispositivo.

Generare codice automaticamente

Invece di scrivere codice a mano, genera automaticamente codice OpenQASM o Python che si comporta allo stesso modo del circuito che hai creato con il Composer.

Tour dell'interfaccia

IBM Quantum Composer dispone di un set personalizzabile di strumenti che ti permettono di costruire, visualizzare ed eseguire circuiti quantistici su unità di elaborazione quantistica (QPU). Usa il menu "Altre opzioni" su ciascuna finestra per accedere a strumenti e azioni aggiuntive.

Finestra di IBM Quantum Composer.

  1. Catalogo delle operazioni — Questi sono i mattoni fondamentali dei circuiti quantistici. Trascina e rilascia questi gate e altre operazioni nell'editor grafico del circuito. I diversi tipi di gate sono raggruppati per colore. Ad esempio, i gate classici sono blu scuro, i gate di fase sono blu chiaro e le operazioni non unitarie sono grigie.

    Per scoprire i gate e le operazioni disponibili, fai clic destro su un'operazione e seleziona Info per leggerne la definizione.

  2. Editor di codice — Usa il menu Visualizza per aprire o chiudere l'editor di codice, che ti permette di vedere il codice OpenQASM o Qiskit per il circuito. Puoi modificare il codice OpenQASM; il codice Qiskit è di sola lettura.

  3. Editor grafico del circuito — È qui che costruisci un circuito. Trascina gate e altre operazioni sui "fili" orizzontali dei qubit che compongono il tuo registro quantistico.

    Per rimuovere un gate da un filo, selezionalo e clicca sull'icona del cestino.

    Per modificare i parametri e le impostazioni dei gate che supportano la modifica, seleziona il gate nell'editor grafico e clicca su Modifica.

  4. Barra degli strumenti — Accedi agli strumenti usati più di frequente per annullare e ripetere azioni, cambiare l'allineamento dei gate e passare alla modalità di ispezione. Con la modalità di ispezione, vedi una visualizzazione passo dopo passo degli stati dei qubit man mano che il calcolo del circuito si evolve. Per saperne di più, vedi Ispeziona il tuo circuito passo dopo passo.

  5. Dischi di fase — La fase del vettore di stato del qubit nel piano complesso è indicata dalla linea che si estende dal centro del diagramma al bordo del disco grigio (che ruota in senso antiorario attorno al punto centrale).

    Usa il menu Visualizza per mostrare o nascondere i dischi di fase.

  6. Visualizzazioni — Le visualizzazioni caratterizzano il tuo circuito mentre lo costruisci. Usano un simulatore del vettore di stato a singola misurazione, che è diverso dalla QPU specificata nelle impostazioni "Esegui Circuit". Nota che le visualizzazioni ignorano qualsiasi operazione di misurazione aggiunta. Accedi e clicca su Esegui Circuit per ottenere i risultati dal Backend specificato.

    Scopri di più nella sezione Visualizzazioni.

Costruire, modificare e ispezionare circuiti quantistici

Scarica i file del tuo circuito prima di uscire dal Composer

Se vuoi continuare a lavorare con un circuito in un secondo momento, assicurati di scaricare il file del circuito e salvarlo in locale prima di uscire dalla sessione corrente del Composer. Usa il link "Salva file" nell'angolo in alto a destra, oppure vai al menu File e scegli "Salva file". Quando sei pronto a lavorare nuovamente con il circuito, vai al menu File e scegli "Carica file .qasm", poi naviga fino al file del circuito sul disco locale e clicca Apri.

1. Aprire IBM Quantum Composer

  1. (Facoltativo) Se non sei ancora acceduto a IBM Quantum, seleziona Accedi nell'angolo in alto a destra. Puoi quindi accedere oppure Creare un account IBM Cloud.
nota

Se non accedi, le visualizzazioni mostreranno automaticamente i risultati simulati per un massimo di quattro qubit. Per eseguire il tuo circuito su un computer quantistico, o per visualizzare un circuito con più di quattro qubit, è necessario accedere.

  1. Apri IBM Quantum Composer cliccando il link nella navigazione della pagina Learning. L'area di lavoro mostra un circuito vuoto senza titolo. Puoi creare un nuovo circuito oppure caricare un file .qasm per continuare a lavorare con un circuito già creato.

  2. Assegna un nome al tuo circuito cliccando sulle parole Circuito senza titolo e digitando un nome. Clicca il segno di spunta per salvare il nome.

  3. (Facoltativo) Personalizza la tua area di lavoro:

    • Usa il menu Visualizza per passare dal tema predefinito a un tema monocromatico. Puoi anche scegliere quali pannelli includere nell'area di lavoro, poi usa il menu nell'angolo destro di qualsiasi pannello per accedere alle opzioni di ulteriore personalizzazione. Le opzioni per mostrare o nascondere i dischi di fase, scegliere l'allineamento dei qubit nel circuito e ripristinare l'area di lavoro predefinita si trovano nel menu Visualizza.
    • Passa tra il tema scuro e quello chiaro nell'angolo in basso a destra del piè di pagina.

Per costruire un circuito, puoi trascinare e rilasciare le operazioni oppure inserire codice OpenQASM nell'editor di codice.

2. Costruire il circuito con il trascinamento

Catalogo delle operazioni

Trascina e rilascia le operazioni dal catalogo sui registri quantistici e classici. Clicca sull'icona di ricerca e inserisci un termine nella barra di ricerca per trovare rapidamente un'operazione.

Comprimi ed espandi il catalogo delle operazioni cliccando sull'icona nell'angolo in alto a destra del pannello delle operazioni. Clicca l'icona accanto per passare tra la visualizzazione a griglia e quella a elenco del catalogo.

Fai clic destro sull'icona di un'operazione e seleziona Info per visualizzarne la definizione, insieme al suo riferimento QASM.

Per annullare o ripetere un'azione, usa le frecce curve nella barra degli strumenti.

Allineamento

Scegli l'allineamento Libero per posizionare le operazioni in qualsiasi punto del circuito. Per una visualizzazione più compatta del circuito, scegli l'allineamento A sinistra. Per vedere l'ordine di esecuzione delle operazioni, scegli l'allineamento A livelli, che applica l'allineamento a sinistra e aggiunge delimitatori di colonna che indicano l'ordine di esecuzione, da sinistra a destra e dall'alto verso il basso.

Una volta inserite le operazioni nel circuito, puoi continuare a trascinarle e rilasciarle in nuove posizioni.

Copia e incolla

Clicca su un'operazione e usa le icone nel menu contestuale per copiarla e incollarla.

Selezionare più operazioni

Puoi selezionare più operazioni per copiarle e incollarle, spostarle in una nuova posizione o raggrupparle in un'operazione unitaria personalizzata che compare nel catalogo delle operazioni e funziona come un singolo gate.

Per selezionare più di un'operazione, posiziona il cursore appena fuori da una delle operazioni, poi clicca e trascina sull'area da selezionare. Tieni premuto Maiusc e clicca sulle singole operazioni per selezionarle o deselezionarle. Una linea tratteggiata delimita l'insieme delle operazioni che stai selezionando, e ogni operazione effettivamente inclusa nella selezione è evidenziata in blu.

Ad esempio, nell'immagine seguente sono selezionati il gate Hadamard su q1 e il gate CX. Il gate Hadamard su q0 non è selezionato.

Un insieme di operazioni selezionate.

Seleziona Copia dal menu contestuale per copiare il gruppo.

Per incollare il gruppo di operazioni, fai clic destro nel circuito e seleziona Incolla.

Costruire un'operazione personalizzata con la funzione di raggruppamento

Per raggruppare più operazioni e salvarle come operazione personalizzata, seleziona prima le operazioni come descritto sopra, poi scegli Raggruppa dal menu contestuale. Ti verrà chiesto di dare un nome all'operazione personalizzata oppure puoi accettare il nome predefinito. Clicca OK e l'operazione personalizzata sarà rappresentata da un singolo riquadro, sia nel circuito che nel catalogo delle operazioni.

Ora puoi trascinare e rilasciare la nuova operazione nel circuito. Nota che l'operazione è salvata in questo circuito ma non compare nel catalogo delle operazioni degli altri circuito.

Puoi anche costruire un'operazione personalizzata direttamente nell'editor di codice OpenQASM; vedi Creare un'operazione personalizzata in OpenQASM per ulteriori informazioni.

Separare un'operazione personalizzata o predefinita

Per separare i gate all'interno di un'operazione personalizzata o predefinita, clicca sull'operazione nel Composer e seleziona Separa dal menu contestuale. Ora puoi spostare le singole operazioni separatamente. Quando separi un'operazione, ogni elemento del precedente gruppo viene eseguito in modo indipendente, il che potrebbe significare che vengono eseguiti in un ordine diverso rispetto a quando erano raggruppati.

Espandere la definizione di un'operazione

Per visualizzare le operazioni che costituiscono un'operazione personalizzata o predefinita senza separarle, clicca su Espandi definizione nel menu contestuale per vedere i gate che la compongono. Clicca di nuovo sull'icona per comprimere la definizione.

Rinominare o eliminare un'operazione personalizzata

Per rinominare o eliminare un'operazione personalizzata, fai clic destro sull'operazione nel catalogo delle operazioni e seleziona Rinomina o Elimina. Eliminare un'operazione personalizzata dal catalogo delle operazioni elimina anche tutte le sue istanze nel circuito.

Eliminare un'operazione personalizzata dal circuito stesso non la elimina dal catalogo delle operazioni; puoi eliminare un'operazione personalizzata dal catalogo solo usando il clic destro e selezionando Elimina.

Aggiungere o rimuovere registri

Per aggiungere o rimuovere registri quantistici o classici, clicca su Modifica → Gestisci registri. Puoi aumentare o diminuire il numero di qubit o bit nel circuito e rinominare i registri. Clicca Ok per applicare le modifiche. Puoi anche cliccare direttamente sul nome del registro (ad esempio q[0]) e usare le opzioni nel menu contestuale per aggiungere o eliminare rapidamente registri o qubit.

Aggiungere un condizionale

Per aggiungere un condizionale a un gate, trascina l'operazione if sul gate e imposta i parametri nel pannello Modifica operazione che si apre automaticamente. Puoi anche fare doppio clic su un gate per accedere al pannello Modifica operazione e impostare i parametri condizionali in quel modo.

Aggiungere un modificatore di controllo

Un modificatore di controllo produce un gate la cui operazione originale dipende dallo stato del qubit di controllo. Per maggiori dettagli, fai clic destro sul simbolo del modificatore di controllo nel catalogo delle operazioni, poi clicca Info.

Trascina il modificatore di controllo su un gate per aggiungere un controllo. Un punto appare sul qubit di controllo e una linea lo collega al qubit bersaglio. Per modificare quale qubit è il controllo o il bersaglio, clicca sul gate e seleziona l'icona Modifica operazione (oppure fai doppio clic sul gate) per aprire il pannello Modifica operazione, poi specifica i parametri. Dal pannello Modifica operazione puoi anche rimuovere un controllo da un qubit cliccando la x accanto al nome del qubit.

Visualizzare con i dischi di fase nel circuito

Per visualizzare lo stato di tutti i qubit in qualsiasi punto del circuito, trascina l'icona del disco di fase dal catalogo delle operazioni e posizionala in qualsiasi punto del circuito. Vengono aggiunte una colonna di operazioni barriera e una colonna di dischi di fase (un'operazione barriera e un disco di fase per ogni qubit). Passa il cursore su ciascun disco di fase per leggere lo stato del qubit in quel punto del circuito. Nota che l'aggiunta dei dischi di fase non altera il circuito; sono semplicemente uno strumento di visualizzazione.

Scopri di più sulla visualizzazione del disco di fase qui.

Esportare un'immagine del circuito

Per esportare un'immagine del circuito, seleziona File → Esporta immagine circuito. Si apre la finestra Opzioni di esportazione, dove puoi scegliere un tema (chiaro, scuro, bianco su nero o nero su bianco), un formato (.svg o .png) e se applicare un ritorno a capo. Dopo aver scelto le opzioni, clicca Esporta.

3. Costruire il circuito con il codice OpenQASM

nota

IBM Quantum Composer supporta attualmente OpenQASM 2.0.

IstruzioneDescrizioneEsempio
OPENQASM 2.0;Indica un file in formato OpenQASM (vedi [a])OPENQASM 2.0;
qreg name[size];Dichiara un registro nominato di qubitqreg q[5];
creg name[size];Dichiara un registro nominato di bitcreg c[5];
include "filename";Apre e analizza un altro file sorgenteinclude "qelib1.inc";
gate name(params) qargsDichiara un gate unitario(vedi testo del documento)
opaque name(params) qargs;Dichiara un gate opaco(vedi testo del documento)
// comment textCommenta una riga di testo// oops!
U(theta,phi,lambda) qubit|qreg;Applica i gate a singolo qubit predefiniti (vedi [b])U(pi/2,2*pi/3,0) q[0];
CX qubit|qreg,qubit|qreg;Applica i gate CNOT predefinitiCX q[0],q[1];
measure qubit|qreg -> bit|creg;Esegue misurazioni nella base ZZmeasure q -> c;
reset qubit|qreg;Prepara il qubit nello stato 0\vert 0\ranglereset q[0];
gatename(params) qargs;Applica un gate unitario definito dall'utentecrz(pi/2) q[1],q[0];
if(creg==int) qop;Applica un'operazione quantistica in modo condizionaleif(c==5) CX q[0],q[1];
barrier qargs;Impedisce le trasformazioni attraverso questa riga sorgentebarrier q[0],q[1];

[a] Deve comparire come prima riga non commentata del file.

[b] I parametri theta, phi e lambda sono forniti come espressioni parametriche; per ulteriori informazioni, vedi pagina 5 del documento e l'Appendice A.

Creare un'operazione personalizzata in OpenQASM

Puoi definire nuove operazioni unitarie nell'editor di codice (vedi la figura seguente per un esempio). Le operazioni vengono applicate usando l'istruzione name(params) qargs;, proprio come le operazioni predefinite. Le parentesi sono facoltative se non ci sono parametri.

Per definire un'operazione personalizzata, inseriscila nell'editor di codice OpenQASM usando questo formato: gatename(params) qargs;. Se clicchi su +Aggiungi nell'elenco delle operazioni, ti verrà chiesto di inserire un nome per l'operazione personalizzata, che potrai poi costruire nell'editor di codice.

Una volta definita l'operazione personalizzata, trascinala nell'editor grafico e usa l'icona di modifica per regolare i parametri con precisione.

Esempio di operazione personalizzata
I gate da includere nell'operazione personalizzata:gate nell'operazione personalizzata
Il codice per la nuova operazione:Nuova operazione personalizzata
La nuova operazione nell'editor grafico:Nuova operazione

4. Ispezionare il circuito passo dopo passo

La modalità di ispezione svela il funzionamento interno dei circuiti che crei. Avanza passo dopo passo attraverso una simulazione del circuito, un livello alla volta, in modo che tu possa vedere lo stato dei qubit mentre il calcolo si evolve.

  • Nel menu Visualizza, seleziona i pannelli per le visualizzazioni che vuoi usare.

  • Clicca sull'interruttore Ispeziona nella barra degli strumenti. Nota che una volta attivata la modalità di ispezione, non puoi aggiungere altre operazioni finché non viene disattivata.

  • Se hai costruito il circuito con l'allineamento Libero attivo, nota che la modalità di ispezione attiva automaticamente l'allineamento A sinistra.

  • Per avanzare passo dopo passo attraverso le visualizzazioni dei componenti del circuito, usa i pulsanti avanti e indietro.

Controlli per avanzare e tornare indietro, e per saltare all'inizio o alla fine di un circuito.

  • Per ispezionare solo alcune operazioni, clicca sulle operazioni che vuoi ispezionare: apparirà una sovrapposizione colorata su ciascuna per indicare che saranno incluse nell'esecuzione in modalità Ispeziona. Per deselezionare un'operazione, clicca di nuovo su di essa e la sovrapposizione scomparirà.

  • Per saperne di più sull'interpretazione delle visualizzazioni, vedi l'argomento Visualizzazioni.

  • Per uscire dalla modalità di ispezione e tornare alla modifica del circuito, clicca sull'interruttore Ispeziona nella barra degli strumenti.

Casualità nel simulatore

Il simulatore introduce casualità generando risultati basati su un seed. Il seed è il valore iniziale introdotto nell'algoritmo che genera numeri pseudocasuali. Puoi vedere il numero del seed selezionando "Seed delle visualizzazioni" dal menu Modifica. Puoi anche impostare il seed manualmente cambiando il valore nella casella.

Eseguire circuito e visualizzare i risultati

Segui i passaggi seguenti per eseguire circuiti quantistici su QPU e visualizzare i risultati.

Scegliere le impostazioni del job

Clicca su Esegui Circuit nell'angolo in alto a destra. Nella finestra che si apre, seleziona una QPU disponibile. Puoi anche scegliere un'istanza, associata a un piano (come i piani Open, Flex o Premium). L'istanza scelta influisce sulle QPU disponibili. Clicca il link "Visualizza dettagli" nella tabella delle QPU per vedere ulteriori informazioni su ciascuna QPU.

In seguito, puoi impostare il numero di shot (esecuzioni) del circuito che il Backend eseguirà.

Puoi facoltativamente assegnare un nome al job e aggiungere tag in questo pannello. Questo non cambierà il nome del circuito. Un tag "Composer" precompilato rende più facile filtrare la tabella dei Workload per i job del Composer. Puoi rimuovere questo tag.

Finestra con le opzioni del job.

nota

Quando esegui un circuito, viene inviato automaticamente alla QPU meno occupata, a meno che non ne specifichi una nelle impostazioni di esecuzione. Se esegui di nuovo lo stesso circuito, la finestra di selezione della QPU ripartirà dall'ultima scelta.

Cliccare "Esegui su (nome QPU)"

Puoi visualizzare l'avanzamento del job cliccando il pulsante "Visualizza job" nell'angolo in alto a destra, che aprirà la pagina Workload in IBM Quantum Platform.

Visualizzare i risultati

Una volta completato il job, i dettagli vengono aggiornati nella tabella Workload in IBM Quantum Platform.

La pagina dei risultati dei Job mostra i dettagli dell'esecuzione, i diagrammi del circuito originale e di quello transpilato, un istogramma dei risultati e le schede OpenQASM e Qiskit per visualizzare sia il circuito originale che quello transpilato in OpenQASM o Qiskit.

Puoi scaricare i circuiti e l'istogramma cliccando sul menu nell'angolo in alto a destra di ciascun diagramma, poi selezionando un formato per il download (PNG, PDF o SVG; inoltre puoi esportare l'istogramma come file CSV). Puoi aprire i circuiti OpenQASM direttamente nel Composer.

Visualizzazioni

Le visualizzazioni live in IBM Quantum Composer mostrano diverse viste di come i circuiti quantistici influenzano lo stato di un insieme di qubit. Ogni tipo di visualizzazione live è spiegato nel dettaglio di seguito.

Casualità nel simulatore

Le visualizzazioni live provengono da un simulatore del vettore di stato a singola misurazione, che è diverso dalla QPU specificata nelle impostazioni di esecuzione, che può avere più shot. Il simulatore introduce casualità generando risultati basati su un seed. Il seed è il valore iniziale introdotto nell'algoritmo che genera numeri pseudocasuali. Puoi vedere il numero del seed selezionando "Seed delle visualizzazioni" dal menu Modifica. Puoi anche impostare il seed manualmente cambiando il valore nella casella.

Visualizzare le visualizzazioni

Le visualizzazioni live sono mostrate in finestre nella parte inferiore dell'area di lavoro del Composer (eccetto il disco di fase, che appare alla fine di ciascun filo di qubit). Puoi scegliere qualsiasi combinazione di visualizzazioni vettore di stato, probabilità e q-sphere da mostrare nella parte inferiore dell'area di lavoro. Seleziona o deseleziona le visualizzazioni nel menu Visualizza.

Scaricare le visualizzazioni

Scarica una delle visualizzazioni nella parte inferiore dell'area di lavoro del Composer cliccando sul menu "Altre opzioni" nella finestra di visualizzazione. Puoi scaricare le visualizzazioni come SVG, PNG o CSV dei dati sottostanti. Puoi anche scaricare le immagini di visualizzazione delle probabilità di misurazione e degli istogrammi del vettore di stato come PDF.

Disco di fase

Lo stato di un singolo qubit può essere rappresentato come

ψ=1p0+ejφp1,\begin{split}\vert\psi\rangle = \sqrt{1-p}\vert0\rangle + e^{j\varphi} \sqrt{p} \vert1\rangle,\end{split}

dove pp è la probabilità che il qubit si trovi nello stato 1|1\rangle, e φ\varphi è la fase quantistica. pp è strettamente analoga a un bit probabilistico classico. Per p=0p=0 il qubit è nello stato 0|0\rangle, per p=1p=1 il qubit è nello stato 1|1\rangle, e per p=1/2p=1/2 il qubit è in una miscela 50/50. Chiamiamo questa condizione sovrapposizione perché, a differenza dei bit classici, questa miscela può avere una fase quantistica. Il disco di fase visualizza questo stato.

Il disco di fase alla fine di ciascun qubit in IBM Quantum Composer fornisce lo stato locale di ogni qubit al termine del calcolo. I componenti del disco di fase sono descritti di seguito.

Probabilità che il qubit si trovi nello stato 1|1\rangle

La probabilità che il qubit si trovi nello stato 1|1\rangle è rappresentata dal riempimento blu del disco.

probabilità che il qubit si trovi nello stato 1

Fase quantistica

La fase quantistica dello stato del qubit è indicata dalla linea che si estende dal centro del diagramma al bordo del disco grigio (che ruota in senso antiorario attorno al punto centrale).

fase dello stato locale del qubit

Esempio: dischi di fase per due qubit diversi

esempi di disco di fase

Due esempi della visualizzazione del disco di fase. Il primo esempio è uno stato 1|1\rangle e il secondo mostra lo stato (01)/2(|0\rangle-|1\rangle)/\sqrt{2} con una fase relativa non nulla.

Connessione con la sfera di Bloch

Il disco di fase, che contiene tutte le informazioni della sfera di Bloch, è una rappresentazione bidimensionale di un qubit. Per convertire nella rappresentazione della sfera di Bloch: x=2p(1p)Re[ejφ]x=2\sqrt{p(1-p)}\mathrm{Re}[e^{j\varphi} ], y=2p(1p)Im[ejφ]y=2\sqrt{p(1-p)}\mathrm{Im}[e^{j\varphi} ] e z=12pz=1-2p.

Stati a N qubit: massimo 15 qubit

Uno stato quantistico a N qubit assume la forma

ψ=1p0...0+k=12N1ejφkpkk,\begin{split}\vert\psi\rangle = \sqrt{1-p}\vert0...0\rangle + \sum_{k=1}^{2^N-1}e^{j\varphi_k} \sqrt{p_k} \vert k\rangle,\end{split}

dove pkp_k è la probabilità che i qubit si trovino nello stato k|k\rangle con fase quantistica φk\varphi_k rispetto allo stato 0...0|0...0\rangle. p=k0pkp=\sum_{k\neq0}p_k è la probabilità che i qubit non si trovino nello stato fondamentale 0...0|0...0\rangle. È facile vedere che per uno stato quantistico a N qubit ci sono 2N12^N-1 probabilità e 2N12^N-1 fasi. Il disco di fase non riesce a rappresentare questo stato, poiché i dischi di fase a N qubit conterrebbero solo NN probabilità e NN fasi; questo perché la maggior parte degli stati è entangled e non è separabile in stati quantistici a singolo qubit indipendenti. Per indicare che la visualizzazione non contiene le informazioni complete, introduciamo la purezza ridotta come componente del disco di fase.

Purezza ridotta dello stato del qubit

Il raggio dell'anello nero rappresenta la purezza ridotta dello stato del qubit, che per il qubit jj in uno stato a NN qubit ψ|\psi\rangle è data da Tr[Trij[ψψ]2]\mathrm{Tr}\left[\mathrm{Tr}_{i\neq j}[\left|\psi\rangle\langle\psi\right|\right]^{2}]. La purezza ridotta per un singolo qubit è nell'intervallo [0.5,1][0.5, 1]; un valore di uno indica che il qubit non è entangled con nessun altro sistema. Al contrario, una purezza ridotta di 0.50.5 indica che il qubit si trova in uno stato completamente misto, con un certo livello di entanglement con gli N1N-1 qubit rimanenti e, possibilmente, anche con l'ambiente.

purezza dello stato del qubit

Vista Probabilità

Limite di 8 qubit

Questa vista visualizza le probabilità dello stato quantistico come un grafico a barre. L'asse orizzontale etichetta gli stati della base computazionale. L'asse verticale misura le probabilità in termini percentuali. In questa vista le fasi quantistiche non sono rappresentate, risultando quindi una rappresentazione incompleta. È tuttavia utile per prevedere i risultati se ogni qubit viene misurato e il valore memorizzato nel proprio bit classico.

Considera il seguente circuito quantistico e la sua vista Probabilità:

un circuito quantistico

vista probabilità di misurazione

Il circuito porta i due qubit nello stato ψ=(00+01+1011)/2.|\psi\rangle = (|00\rangle + |01\rangle+ |10\rangle-|11\rangle) / 2. Gli stati della base computazionale sono 00,10,01,|00\rangle, |10\rangle, |01\rangle, e 11.|11\rangle. Le probabilità per ciascuno degli stati computazionali è 1/4.

Vista Q-sphere

Limite di 5 qubit

La q-sphere rappresenta lo stato di un sistema di uno o più qubit associando ciascuno stato della base computazionale a un punto sulla superficie di una sfera. In ciascun punto è visibile un nodo. Il raggio di ogni nodo è proporzionale alla probabilità (pkp_k) del suo stato di base, mentre il colore del nodo indica la fase quantistica (φk\varphi_k).

I nodi sono disposti sulla q-sphere in modo che lo stato di base con tutti zeri (ad es. 000|000\rangle) si trovi al polo nord, e lo stato di base con tutti uno (ad es. 111|111\rangle) si trovi al polo sud. Gli stati di base con lo stesso numero di zeri (o uno) si trovano sulla stessa latitudine della q-sphere (ad es. 001,010,100|001\rangle, |010\rangle, |100\rangle). Partendo dal polo nord della q-sphere e procedendo verso sud, ogni latitudine successiva contiene stati di base con un numero maggiore di uno; la latitudine di uno stato di base è determinata dalla sua distanza di Hamming dallo stato zero. La q-sphere contiene informazioni complete sullo stato quantistico in una rappresentazione compatta.

Considera il seguente circuito quantistico e la sua q-sphere, che rappresenta lo stato creato dal circuito:

un circuito quantistico

vista q-sphere

Puoi selezionare, tenere premuto e trascinare per ruotare la q-sphere. Per riportare la q-sphere all'orientamento predefinito, seleziona il pulsante freccia di riavvolgimento in alto a destra della q-sphere.

Qual è la differenza tra una sfera di Bloch e una q-sphere?

È importante sottolineare che la q-sphere non è la stessa cosa della sfera di Bloch, nemmeno per un singolo qubit. Infatti, come il disco di fase, la sfera di Bloch offre una visione locale dello stato quantistico, in cui ogni qubit è osservato singolarmente. Quando si cerca di capire come si comportano i registri di qubit (stati multi-qubit) sotto l'applicazione di circuiti quantistici, è più illuminante adottare una visione globale e osservare lo stato quantistico nella sua interezza. La q-sphere fornisce una rappresentazione visiva dello stato quantistico, e quindi questo punto di vista globale. Pertanto, quando si esplorano applicazioni e algoritmi quantistici su un piccolo numero di qubit, la q-sphere dovrebbe essere il metodo di visualizzazione principale.

Vista Vettore di stato

Limite di 6 qubit

È comune chiamare pkeiφk\sqrt{p_k}e^{i\varphi_k} l'ampiezza quantistica. Questa vista visualizza le ampiezze quantistiche come un grafico a barre. L'asse orizzontale etichetta gli stati della base computazionale. L'asse verticale misura la magnitudine delle ampiezze (pk\sqrt{p_k}) associate a ciascuno stato della base computazionale. Il colore di ciascuna barra rappresenta la fase quantistica (φk{\varphi_k}).

Considera il seguente circuito quantistico e la sua vista Vettore di stato:

un circuito quantistico

vista vettore di stato

Il circuito porta i due qubit nello stato ψ=(00+01+1011)/2|\psi\rangle = (|00\rangle + |01\rangle+ |10\rangle-|11\rangle) / 2. Gli stati della base computazionale sono 00|00\rangle, 10|10\rangle, 01|01\rangle e 11|11\rangle. Le magnitudini delle ampiezze sono 1/21/2, e le fasi quantistiche rispetto allo stato fondamentale sono 00 per 01|01\rangle e 10|10\rangle, e π\pi per 11|11\rangle.

Glossario delle operazioni del Composer

Questa pagina è un riferimento che definisce le varie operazioni classiche e quantistiche che puoi usare per manipolare i qubit in un circuito quantistico. Le operazioni quantistiche includono i gate quantistici, come il gate di Hadamard, nonché operazioni che non sono gate quantistici, come l'operazione di misura.

Ogni voce qui sotto fornisce dettagli e il riferimento OpenQASM per ciascuna operazione. Consulta la sezione Costruisci il tuo circuito con il codice OpenQASM per ulteriori informazioni.

L'immagine della q-sphere in ogni voce del gate mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}|i\rangle, dove nn è il numero di qubit necessari per supportare il gate. Consulta la sezione q-sphere per ulteriori informazioni su questa visualizzazione.

Puoi definire un'operazione personalizzata da usare in IBM Quantum Composer. Per le istruzioni, consulta la sezione Crea un'operazione personalizzata in OpenQASM.

Colori dei Gate

I colori dei gate sono leggermente diversi nei temi chiaro e scuro. I colori del tema chiaro sono mostrati qui.

Clicca su un'operazione quantistica qui sotto per visualizzarne la definizione.

gate classici

gate NOT

Il gate NOT, noto anche come gate Pauli X, inverte lo stato 0\left|0\right\rangle in 1\left|1\right\rangle e viceversa. Il gate NOT è equivalente a RX per l'angolo π\pi, oppure a 'HZH'.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
x_gatex q[0];image19La rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

gate CNOT

Il gate controlled-NOT, noto anche come gate controlled-x (CX), agisce su una coppia di qubit: uno funge da 'controllo' e l'altro da 'bersaglio'. Esegue un NOT sul qubit bersaglio ogni volta che il qubit di controllo si trova nello stato 1\left|1\right\rangle. Se il qubit di controllo è in sovrapposizione, questo gate crea entanglement.

Tutti i circuiti unitari possono essere decomposti in gate a qubit singolo e gate CNOT. Poiché il gate CNOT a due qubit richiede molto più tempo di esecuzione sull'hardware reale rispetto ai gate a qubit singolo, il costo di un circuito viene talvolta misurato in numero di gate CNOT.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
CX-Gatecx q[0], q[1];image19La rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

gate di Toffoli

Il gate di Toffoli, noto anche come gate double controlled-NOT (CCX), ha due qubit di controllo e uno di bersaglio. Applica un NOT al qubit bersaglio solo quando entrambi i controlli si trovano nello stato 1\left|1\right\rangle.

Il gate di Toffoli insieme al gate di Hadamard costituisce un insieme di gate universale per il calcolo quantistico.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
ccx-gateccx q[0], q[1], q[2];ccx_qsphLa rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

gate SWAP

Il gate SWAP scambia gli stati di due qubit.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
SWAP gateswap q[0], q[1];swap_qsphLa rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

gate identità

Il gate identità (talvolta chiamato gate Id o gate I) è in realtà l'assenza di un gate. Garantisce che non venga applicata alcuna operazione a un qubit per un'unità di tempo di gate.

Riferimento ComposerRiferimento QASM
Identity gateid q[0];

gate di fase

gate T

Il gate T è equivalente a RZ per l'angolo π/4\pi/4. I computer quantistici fault-tolerant compileranno tutti i programmi quantistici riducendoli al solo gate T e al suo inverso, oltre ai gate di Clifford.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
t_gatet q[0];image29La rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

gate S

Il gate S applica una fase di ii allo stato 1\left|1\right\rangle. È equivalente a RZ per l'angolo π/2\pi/2. Nota che S=P(π/2\pi/2).

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
s_gates q[0];image25La rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

gate Z

Il gate Pauli Z agisce come identità sullo stato 0\left|0\right\rangle e moltiplica il segno dello stato 1\left|1\right\rangle per -1. Di conseguenza, inverte gli stati +\left|+\right\rangle e \left|-\right\rangle. Nella base +/-, svolge lo stesso ruolo del gate NOT nella base 0\left|0\right\rangle/1\left|1\right\rangle.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
z_gatez q[0];image23La rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

gate TT^{\dagger}

Noto anche come gate Tdg o T-dagger.

L'inverso del gate T.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
T-dagger gatetdg q[0];image31La rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

gate SS^{\dagger}

Noto anche come gate Sdg o S-dagger.

L'inverso del gate S.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
S-dagger gatesdg q[0];image27La rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

gate di fase

Il gate di fase (precedentemente chiamato gate U1) applica una fase di eiθe^{i\theta} allo stato 1\left|1\right\rangle. Per certi valori di θ\theta, è equivalente ad altri gate. Ad esempio, P(π\pi)=Z, P(π\pi/22)=S e P(π/4\pi/4)=T. A meno di una fase globale di eiθ/2e^{i\theta/2}, è equivalente a RZ(θ\theta).

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
p_gatep(theta) q[0];p_qsphLa rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

In IBM Quantum Composer, il valore predefinito di theta è π/2\pi/2.

gate RZ

Il gate RZ implementa exp(iθ2Z)exp(-i\frac{\theta}{2}Z). Sulla sfera di Bloch, questo gate corrisponde a una rotazione dello stato del qubit attorno all'asse z dell'angolo specificato.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
rz_gaterz(angle) q[0];image17La rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

In IBM Quantum Composer, il valore predefinito di angle è π/2\pi/2. Questo è quindi l'angolo utilizzato nella visualizzazione q-sphere.

Operatori non unitari e modificatori

Operazione di reset

L'operazione di reset riporta un qubit allo stato 0\left|0\right\rangle, indipendentemente dallo stato in cui si trovava prima dell'operazione. Non è un'operazione reversibile.

Riferimento ComposerRiferimento OpenQASM
0-operareset q[0];

Misura

Misura nella base standard, nota anche come base z o base computazionale. Può essere usata per implementare qualsiasi tipo di misura se combinata con gate. Non è un'operazione reversibile.

Riferimento ComposerRiferimento OpenQASM
Measurement in the standard or z basismeasure q[0];

Modificatore di controllo

Un modificatore di controllo genera un gate la cui operazione originale dipende dallo stato del qubit di controllo. Quando il controllo si trova nello stato 1|1\rangle, i qubit bersaglio subiscono l'evoluzione unitaria specificata. Se invece il controllo è nello stato 0|0\rangle, non viene eseguita alcuna operazione. Se il qubit di controllo è in uno stato di sovrapposizione, l'operazione risultante segue per linearità.

Trascina il modificatore di controllo su un gate per aggiungere un controllo. Sopra e sotto il gate appariranno dei punti, sui fili del qubit che possono essere bersagli del controllo; clicca su uno o più punti per assegnare il bersaglio a uno o più qubit. Puoi anche assegnare un controllo facendo clic destro su un gate.

Per rimuovere un controllo, fai clic destro sul gate e seleziona l'opzione per rimuovere il controllo.

Riferimento ComposerRiferimento OpenQASM
Control modifierc

Operazione barrier

Per rendere il tuo programma quantistico più efficiente, il compilatore cercherà di combinare i gate. La barrier è un'istruzione al compilatore che impedisce queste combinazioni. È inoltre utile per le visualizzazioni.

Riferimento ComposerRiferimento OpenQASM
barrierbarrier q;

gate di Hadamard

gate H

Il gate H, o gate di Hadamard, ruota gli stati 0\left|0\right\rangle e 1\left|1\right\rangle rispettivamente in +\left|+\right\rangle e \left|-\right\rangle. È utile per creare sovrapposizioni. Se disponi di un insieme di gate universale su un computer classico e aggiungi il gate di Hadamard, ottieni un insieme di gate universale per un computer quantistico.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
h-gateh q[0];image1La rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

gate quantistici

gate X\sqrt{X}

Noto anche come gate NOT radice quadrata.

Questo gate implementa la radice quadrata di X, X\sqrt{X}. Applicarlo due volte di seguito produce il gate Pauli-X standard (gate NOT). Come il gate di Hadamard, X\sqrt{X} crea uno stato di uguale sovrapposizione se il qubit si trova nello stato 0|0\rangle, ma con una fase relativa diversa. Su alcuni hardware, è un gate nativo che può essere implementato con un impulso π/2\pi/2 o X90.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
sx_gatesx q[0];sx_qsphLa rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

gate X\sqrt{X}^{\dagger}

Noto anche come gate SXdg o gate NOT-dagger radice quadrata.

È l'inverso del gate X\sqrt{X}. Applicarlo due volte di seguito produce il gate Pauli-X (gate NOT), poiché il gate NOT è il proprio inverso. Come il gate X\sqrt{X}, questo gate può essere usato per creare uno stato di uguale sovrapposizione, ed è anch'esso implementato nativamente su alcuni hardware tramite un impulso X90.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
sxdg_gatesxdg q[0];sxdg_qsphLa rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

gate Y

Il gate Pauli Y è equivalente a Ry per l'angolo π\pi. È equivalente all'applicazione di X e Z, a meno di un fattore di fase globale.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
y_gatey q[0];image21La rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

gate RX

Il gate RX implementa exp(iθ2X)exp(-i\frac{\theta}{2}X). Sulla sfera di Bloch, questo gate corrisponde a una rotazione dello stato del qubit attorno all'asse x dell'angolo specificato.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
rx_gaterx(angle) q[0];image13La rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

In IBM Quantum Composer, il valore predefinito di angle è π/2\pi/2. Questo è quindi l'angolo utilizzato nella visualizzazione q-sphere.

gate RY

Il gate RY implementa exp(iθ2Y)exp(-i\frac{\theta}{2}Y). Sulla sfera di Bloch, questo gate corrisponde a una rotazione dello stato del qubit attorno all'asse y dell'angolo specificato e non introduce ampiezze complesse.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
ry_gatery(angle) q[0];image15La rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

In IBM Quantum Composer, il valore predefinito di angle è π/2\pi/2. Questo è quindi l'angolo utilizzato nella visualizzazione q-sphere qui sotto.

gate RXX

Il gate RXX implementa exp(iθ/2XX)\exp(-i \theta/2 X \otimes X). Il gate di Mølmer–Sørensen, il gate nativo dei sistemi a trappola ionica, può essere espresso come somma di gate RXX.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
rxx-gaterxx(angle) q[0], q[1];rxx_qsphLa rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

In IBM Quantum Composer, il valore predefinito di angle è π/2\pi/2.

gate RZZ

Il gate RZZ richiede un solo parametro: un angolo espresso in radianti. Questo gate è simmetrico: scambiare i due qubit su cui agisce non cambia nulla.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
rzz_gaterzz(angle) q[0], q[1];rzz_qsphLa rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

In IBM Quantum Composer, il valore predefinito di angle è π/2\pi/2.

gate U

(Precedentemente chiamato gate U3) I tre parametri consentono la costruzione di qualsiasi gate a qubit singolo. Ha una durata di un'unità di tempo di gate.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
u_gateu(theta, phi, lam) q[0];u3_qsphLa rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

In IBM Quantum Composer, il valore predefinito di angle è π/2\pi/2.

gate RCCX

Il gate di Toffoli semplificato, detto anche gate di Margolus.

Il gate di Toffoli semplificato implementa il gate di Toffoli a meno di fasi relative. Questa implementazione richiede tre gate CX, che è il numero minimo possibile, come mostrato in https://arxiv.org/abs/quant-ph/0312225. Nota che il gate di Toffoli semplificato non è equivalente al gate di Toffoli, ma può essere usato nei contesti in cui il gate di Toffoli viene successivamente decomposto di nuovo.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
rccx-gaterccx a, b, c;rccx_qsphLa rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.

gate RC3X

Il gate di Toffoli a 3 controlli semplificato.

Il gate di Toffoli semplificato implementa il gate di Toffoli a meno di fasi relative. Nota che il gate di Toffoli semplificato non è equivalente al gate di Toffoli, ma può essere usato nei contesti in cui il gate di Toffoli viene successivamente decomposto di nuovo.

Riferimento ComposerRiferimento OpenQASMQ-sphereNota sulle rappresentazioni q-sphere
rc3x-gaterc3x a, b, c, d;rc3x_qsphLa rappresentazione q-sphere mostra lo stato dopo che il gate opera sullo stato iniziale di uguale sovrapposizione 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, dove nn è il numero di qubit necessari per supportare il gate.