IBM Compositore quantistico
Cos'è?
IBM Quantum® Composer è uno strumento grafico di programmazione quantistica che consente di trascinare e rilasciare operazioni per costruire circuiti quantistici ed eseguirli su hardware quantistico.
Cosa può fare?
Visualizzare gli stati dei qubit
Osservate come le modifiche apportate al vostro circuito influiscono sullo stato dei qubit, visualizzati come una q-sfera interattiva, o come istogrammi che mostrano le probabilità di misurazione o le simulazioni del vettore di stato.
Esecuzione su hardware quantistico
Eseguite i vostri circuiti su hardware quantistico reale per comprendere gli effetti del rumore del dispositivo.
Generare automaticamente il codice
Invece di scrivere il codice a mano, è possibile generare automaticamente il codice OpenQASM o Python che si comporta come il circuito creato con il Composer.
Tour dell'interfaccia
IBM Quantum Composer è un insieme di strumenti personalizzabili che consentono di costruire, visualizzare ed eseguire circuiti quantistici su unità di elaborazione quantistica (QPU). Utilizzare il menu "Altre opzioni" di ogni finestra per accedere a strumenti e azioni supplementari.
-
Catalogo delle operazioni - Sono gli elementi costitutivi dei circuiti quantistici. Trascinate queste porte e altre operazioni nell'editor grafico dei circuiti. I diversi tipi di cancelli sono raggruppati per colore. Ad esempio, le porte classiche sono blu scuro, le porte di fase sono blu chiaro e le operazioni non unitarie sono grigie.
Per conoscere le porte e le operazioni disponibili, fare clic con il pulsante destro del mouse su un'operazione e selezionare Info per leggerne la definizione.
-
Editor di codice - Utilizzare il menu Visualizza per aprire o chiudere l'editor di codice, che consente di visualizzare il codice OpenQASM o Qiskit del circuito. È possibile modificare il codice OpenQASM; il codice Qiskit è di sola lettura.
-
Editor grafico dei circuiti - Qui si costruisce un circuito. Trascinare porte e altre operazioni sui "fili" orizzontali dei qubit che costituiscono il registro quantico.
Per rimuovere un cancello da un filo, selezionarlo e fare clic sull'icona del cestino.
Per modificare i parametri e le impostazioni dei gate che supportano la modifica, selezionare il gate nell'editor grafico e fare clic su Modifica.
-
Barra degli strumenti - Consente di accedere agli strumenti utilizzati più di frequente per annullare e rifare le azioni, modificare l'allineamento del gate e passare alla modalità di ispezione. Con la modalità Inspect, si vede una visione passo-passo degli stati dei qubit mentre la computazione del circuito si evolve. Per saperne di più, vedere Ispezione del circuito, passo dopo passo.
-
Dischi di fase - La fase del vettore di stato del qubit nel piano complesso è data dalla linea che si estende dal centro del diagramma al bordo del disco grigio (che ruota in senso antiorario attorno al punto centrale).
Utilizzare il menu Visualizza per mostrare o nascondere i dischi di fase.
-
Visualizzazioni - Le visualizzazioni caratterizzano il circuito mentre lo si costruisce. Utilizzano un simulatore di vettore di stato a colpo singolo, diverso dalla QPU specificata nelle impostazioni di "Run circuit". Si noti che le visualizzazioni ignorano le operazioni di misurazione aggiunte dall'utente. Accedere e fare clic su Esegui circuito per ottenere i risultati dal backend specificato.
Per saperne di più, consultate la sezione Visualizzazioni.
Costruisci, modifica e controlla circuiti quantistici
Se si desidera continuare a lavorare con un circuito in un secondo momento, assicurarsi di scaricare il file del circuito e memorizzarlo localmente prima di uscire dalla sessione corrente di Composer. Utilizzare il link "Salva file" nell'angolo in alto a destra, oppure accedere al menu File e scegliere "Salva file". Quando si è pronti a lavorare di nuovo con il circuito, andare al menu File e scegliere "Carica file.qasm", quindi navigare fino al file del circuito sul disco locale e fare clic su Apri.
1. Apri IBM Quantum Composer
- (Facoltativo) Se non si è ancora effettuato l'accesso a IBM Quantum, selezionare Accedi nell' angolo in alto a destra. Quindi, è possibile accedere o creare un account IBM Cloud.
Se non si effettua l'accesso, le visualizzazioni mostrano automaticamente i risultati simulati per un massimo di quattro qubit. Se si vuole eseguire il proprio circuito su un computer quantistico o se si vuole visualizzare un circuito con più di quattro qubit, è necessario registrarsi.
-
Aprire IBM Quantum Composer facendo clic sul collegamento nella navigazione della pagina di apprendimento. L'area di lavoro visualizza un circuito vuoto senza titolo. È possibile creare un nuovo circuito o caricare un file.qasm per continuare a lavorare con un circuito già creato.
-
Assegnare un nome al circuito facendo clic sulla dicitura Circuito senza titolo e digitando un nome per il circuito. Fare clic sul segno di spunta per salvare il nome.
-
(Facoltativo) Personalizzare l'area di lavoro:
- Utilizzare il menu Visualizza per passare dal tema predefinito a un tema monocromatico. È inoltre possibile selezionare i pannelli da includere nell'area di lavoro, quindi utilizzare il menu nell'angolo destro di ogni pannello per accedere alle opzioni di ulteriore personalizzazione. Nel menu Visualizza si trovano anche le opzioni per mostrare o nascondere i dischi di fase, scegliere l'allineamento dei qubit sul circuito e ripristinare l'area di lavoro ai valori predefiniti.
- Passare dal tema scuro a quello chiaro dell'area di lavoro nell'angolo in basso a destra del piè di pagina.
Per costruire un circuito, si possono trascinare le operazioni o inserire il codice OpenQASM nell'editor di codice.
2. Costruisci il tuo circuito con il drag-and-drop
Catalogo delle operazioni
Trascinare le operazioni dal catalogo delle operazioni ai registri quantistici e classici. Fare clic sull'icona di ricerca e inserire un termine nella barra di ricerca per trovare rapidamente un'operazione.
Per chiudere ed espandere il catalogo delle operazioni, fare clic sull'icona nell'angolo superiore destro del pannello delle operazioni. Fare clic sull'icona accanto per passare dalla visualizzazione a griglia a quella a elenco del catalogo.
Fare clic con il pulsante destro del mouse sull'icona di un'operazione e selezionare Info per visualizzare la definizione di un'operazione, insieme al suo riferimento QASM.
Per annullare o rifare, utilizzare le frecce curve della barra degli strumenti.
Allineamento
Scegliere l'allineamento Freeform per posizionare le operazioni in qualsiasi punto del circuito. Per una visione più compatta del circuito, scegliere l'allineamento a sinistra. Per vedere l'ordine di esecuzione delle operazioni, scegliere Allineamento livelli, che applicherà l'allineamento a sinistra e aggiungerà delineatori di colonna che indicano l'ordine di esecuzione, da sinistra a destra e dall'alto in basso.
Una volta che le operazioni sono state inserite nel circuito, è possibile continuare a trascinarle in nuove posizioni.
Copia e incolla
Fare clic su un'operazione e utilizzare le icone del menu contestuale per copiarla e incollarla.
Selezionare più operazioni
È possibile selezionare diverse operazioni per copiarle e incollarle, trascinarle in una nuova posizione o raggrupparle in un'operazione unitaria personalizzata che viene visualizzata nel catalogo delle operazioni e funziona come un unico cancello.
Per selezionare più di un'operazione, posizionare il cursore appena fuori da una delle operazioni, quindi fare clic e trascinare sull'area da selezionare. Fare clic su singole operazioni per selezionarle o deselezionarle. Una linea tratteggiata delinea l'insieme delle operazioni che si stanno selezionando, mentre ogni operazione che fa effettivamente parte della selezione è delineata 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.
Selezionare Copia dal menu contestuale per copiare il gruppo.
Per incollare il gruppo di operazioni, fare clic con il tasto destro del mouse sul circuito e selezionare Incolla.
Crea un'operazione personalizzata utilizzando la funzione di gruppo
Per raggruppare più operazioni e salvarle come operazioni personalizzate, selezionare prima le operazioni come descritto sopra, quindi selezionare Raggruppa dal menu contestuale. Viene richiesto di assegnare un nome all'operazione personalizzata o di accettare il nome predefinito. Facendo clic su OK, l'operazione personalizzata sarà rappresentata da una singola casella, sia nel circuito che nel catalogo delle operazioni.
Ora è possibile trascinare e rilasciare le nuove operazioni in tutto il circuito. Si noti che l'operazione viene salvata in questo circuito, ma non compare nel catalogo delle operazioni per altri circuiti.
È anche possibile creare un'operazione personalizzata direttamente nell'editor di codice di OpenQASM; per ulteriori informazioni, vedere Creare un'operazione personalizzata in OpenQASM.
Separa un'operazione personalizzata o predefinita
Per disaggregare i cancelli all'interno di un'operazione personalizzata o predefinita, fare clic sull'operazione nel Composer e selezionare Ungroup dal menu contestuale. È ora possibile spostare le operazioni separate singolarmente. Quando si disaggrega un'operazione, ogni elemento del gruppo precedente viene eseguito in modo indipendente, il che può significare che viene eseguito in un ordine diverso da quello in cui era stato raggruppato.
Espandi la definizione di un'operazione
Per visualizzare le operazioni che compongono un'operazione personalizzata o predefinita senza raggrupparle, fare clic su Espandi definizione dal menu contestuale per visualizzare le porte di definizione. Fare nuovamente clic sull'icona per chiudere la definizione.
Rinominare o eliminare un'operazione personalizzata
Per rinominare o eliminare un'operazione personalizzata, fare clic con il pulsante destro del mouse sull'operazione nel catalogo delle operazioni e selezionare Rinomina o Elimina. L'eliminazione di un'operazione personalizzata dal catalogo delle operazioni elimina anche tutte le sue istanze sul circuito.
L'eliminazione di un'operazione personalizzata dal circuito stesso non la elimina dal catalogo delle operazioni; è possibile eliminare un'operazione personalizzata dal catalogo solo facendo clic con il pulsante destro del mouse e selezionando Elimina.
Aggiungere o rimuovere registri
Per aggiungere o rimuovere i registri quantistici o classici, fare clic su Modifica → Gestisci registri. È possibile aumentare o diminuire il numero di qubit o bit nel circuito e rinominare i registri. Fare clic su Ok per applicare le modifiche. È anche possibile fare semplicemente clic sul nome del registro (ad esempio, q[0]) e utilizzare le opzioni del menu contestuale per aggiungere o eliminare rapidamente registri o qubit.
Aggiungi una condizione
Per aggiungere una condizione a un cancello, trascinare l'operazione if sul cancello e impostare i parametri nel pannello Modifica operazione che si apre automaticamente. È anche possibile fare doppio clic su un cancello per accedere al pannello Modifica operazione e impostare così i parametri condizionali.
Aggiungi un modificatore di controllo
Un modificatore di controllo produce un gate il cui funzionamento originale dipende ora dallo stato del qubit di controllo. Per ulteriori dettagli, fare clic con il pulsante destro del mouse sul simbolo del modificatore di controllo nel catalogo delle operazioni, quindi fare clic su Info.
Trascinare il modificatore di controllo su un gate per aggiungervi un controllo. Sul qubit di controllo appare un punto e una linea lo collega al qubit di destinazione. Per modificare il qubit di controllo o di destinazione, fare clic sul gate e selezionare l'icona Modifica operazione (o fare doppio clic sul gate) per aprire il pannello Modifica operazione, quindi specificare i parametri. Dal pannello Modifica operazione è possibile rimuovere un controllo da un qubit facendo clic sulla x accanto al nome del qubit.
Visualizza con dischi di fase in tutto il circuito
Per visualizzare lo stato di tutti i qubit in qualsiasi punto del circuito, trascinare l'icona del disco di fase dal catalogo delle operazioni e posizionarla in qualsiasi punto del circuito. Vengono aggiunte una colonna di operazioni di barriera e una colonna di dischi di fase (un'operazione di barriera e un disco di fase per qubit). Passare il mouse su ogni disco di fase per leggere lo stato del qubit in quel punto del circuito. Si noti che l'aggiunta dei dischi di fase non modifica il circuito, ma è solo uno strumento di visualizzazione.
Maggiori informazioni sulla visualizzazione del disco di fase.
Esporta un'immagine del circuito
Per esportare un'immagine del circuito, selezionare File → Esporta immagine circuito. Si apre la finestra Opzioni di esportazione, dove è possibile scegliere un tema (chiaro, scuro, bianco su nero o nero su bianco), un formato (.svg o.png) e se applicare un'interruzione di riga. Dopo aver scelto le opzioni, fare clic su Esporta.
3. Costruisci il tuo circuito con un codic OpenQASM
IBM Quantum Composer supporta attualmente OpenQASM 2.0.
- Per aprire l'editor di codice, fare clic su Visualizza → Pannelli → Editor codice.
- Per i riferimenti alle porte e ad altre operazioni, consultare il glossario delle operazioni di Composer all'indirizzo OpenQASM.
- È possibile definire operazioni personalizzate; vedere Creare un'operazione personalizzata in OpenQASM.
- Per ulteriori informazioni sull'uso del linguaggio OpenQASM, comprese linee di codice di esempio, consultare la guida Introduzione a OpenQASM, oppure leggere il documento di ricerca originale, Open Quantum Assembly Language. La tabella delle dichiarazioni in lingua OpenQASM del documento è riprodotta di seguito. La grammatica di OpenQASM è riportata nell' Appendice A del documento.
| Dichiarazione | Descrizione | Esempio |
|---|---|---|
OPENQASM 2.0; | Denota un file in formato OpenQASM (vedi [a] ) | OPENQASM 2.0; |
qreg [namesize]; | Dichiara un registro di qubit con nome | qreg [q5]; |
creg [namesize]; | Dichiara un registro di bit con nome | creg [c5]; |
includere il "nome del file"; | Aprire e analizzare un altro file sorgente | includere “qelib1.inc”; |
gate name(params) qargs | Dichiarare un cancello unitario | (vedi testo del documento) |
nome opaco(params) qargs; | Dichiarare un gate opaco | (vedi testo del documento) |
// testo del commento | Commentare una riga di testo | // oops! |
U(theta,phi,lambda) qubit|qreg; | Applicare il/i gate a singolo-qubit incorporato/i (vedi [b] ) | U( pi/2,2*pi/3,0) [q0]; |
CX qubit|qreg,qubit|qreg; | Applicare le porte CNOT integrate | CX [q0], [q1]; |
misurare qubit|qreg -> bit|creg; | Effettuare le misurazioni in base a | misura q -> c; |
reset qubit|qreg; | Preparare i qubit in | azzerare [q0]; |
gatename(params) qargs; | Applicare una porta unitaria definita dall'utente | crz( pi/2 ) [q1], [q0]; |
if(creg==int) qop; | Applicare in modo condizionato l'operazione quantistica | se( c==5 ) CX [q0], [q1]; |
barriera qargs; | Impedire le trasformazioni attraverso questa linea di origine | barriera [q0], [q1]; |
[a] Deve apparire come prima riga non commentata del file.
[b] I parametri theta, phi e lambda sono dati da espressioni parametriche; per maggiori informazioni, si veda la pagina 5 del documento e l' Appendice A.
Creare un'operazione personalizzata in OpenQASM
È possibile definire nuove operazioni unitarie nell'editor di codice (si veda la figura seguente per un esempio). Le operazioni vengono applicate utilizzando l'istruzione name(params) qargs; proprio come le operazioni incorporate. Le parentesi sono facoltative se non ci sono parametri.
Per definire un'operazione personalizzata, inserirla nell'editor di codice di OpenQASM utilizzando questo formato: gatename(params) qargs;. Facendo clic su +Aggiungi nell'elenco delle operazioni, verrà richiesto di inserire un nome per l'operazione personalizzata, che potrà poi essere costruita nell'editor di codice.
Una volta definita l'operazione personalizzata, trascinarla nell'editor grafico e utilizzare l'icona di modifica per mettere a punto i parametri.
Esempio di operazione personalizzata | |
|---|---|
| I cancelli da includere nell'operazione personalizzata: | ![]() |
| Il codice della nuova operazione: | ![]() |
| La nuova operazione nell'editor grafico: | ![]() |
4. Ispeziona il circuito, passo dopo passo
La modalità Ispezione smaschera il funzionamento interno dei circuiti creati. Il programma esegue una simulazione del circuito, un livello alla volta, in modo da poter vedere lo stato dei qubit mentre la computazione si evolve.
-
Nel menu Visualizza, selezionare i pannelli per le visualizzazioni che si desidera utilizzare.
-
Fare clic sulla levetta Ispeziona nella barra degli strumenti. Si noti che una volta attivata la modalità Ispezione, non è possibile aggiungere altre operazioni fino a quando non viene nuovamente disattivata.
-
Se si è costruito il circuito con l'allineamento Freeform attivato, si noti che la modalità Inspect attiva automaticamente l'allineamento Left.
-
Per spostarsi passo dopo passo nelle visualizzazioni dei componenti del circuito, utilizzare i pulsanti di avanzamento e riavvolgimento.

-
Per ispezionare solo alcune operazioni, fare clic sulle operazioni che si desidera ispezionare e su ciascuna di esse apparirà una sovrapposizione colorata che indica che saranno incluse quando si esegue in modalità Ispezione. Per deselezionare un'operazione, fare nuovamente clic su di essa e la sovrapposizione scomparirà.
-
Per saperne di più sull'interpretazione delle visualizzazioni, consultare l'argomento Visualizzazioni.
-
Per uscire dalla modalità di ispezione e tornare a modificare il circuito, fare clic sulla levetta di ispezione nella barra degli strumenti.
Il simulatore crea casualità generando risultati basati su un seme. Il seme è il valore iniziale introdotto nell'algoritmo che genera numeri pseudorandom. È possibile visualizzare il numero di seme selezionando "Visualizzazioni seme" dal menu Modifica. È anche possibile impostare il seme modificando il valore nella casella.
Esegui i circuiti e visualizza i risultati
Seguite i passaggi seguenti per eseguire circuiti quantistici sulle QPU e visualizzare i risultati.
Scegli le impostazioni del tuo lavoro
Fare clic su Esegui circuito nell'angolo superiore destro. Nella finestra che si apre, selezionare una QPU disponibile. È anche possibile scegliere un'istanza associata a un piano (come i piani Open, Flex o Premium). L'istanza scelta influisce sulle QPU disponibili. Fare clic sul link "Visualizza dettagli" nella tabella delle QPU per visualizzare ulteriori informazioni su ciascuna QPU.
Successivamente, è possibile impostare il numero di scatti (esecuzioni) del circuito che il backend eseguirà.
In questo pannello è possibile assegnare un nome al lavoro e aggiungere dei tag. Questo non cambierà il nome del circuito. Un tag "Composer" pre-popolato facilita il filtraggio della tabella dei carichi di lavoro in base ai lavori di Composer. È possibile rimuovere questo tag.
Quando si esegue un circuito, questo viene inviato automaticamente alla QPU meno impegnata, a meno che non si specifichi una QPU nelle impostazioni di esecuzione. Se si esegue di nuovo lo stesso circuito, la finestra di selezione della QPU riprenderà la scelta precedente.
Fare clic su "Esegui su (nome QPU)"
È possibile visualizzare l'avanzamento del lavoro facendo clic sul pulsante "View jobs" (Visualizza lavori) nell'angolo in alto a destra, che aprirà la pagina Workloads (Carichi di lavoro) in IBM Quantum Platform.
Visualizza risultati
Una volta completato il lavoro, i dettagli vengono aggiornati nella tabella Workloads di IBM Quantum Platform.
La pagina dei risultati dei lavori visualizza i dettagli dell'esecuzione, i diagrammi del circuito originale e di quello trapiantato, un istogramma dei risultati e le schede OpenQASM e Qiskit per visualizzare i circuiti originali e trapiantati in OpenQASM o Qiskit.
È possibile scaricare i circuiti e l'istogramma facendo clic sul menu nell'angolo superiore destro di ciascun diagramma, quindi selezionando un formato per il download (PNG, PDF o SVG; inoltre, è possibile esportare l'istogramma come file CSV). È possibile aprire i circuiti di OpenQASM direttamente in Composer.
Visualizzazioni
Le visualizzazioni live di IBM Quantum Composer mostrano diversi punti di vista su come i circuiti quantistici influenzano lo stato di un insieme di qubit. Ogni tipo di visualizzazione live è spiegato in dettaglio di seguito.
Le visualizzazioni dal vivo provengono da un simulatore di vettore di stato a colpo singolo, diverso dalla QPU specificata nelle impostazioni di esecuzione, che può avere più colpi. Il simulatore crea casualità generando risultati basati su un seme. Il seme è il valore iniziale introdotto nell'algoritmo che genera numeri pseudorandom. È possibile visualizzare il numero di seme selezionando "Visualizzazioni seme" dal menu Modifica. È anche possibile impostare il seme modificando il valore nella casella.
Visualizza le visualizzazioni
Le visualizzazioni dal vivo sono mostrate nelle finestre in fondo all'area di lavoro di Composer (tranne il disco di fase, che appare alla fine di ogni filo di qubit). È possibile scegliere qualsiasi combinazione di visualizzazioni del vettore di stato, delle probabilità e della sfera q da visualizzare nella parte inferiore dell'area di lavoro. Selezionare o deselezionare le visualizzazioni nel menu Visualizza.
Scarica le visualizzazioni
Scaricare una delle visualizzazioni in fondo all'area di lavoro di Composer facendo clic sul menu "Altre opzioni" nella finestra di visualizzazione. È possibile scaricare le visualizzazioni come SVG, PNG o CSV dei dati sottostanti. È inoltre possibile scaricare le immagini di visualizzazione delle probabilità di misura e degli istogrammi dei vettori di stato in formato PDF.
Disco di fase
Uno stato a singolo qubit può essere rappresentato come
dove è la probabilità che il qubit si trovi nello stato e è la fase quantistica. è fortemente analogo a un bit probabilistico classico. Per , il qubit è nello stato , per il qubit è nello stato e per il qubit è una miscela 50/50. Si parla di 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 al termine di ogni qubit in IBM Quantum Composer fornisce lo stato locale di ogni qubit al termine della computazione. I componenti del disco di fase sono descritti di seguito.
Probabilità che il qubit si trovi nello stato
La probabilità che il qubit si trovi nello stato è rappresentata dal riempimento del disco blu.
Fase quantistica
La fase quantistica dello stato del qubit è data dalla linea che si estende dal centro del diagramma al bordo del disco grigio (che ruota in senso antiorario attorno al punto centrale).
Esempio: dischi di fase per due qubit diversi
Due esempi di visualizzazione del disco di fase. Il primo esempio è uno stato e il secondo mostra lo stato con una fase relativa non nulla.
Collegamento alla 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: , , e .
Stati a N qubit: massimo 15 qubit
Uno stato quantistico a N-qubit assume la forma
dove è la probabilità che i qubit si trovino nello stato con fase quantistica rispetto allo stato . è la probabilità che i qubit non si trovino nello stato ground . Qui è semplice vedere che per uno stato quantistico a N qubit esistono probabilità e fasi. Il disco di fase non riesce a rappresentare questo stato, poiché i dischi di fase a N-qubit conterrebbero solo probabilità e fasi; questo perché la maggior parte degli stati sono entangled e non sono separabili in stati quantistici indipendenti a singolo qubit. Per rappresentare che l'informazione completa non è contenuta in questa visualizzazione, introduciamo la purezza ridotta come componente del disco di fase.
Ridotta purezza dello stato del qubit
Il raggio dell'anello nero sul disco di fase rappresenta la purezza ridotta dello stato del qubit, che per l' e del qubit in uno stato di entanglement a 2 qubit è data da . La purezza ridotta per un singolo qubit rientra nell'intervallo ; un valore pari a uno indica che il qubit non è in stato d' e con nessun altro. Al contrario, una purezza ridotta dell' e indica che il qubit rimane in uno stato completamente misto e presenta un certo grado di entanglement con i restanti qubit dell' e e, forse, anche con l'ambiente.
Visualizzazione delle probabilità
limite di 8-qubit
Questa vista visualizza le probabilità dello stato quantico come un grafico a barre. L'asse orizzontale indica gli stati base computazionali. L'asse verticale misura le probabilità in termini di percentuali. In questa visione le fasi quantistiche non sono rappresentate, ed è quindi una rappresentazione incompleta. Tuttavia, è utile per prevedere i risultati se ogni qubit viene misurato e il valore viene memorizzato nel proprio bit classico.
Si consideri il seguente circuito quantistico e la sua vista delle probabilità:
Il circuito pone i due qubit nello stato . Gli stati di base computazionali sono e . Le probabilità per ciascuno degli stati computazionali sono 1/4.
Vista Q-sfera
limite dei 5-qubit
La q-sfera rappresenta lo stato di un sistema di uno o più qubit associando ogni stato della base computazionale a un punto sulla superficie di una sfera. In ogni punto è visibile un nodo. Il raggio di ogni nodo è proporzionale alla probabilità ( ) del suo stato base, mentre il colore del nodo indica la fase quantistica ( ).
I nodi sono disposti sulla sfera q in modo che lo stato base con tutti gli zeri (ad esempio, ) si trovi al suo polo nord e lo stato base con tutti gli uni (ad esempio, ) al suo polo sud. Gli stati base con lo stesso numero di zeri (o di uno) si trovano su una latitudine condivisa della sfera q (ad esempio, ). Partendo dal polo nord della sfera q e procedendo verso sud, ogni latitudine successiva presenta stati base con un numero maggiore di uno; la latitudine di uno stato base è determinata dalla sua distanza di Hamming dallo stato zero. La q-sfera contiene informazioni complete sullo stato quantistico in una rappresentazione compatta.
Consideriamo il seguente circuito quantistico e la sua sfera q, che rappresenta lo stato creato dal circuito:

È possibile selezionare, tenere premuto e trascinare per ruotare la sfera q. Per riportare la q-sfera all'orientamento predefinito, selezionare il pulsante freccia di riavvolgimento in alto a destra della q-sfera.
È importante sottolineare che la sfera q non è uguale alla sfera di Bloch, anche per un singolo qubit. In effetti, come il disco di fase, la sfera di Bloch fornisce una visione locale dello stato quantistico, in cui ogni qubit è visto da solo. Quando si cerca di capire come si comportano i registri di qubit (stati multi-qubit) con l'applicazione di circuiti quantistici, è più utile adottare una visione globale e osservare lo stato quantistico nella sua interezza. La q-sfera fornisce una rappresentazione visiva dello stato quantistico, e quindi questo punto di vista globale. Pertanto, quando si esplorano applicazioni e algoritmi quantistici su piccoli numeri di qubit, la q-sfera dovrebbe essere il metodo di visualizzazione principale.
Vista vettore di stato
limite di 6-qubit
Si usa chiamare l'ampiezza quantistica. Questa vista visualizza le ampiezze quantistiche come un grafico a barre. L'asse orizzontale indica gli stati base computazionali. L'asse verticale misura la grandezza delle ampiezze ( ) associate a ogni stato della base computazionale. Il colore di ciascuna barra rappresenta la fase quantica ( ).
Si consideri il seguente circuito quantistico e la sua visione del vettore di stato:
Il circuito pone i due qubit nello stato . Gli stati base di calcolo sono , , e . Le grandezze delle ampiezze sono , e le fasi quantistiche rispetto allo stato fondamentale sono per e , e per .
Glossario delle operazioni del compositore
Questa pagina è un riferimento che definisce le varie operazioni classiche e quantistiche che si possono utilizzare per manipolare i qubit in un circuito quantistico. Le operazioni quantistiche comprendono porte quantistiche, come la porta di Hadamard, e operazioni che non sono porte quantistiche, come l'operazione di misurazione.
Ogni voce qui di seguito fornisce i dettagli e il riferimento a OpenQASM per ogni operazione. Per ulteriori informazioni, consultate l'argomento " Costruire il circuito con il codice OpenQASM ".
L'immagine della sfera q in ogni voce del gate mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale , dove è il numero di qubit necessari per supportare il gate. Per ulteriori informazioni su questa visualizzazione, consultare l'argomento q-sphere.
È possibile definire un'operazione personalizzata da utilizzare in IBM Quantum Composer. Per istruzioni, vedere l'argomento Creare un'operazione personalizzata in OpenQASM.
I colori del cancello sono leggermente diversi nei temi chiari e scuri. I colori del tema luminoso sono mostrati qui.
Fare clic su un'operazione quantistica per visualizzarne la definizione.
Cancelli classici
NON cancello
La porta NOT, nota anche come porta Pauli X, capovolge lo stato in e viceversa. La porta NOT è equivalente a RX per l'angolo o a 'HZH'.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
![]() | x q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
Porta CNOT
Il gate controlled-NOT, noto anche come gate controlled-x (CX), agisce su una coppia di qubit, di cui uno funge da "controllo" e l'altro da "bersaglio". Esegue un NOT sul bersaglio ogni volta che il controllo si trova nello stato . Se il qubit di controllo è in sovrapposizione, questo gate crea entanglement.
Tutti i circuiti unitari possono essere decomposti in porte a singolo qubit e porte CNOT. Poiché la porta CNOT a due qubit costa molto più tempo per l'esecuzione su hardware reale rispetto alle porte a singolo qubit, il costo del circuito viene talvolta misurato in numero di porte CNOT.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
cx q[0], q[1]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
Porta Toffoli
Il gate di Toffoli, noto anche come double controlled-NOT gate (CCX), ha due qubit di controllo e un target. Applica un NOT al bersaglio solo quando entrambi i controlli sono nello stato .
La porta di Toffoli con la porta di Hadamard è un insieme di porte universale per l'elaborazione quantistica.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
![]() | ccx q[0], q[1], q[2]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
Cancello SWAP
Il gate SWAP scambia gli stati di due qubit.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
![]() | swap q[0], q[1]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
Cancello d'identità
La porta dell'identità (talvolta chiamata porta dell'Id o porta dell'I) è in realtà l'assenza di una porta. Assicura che non venga applicato nulla a un qubit per un'unità di tempo del gate.
Riferimento al compositore | Riferimento QASM |
|---|---|
![]() | id q[0]; |
Fasi di gate
Cancello a T
La porta T è equivalente a RZ per l'angolo . I computer quantistici tolleranti ai guasti compileranno tutti i programmi quantistici fino alla porta T e alla sua inversa, oltre alle porte di Clifford.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
t q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
Cancello S
Il gate S applica una fase di allo stato . È equivalente a RZ per l'angolo . Si noti che S=P( ).
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
s q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
Cancello Z
Il gate Pauli Z agisce come identità sullo stato e moltiplica il segno dello stato per -1. Pertanto, inverte gli stati e . Nella base +/-, svolge lo stesso ruolo della porta NOT nella base / .
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
z q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
cancello
Conosciuto anche come Tdg o T-dagger gate.
L'inverso del gate T.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
tdg q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
cancello
Conosciuto anche come Sdg o S-dagger gate.
L'inverso della porta S.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
sdg q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
Porta di fase
Il gate Phase (precedentemente chiamato gate U1 ) applica una fase di allo stato . Per certi valori di , è equivalente ad altre porte. Ad esempio, P( )=Z, P( / )=S e P( )=T. Fino a una fase globale di , è equivalente a RZ( ).
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
p(theta) q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
In IBM Quantum Composer, il valore predefinito per theta è .
Cancello RZ
Il gate RZ implementa . Sulla sfera di Bloch, questo gate corrisponde alla rotazione dello stato del qubit attorno all'asse z dell'angolo dato.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
![]() | rz(angle) q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
In IBM Quantum Composer, il valore predefinito per angle è . Pertanto, questo è l'angolo utilizzato nella visualizzazione della sfera q.
Operatori e modificatori non unitari
Operazione di reset
L'operazione di reset riporta un qubit allo stato , indipendentemente dal suo stato precedente all'operazione. Non è un'operazione reversibile.
Riferimento al compositore | OpenQASM riferimento |
|---|---|
reset q[0]; |
Misurazione
Misura in base standard, nota anche come base z o base di calcolo. Può essere utilizzato per implementare qualsiasi tipo di misura se combinato con i gate. Non è un'operazione reversibile.
Riferimento al compositore | OpenQASM riferimento |
|---|---|
measure q[0]; |
Modificatore di controllo
Un modificatore di controllo produce un gate il cui funzionamento originale dipende ora dallo stato del qubit di controllo. Quando il controllo è nello stato , i qubit di destinazione subiscono l'evoluzione unitaria specificata. Al contrario, non viene eseguita alcuna operazione se il controllo si trova nello stato . Se il controllo si trova in uno stato di sovrapposizione, l'operazione risultante è frutto della linearità.
Trascinare il modificatore di controllo su un gate per aggiungervi un controllo. Sopra e sotto il gate, sui fili dei qubit, appariranno dei punti che possono essere bersagli di controllo; fate clic su uno o più punti per assegnare il bersaglio a uno o più qubit. È possibile assegnare un controllo anche facendo clic con il tasto destro del mouse su un gate.
Per rimuovere un controllo, fare clic con il pulsante destro del mouse sul cancello e selezionare l'opzione di rimozione del controllo.
Riferimento al compositore | OpenQASM riferimento |
|---|---|
c |
Funzionamento della barriera
Per rendere il programma quantistico più efficiente, il compilatore cercherà di combinare le porte. La barriera è un'istruzione al compilatore che impedisce di realizzare queste combinazioni. Inoltre, è utile per le visualizzazioni.
Riferimento al compositore | OpenQASM riferimento |
|---|---|
![]() | barrier q; |
Porta di Hadamard
Cancello H
Il gate H, o Hadamard, ruota gli stati e rispettivamente in e . È utile per realizzare le sovrapposizioni. Se si dispone di una porta universale su un computer classico e si aggiunge la porta di Hadamard, questa diventa una porta universale su un computer quantistico.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
h q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
Porte quantistiche
cancello
Conosciuta anche come porta NOT a radice quadrata.
Questo gate implementa la radice quadrata di X, . Applicando questo gate due volte di seguito si ottiene il gate Pauli-X standard (gate NOT). Come la porta di Hadamard, crea uno stato di sovrapposizione uguale se il qubit si trova nello stato , ma con una fase relativa diversa. In alcuni hardware, è un gate nativo che può essere implementato con un impulso o X90.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
![]() | sx q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
cancello
Conosciuta anche come porta SXdg o a radice quadrata NOT-dagger.
È l'inverso del gate . Applicandolo due volte di seguito si ottiene la porta Pauli-X (porta NOT), poiché la porta NOT è la sua stessa inversa. Come il gate , questo gate può essere utilizzato per creare uno stato di sovrapposizione uguale e anch'esso è implementato in modo nativo su alcuni hardware utilizzando un impulso X90.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
![]() | sxdg q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
Cancello Y
Il gate di Pauli Y è equivalente a Ry per l'angolo . È equivalente all'applicazione di X e Z, fino a un fattore di fase globale.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
y q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
Cancello RX
Il gate RX implementa . Sulla sfera di Bloch, questo gate corrisponde alla rotazione dello stato del qubit attorno all'asse x dell'angolo dato.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
rx(angle) q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
In IBM Quantum Composer, il valore predefinito per angle è . Pertanto, questo è l'angolo utilizzato nella visualizzazione della sfera q.
Cancello RY
Il gate RY implementa . Sulla sfera di Bloch, questo gate corrisponde alla rotazione dello stato del qubit intorno all'asse y dell'angolo dato e non introduce ampiezze complesse.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
ry(angle) q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
In IBM Quantum Composer, il valore predefinito per angle è . Pertanto, questo è l'angolo utilizzato nella visualizzazione della sfera q qui sotto.
Cancello RXX
Il gate RXX implementa . Il gate Mølmer-Sørensen, il gate nativo dei sistemi a trappola ionica, può essere espresso come una somma di gate RXX.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
rxx(angle) q[0], q[1]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
In IBM Quantum Composer, il valore predefinito per angle è .
Cancello RZZ
Il gate RZZ richiede un unico parametro: un angolo espresso in radianti. Questo gate è simmetrico; scambiando i due qubit su cui agisce non cambia nulla.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
rzz(angle) q[0], q[1]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
In IBM Quantum Composer, il valore predefinito per angle è .
Cancello U
(Precedentemente chiamato gate U3 ) I tre parametri permettono di costruire qualsiasi gate a singolo qubit. Ha una durata di un'unità di tempo del cancello.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
u(theta, phi, lam) q[0]; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
In IBM Quantum Composer, il valore predefinito per angle è .
Cancello RCCX
La porta di Toffoli semplificata, detta anche porta di Margolus.
La porta di Toffoli semplificata implementa la porta di Toffoli fino alle fasi relative. Questa implementazione richiede tre porte CX, che è la quantità minima possibile, come mostrato in https://arxiv.org/abs/quant-ph/0312225. Si noti che la Toffoli semplificata non è equivalente alla Toffoli, ma può essere utilizzata nei casi in cui la porta Toffoli non è ancora stata calcolata.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
![]() | rccx a, b, c; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |
RC3X cancello
La porta di Toffoli semplificata a 3 controlli.
La porta di Toffoli semplificata implementa la porta di Toffoli fino alle fasi relative. Si noti che la Toffoli semplificata non è equivalente alla Toffoli, ma può essere utilizzata nei casi in cui la porta Toffoli non è ancora stata calcolata.
Riferimento al compositore | OpenQASM riferimento | Sfera Q | Nota sulle rappresentazioni della q-sfera |
|---|---|---|---|
![]() | rc3x a, b, c, d; | ![]() | La rappresentazione della sfera q mostra lo stato dopo che il gate opera sullo stato iniziale di sovrapposizione uguale dove è il numero di qubit necessari per supportare il gate. |


































