È possibile semplificare i problemi di "produzione di uno stato" suddividendoli in tre parti:
- Prepara la raccolta di magnitudini di cui avrai bisogno, senza preoccuparti della fase o di quale stato ha quale magnitudine.
- Correggi le fasi.
- Correggi l'ordine.
Ora considera lo stato Hardy. Quali sono le magnitudini che dobbiamo fare? Abbiamo bisogno di un'istanza di e tre istanze di . Possiamo farli uno alla volta, avendo uno stato di "ampiezza rimanente" da cui continuiamo a separarci.3/12−−√1 / 12--√
Iniziamo con tutta l'ampiezza in uno stato con un'eccitazione a sinistra, dove . Quello che vogliamo fare è spostare l'eccitazione verso destra lasciando dietro di sé le magnitudini desiderate. Quindi, per cominciare, vogliamo lasciarci alle spalle la magnitudine . Possiamo farlo con un'operazione controllata, in cui il controllo è il qubit più a sinistra e il bersaglio è il qubit appena alla sua destra. Selezionando il valore giusto per , ciò comporterà lo stato . Quindi abbiamo CNOT il secondo qubit sul primo qubit per arrivare aℓ0| 1000 ...00⟩ℓ0= 13 / 12--√Ry( θ0)θ3 / 12--√| 1000 ...00⟩+ ℓ1| 1100 ...00⟩ℓ1| 1000 ... 00⟩+3 / 12--√| 0100 ...00⟩. Adesso vogliamo estrarre . Eseguiamo un altro controllato dal qubit più a sinistra seguito da un CNOT all'indietro, ma questa volta con il target è il qubit terzo da sinistra. Selezionando il perfetto produrremo lo stato . E continui a farlo fino a quando non hai tutte le ampiezze di cui hai bisogno, affrontate comodamente dall'eccitazione dei qubit individuali.1 / 12--√Ryθ1ℓ2| 1000 ... 00⟩+3 / 12--√| 0100 ... 00⟩+1 / 12--√ℓ2| 0010 ...00⟩
Ora vuoi correggere eventuali fasi errate prodotte dalle rotazioni Y. Per lo stato Hardy questo è facile, perché tutte le fasi sono positive. In generale si mira ogni posizione del qubit con un'operazione con i valori scelti in modo appropriato , e ciò porterà le fasi giuste.KRz( ϕK)φK
Ora vogliamo ottenere l'ordinazione giusta. Il modo più semplice per farlo è quello di avere alcuni qubit extra che sono i tuoi qubit di output e, per ciascuno dei qubit che abbiamo preparato finora e ciascuno dei qubit di output, aggiungere un CNOT tra i due o no. Ad esempio, se lo stato con ampiezza dovrebbe essere un , allora dobbiamo CNOT dal nostro qubit più a sinistra su entrambi i qubit di output. Quindi dobbiamo decomprimere il qubit più a sinistra usando un'operazione NOT controllata da molti. Dovrebbe esserci un controllo per ogni qubit di output e il tipo di controllo (qubit-must-be-on vs qubit-must-be-off) è determinato dal fatto che tu abbia attivato o meno il qubit.3 / 12--√| 11⟩
L'applicazione di questi passaggi produce un circuito inefficiente, ma corretto, per la creazione di uno stato Hardy. Puoi aprire il circuito in Quirk :
Se si desidera produrre uno stato senza utilizzare così tanto spazio di lavoro, l'attività diventa più difficile. Ma puoi ancora seguire le magnitudini, quindi le fasi, quindi il modello di ordinazione. Inoltre, ci sono modi più intelligenti per preparare insiemi di magnitudini che hanno modelli piacevoli. Ad esempio, quando solo un'ampiezza è diversa dalle altre, un giro di amplificazione dell'ampiezza parziale può essere sufficiente per preparare lo stato.