Sari la conținutul principal

IBM Quantum Composer

Ce este?

IBM Quantum® Composer este un instrument grafic de programare cuantică care îți permite să tragi și să plasezi operații pentru a construi circuite cuantice și a le rula pe hardware cuantic.

Ce poate face?

Vizualizează stările qubit-urilor

Vezi cum modificările aduse circuitului tău afectează starea qubit-urilor, afișată ca o sferă-q interactivă sau ca histograme ce arată probabilitățile de măsurare sau simulările vectorului de stare.

Rulează pe hardware cuantic

Rulează circuitele tale pe hardware cuantic real pentru a înțelege efectele zgomotului dispozitivului.

Generează cod automat

În loc să scrii cod de mână, generează automat cod OpenQASM sau Python care se comportă la fel ca circuitul creat cu Composer.

Tur al interfeței

IBM Quantum Composer dispune de un set personalizabil de instrumente care îți permit să construiești, să vizualizezi și să rulezi circuite cuantice pe unități de procesare cuantică (QPU). Folosește meniul „More options" din fiecare fereastră pentru a accesa instrumente și acțiuni suplimentare.

Fereastra IBM Quantum Composer.

  1. Catalogul de operații - Acestea sunt blocurile de construcție ale circuitelor cuantice. Trage și plasează aceste gate-uri și alte operații în editorul grafic de circuite. Diferite tipuri de gate-uri sunt grupate după culoare. De exemplu, gate-urile clasice sunt albastru închis, gate-urile de fază sunt albastru deschis, iar operațiile non-unitare sunt gri.

    Pentru a afla mai multe despre gate-urile și operațiile disponibile, fă clic dreapta pe o operație și selectează Info pentru a-i citi definiția.

  2. Editorul de cod - Folosește meniul View pentru a deschide sau a închide editorul de cod, care îți permite să vizualizezi codul OpenQASM sau Qiskit al circuitului. Poți edita codul OpenQASM; codul Qiskit este doar pentru citire.

  3. Editorul grafic de circuite - Aici construiești un circuit. Trage gate-uri și alte operații pe „firele" orizontale ale qubit-urilor care alcătuiesc registrul tău cuantic.

    Pentru a elimina un gate de pe un fir, selectează gate-ul și dă clic pe pictograma coșului de gunoi.

    Pentru a edita parametrii și setările gate-urilor care acceptă editare, selectează gate-ul în editorul grafic și dă clic pe Edit.

  4. Bara de instrumente - Accesează instrumente utilizate frecvent pentru a anula și a reface acțiuni, a schimba alinierea gate-urilor și a comuta la modul de inspecție. În modul de inspecție, vezi o vizualizare pas cu pas a stărilor qubit-urilor pe măsură ce calculul circuitului tău evoluează. Pentru mai multe detalii, vezi Inspectează-ți circuitul pas cu pas.

  5. Discurile de fază - Faza vectorului de stare al qubit-ului în planul complex este dată de linia care se extinde din centrul diagramei până la marginea discului gri (care se rotește în sens invers acelor de ceasornic față de punctul central).

    Folosește meniul View pentru a afișa sau a ascunde discurile de fază.

  6. Vizualizări - Vizualizările caracterizează circuitul tău pe măsură ce îl construiești. Ele utilizează un simulator al vectorului de stare cu o singură execuție, care diferă de QPU specificat în setările „Run circuit". Reține că vizualizările ignoră orice operații de măsurare pe care le adaugi. Autentifică-te și dă clic pe Run circuit pentru a obține rezultate de la Backend-ul specificat.

    Află mai multe în secțiunea Vizualizări.

Construiește, editează și inspectează circuite cuantice

Descarcă fișierele circuitului înainte de a ieși din Composer

Dacă vrei să continui să lucrezi cu un circuit ulterior, asigură-te că descarci fișierul circuitului și îl stochezi local înainte de a ieși din Session-ul curent al Composer-ului. Folosește linkul „Save file" din colțul din dreapta sus sau mergi la meniul File și alege „Save file". Când ești gata să lucrezi din nou cu circuitul, mergi la meniul File și alege „Upload .qasm file", apoi navighează la fișierul circuitului de pe unitatea ta locală și dă clic pe Open.

1. Deschide IBM Quantum Composer

  1. (Opțional) Dacă nu ești autentificat în IBM Quantum, selectează Sign in în colțul din dreapta sus. Apoi, poți fie să te autentifici, fie să creezi un cont IBM Cloud.
notă

Dacă nu te autentifici, vizualizările afișează automat rezultate simulate pentru până la patru qubit-uri. Dacă vrei să rulezi circuitul pe un calculator cuantic sau să vizualizezi un circuit cu mai mult de patru qubit-uri, trebuie să te autentifici.

  1. Deschide IBM Quantum Composer dând clic pe linkul din navigarea paginii Learning. Spațiul de lucru afișează un circuit gol fără titlu. Poți fie să creezi un circuit nou, fie să încarci un fișier .qasm pentru a continua lucrul cu un circuit pe care l-ai creat deja.

  2. Denumește circuitul dând clic pe textul Untitled circuit și introducând un nume pentru circuit. Dă clic pe bifa pentru a salva numele.

  3. (Opțional) Personalizează spațiul de lucru:

    • Folosește meniul View pentru a schimba tema implicită cu o temă monocromă. Poți selecta și ce panouri să includă spațiul tău de lucru, apoi folosește meniul din colțul din dreapta al oricărui panou pentru a accesa opțiuni de personalizare suplimentară. Opțiunile de afișare sau ascundere a discurilor de fază, de alegere a alinierii qubit-urilor în circuit și de resetare a spațiului de lucru la setările implicite se află în meniul View.
    • Comută între temele de spațiu de lucru întunecat și luminos din colțul din dreapta jos al subsolului.

Pentru a construi un circuit, poți fie să tragi și să plasezi operații, fie să introduci cod OpenQASM în editorul de cod.

2. Construiește-ți circuitul prin drag-and-drop

Catalogul de operații

Trage și plasează operații din catalogul de operații pe registrele cuantice și clasice. Dă clic pe pictograma de căutare și introdu un termen în bara de căutare pentru a găsi rapid o operație.

Restrânge și extinde catalogul de operații dând clic pe pictograma din colțul din dreapta sus al panoului de operații. Dă clic pe pictograma de lângă ea pentru a comuta între vizualizarea grilă și cea listă a catalogului.

Fă clic dreapta pe pictograma unei operații și selectează Info pentru a vedea definiția operației, împreună cu referința sa QASM.

Pentru a anula sau a reface, folosește săgețile curbe din bara de instrumente.

Aliniere

Alege alinierea Freeform pentru a plasa operații oriunde pe circuit. Pentru o vizualizare mai compactă a circuitului, alege alinierea Left. Pentru a vedea ordinea în care operațiile vor fi executate, alege alinierea Layers, care aplică alinierea la stânga și adaugă delimitatori de coloane ce indică ordinea de execuție, de la stânga la dreapta și de sus în jos.

Odată ce operațiile sunt plasate pe circuit, poți continua să le tragi și să le plasezi în poziții noi.

Copiere și lipire

Dă clic pe o operație și folosește pictogramele din meniul contextual pentru a o copia și lipi.

Selectează mai multe operații

Poți selecta mai multe operații pentru a le copia și lipi, a le trage într-o locație nouă sau a le grupa într-o operație unitară personalizată care apare în catalogul de operații și funcționează ca un singur Gate.

Pentru a selecta mai mult de o operație, plasează cursorul chiar în afara uneia dintre operații, apoi dă clic și trage peste zonă pentru a selecta. Dă clic cu tasta Shift apăsată pe operații individuale pentru a le selecta sau deselecta. O linie punctată conturează setul de operații pe care le selectezi, iar fiecare operație care face efectiv parte din selecție este conturată în albastru.

De exemplu, în imaginea de mai jos, gate-ul Hadamard de pe q1 și gate-ul CX sunt selectate. Gate-ul Hadamard de pe q0 nu este selectat.

Un set de operații selectate.

Selectează Copy din meniul contextual pentru a copia grupul.

Pentru a lipi grupul de operații, fă clic dreapta în circuit și selectează Paste.

Construiește o operație personalizată folosind funcția de grupare

Pentru a grupa mai multe operații și a le salva ca operație personalizată, selectează mai întâi operațiile conform descrierii de mai sus, apoi selectează Group din meniul contextual. Vei fi solicitat să denumești operația personalizată sau poți accepta numele implicit. Dă clic pe OK, iar operația personalizată va fi reprezentată printr-o singură casetă, atât în circuit, cât și în catalogul de operații.

Acum poți trage și plasa noua operație în tot circuitul. Reține că operația este salvată pentru acest circuit, dar nu apare în catalogul de operații pentru alte circuite.

Poți construi o operație personalizată și direct în editorul de cod OpenQASM; vezi Creează o operație personalizată în OpenQASM pentru mai multe informații.

Dezgrupează o operație personalizată sau predefinită

Pentru a dezgrupa gate-urile dintr-o operație personalizată sau predefinită, dă clic pe operație în Composer și selectează Ungroup din meniul contextual. Acum poți muta operațiile separate individual. Când dezgrupezi o operație, fiecare element din fostul grup se execută independent, ceea ce poate înseamnă că se execută într-o ordine diferită față de când erau grupate.

Extinde definiția unei operații

Pentru a vizualiza operațiile care constituie o operație personalizată sau predefinită fără a le dezgrupa, dă clic pe Expand definition din meniul contextual pentru a vedea gate-urile definitorii. Dă clic din nou pe pictogramă pentru a restrânge definiția.

Redenumește sau șterge o operație personalizată

Pentru a redenumi sau șterge o operație personalizată, fă clic dreapta pe operație în catalogul de operații și selectează Rename sau Delete. Ștergerea unei operații personalizate din catalogul de operații șterge și toate instanțele sale din circuit.

Ștergerea unei operații personalizate din circuit în sine nu o șterge din catalogul de operații; poți șterge o operație personalizată din catalog doar folosind clic dreapta și selectând Delete.

Adaugă sau elimină registre

Pentru a adăuga sau elimina registre cuantice sau clasice, dă clic pe Edit → Manage registers. Poți crește sau micșora numărul de qubit-uri sau biți din circuit și redenumi registrele. Dă clic pe Ok pentru a aplica modificările. Poți, de asemenea, să dai clic direct pe numele registrului (de ex., q[0]) și să folosești opțiunile din meniul contextual pentru a adăuga sau șterge rapid registre sau qubit-uri.

Adaugă un condițional

Pentru a adăuga un condițional unui gate, trage operația if pe gate și setează parametrii în panoul Edit operation care se deschide automat. Poți, de asemenea, să dai dublu-clic pe un gate pentru a accesa panoul Edit operation și a seta parametrii condiționalului în acest mod.

Adaugă un modificator de control

Un modificator de control produce un gate a cărui operație originală depinde acum de starea qubit-ului de control. Pentru mai multe detalii, fă clic dreapta pe simbolul modificatorului de control din catalogul de operații, apoi dă clic pe Info.

Trage modificatorul de control pe un gate din circuit pentru a-i adăuga un control. Un punct apare pe qubit-ul de control, iar o linie îl conectează la qubit-ul țintă. Pentru a edita qubit-ul de control sau cel țintă, dă clic pe gate și selectează pictograma Edit operation (sau dă dublu-clic pe gate) pentru a deschide panoul Edit operation, apoi specifică-ți parametrii. Din panoul Edit operation, poți, de asemenea, elimina un control de pe un qubit dând clic pe x de lângă numele qubit-ului.

Vizualizează cu discuri de fază de-a lungul circuitului

Pentru a vizualiza starea tuturor qubit-urilor la orice punct din circuit, trage pictograma discului de fază din catalogul de operații și plaseaz-o oriunde în circuit. Se adaugă o coloană de operații de barieră și o coloană de discuri de fază (câte o operație de barieră și un disc de fază per qubit). Trece cu cursorul peste fiecare disc de fază pentru a citi starea qubit-ului la acel punct al circuitului. Reține că adăugarea discurilor de fază nu modifică circuitul; ele sunt doar un instrument de vizualizare.

Citește mai multe despre vizualizarea cu disc de fază aici.

Exportă o imagine a circuitului

Pentru a exporta o imagine a circuitului, selectează File → Export circuit image. Se deschide fereastra Export options, unde poți alege o temă (light, dark, white on black sau black on white), un format (.svg sau .png) și dacă dorești să aplici o împachetare a liniilor. După ce ai ales opțiunile, dă clic pe Export.

3. Construiește-ți circuitul cu cod OpenQASM

notă

IBM Quantum Composer acceptă în prezent OpenQASM 2.0.

InstrucțiuneDescriereExemplu
OPENQASM 2.0;Marchează un fișier în format OpenQASM (vezi [a])OPENQASM 2.0;
qreg name[size];Declară un registru cu nume de Qubit-uriqreg q[5];
creg name[size];Declară un registru cu nume de bițicreg c[5];
include "filename";Deschide și parsează un alt fișier sursăinclude "qelib1.inc";
gate name(params) qargsDeclară un Gate unitar(vezi textul articolului)
opaque name(params) qargs;Declară un Gate opac(vezi textul articolului)
// comment textComentează o linie de text// oops!
U(theta,phi,lambda) qubit|qreg;Aplică Gate-uri integrate pentru un singur Qubit (vezi [b])U(pi/2,2*pi/3,0) q[0];
CX qubit|qreg,qubit|qreg;Aplică Gate-uri CNOT integrateCX q[0],q[1];
measure qubit|qreg -> bit|creg;Efectuează măsurători în baza ZZmeasure q -> c;
reset qubit|qreg;Pregătește Qubit-ul (Qubit-urile) în starea 0\vert 0\ranglereset q[0];
gatename(params) qargs;Aplică un Gate unitar definit de utilizatorcrz(pi/2) q[1],q[0];
if(creg==int) qop;Aplică condiționat o operațiune cuanticăif(c==5) CX q[0],q[1];
barrier qargs;Împiedică transformările peste această linie sursăbarrier q[0],q[1];

[a] Aceasta trebuie să apară ca prima linie care nu este comentariu din fișier.

[b] Parametrii theta, phi și lambda sunt dați de expresii parametrice; pentru mai multe informații, vezi pagina 5 a articolului și Anexa A.

Create a custom operation in OpenQASM

Poți defini operațiuni unitare noi în editorul de cod (vezi figura de mai jos pentru un exemplu). Operațiunile sunt aplicate folosind instrucțiunea name(params) qargs;, la fel ca operațiunile integrate. Parantezele sunt opționale dacă nu există parametri.

Pentru a defini o operațiune personalizată, introdu-o în editorul de cod OpenQASM folosind acest format: gatename(params) qargs;. Dacă faci clic pe +Add în lista de operațiuni, vei fi solicitat să introduci un nume pentru operațiunea ta personalizată, pe care o poți construi apoi în editorul de cod.

Odată ce ai definit operațiunea personalizată, trage-o în editorul grafic și folosește pictograma de editare pentru a ajusta parametrii cu precizie.

Exemplu de operațiune personalizată
Gate-urile de inclus în operațiunea personalizată:Gates in the custom operation
Codul pentru noua operațiune:Customized new operation
Noua operațiune în editorul grafic:New operation

4. Inspectează-ți circuitul, pas cu pas

Modul Inspect demistifică funcționarea internă a circuitelor pe care le creezi. Parcurge o simulare a circuitului tău strat cu strat, astfel încât să poți vedea starea Qubit-urilor pe măsură ce calculul evoluează.

  • În meniul View, selectează panourile pentru vizualizările pe care vrei să le folosești.

  • Fă clic pe butonul Inspect din bara de instrumente. Rețineți că, odată ce modul Inspect este activat, nu mai poți adăuga operațiuni suplimentare până când acesta nu este dezactivat.

  • Dacă ai construit circuitul cu alinierea Freeform activată, rețineți că modul Inspect activează automat alinierea Left.

  • Pentru a parcurge pas cu pas vizualizările componentelor circuitului tău, folosește butoanele de avans și de derulare înapoi.

Controls to step forward and backward, and to jump to a circuit's beginning or end.

  • Pentru a inspecta doar unele operațiuni, fă clic pe operațiunile pe care vrei să le inspectezi; deasupra fiecăreia va apărea o suprapunere colorată care indică faptul că vor fi incluse când rulezi în modul Inspect. Pentru a deselecta o operațiune, fă din nou clic pe ea, iar suprapunerea dispare.

  • Pentru a afla mai multe despre interpretarea vizualizărilor, consultă secțiunea Visualizations.

  • Pentru a ieși din modul Inspect și a reveni la editarea circuitului, fă clic pe butonul Inspect din bara de instrumente.

Randomness in the simulator

Simulatorul creează aleatorism generând rezultate pe baza unui seed. Seed-ul este valoarea inițială introdusă în algoritmul care generează numere pseudoaleatoare. Poți vedea numărul seed selectând „Visualizations seed" din meniul Edit. De asemenea, poți seta singur seed-ul schimbând valoarea din câmpul corespunzător.

Rulează circuite și vizualizează rezultatele

Urmează pașii de mai jos pentru a rula circuite cuantice pe QPU-uri și a vizualiza rezultatele.

Alege setările jobului tău

Fă clic pe Run circuit în colțul din dreapta sus. În fereastra care se deschide, selectează un QPU disponibil. Poți alege, de asemenea, o instanță, care este asociată cu un plan (cum ar fi planurile Open, Flex sau Premium). Instanța aleasă influențează QPU-urile disponibile. Fă clic pe linkul „View details" din tabelul QPU-urilor pentru a vedea mai multe informații despre fiecare QPU.

În continuare, poți seta numărul de shots (execuții) ale circuitului tău pe care le va efectua backend-ul.

Opțional, poți numi jobul și adăuga etichete în acest panou. Aceasta nu va schimba numele circuitului. O etichetă „Composer" prepopulată facilitează filtrarea tabelului Workloads după joburile Composer. Poți elimina această etichetă.

Fereastră care afișează opțiunile jobului.

notă

Când rulezi un circuit, acesta este trimis automat către QPU-ul cel mai puțin ocupat, dacă nu specifici un QPU în setările Run. Dacă rulezi din nou același circuit, fereastra de selectare a QPU-ului va reveni implicit la alegerea anterioară.

Fă clic pe „Run on (QPU name)"

Poți urmări progresul jobului făcând clic pe butonul „View jobs" din colțul din dreapta sus, care va deschide pagina Workloads în IBM Quantum Platform.

Vizualizează rezultatele

Odată ce jobul tău se finalizează, detaliile sunt actualizate în tabelul Workloads din IBM Quantum Platform.

Pagina Jobs results afișează detaliile rulării, diagramele circuitului original și ale circuitului transpilat, o histogramă a rezultatelor, precum și filele OpenQASM și Qiskit pentru a vizualiza atât circuitele originale, cât și cele transpilate în OpenQASM sau Qiskit.

Poți descărca circuitele și histograma făcând clic pe meniu în colțul din dreapta sus al fiecărei diagrame, apoi selectând un format pentru descărcare (PNG, PDF sau SVG; în plus, poți exporta histograma ca fișier CSV). Poți deschide circuitele OpenQASM direct în Composer.

Vizualizări

Vizualizările live din IBM Quantum Composer îți arată diferite perspective asupra modului în care circuitele cuantice afectează starea unei colecții de qubiți. Fiecare tip de vizualizare live este explicat în detaliu mai jos.

Randomness in the simulator

Vizualizările live provin dintr-un simulator statevector cu un singur shot, care diferă de QPU-ul specificat în setările Run, ce poate efectua mai multe shots. Simulatorul creează aleatoriu prin generarea de rezultate pe baza unui seed. Seed-ul este valoarea inițială introdusă în algoritmul care generează numere pseudoaleatoare. Poți vedea numărul seed selectând „Visualizations seed" din meniul Edit. De asemenea, poți seta seed-ul tu însuți modificând valoarea din câmp.

Vizualizează vizualizările

Vizualizările live sunt afișate în ferestre la baza spațiului de lucru Composer (cu excepția discului de fază, care apare la capătul firului fiecărui qubit). Poți alege orice combinație de vizualizări statevector, probabilități și q-sphere să apară în partea de jos a spațiului de lucru. Selectează sau deselectează vizualizările din meniul View.

Descarcă vizualizările

Descarcă una dintre vizualizările din partea de jos a spațiului de lucru Composer făcând clic pe meniul „More options" din fereastra de vizualizare. Poți descărca vizualizările ca SVG, PNG sau CSV al datelor de bază. De asemenea, poți descărca imaginile de vizualizare ale probabilităților de măsurare și ale histogramelor statevector ca PDF.

Discul de fază

O stare a unui singur qubit poate fi reprezentată astfel:

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

unde pp este probabilitatea ca qubitul să fie în starea 1|1\rangle, iar φ\varphi este faza cuantică. pp este puternic analogă cu un bit probabilistic clasic. Pentru p=0p=0, qubitul se află în starea 0|0\rangle, pentru p=1p=1 qubitul se află în starea 1|1\rangle, iar pentru p=1/2p=1/2 qubitul este un amestec 50/50. Numim aceasta o suprapunere, deoarece, spre deosebire de biții clasici, acest amestec poate avea o fază cuantică. Discul de fază vizualizează această stare.

Discul de fază de la capătul fiecărui qubit din IBM Quantum Composer oferă starea locală a fiecărui qubit la finalul calculului. Componentele discului de fază sunt descrise mai jos.

Probabilitatea ca qubitul să fie în starea 1|1\rangle

Probabilitatea ca qubitul să fie în starea 1|1\rangle este reprezentată de umplutura albastră a discului.

probabilitatea ca qubitul să fie în starea 1

Faza cuantică

Faza cuantică a stării qubitului este dată de linia care se extinde de la centrul diagramei până la marginea discului gri (care se rotește în sens invers acelor de ceasornic în jurul punctului central).

faza stării locale a qubitului

Exemplu: discuri de fază pentru doi qubiți diferiți

exemple de discuri de fază

Două exemple de vizualizare a discului de fază. Primul exemplu este o stare 1|1\rangle, iar al doilea arată starea (01)/2(|0\rangle-|1\rangle)/\sqrt{2} cu o fază relativă nenulă.

Conexiunea cu sfera Bloch

Discul de fază, care conține toate informațiile din sfera Bloch, este o reprezentare bidimensională a unui qubit. Pentru a converti la reprezentarea sferei 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} ] și z=12pz=1-2p.

Stări cu N qubiți: maximum 15 qubiți

O stare cuantică cu N qubiți are 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}

unde pkp_k este probabilitatea ca qubiții să se afle în starea k|k\rangle cu faza cuantică φk\varphi_k față de starea 0...0|0...0\rangle. p=k0pkp=\sum_{k\neq0}p_k este probabilitatea ca qubiții să nu se afle în starea fundamentală 0...0|0...0\rangle. Aici este simplu de observat că pentru o stare cuantică cu N qubiți există 2N12^N-1 probabilități și 2N12^N-1 faze. Discul de fază nu reușește să reprezinte această stare, deoarece discurile de fază cu N qubiți ar conține doar NN probabilități și NN faze; aceasta se datorează faptului că majoritatea stărilor sunt intricate și nu pot fi separate în stări cuantice independente de un singur qubit. Pentru a reprezenta că informația completă nu este conținută în această vizualizare, introducem puritatea redusă ca o componentă a discului de fază.

Puritatea redusă a stării qubitului

Raza inelului negru reprezintă puritatea redusă a stării qubitului, care pentru qubitul jj dintr-o stare cu NN qubiți ψ|\psi\rangle este dată de Tr[Trij[ψψ]2]\mathrm{Tr}\left[\mathrm{Tr}_{i\neq j}[\left|\psi\rangle\langle\psi\right|\right]^{2}]. Puritatea redusă pentru un singur qubit se află în intervalul [0.5,1][0.5, 1]; o valoare egală cu unu indică faptul că qubitul nu este intricat cu nicio altă parte. În contrast, o puritate redusă de 0.50.5 arată că qubitul se află în starea complet mixtă și are un anumit nivel de intricare cu cei N1N-1 qubiți rămași și, posibil, chiar cu mediul.

puritatea stării qubitului

Vizualizarea probabilităților

Limită de 8 qubiți

Această vizualizare reprezintă probabilitățile stării cuantice sub forma unui grafic cu bare. Axa orizontală etichetează stările din baza computațională. Axa verticală măsoară probabilitățile în procente. În această vizualizare, fazele cuantice nu sunt reprezentate și, prin urmare, reprezintă o reprezentare incompletă. Cu toate acestea, este utilă pentru a prezice rezultatele dacă fiecare qubit este măsurat și valoarea este stocată în propriul bit clasic.

Consideră următorul circuit cuantic și vizualizarea sa a probabilităților:

un circuit cuantic

vizualizarea probabilităților de măsurare

Circuitul plasează cei doi qubiți în starea ψ=(00+01+1011)/2.|\psi\rangle = (|00\rangle + |01\rangle+ |10\rangle-|11\rangle) / 2. Stările din baza computațională sunt 00,10,01,|00\rangle, |10\rangle, |01\rangle, și 11.|11\rangle. Probabilitățile pentru fiecare dintre stările computaționale sunt 1/4.

Vizualizarea Q-sphere

Limită de 5 qubiți

Q-sphere-ul reprezintă starea unui sistem format din unul sau mai mulți qubiți, asociind fiecare stare din baza computațională cu un punct de pe suprafața unei sfere. Un nod este vizibil în fiecare punct. Raza fiecărui nod este proporțională cu probabilitatea (pkp_k) stării sale de bază, în timp ce culoarea nodului indică faza cuantică (φk\varphi_k).

Nodurile sunt dispuse pe q-sphere astfel încât starea de bază cu toți zeroii (de ex., 000|000\rangle) se află la polul nord al acestuia, iar starea de bază cu toți unii (de ex., 111|111\rangle) se află la polul sud. Stările de bază cu același număr de zerouri (sau unuri) se află pe o latitudine comună a q-sphere-ului (de ex., 001,010,100|001\rangle, |010\rangle, |100\rangle). Începând de la polul nord al q-sphere-ului și avansând spre sud, fiecare latitudine succesivă conține stări de bază cu un număr mai mare de unuri; latitudinea unei stări de bază este determinată de distanța Hamming față de starea zero. Q-sphere-ul conține informații complete despre starea cuantică într-o reprezentare compactă.

Consideră următorul circuit cuantic și q-sphere-ul său, care reprezintă starea creată de circuit:

un circuit cuantic

vizualizarea q-sphere

Poți selecta, ține apăsat și trage pentru a roti q-sphere-ul. Pentru a reveni la orientarea implicită a q-sphere-ului, selectează butonul cu săgeată de revenire din dreapta sus a q-sphere-ului.

What is the difference between a Bloch sphere and a q-sphere?

Este important să subliniem că q-sphere-ul nu este același lucru cu sfera Bloch, chiar și pentru un singur qubit. Într-adevăr, la fel ca discul de fază, sfera Bloch oferă o perspectivă locală asupra stării cuantice, unde fiecare qubit este privit independent. Atunci când vrei să înțelegi cum se comportă registrele de qubiți (stări cu mai mulți qubiți) la aplicarea circuitelor cuantice, este mai instructiv să adopți o perspectivă globală și să privești starea cuantică în ansamblul său. Q-sphere-ul oferă o reprezentare vizuală a stării cuantice și, prin urmare, această perspectivă globală. Prin urmare, atunci când explorezi aplicații și algoritmi cuantici pe un număr mic de qubiți, q-sphere-ul ar trebui să fie metoda principală de vizualizare.

Vizualizarea statevector

Limită de 6 qubiți

Este obișnuit să numim pkeiφk\sqrt{p_k}e^{i\varphi_k} amplitudinea cuantică. Această vizualizare reprezintă amplitudinile cuantice sub forma unui grafic cu bare. Axa orizontală etichetează stările din baza computațională. Axa verticală măsoară magnitudinea amplitudinilor (pk\sqrt{p_k}) asociate cu fiecare stare din baza computațională. Culoarea fiecărei bare reprezintă faza cuantică (φk{\varphi_k}).

Consideră următorul circuit cuantic și vizualizarea sa statevector:

un circuit cuantic

vizualizarea statevector

Circuitul plasează cei doi qubiți în starea ψ=(00+01+1011)/2|\psi\rangle = (|00\rangle + |01\rangle+ |10\rangle-|11\rangle) / 2. Stările din baza computațională sunt 00|00\rangle, 10|10\rangle, 01|01\rangle și 11|11\rangle. Magnitudinile amplitudinilor sunt 1/21/2, iar fazele cuantice față de starea fundamentală sunt 00 pentru 01|01\rangle și 10|10\rangle, și π\pi pentru 11|11\rangle.

Glosar de operații Composer

Această pagină este un material de referință care definește diversele operații clasice și cuantice pe care le poți folosi pentru a manipula qubiți într-un circuit cuantic. Operațiile cuantice includ porți cuantice, precum poarta Hadamard, dar și operații care nu sunt porți cuantice, cum ar fi operația de măsurare.

Fiecare intrare de mai jos oferă detalii și referința OpenQASM pentru fiecare operație. Consultă subiectul despre Construiește-ți circuitul cu cod OpenQASM pentru mai multe informații.

Imaginea q-sphere din fiecare intrare de poartă de mai jos arată starea după ce poarta acționează asupra stării inițiale de superpoziție egală 12ni=02n1i\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}|i\rangle, unde nn este numărul de qubiți necesari pentru a suporta poarta. Consultă subiectul despre q-sphere pentru mai multe informații despre această vizualizare.

Poți defini o operație personalizată pentru a o folosi în IBM Quantum Composer. Pentru instrucțiuni, consultă subiectul Creează o operație personalizată în OpenQASM.

Gate colors

The gate colors are slightly different in the light and dark themes. The colors from the light theme are shown here.

Apasă pe o operație cuantică de mai jos pentru a-i vedea definiția.

Porți clasice

Poarta NOT

Poarta NOT, cunoscută și sub numele de poarta Pauli X, transformă starea 0\left|0\right\rangle în 1\left|1\right\rangle și invers. Poarta NOT este echivalentă cu RX pentru unghiul π\pi sau cu „HZH".

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
x_gatex q[0];image19Reprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpoziție egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a suporta poarta.

Poarta CNOT

Poarta controlled-NOT, cunoscută și sub numele de poarta controlled-x (CX), acționează asupra unei perechi de qubiți, unul jucând rolul de „control", iar celălalt de „țintă". Aplică un NOT asupra țintei ori de câte ori qubit-ul de control se află în starea 1\left|1\right\rangle. Dacă qubit-ul de control se află în superpoziție, această poartă creează entanglement.

Toate circuitele unitare pot fi descompuse în porți cu un singur qubit și porți CNOT. Deoarece poarta CNOT cu doi qubiți necesită mult mai mult timp de execuție pe hardware real față de porțile cu un singur qubit, costul circuitului este uneori măsurat în numărul de porți CNOT.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
CX-Gatecx q[0], q[1];image19Reprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpoziție egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a suporta poarta.

Poarta Toffoli

Poarta Toffoli, cunoscută și sub numele de poarta double controlled-NOT (CCX), are doi qubiți de control și o țintă. Aplică un NOT asupra țintei doar când ambii qubiți de control se află în starea 1\left|1\right\rangle.

Poarta Toffoli împreună cu poarta Hadamard formează un set universal de porți pentru calculul cuantic.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
ccx-gateccx q[0], q[1], q[2];ccx_qsphReprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpoziție egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a suporta poarta.

Poarta SWAP

Poarta SWAP interschimbă stările a doi qubiți.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
SWAP gateswap q[0], q[1];swap_qsphReprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpoziție egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a suporta poarta.

Poarta identitate

Poarta identitate (numită uneori Id sau poarta I) este de fapt absența unei porți. Ea garantează că nu se aplică nimic unui qubit pe durata unei unități de timp de poartă.

Referință ComposerReferință Qasm
Identity gateid q[0];

Porți de fază

Poarta T

Poarta T este echivalentă cu RZ pentru unghiul π/4\pi/4. Calculatoarele cuantice tolerante la erori vor compila toate programele cuantice până la nivelul porții T și inversului acesteia, precum și al porților Clifford.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
t_gatet q[0];image29Reprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpoziție egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a suporta poarta.

Poarta S

Poarta S aplică o fază de ii stării 1\left|1\right\rangle. Este echivalentă cu RZ pentru unghiul π/2\pi/2. Rețineți că S=P(π/2\pi/2).

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
s_gates q[0];image25Reprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpoziție egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a suporta poarta.

Poarta Z

Poarta Pauli Z acționează ca identitate asupra stării 0\left|0\right\rangle și înmulțește semnul stării 1\left|1\right\rangle cu -1. Prin urmare, inversează stările +\left|+\right\rangle și \left|-\right\rangle. În baza +/-, joacă același rol ca poarta NOT în baza 0\left|0\right\rangle/1\left|1\right\rangle.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
z_gatez q[0];image23Reprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpoziție egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a suporta poarta.

Poarta TT^{\dagger}

Cunoscută și sub numele de poarta Tdg sau T-dagger.

Inversul porții T.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
T-dagger gatetdg q[0];image31Reprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpoziție egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a suporta poarta.

Poarta SS^{\dagger}

Cunoscută și sub numele de poarta Sdg sau S-dagger.

Inversul porții S.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
S-dagger gatesdg q[0];image27Reprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpoziție egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a suporta poarta.

Poarta de fază

Poarta de fază (numită anterior poarta U1) aplică o fază de eiθe^{i\theta} stării 1\left|1\right\rangle. Pentru anumite valori ale lui θ\theta, este echivalentă cu alte porți. De exemplu, P(π\pi)=Z, P(π\pi/22)=S și P(π/4\pi/4)=T. La o fază globală de eiθ/2e^{i\theta/2}, este echivalentă cu RZ(θ\theta).

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
p_gatep(theta) q[0];p_qsphReprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpoziție egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a suporta poarta.

În IBM Quantum Composer, valoarea implicită pentru theta este π/2\pi/2.

Poarta RZ

Poarta RZ implementează exp(iθ2Z)exp(-i\frac{\theta}{2}Z). Pe sfera Bloch, această poartă corespunde rotirii stării qubitului în jurul axei z cu unghiul dat.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
rz_gaterz(angle) q[0];image17Reprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpoziție egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a suporta poarta.

În IBM Quantum Composer, valoarea implicită pentru angle este π/2\pi/2. Prin urmare, acesta este unghiul folosit în vizualizarea q-sphere.

Operatori non-unitari și modificatori

Operația de resetare

Operația de resetare returnează un qubit la starea 0\left|0\right\rangle, indiferent de starea sa înainte de aplicarea operației. Nu este o operație reversibilă.

Referință ComposerReferință OpenQASM
0-operareset q[0];

Măsurătoare

Măsurătoarea în baza standard, cunoscută și ca baza z sau baza computațională. Poate fi folosită pentru a implementa orice tip de măsurătoare atunci când este combinată cu porți. Nu este o operație reversibilă.

Referință ComposerReferință OpenQASM
Measurement in the standard or z basismeasure q[0];

Modificatorul de control

Un modificator de control produce o poartă a cărei operație originală este condiționată de starea qubitului de control. Când controlul se află în starea 1|1\rangle, qubit(urile) țintă suferă evoluția unitară specificată. În schimb, nicio operație nu este efectuată dacă controlul se află în starea 0|0\rangle. Dacă controlul se află într-o stare de superpozițe, atunci operația rezultată decurge din liniaritate.

Trage modificatorul de control pe o poartă pentru a-i adăuga un control. Vor apărea puncte deasupra și dedesubtul porții, pe firele de qubit care pot fi ținte de control; fă clic pe unul sau mai multe puncte pentru a atribui ținta unuia sau mai multor qubiți. Poți atribui și un control dând clic dreapta pe o poartă.

Pentru a elimina un control, dă clic dreapta pe poartă și selectează opțiunea de eliminare a controlului.

Referință ComposerReferință OpenQASM
Control modifierc

Operația barieră

Pentru a face programul tău cuantic mai eficient, compilatorul va încerca să combine porțile. Bariera este o instrucțiune dată compilatorului pentru a preveni aceste combinații. În plus, este utilă pentru vizualizări.

Referință ComposerReferință OpenQASM
barrierbarrier q;

Poarta Hadamard

Poarta H

Poarta H, sau Hadamard, rotește stările 0\left|0\right\rangle și 1\left|1\right\rangle în +\left|+\right\rangle și respectiv \left|-\right\rangle. Este utilă pentru crearea superpozițiilor. Dacă ai un set de porți universal pe un calculator clasic și adaugi poarta Hadamard, acesta devine un set de porți universal pe un calculator cuantic.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
h-gateh q[0];image1Reprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpozițe egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a susține poarta.

Porți cuantice

Poarta X\sqrt{X}

Cunoscută și ca poarta rădăcină pătrată a lui NOT.

Această poartă implementează rădăcina pătrată a lui X, X\sqrt{X}. Aplicând această poartă de două ori consecutiv se obține poarta standard Pauli-X (poarta NOT). La fel ca poarta Hadamard, X\sqrt{X} creează o stare de superpozițe egală dacă qubitului se află în starea 0|0\rangle, dar cu o fază relativă diferită. Pe unele dispozitive hardware, este o poartă nativă care poate fi implementată cu un puls π/2\pi/2 sau X90.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
sx_gatesx q[0];sx_qsphReprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpozițe egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a susține poarta.

Poarta X\sqrt{X}^{\dagger}

Cunoscută și ca poarta SXdg sau rădăcina pătrată a lui NOT-dagger.

Aceasta este inversul porții X\sqrt{X}. Aplicând-o de două ori consecutiv se obține poarta Pauli-X (poarta NOT), deoarece poarta NOT este propriul său invers. La fel ca poarta X\sqrt{X}, această poartă poate fi folosită pentru a crea o stare de superpozițe egală și este, de asemenea, implementată nativ pe unele dispozitive hardware folosind un puls X90.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
sxdg_gatesxdg q[0];sxdg_qsphReprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpozițe egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a susține poarta.

Poarta Y

Poarta Pauli Y este echivalentă cu Ry pentru unghiul π\pi. Este echivalentă cu aplicarea lui X și Z, până la un factor de fază global.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
y_gatey q[0];image21Reprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpozițe egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a susține poarta.

Poarta RX

Poarta RX implementează exp(iθ2X)exp(-i\frac{\theta}{2}X). Pe sfera Bloch, această poartă corespunde rotației stării qubitului în jurul axei x cu unghiul dat.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
rx_gaterx(angle) q[0];image13Reprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpozițe egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a susține poarta.

În IBM Quantum Composer, valoarea implicită pentru angle este π/2\pi/2. Prin urmare, acesta este unghiul folosit în vizualizarea q-sphere.

Poarta RY

Poarta RY implementează exp(iθ2Y)exp(-i\frac{\theta}{2}Y). Pe sfera Bloch, această poartă corespunde rotației stării qubitului în jurul axei y cu unghiul dat și nu introduce amplitudini complexe.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
ry_gatery(angle) q[0];image15Reprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpozițe egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a susține poarta.

În IBM Quantum Composer, valoarea implicită pentru angle este π/2\pi/2. Prin urmare, acesta este unghiul folosit în vizualizarea q-sphere de mai jos.

Poarta RXX

Poarta RXX implementează exp(iθ/2XX)\exp(-i \theta/2 X \otimes X). Poarta Mølmer–Sørensen, poarta nativă pe sistemele cu capcane ionice, poate fi exprimată ca o sumă de porți RXX.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
rxx-gaterxx(angle) q[0], q[1];rxx_qsphReprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpozițe egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a susține poarta.

În IBM Quantum Composer, valoarea implicită pentru angle este π/2\pi/2.

Poarta RZZ

Poarta RZZ necesită un singur parametru: un unghi exprimat în radiani. Această poartă este simetrică; schimbând cei doi qubiți pe care acționează nu se modifică nimic.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
rzz_gaterzz(angle) q[0], q[1];rzz_qsphReprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpozițe egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a susține poarta.

În IBM Quantum Composer, valoarea implicită pentru angle este π/2\pi/2.

Poarta U

(Anterior numită poarta U3) Cei trei parametri permit construirea oricărei porți cu un singur qubit. Are o durată de o unitate de timp de poartă.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
u_gateu(theta, phi, lam) q[0];u3_qsphReprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpozițe egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a susține poarta.

În IBM Quantum Composer, valoarea implicită pentru angle este π/2\pi/2.

Poarta RCCX

Poarta Toffoli simplificată, denumită și poarta Margolus.

Poarta Toffoli simplificată implementează poarta Toffoli până la faze relative. Această implementare necesită trei porți CX, care este numărul minim posibil, conform https://arxiv.org/abs/quant-ph/0312225. Rețineți că Toffoli simplificat nu este echivalent cu Toffoli, dar poate fi folosit în locurile unde poarta Toffoli este decomputată din nou.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
rccx-gaterccx a, b, c;rccx_qsphReprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpozițe egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a susține poarta.

Poarta RC3X

Poarta Toffoli simplificată cu 3 controale.

Poarta Toffoli simplificată implementează poarta Toffoli până la faze relative. Rețineți că Toffoli simplificat nu este echivalent cu Toffoli, dar poate fi folosit în locurile unde poarta Toffoli este decomputată din nou.

Referință ComposerReferință OpenQASMQ-sphereNotă despre reprezentările q-sphere
rc3x-gaterc3x a, b, c, d;rc3x_qsphReprezentarea q-sphere arată starea după ce poarta acționează asupra stării inițiale de superpozițe egală 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, unde nn este numărul de qubiți necesari pentru a susține poarta.