Come fa un computer quantistico a fare matematica di base a livello hardware?


27

Leggendo questo thread Reddit mi sono reso conto che anche dopo un paio di mesi di apprendimento sull'informatica quantistica non ho assolutamente idea di come funzioni effettivamente un computer quantistico.

Per rendere la domanda più precisa, supponiamo di avere un computer quantistico a 5 qubit basato su qubit superconduttore (come l'IBM Quantum Computer a 5 qubit). Digito usando una tastiera su un monitor (diciamo in un'app calcolatrice di base che potrebbe avere il computer quantistico). Dopodiché dovrebbe restituirmi . Ma sta succedendo a livello hardware? Una sorta di segnale elettrico corrispondente agli ingressi , e va all'unità di elaborazione del computer? Questo in qualche modo "inizializza" gli elettroni della coppia Cooper? Cosa succede dopo i qubit di elettroni della coppia Cooper (immagino che sarebbero stati elaborati da alcune porte quantiche , che sono a loro volta scatole nere2+3523+)? Come mi restituisce infine l'output ?5

Sono sorpreso di quanto poco mi venga in mente il funzionamento di base di un computer quantistico cercando in rete.

Risposte:


27

Innanzitutto, un computer classico esegue la matematica di base a livello hardware nell'unità aritmetica e logica (ALU). Le porte logiche assumono tensioni di ingresso basse e alte e utilizzano CMOS per implementare porte logiche che consentono di eseguire e costruire singole porte per eseguire operazioni più grandi e complicate. In questo senso, digitando su una tastiera si inviano segnali elettrici, che alla fine finisce in un comando (sotto forma di più segnali elettrici) che viene inviato all'ALU, vengono eseguite le operazioni corrette e vengono inviati più segnali, che viene convertito in visualizzare i pixel a forma di numero sullo schermo.

Che dire di un computer quantistico?

Esistono due modi in cui i processori quantistici vengono utilizzati: da soli o in combinazione con un processore classico. Tuttavia, la maggior parte dei processori quantistici (incluso il tuo esempio di superconduzione) in realtà non usa segnali elettrici, anche se questo è ancora il modo in cui mouse, tastiera, monitor ecc. Trasmettono e ricevono informazioni. Quindi, deve esserci un modo per convertire il segnale elettrico in qualsiasi segnale utilizzato dal processore quantico (che vedrò più avanti), oltre a un modo per dire al processore cosa vuoi fare. Entrambi questi problemi possono essere risolti contemporaneamente dalla pre e post-elaborazione classica, come nel QISKit di IBM . Microsoft sta adottando un approccio un po 'più discendente in Q #, in cui i programmi per un processore quantistico sono scritti più come un programma "classico", al contrario di uno script, quindi compilati e potenzialmente ottimizzati per l'hardware. Cioè, se hai una funzione, può eseguire operazioni classiche, nonché effettuare chiamate al processore quantistico per eseguire tutte le operazioni quantistiche richieste. Questo mi porta al primo punto:

Se hai intenzione di chiedere a un computer con accesso a un processore quantico di calcolare qualcosa come , una soluzione molto valida sarebbe quella di calcolarlo sul processore classico come al solito.2+3

OK, diciamo che stai forzando il processore classico a utilizzare il processore quantico, che in questo caso è uno dei chip superconduttori di IBM, usando transmon qubit, diciamo, IBM QX4 . È troppo piccolo per avere una correzione degli errori, quindi ignoriamolo. Ci sono tre parti per usare un processore modello di circuito: inizializzazione, evoluzione unitaria e misurazione, che sono spiegate in maggior dettaglio di seguito. Prima di ciò,

Che cos'è un transone?

Prendi un ciclo superconduttore per consentire le coppie Cooper e aggiungi una o due giunzioni Josephson per dare un'isola box coppia Cooper nella regione tra le due giunzioni Josephson con l'energia di accoppiamento Josephson , dove il flusso magnetico quantico e è la corrente critica della giunzione. L'applicazione di una tensione a questa scatola fornisce una "capacità di gate" e rende questo un qubit di carica . Per l'energia di Coulomb di una singola coppia Cooper , doveEJ=IcΦ0/2π Φ0=h/2eIcVgCgEC=(2e)2/2CCè la somma della capacità totale dell'isola. L'hamiltoniano di tale sistema è dato da dove è il numero di coppie Cooper, è il cambiamento di fase attraverso la giunzione e . Quando si eseguono operazioni unitarie, vengono considerati solo i due stati più bassi del sistema, e con rispettive energie ed e frequenza qubit

H=EC(nng)2EJcosϕ,
nϕng=CgVg/2e|n=|0|n=|1E0=ω0E1=ω1ω=ω1ω0, descrivendo la base computazionale di un qubit. Un qubit di addebito tipico potrebbe avere . L'aggiunta di una grande capacità di shunt e l'aumento della capacità di gate commuta questo rapporto, in modo che e abbiamo un transone . Ciò ha il vantaggio di tempi di coerenza più lunghi, a un costo di ridotta anarmonicità (in cui i livelli di energia oltre i primi due sono più vicini tra loro, causando potenzialmente perdite).EC=5EJEJEC

Infine , arriviamo alla domanda principale:

Come inizializziamo, evolviamo e misuriamo un transone?

  • Evoluzione unitaria a qubit singolo: applicazione di un impulso a microonde per di frequenza e facendo l' approssimazione dell'onda rotante dà l'hamiltoniano degli stati di qubit (nel caso ideale) come Tuttavia, a causa della minore anarmonicità, gli impulsi a microonde devono essere modellati per ridurre la dispersione a livelli di energia più elevati in un processo noto comeE(t)=Ex(t)cos(ωdt)+Ey(t)sin(ωdt)0<t<tgωd
    H=(ω1ωd12Ex(t)i2Ey(t)12Ex(t)+i2Ey(t)ω22ωd)
    Rimozione derivata da Adiabatic Gate (DRAG) . Variando l'impulso, è possibile ottenere diversi hamiltoniani che, a seconda del tempo dell'impulso, possono essere utilizzati per implementare diverse operazioni unitarie su un singolo qubit.
  • Misura / lettura: un risonatore a microonde, con frequenza di risonanza , può essere accoppiato al transone usando un condensatore. Questa interazione provoca (decadendo) le oscillazioni di Rabi nel sistema transmon-risonatore. Quando la forza di accoppiamento della cavità e del qubit, , questo è noto come regime dispersivo . In questo regime, lo spettro di trasmissione della cavità viene spostato di seconda dello stato del qubit, quindi applicando un impulso a microonde e analizzando la trasmittanza e la riflettanza ( dal computer) può quindi essere utilizzato per misurare il qubit.ωrgωωr±g2/(ωωr)
  • Evoluzione unitaria a qubit multipli: questa idea di accoppiamento di un qubit a un risuonatore a microonde può essere estesa accoppiando il risonatore a un altro qubit. Come nel caso del gate a qubit singolo, i tempi dell'accoppiamento e gli impulsi a microonde possono essere utilizzati per consentire al primo qubit di accoppiarsi alla cavità, che viene quindi accoppiato al secondo qubit ed eseguire determinate porte a 2 qubit. Livelli di energia più elevati possono anche essere utilizzati per rendere più facili da implementare determinate porte a causa delle interazioni tra livelli più elevati causati dalla cavità. Uno di questi esempi è mostrato qui , dove la cavità provoca un'interazione tra gli stati di e|2|0|1|1. Un incrocio evitato tra questi stati significa che può essere implementato un gate di fase a 2 qubit, sebbene in generale le porte a 2 qubit siano implementate meno bene (hanno una fedeltà inferiore) rispetto a quelle a singolo qubit.
  • Inizializzazione: lettura, potenzialmente seguita da un singolo qubit gate di Pauli (su ogni qubit misurato in stato ) per garantire che tutti i qubit inizino nello stato .X|1|0

Aggiungere 2 e 3 ora è una questione 'semplice' di inizializzare i qubit, eseguire le porte equivalenti a un classico sommatore reversibile e misurare il risultato, tutto implementato automaticamente. Il risultato della misurazione viene quindi restituito da un computer classico come al solito.

Come bonus , sembra un po 'inutile passare attraverso tutto ciò al fine di implementare le porte che potrebbero essere fatte comunque su un computer classico, quindi risulta che è possibile implementare approssimativamente un sommatore quantico , che aggiunge due quantici (al contrario alla classica) afferma, con qualche errore, su uno dei processori IBM.


15

Ecco il mio processo per fare l'aritmetica su un computer quantistico.

Passaggio 1: trova un circuito classico che fa ciò che ti interessa.

In questo esempio, un sommatore completo.

sommatore classico completo

Passaggio 2: convertire ciascun cancello classico in un cancello reversibile.

Tieni presenti i tuoi bit di output dall'inizio e inizializzali con CNOT, CCNOT, ecc.

sommatore semi-reversibile

Passaggio 3: utilizzare uscite temporanee.

Se stavi facendo questa aggiunta per controllare, ad esempio, se un oracolo di Grover si sposta di -1 o meno, ora è il momento di applicare un gate Z al tuo qubit di output.

Passaggio 4: sbarazzarsi di valori intermedi facendo esattamente l'opposto di quello che hai fatto per calcolarli.

Ciò può includere o meno la rimozione dei bit di uscita, a seconda di come il circuito si adatta all'algoritmo generale.

sommatore semi-reversibile 2

Passaggio 5: (a volte) per ogni bit di output mantenuto, eliminare un bit di input.

E non intendo "lasciarli cadere sul pavimento", intendo applicare le operazioni che li fanno diventare sicuramente 0.

Quando si calcola c+=a, lasciare una copia del valore originale di ctende ad essere cattivo. Distrugge la coerenza. Quindi devi guardare il tuo circuito sommatore (o qualsiasi altra cosa) e pensare attentamente se c'è un modo per usare i tuoi bit di output per sbarazzarti dei bit di input. Ad esempio, dopo il calcolo c+aè possibile eseguire una sottrazione fuori luogo temporanea in un registro r, xo r nel registro in cui è memorizzata la copia indesiderata di c, quindi ripristinare la sottrazione temporanea.

(Una notevole eccezione a "se mantieni il tuo output, non conservare così tanto il tuo input" è l'algoritmo di Shor. L'algoritmo di Shor ne decifra il suo input di proposito , ma in un modo molto particolare che aiuta a trovare il periodo.)

Passaggio 6: sii efficiente

Nel passaggio 5 ho detto che potresti decomprimere l'input di un'aggiunta sul posto eseguendo un'aggiunta fuori posto seguita da una sottrazione fuori posto temporanea. Questo è un po 'sciocco. Il processo di aggiunta generale si estenderà su 4n qubit (n per trattenere a, n per trattenere c, n per trattenere c+a, n per trattenere (c+a)-a). Se sei più intelligente, puoi adattare tutto nei 2nqubit o (leggermente più semplice) nei 2n+1qubit :

sommatore cuccaro

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.