Un quantum game è unitary e reversable. Dobbiamo poter far una quantum transformation che encode una funzione. Per fare questo seguiamo il metodo del textbook di Mermin:
Supponiamo di avere una funzione f che fa una trasformazione del tipo n+m qbits:
$$ U_f(|x>_n|y>_m) = |x>_n|y \oplus f(x)>_m $$
Prendiamo praticamente come input x e y e diamo
Possiamo vederlo come f(x) = y, questo x non è solamente un numero, ma anche una serie molto lunga di qbits che codificano l’input della funzione. Questo potrebbe essere assolutamente non reversable. Per questo motivo definiamo la funzione latex scritta prima.
U non cambia input register. Mentre nell’output register abbiamo la computation e possiamo partire con quello che vogliamo, solitamente partiamo con tutti zero.
Se facciamo il computing di $U_f(|x>_n|0>_m)=|x>_n|f(x)>_m$
Ora sta facendo vedere come funzioni l’inverso della funzione praticamente applicando due volte la funzione su se stessa.
Prendiamo la definizione di U_f e vediamo come fare la sua rappresentazione con essenzialmente un blocco che prende in input due registri, uno di input e uno di output. Quello di input rimane normale, ma cambia output register.
Questa rappresentazione non è quantum circuit nel senso del tool IBM. Vedremo come quando usiamo il circuit composer avremo un singolo input e un singolo output. Ora vediamo tutto quanto in maniera rigorosa.
Teniamo praticamente lo stesso numero di qbits come output dato un determinato input. Descriviamo il general computational process. Cerchiamo di usare hadamart gate e vediamo come un quantum trasformation che abbia introdotto su un quantum state che ha undergun un H trasformation.
Supponiamo di aere un 2qbits system e applichiamo H a tutti e due. H è una matrice 2x2 che praticamente devo applicare su tutti i vettori colonna che rappresentano i vettori qbit. In questo 1 H applica 1 qbit.
Se abbiamo n bits state e lo separiamo in due sistemi abbiamo che i primi bits sono in un stato determinato che non dipendono dal resto dei bits. Questo potrebbe venire generalizzato con:
$$ H^{\otimes n}|0>n=\frac{1}{2^{\frac{n}{2}}}\sum{0\le x < 2^N}|x>_n $$
<aside> 📢 Prova a farlo con 3 qbits
</aside>
Abbiamo alla fine la linear combinations di tutti i qbits. Abbiamo un H che applichiamo e facciamo in uno step singolo e alla fine la mia stringa di qbits è in una linear comibination linear superposition e questo è il punto di partenza di tutti i quantum algorithm.
A questo punto possiamo andare ad applicare qualsiasi funzione a questo stato vedi formulona gigante a fine slides n…. boh
Applichiamo U_f in uno stato che ha nell’output tutto quanto zero e in input qualsiasi cosa.
Il problema è andare a misurare tutto quanto, perché per la regola di Born sono fregato.