La simulazione del modello quantistico La necessità di creare un modello di rete neurale quantistica nasce direttamente dal progetto di interfaccia neurone-silicio per confrontare i risultati teorici di evoluzione della rete con i risultati delle misurazioni delle cellule staminali. Questo confronto ci permetterà di capire, o di intuire, se i neuroni hanno un comportamento quantistico oppure si comportano solo classicamente. Il nostro modello La rete neurale quantistica è costituita da 8 qubit totalmente connessi e inizializzati in modo random. Lo spazio di Hilbert su cui la rete opera è La rete neurale quantistica con 8 bit quindi di 28. Lo stato iniziale della rete è definito dal prodotto tensoriale dei qubit ed è un vettore unitario costituito da 28 elementi: ... ... qbit1 qbit2 ... qbit8 ... }28 ... ... elementi 0 1 0 1 1 0 0 001 0 0 1 0 0 0 0 Prodotto tensoriale di 3 qubit La rete evolve in modo asincrono operando localmente di volta in volta su una coppia di qubit scelti a caso, secondo la seguente trasformazione unitaria: 00 00 11 01 01 10 10 10 01 11 11 00 Con α, β, δ, γ, parametri complessi. Negli stati 01 e 10 i parametri δ e γ possono essere settati a seconda delle necessità ma sempre rispettando il vincolo di unitarietà: 2 2 2 2 1 La matrice unitaria che opera la trasformazione sui due qubit scelti a caso è una matrice di dimensione 22x 22: T̂ = La matrice T̂ 0 0 0 0 0 0 0 0 si ottiene dalla combinazione lineare delle seguenti quattro matrici insieme ai parametri α, β, δ, γ: 1 0  0 0 0 1 B̂ 0 0 0 0 Ĉ 0 1 0 0 D̂ 1 0 T̂ = (Â)  (Â) Ĉ ( B̂) B̂ (B̂) D̂ (D̂) B̂ ( D̂) D̂ - (Ĉ)  (Ĉ) Ĉ Le matrici unitarie  , B̂ , Ĉ , D̂ , operano ciascuna localmente su un solo qubit, infatti la loro dimensione è di 21 x 21. Lo stato degli altri sei qubit della rete rimane lo stesso, infatti su ognuno di essi opera localmente la matrice identità. 1 0 Î 0 1 La trasformazione globale dell’intera rete è una matrice 28 x 28 ottenuta moltiplicando tensorialmente coppie di matrici matrici identità Î ,  , B̂ , Ĉ , D̂ , ̂ , con 6 rispettando nel prodotto la posizione dei 2 neuroni che interagiscono e combinando linearmente questi prodotti con i parametri α, β, δ, γ. Ad esempio la trasformazione globale di una rete costituita da 4 qubit in cui è stata scelta la coppia di qubit (1,4) è la seguente: ̂ = (Â) Î Î Â (Â) Î Î Ĉ ( B̂) Î Î B̂ (B̂) Î Î D̂ (D̂) Î Î B̂ ( D̂) Î Î D̂ - (Ĉ) Î Î Â (Ĉ) Î Î Ĉ dove i primi quattro fattori del prodotto tensoriale corrispondono ai 4 qubit. La sequenza di trasformazioni ̂ associate alle scelte casuali dei 2 i qubit fa evolvere la rete in modo quantistico unitario: ˆ i 0 i dove 0 è lo stato classico iniziale della rete, fino al momento in cui avviene l’osservazione dello stato globale e il conseguente collasso della funzione d’onda (evoluzione non unitaria). Quindi la rete assume uno degli stati classici j con probabilità data dal modulo quadrato dell’ampiezza cj 2 dello stato nella scomposizione lineare c j j j L’algoritmo L’algoritmo che simula l’evoluzione della rete quantistica neurale è il seguente: Inizializzazione della rete 1) Inizializzazione degli 8 qubit. 2) Inizializzazione dei parametri α, β, δ, γ con α=1, β=0, δ = γ = 1 2 3) Prodotto tensoriale degli 8 qubit che definisce un vettore di partenza di 28 componenti che rappresenta lo stato quantistico iniziale della rete neurale. Evoluzione quantistica della rete 4) Selezione random della coppia di qubit. 5) Calcolo della matrice unitaria ̂ che opera la trasformazione globale della rete neurale in base alla coppia di qubit selezionata al passo 4. 6) Calcolo del nuovo stato quantistico della rete ottenuto dal prodotto scalare della matrice ̂ per il vettore di stato. 7) I passi 4, 5 e 6 vengono ripetuti N volte. a b x ax by . c d y cx dy Prodotto scalare di una matrice per un vettore Osservazione e collasso della funzione d’onda 8) Estrazione casuale dal vettore di stato della componente classica jesima con probabilità di estrazione |cj|2. 9) Aggiornamento del vettore di stato: la componente j-esima estratta viene posta uguale a 1 e tutte le altre componenti del vettore vengono poste a 0. Questo equivale a porre 10) Si ripetono i passi dal 4 al 9 per K volte. j. L’implementazione del modello L’algoritmo è stato implementato utilizzando il pacchetto software Mathematica 4.0. Questo pacchetto ci ha permesso di evitare l’implementazione di operazioni matriciali e quantistiche e di concentrarci principalmente sullo sviluppo dell’algoritmo stesso. Inizializzazione della rete Evoluzione quantistica della rete Osservazione e collasso della funzione d’onda Alcuni output Configurazione di partenza (a): 0 q i con i 1..8 1 Configurazione di partenza (b): 1 q i con i 1..8 0 Tutti i qubit sono impostati a 1 (a) e a 0 (b) Il vettore che definisce lo stato iniziale (a) è: 11111111 Il vettore che definisce lo stato iniziale (b) è: 00000000 Output (a) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 Output (b) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 Configurazione di partenza: 1 q1 q3 q4 q5 0 0 q2 q6 q7 q8 1 Il vettore che definisce lo stato iniziale è: 01000111 Output 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 01010110 00010111 11110000 11110000 01000111 01101001 00111001 00111001 01101010 01111000 10111000 10101001 00101011 10010011 00100111 01100110 01000111 11000011 00011011 10100011 Configurazione di partenza: 1 q3 q5 q7 0 0 q1 q2 q4 q6 q8 1 Il vettore che definisce lo stato iniziale è: 11010101 Output 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 11010011 11101001 01110101 01110011 01101011 01011011 11001110 11011010 11110010 11010011 01110011 10101110 00101111 00101111 01100111 01100111 01101011 11000111 11001101 01100111 Ad ogni passo la rete viene fatta evolvere quantisticamente per N=10 volte prima dell’osservazione e quindi del collasso della funzione d’onda. Il tutto viene ripetuto per K=20 volte. Quando i qubit assumo tutti lo stesso valore, 0 o 1, la rete rimane in uno stato di equilibrio.