1. Introduzione e Struttura del Corso di Quantum Computing [0]

  1. Quantum Computing (QC) usa la meccanica quantistica per elaborare informazioni velocemente. [0]
  2. Questo corso offre una base solida, spiegando come funzionano gli algoritmi quantistici. [1]
  3. Il corso è diviso in due sezioni principali: matematica essenziale e meccanica quantistica. [2]
  4. QC è potente e trasformerà la tecnologia. [3]
  5. Michael di Quantum Source ha creato il corso. [4]
  6. Spiegazioni comuni usano analogie (es. qubit è 0 e 1 insieme) che non sono chiare. [5]
  7. Questo corso insegna il funzionamento reale, senza analogie. [7]

1.1. Struttura Dettagliata del Corso [8]

  1. Sezione 1: Matematica di base necessaria. [9]
    1. Introduzione ai numeri complessi. [9]
    2. Algebra lineare di base. [9]
  2. Sezione successiva: Esplorazione del qubit e sua rappresentazione matematica. [9]
    1. Operazioni su singolo qubit e loro proprietà. [10]
  3. Sezione 3: Rappresentazione matematica di qubit multipli. [11]
    1. Operazioni su qubit multipli. [11]
    2. Fenomeni quantistici: entanglement e phase kickback. [12]
  4. Sezione finale: Analisi degli algoritmi quantistici. [13]
    1. Mostra la natura rivoluzionaria del QC. [14]

2. Matematica Fondamentale: Numeri Complessi [15]

2.1. Numeri Immaginari e Complessi [15]

  1. Si inizia con le radici quadrate dei numeri. [15]
  2. Se , allora . [16]
  3. Se , si introducono i numeri immaginari. [17]
    1. Si definisce come la radice quadrata di . [18]
    2. diventa . [18]
    3. Un numero immaginario contiene un fattore di . [19]
  4. Si passa ai numeri complessi. [20]
    1. Un numero complesso è un numero reale più un numero immaginario. [21]
    2. La forma standard è , dove e sono reali. [22]
    3. è la parte reale. [22]
    4. è la parte immaginaria. [22]
  5. Questi numeri saranno usati per modellare gli stati quantistici. [23]

2.2. Operazioni sui Numeri Complessi [24]

  1. Addizione e sottrazione si fanno sommando/sottraendo parti reali e immaginarie. [24]
  2. La moltiplicazione richiede di ricordare che . [25]
  3. Il coniugato complesso si ottiene invertendo il segno della parte immaginaria. [26]
    1. È denotato da un asterisco (*). [27]
  4. Proprietà: moltiplicare un complesso per il suo coniugato dà sempre un numero reale. [29]
    1. Esempio: deve essere reale. [30]
  5. Si può rappresentare un complesso come un vettore su un piano. [31]
    1. Asse orizzontale: Reale; Asse verticale: Immaginario. [31]
    2. Esempio: termina nel punto . [32]

2.3. Rappresentazioni Alternative dei Numeri Complessi [33]

  1. La magnitudine è la distanza dall'origine (calcolata con Pitagora). [33]
    1. . [34]
  2. Rappresentazione tramite forma polare: magnitudine () e angolo (). [36]
    1. Forma: . [37]
    2. si trova con , quindi . [38]
  3. Forma esponenziale: . [40]
  4. In QC si usa quasi esclusivamente la forma esponenziale. [42]
    1. Cambiare ruota attorno a un cerchio. [43]
    2. Moltiplicare due numeri con magnitudine uno è una rotazione sul cerchio unitario. [43]
    3. Questa proprietà è utile per rappresentare gli stati quantistici. [44]

3. Matematica Fondamentale: Matrici [45]

3.1. Definizione e Operazioni Base su Matrici [45]

  1. Una matrice è una disposizione bidimensionale di numeri. [45]
  2. Una matrice ha righe e colonne. [47]
    1. Una matrice data è una matrice . [47]
  3. Addizione/Sottrazione: Si sommano/sottraggono gli elementi corrispondenti. [49]
    1. Richiede che righe e colonne siano identiche per entrambe le matrici. [51]
  4. Moltiplicazione per uno scalare: Ogni elemento è moltiplicato per lo scalare. [53]
  5. Moltiplicazione tra matrici: Si usa un'operazione simile al prodotto scalare (dot product). [55]
    1. L'elemento è il prodotto scalare tra la riga della prima e la colonna della seconda. [55]
  6. Condizione per la moltiplicazione: colonne della prima = righe della seconda. [58]

3.2. Vettori, Trasformazioni e Proprietà Speciali [59]

  1. Una matrice è chiamata vettore colonna. [60]
  2. I vettori colonna rappresentano uno stato nella computazione quantistica. [62]
  3. Moltiplicare una matrice per un vettore colonna lo trasforma. [64]
    1. Le matrici agiscono come trasformazioni sui vettori. [65]
  4. Matrice identità: Matrice diagonale con tutti uni; moltiplicandola si ottiene la matrice originale. [68]
  5. Matrice inversa (): Moltiplicata per dà la matrice identità. [72]
    1. Applicare e poi lascia il vettore invariato. [74]
  6. Coniugato complesso di una matrice: Si inverte il segno delle componenti immaginarie. [76]
  7. Trasposta (): Si scambiano righe e colonne. [80]
  8. Dagger (): Coniugato complesso più trasposta. [82]
  9. Matrici Unitari (): (l'inversa è il dagger). [84]
    1. Geometricamente, ruotano o ribaltano il vettore senza cambiarne la lunghezza. [86]
  10. Matrici Ermitiane (): . [88]
  11. Autovettore (Eigenvector): Vettore che rimane nella stessa direzione dopo la trasformazione. [91]
  12. Autovalore (Eigenvalue): Lo scalare per cui l'autovettore viene allungato/compresso. [93]
    1. Esempio: Matrice ha autovalore 2 per l'autovettore . [94]

4. Fondamenti del Quantum Computing: Qubit e Misurazione [98]

4.1. Qubit e Sovrapposizione [98]

  1. Computer classici usano bit (0 o 1). [98]
  2. Computer quantistici usano qubit (0 e 1 contemporaneamente). [99]
  3. Un qubit può essere una particella quantistica con due stati distinti (es. polarizzazione di un fotone). [102]
  4. 0 e 1 sono definiti come vettori colonna: e . [103]
    1. Le parentesi angolari sono la notazione di Dirac (ket). [104]
  5. Superposizione: Una particella è in due stati contemporaneamente. [105]
    1. Un qubit è in sovrapposizione se ha valori non nulli per 0 e 1. [107]

4.2. Misurazione e Probabilità [115]

  1. Misurare un sistema quantistico ne cambia lo stato alla misurazione. [115]
  2. Se un qubit in sovrapposizione viene misurato, collassa in 0 o 1. [117]
  3. Non si misura quanto è in stato 0 o 1. [122]
  4. I numeri nella rappresentazione vettoriale indicano la probabilità di misurare 0 o 1. [124]
    1. Probabilità di misurare 0: modulo quadro dell'ampiezza dello stato 0. [125]
    2. Probabilità di misurare 1: modulo quadro dell'ampiezza dello stato 1. [125]
  5. Esempio: stato ha 75% di probabilità di misurare 0. [125]
  6. La somma delle probabilità deve essere 1 (es. è sempre misurato come 0). [127]
  7. La misurazione cambia permanentemente lo stato al risultato ottenuto. [131]

4.3. Notazione di Dirac e Sfera di Bloch [132]

  1. Si usa la notazione di Dirac (ket) per stati quantistici, poiché le matrici diventano grandi con più qubit. [132]
  2. Conversione di in Dirac: . [133]
    1. Le parentesi e sono chiamate ket. [137]
  3. Rappresentazione grafica: Sfera di Bloch. [141]
    1. Polo Nord: stato . Polo Sud: stato . [142]
    2. L'altezza indica la probabilità di misurare 0 (più in alto) o 1 (più in basso). [145]
  4. La rotazione del qubit sulla sfera è chiamata fase. [148]
  5. Esempio: stato è a metà tra l'Equatore e il Polo Sud. [152]

5. Operazioni sui Qubit: Porte Quantistiche [153]

5.1. Porte a Qubit Singolo (X, Y, Z) [153]

  1. Le porte quantistiche cambiano gli stati dei qubit. [154]
  2. Le porte più comuni sono X, Y, Z. [155]
  3. Porta X (NOT): Inverte lo stato (0 1, 1 0). [157]
    1. Ruota il qubit di ( radianti) attorno all'asse X. [161]
  4. Porta Y: Ruota il qubit di attorno all'asse Y. [163]
  5. Porta Z: Ruota il qubit di attorno all'asse Z. [165]
  6. Applicare la stessa porta due volte riporta il qubit alla posizione originale (sono la propria inversa). [166]
  7. Le porte sono rappresentate da matrici (es. Porta X). [168]
  8. Applicare una porta significa moltiplicare la sua matrice per il vettore colonna del qubit. [171]
  9. Per applicare una porta in notazione di Dirac: [173]
    1. La prima colonna della matrice è dove va lo stato . [173]
    2. La seconda colonna è dove va lo stato . [174]
  10. Le porte agiscono linearmente su ogni stato di sovrapposizione individualmente. [176]
  11. La Porta Z cambia in (cambia la fase), ma non le probabilità. [180]

5.2. Introduzione alla Fase (Phase) [181]

  1. La fase è la rotazione attorno all'asse Z. [183]
  2. La fase è cruciale per la potenza del QC, anche se non cambia le probabilità di misurazione. [185]
  3. La fase si rappresenta matematicamente con i numeri complessi in forma esponenziale. [187]
  4. Esempio: Porta Z applicata a dà . [191]
    1. Il fattore è rappresentato come (rotazione di radianti). [194]
  5. Fase Globale vs Fase Relativa: [200]
    1. Fase Globale: Moltiplicazione dell'intero qubit per un complesso (irrilevante fisicamente). [201]
    2. Fase Relativa: Moltiplicazione solo dell'ampiezza dello stato (molto importante). [201]
  6. La fase relativa ruota il qubit attorno all'asse Z sulla Sfera di Bloch. [205]
  7. La fase non cambia la probabilità di misurazione (il modulo quadro dell'ampiezza rimane lo stesso). [206]

5.3. Stati Equatoriali e Porta Hadamard [210]

  1. Gli stati sull'Equatore della Sfera di Bloch sono: , , , . [212]
  2. Questi sono shorthand per stati con fase relativa specifica: [214]
    1. . [216]
    2. (fase relativa ). [217]
    3. ha fase relativa . [219]
  3. Porta Hadamard (H): Matrice specifica. [220]
    1. Trasforma e . [222]
    2. È la propria inversa: . [224]
  4. La porta Hadamard mostra che la fase è importante. [226]
    1. Trasformando e (che differiscono solo per fase relativa) si ottengono risultati diversi (0 e 1). [227]

5.4. Porte Aggiuntive e Multi-Qubit [230]

  1. Porta S: Aggiunge una fase relativa di radianti. [231]
  2. Porta T: Aggiunge una fase relativa di radianti. [233]
  3. Le loro inverse () aggiungono la fase negativa corrispondente. [234]
  4. Più Qubit: Rappresentati tramite il prodotto tensore (). [238]
    1. Due qubit sono rappresentati come . [239]
    2. La sovrapposizione si espande usando il prodotto tensore sulle ampiezze. [241]
    3. Due qubit generano stati possibili (es. ). [243]
  5. La misurazione funziona come prima (probabilità = modulo quadro del coefficiente). [244]
  6. Aggiungere un qubit al sistema si fa con il prodotto tensore alla fine dello stato. [246]
  7. Notazione shorthand: zeri possono essere scritti come . [247]

6. Circuiti Quantistici e Porte Multi-Qubit [248]

6.1. Circuiti Quantistici [248]

  1. Per indicare l'applicazione di una porta si usa il circuito quantistico. [248]
    1. Le linee verticali sono i qubit. [250]
    2. Le scatole sono le porte quantistiche (es. X). [251]
    3. Le frecce sono le misurazioni. [253]
    4. L'ordine di applicazione va da sinistra a destra. [254]
  2. Esempio di circuito: stato iniziale , poi porte X e H applicate al secondo qubit. [258]

6.2. Porte Multi-Qubit: CNOT e Toffoli [264]

  1. Porta CNOT (Controlled-X): Agisce su due qubit (controllo e target). [265]
    1. Applica una porta X al target solo se il controllo è . [269]
  2. La CNOT si applica a ogni stato di sovrapposizione individualmente. [270]
  3. Porta Toffoli: Simile alla CNOT, ma ha due qubit di controllo. [272]
  4. Si possono creare versioni controllate di altre porte (Y, Z, S, T, H). [276]
    1. Sono rappresentate con la porta base e una linea che indica il controllo. [277]

6.3. Misurazione Multi-Qubit e Collasso [279]

  1. Per trovare la probabilità di misurare un singolo qubit come 1, si sommano le probabilità di tutti gli stati in cui quel qubit è 1. [279]
  2. Quando si misura un qubit, il sistema collassa allo stato misurato. [282]
  3. Se si rimuovono stati (perché il qubit misurato non corrisponde), le probabilità totali scendono sotto 1. [285]
  4. Si usa una costante di normalizzazione () per riportare la somma delle probabilità a 1. [286]
  5. Esempio con tre qubit: se il qubit centrale è misurato come 0, lo stato collassa e viene normalizzato. [290]

7. Entanglement e Fenomeni Avanzati [299]

7.1. Entanglement (Intreccio) [299]

  1. Se misurando un qubit si conosce immediatamente lo stato dell'altro, c'è entanglement. [299]
  2. Uno stato è entangled se non può essere fattorizzato come prodotto tensore di stati singoli. [302]
  3. Stati Massimamente Entangled (Bell States): Misurare un qubit determina lo stato degli altri. [305]
    1. Esempio: è massimamente entangled. [306]
  4. Stati Parzialmente Entangled: La misurazione influenza le probabilità o la fase degli altri qubit. [309]

7.2. Phase Kickback (Ritorno di Fase) [310]

  1. Fenomeno che si verifica con un circuito contenente e un qubit target , con un'operazione controllata . [311]
  2. Se è un autostato di (cioè ), avviene il phase kickback. [314]
  3. La fase viene applicata al qubit di controllo (il primo qubit in ). [319]
  4. Questo fenomeno è usato in alcuni algoritmi quantistici. [322]

7.3. Superdense Coding [323]

  1. Protocollo che permette di inviare due bit classici usando un solo qubit. [324]
  2. Richiede che Alice e Bob condividano due qubit massimamente entangled inizialmente. [325]
  3. Alice opera sul suo qubit a seconda dei due bit che vuole inviare (00, 01, 10, 11). [331]
  4. Alice invia il suo qubit a Bob. [336]
  5. Bob applica prima una CNOT (controllo: qubit di Alice, target: suo qubit). [338]
  6. Poi applica una Hadamard al qubit di Alice. [339]
  7. Misurando entrambi i qubit, Bob ottiene i due bit originali inviati da Alice. [340]

8. Reversibilità e Applicazione di Funzioni [344]

8.1. Operazioni Classiche e Reversibilità [344]

  1. Operazioni classiche su bit: AND, OR, NOT, XOR (esclusivo OR). [345]
  2. NOT: Inverte il bit (tabella di verità ). [346]
  3. AND: Restituisce 1 solo se entrambi gli input sono 1. [350]
  4. OR: Restituisce 1 se almeno uno degli input è 1. [353]
  5. XOR: Restituisce 1 se gli input sono diversi (0 se uguali). [355]
  6. L'operazione XOR è usata per rendere reversibili le porte classiche. [358]
  7. Una funzione è Reversibile se, dato , si può determinare . [359]
    1. OR non è reversibile (output 1 può venire da input 01, 10, 11). [360]
  8. Per rendere reversibile una porta, si aggiunge un bit di input e si restituisce e . [362]
    1. L'OR diventa reversibile con questo metodo. [364]
  9. Importanza: Tutte le operazioni QC (tranne la misurazione) devono essere reversibili (unitari). [368]

8.2. Funzioni Quantistiche e Phase Oracle [372]

  1. Le funzioni quantistiche devono essere reversibili. [373]
  2. Tecnica: Input e , output e . [375]
    1. Se si imposta , l'output è e (si interroga la funzione). [377]
  3. La funzione è codificata in una matrice unitaria . [380]
  4. Applicando allo stato , si ottiene . [382]
  5. Phase Oracle: Se il secondo registro (output) è nello stato , si ottiene una fase. [383]
    1. Lo stato finale è . [395]
    2. Questo è chiamato phase oracle. [396]

9. Teorema No-Cloning e Algoritmo di Deutsch [398]

9.1. Teorema No-Cloning [398]

  1. Copiare bit classici è facile leggendo e scrivendo. [399]
  2. Non si può copiare uno stato quantistico sconosciuto (es. ). [399]
  3. Se si conoscono e , la copia è possibile. [401]

9.2. Algoritmo di Deutsch [402]

  1. Problema: Data una funzione a 1 bit (input output), determinare se è costante o bilanciata. [403]
    1. Costante: Stesso output per tutti gli input (es. o ). [409]
    2. Bilanciata: Metà input danno 0, metà danno 1 (es. Identità o NOT). [411]
  2. Classicamente: Richiede 2 query ( e ). [415]
  3. Quantummente (Deutsch): Richiede una sola query. [418]
  4. Circuito: [419]
    1. Inizialmente . [421]
    2. Si applica Hadamard a entrambi i qubit: . [422]
    3. Si applica la funzione (come phase oracle). [425]
    4. Lo stato diventa . [429]
    5. Caso Costante (): Lo stato finale è . [430]
    6. Caso Bilanciato (): Lo stato finale è . [431]
    7. Si applica Hadamard all'input (primo qubit). [437]
    8. Se era , diventa . [438]
    9. Se era , diventa . [438]
    10. Misurando il primo qubit: 0 Costante; 1 Bilanciata. [439]

10. Algoritmi Generalizzati: Deutsch-Jozsa e Bernstein-Vazirani [443]

10.1. Algoritmo di Deutsch-Jozsa (DJ) [443]

  1. DJ risolve lo stesso problema di Deutsch, ma per funzioni che accettano bit in input. [443]
  2. Classicamente: Richiede fino a query nel caso peggiore. [450]
  3. Quantummente: Richiede una sola query. [455]
  4. Circuito: Simile a Deutsch, ma con qubit di input. [456]
    1. Si applica Hadamard a tutti gli qubit iniziali . [457]
    2. Identità Importante: Hadamard su crea una superposizione uniforme di tutti i bit string. [461]
    3. Si applica la funzione (come phase oracle). [475]
    4. Si applica Hadamard a tutti gli qubit di input. [480]
    5. Si usa una nuova identità per l'Hadamard su un bit string arbitrario . [484]
    6. Si analizza l'ampiezza dello stato . [495]
    7. Se è costante, l'ampiezza è . Probabilità di misurare è 1. [501]
    8. Se è bilanciata, l'ampiezza è 0. Probabilità di misurare è 0. [505]
  5. Misurando si conferma che è costante; altro bilanciata. [513]

10.2. Algoritmo di Bernstein-Vazirani (BV) [517]

  1. Problema: Data (prodotto scalare), trovare la stringa segreta $S$. [518]
  2. Classicamente: Richiede query (una per ogni bit di ). [520]
  3. Quantummente: Richiede una sola query. [523]
  4. Circuito: Uguale a DJ, ma la funzione usa il qubit target nello stato . [524]
    1. Lo stato finale (dopo ) è proporzionale a . [529]
    2. Si applica Hadamard a tutti i qubit di input. [532]
    3. Si usa l'identità che porta a . [533]
  5. Risultato: L'ampiezza dello stato è 1. [540]
  6. Misurando i qubit si ottiene direttamente la stringa segreta con probabilità 1. [546]

10.3. Quantum Fourier Transform (QFT) [550]

  1. QFT e Quantum Phase Estimation (QPE) sono usati in molti algoritmi (es. Shor). [550]
  2. QFT: Trasforma la codifica binaria (fasi) in codifica di fase. [552]
    1. In input, i numeri sono codificati in binario (0 o 1 per qubit). [554]
    2. In output, i numeri sono codificati nella fase dei qubit in sovrapposizione uniforme. [557]
    3. Il qubit più a destra ha possibili posizioni di fase. [560]
  3. Esempio (Numero 5, ): [562]
    1. Il qubit più a destra ruota di radianti. [563]
    2. Il qubit successivo ruota del doppio, e così via. [564]
  4. Circuito QFT: Usa porte Controlled-R e Swap. [567]
    1. Controlled-R$_k$: Applica una fase relativa se il controllo è 1. [570]
    2. Swap: Scambia gli stati di due qubit. [574]
  5. Applicando QFT a uno stato base , si ottiene una formula generale che codifica nelle fasi. [593]
  6. Inverse QFT: Annulla la trasformazione QFT. [594]

10.4. Quantum Phase Estimation (QPE) [597]

  1. QPE trova l'autovalore () di un autovettore () data una matrice . [596]
  2. QPE è cruciale per l'algoritmo di Shor. [599]
  3. Circuito QPE: Due registri: qubit per la fase stimata, qubit () per l'autovettore. [600]
  4. Passaggi: [606]
    1. Hadamard sui qubit del primo registro (fase). [607]
    2. Applicare controllato dal -esimo qubit del primo registro, con come target. [607]
    3. Si verifica il phase kickback su ogni qubit di controllo. [608]
    4. Lo stato finale ha fasi che dipendono da , dove . [611]
    5. Si applica l'Inverse QFT al primo registro. [621]
  5. Misurando il primo registro si ottiene (approssimazione di in Shor). [623]

10.5. Algoritmo di Shor [625]

  1. Shor fattorizza un numero grande (dove sono primi). [626]
  2. Questo potrebbe rompere la crittografia RSA. [628]
  3. Passo Classico: Scegliere tale che . [631]
  4. Passo Quantistico: Trovare il periodo $R$ dell'esponenziazione modulare . [635]
    1. è il più piccolo intero tale che . [639]
  5. Costruzione della Porta $U$: Trasforma . [643]
  6. Applicando allo stato ripetutamente si ottengono le potenze di . [645]
  7. Lo stato (che è ) è un autovettore di con autovalore . [652]
    1. è la fase che QPE può stimare. [653]
  8. Si costruisce uno stato di sovrapposizione uniforme di tutti gli stati . [654]
  9. Circuito: È QPE, dove l'autovettore è . [660]
    1. QPE restituisce un valore decimale . [665]
  10. Passo Classico Finale: Usare la tecnica delle frazioni continue per stimare e da . [666]
    1. Si cerca una frazione . [672]
  11. Fattorizzazione: Usando , si calcolano e . [675]
    1. Questi GCD hanno alta probabilità di contenere i fattori e . [678]
  12. Esempio $N=15$: Scegliendo , si trova . I fattori sono e . [680]