Newsgroup: it.scienza.fisica
Titolo: Re: capire cosa è un computer quantico

 grazie a tutti
 
Capire cos'e` e` il meno. Imparare a programmarne uno e`
parecchio difficile e dopo una rapida occhiata all'argomento
ho deciso di non tentare di approfondirlo, anche se, da buon
programmatore, un po' mi sarebbe piaciuto. Ti servirebbe
conoscere le basi di MQ. Qualcun altro forse potra`
consigliarti un buon testo.
Quindi mi tengo sul facile e mi limito a spiegarti qual e`
l'idea di base dietro un computer quantistico.
 
Elio Fabri ti ha appena spiegato nell'altro thread cos'e` la
sovrapposizione di stati in MQ. Partiamo da qui. La cosa
importante da capire e` che le leggi fisiche che determinano
l'evoluzione nel tempo di uno stato quantistico sono lineari
rispetto allo stato.
Diciamo che un sistema si trova nello stato A. Dopo un po' di
tempo si trova nello stato A', che e` l'evoluzione temporale
di A:
A -> A'
(In una notazione piu' tecnica si scriverebbe <A'> = U<A>,
dove U e` l'operatore di evoluzione temporale e U<A> e` un
prodotto tra entita` rappresentabili in una data base
vettoriale come una matrice quadrata e un vettore colonna.)
Supponiamo invece che quello stesso sistema si trovi nello
stato B. Avremo allora:
B -> B'
Fin qui ho solo definito i simboli.
Ora supponiamo che il sistema si trovi in uno stato C che e`
combinazione lineare di A e B:
C = c1*A + c2*B
dove c1 e c2 sono numeri complessi.
La linarita` di U ci dice che:
C -> C' = c1*A' + c2*B'
Attenzione: in MQ un processo di misura non e` lineare e non
risulta quindi modellabile nell'ambito della teoria stessa,
cosi' com'e`. Questa incoerenza, in cui credo tu ti sia da
poco imbattuto nell'altro thread, rappresenta il cosiddetto
"problema della misura", su cui sono stati spesi fiumi di
inchiostro e su cui al momento sorvolo.
 
Supponiamo che il sistema che ci interessa sia un computer.
Gli fornisci dei dati da elaborare e questo stato iniziale e`
A. Dopo un po' di tempo il computer ha calcolato un
risultato; il computer si trova adesso nello stato A'.
Se tu gli avessi fornito dei dati diversi, si sarebbe trovato
in uno stato iniziale B e avrebbe prodotto un risultato
diverso in uno stato che possiamo chiamare B'.
E se il computer si fosse trovato nello stato quantistico C =
c1*A + c2*B ? Alla fine si sarebbe trovato nello stato C',
cioe` in una sovrapposizione quantistica dei due diversi
risultati A' e B'. In pratica avrebbe calcolato due risultati
nel tempo per calcolarne solo uno.
Di per se' non sarebbe difficile, formalmente, far succedere
una cosa simile. Colleghi un generatore di casualita`
quantistica a un computer (esistono generatori pubblici con
interfaccia web), leggi un bit (che si trova in una
sovrapposizione quantistica fifty-fifty degli stati 0 e 1) e
scrivi il software in modo tale che se il bit vale 0 faccia
un calcolo e se vale 1 ne faccia un altro. Alla fine, in base
alla MQ, li fara` entrambi. Il problema, pero`, e` un
fenomeno chiamato decoerenza, che fa si' che la
sovrapposizione finale degli stati degeneri in una miscela
statistica: alla fine ottieni, a caso, o il risultato A' o B'
(si', la decoerenza ha lo stesso effetto di una misura. Non
e` un caso). Non e` molto utile.
 
Un computer quantistico e` un computer progettato per evitare
la decoerenza. Funziona usando qbit, cioe` bit di memoria che
possono venire mantenuti per tempi accettabili in una
sovrapposizione quantistica degli stati 0 e 1 senza dar luogo
a decoerenza.
Se un computer quantistico ha N qbit, le combinazioni
possibili di valori base sono 2^N e dato che per ogni
combinazione il computer puo` eseguire un calcolo diverso
abbiamo in totale la potenzialita` di eseguire 2^N calcoli
in parallelo.
Un computer quantistico ha due problemi. Il primo e` la
decoerenza, bestia nera dell'elaborazione quantistica. Per
evitarla bisogna ricorrere a compromessi tecnici terribili.
Il secondo e` che il risultato e` una sovrapposizione
quantistica di risultati e nella maggior parte dei casi
questo non e` molto utile: in generale, stampare il risultato
equivarrebbe a un processo di misura che stamperebbe uno
qualunque dei 2^N risultati, uno a caso, e solo quello. Gli
algoritmi che riescono a far si' che la sovrapposizione
finale dia un'informazione utile non sono molti, al momento.
Vengono chiamati algoritmi quantistici; celebre quello di
Shor per la scomposizione in fattori primi.
 
Ciao
Paolo Russo

 e` un caso). Non e` molto utile.
 
Non e` sbagliato ma rileggendo mi sono reso conto che e`
fuorviante.
La decoerenza, se non opportunamente tenuta a bada, e` un
fenomeno rapidissimo e onnipresente. Ovviamente nell'esempio
volutamente ingenuo che ho fatto i bit casuali generati
quantisticamente decadrebbero in una miscela statistica ben
prima di entrare nel computer e poter essere usati per
l'elaborazione. Il risultato finale dell'elaborazione
sarebbe si' una miscela statistica, ma perche' lo sarebbero
gia` i dati in ingresso.
 
Ciao
Paolo Russo