Mentre siamo in attesa per i nostri computer quantistici, è possibile scrivere un software di simulazione di uno? Sospetto che la risposta sia no, ma spero che le ragioni per non faranno luce sul mistero.simulazione software di un computer quantistico
risposta
Anni fa ho partecipato ad un discorso ad una conferenza Perl dove Damian Conway (credo) è stato speculando su una parte di questo. Un po 'più tardi è stato reso disponibile un modulo Perl che ha fatto parte di questa roba. Cerca CPAN per Quantum :: Superposizioni.
L'implementazione non è così difficile. Il problema è che la complessità computazionale e della memoria è esponenziale nel numero di bit quantistici che si desidera simulare.
Fondamentalmente un computer quantistico opera su tutti i possibili n-bit stati contemporaneamente. E quelli crescono come 2^n.
Le dimensioni di un operatore cresce ancora più veloce dato che è una matrice. Quindi cresce come (2^n)^2 = 2^(2 * n) = 4^n
Quindi mi aspetto un buon computer in grado di simulare un computer quantico fino a circa 20 bit, ma sarà essere piuttosto lento
Esiste. Here's uno basato su browser. Here's uno scritto in C++. Here's uno scritto in Java. Ma, come affermato da CodesInChaos, un computer quantistico opera su tutte le ampiezze di probabilità contemporaneamente. Quindi immagina un registro quantico a 3 qubit, uno stato tipico in modo che assuma questo aspetto:
a1 | 000> + a2 | 001> + a3 | 010> + a4 | 011> + a5 | 100> + a6 | 101> + A7 | 110> + A8 | 111>
E 'una sovrapposizione di tutte le possibili combinazioni. Quel che è peggio è che quelle ampiezze di probabilità sono numeri complessi. Quindi un registro di n-qubit richiederebbe 2^(2 * n) numeri reali. Quindi per un registro a 32 qubit, questo è 2^(2 * 32) = 18446744073709551616 numeri reali.
E come detto CodesInChaos, le matrici unitarie utilizzati per trasformare quegli stati sono che il numero quadrato. La loro applicazione è un prodotto puntino ... Sono computazionalmente costosi, per non dire altro.
Come Wikipedia Stato:
un computer classico potrebbe in linea di principio (con risorse esponenziale) simulare un algoritmo quantistico, come la computazione quantistica non viola la tesi di Church-Turing.
Quipper è pieno EDSL simulazione soffiato per Quantum Computing, implementato in Haskell ho experince per simulare il comportamento di diversi algoritmi di controllo di qualità, come Deutsch, Deutsch-Jozsa, Simon, gli algoritmi di Shor ed è molto semplice.
La mia risposta è sì:
è possibile simulare il comportamento di una macchina quantistica simulando l'algoritmo macchina quantistica
D-Wave quantum machine utilizzando una tecnica chiamata quantum annealing
. Questo algoritmo può essere confrontato con l'algoritmo simulated annealing
.
Riferimenti:
3. Optimization by simulated annealing: Quantitative studies
Un'altra ragione per cui la simulazione classica della computazione quantistica è difficile: per tenere traccia che si potrebbe voler sapere dopo ogni azione di un cancello n-qubit (n> 1) se i qubit uscenti sono impigliati o meno. Questo deve essere calcolato classicamente, ma è noto per essere NP-hard.
vedere qui: https://stackoverflow.com/a/23327816/363429
Ancora un altro motivo per cui la simulazione classica della computazione quantistica è difficile: è necessario quasi perfetto - vale a dire il più perfetto possibile - generatori di numeri casuali per simulare la misurazione.
Esiste un elenco molto vasto di lingue, framework e simulatori. Alcuni simulano a livello basso le equazioni quantistiche, altre solo le porte.
- Microsoft Quantum Development Kit
- Microsoft Liqui> IBM Quantum Experience
- Rigetti Foresta
- ProjectQ
- QuTiP
- OpenFermion
- Qbsolv
- ScaffCC
- Quantum Com Puting Playground (Google)
- Raytheon BBN
- Quirk
- Foresta
Sarebbe bello conoscere le vostre opinioni sulle loro capacità e facilità di utilizzo.
https://quantumcomputingreport.com/resources/tools/ https://github.com/topics/quantum-computing?o=desc&s=stars
Se siete ancora alla ricerca di esso, uno di questi simulatore realizzato da ingegneri di Google la notizia recente: http://qcplayground.withgoogle.com/#/home Quantiki mantiene anche una lista http: //www.quantiki.org/wiki/List_of_QC_simulators – nha
Il simulatore di Google utilizza la GPU per eseguire i calcoli (e, naturalmente, per visualizzare i risultati). Abbastanza pulito per una web app IMHO :) –
Forse questa è la soluzione al tuo problema http://tph.tuwien.ac.at/~oemer/qcl.html – Asar