Ragionando su come spiegare un computer quantistico mi e’ venuta in mente questa analogia, che come tale non e’ una spiegazione di come funzionano i computer quantistici. In un computer classico l’informazione viene trasportata dai bit che possono assumere solo valori definiti 0/1 a priori e poi percorrere una algoritmo preciso per calcolare la soluzione finale. Al contrario in un computer quantistico l’indeterminazione dei “qbit” permette di affrontare tutte le strade possibili, massimizzando quelle più probabili indicate nell’algoritmo di calcolo.
Supponiamo di avere un corridore che deve affrontare un labirinto con 1000 percorsi possibili e vogliamo sapere quale sia il percorso più breve: finche il corridore non compie tutti e 1000 i percorsi possibili non possiamo sapere la soluzione al nostro problema, quando anche avesse affrontato come primo percorso il più breve, fintanto che non li ha affrontati tutti non sapremmo che quello è il precorso che stiamo cercando.
Supponiamo ora di avere un gran numero di corridori, esempio un milione, che affrontano contemporaneamente il labirinto, dopo un certo tempo dall’altra parte del labirinto saranno arrivati con maggiore probabilità quei corridori che avranno affrontato i percorsi più brevi, riproducendo rapidamente un distribuzione che avrà come valor medio il tempo del percorso più breve. Aspettare che arrivino tutti i corridori servirà solo a rafforzare il risultato la cui precisione dipende solo da quanti corridori inizialmente riesco a far partire (i “qbit” il cui percorso da seguire non è inizialmente predeterminato). In questo secondo caso (computer quantistico), inoltre, il tempo computazionale è pari al massimo al tempo di percorrenza del percorso più lungo, e non alla somma dei tempi di tutti i percorsi possibili come accade ai “bit” nel primo caso (computer classico)
Tclassico = Tmin+T2+T3…+T999 + Tmax
Tquantistico = Tmax
Una soluzione classica a questo problema (l’unica che abbiamo oggi) è il calcolo parallelo, che però equivale a duplicare corridore e labirinto (codice e computer sul quale fare la computazione) con un notevole dispendio di risorse.