Costruire un computer quantistico in simulazione


13

Se si vuole iniziare a costruire un computer quantistico da zero all'interno di simulazioni (come il modo in cui le persone riescono a costruire un computer classico da zero nel corso Nand2Tetris ), è possibile?

Se sì, quali sarebbero alcuni possibili approcci?

Inoltre, quali saranno i limiti di una macchina così simulata, data una quantità specifica di potenza di calcolo classica? Ad esempio, se dovessimo scegliere il tuo desktop / laptop medio, quale sarà il limite? Se prendessimo un supercomputer (come Titan), quale sarebbe il limite?


Risposte:


5

La prima parte della tua domanda sembra un duplicato di un post QC SE esistente: esistono emulatori per computer quantistici? .

Non sono del tutto sicuro di cosa intendi costruendo un computer quantistico da zero all'interno di simulazioni . Tuttavia, sì, è possibile effettuare simulazioni software di un computer quantistico utilizzando il proprio laptop / desktop medio. L'esatto "limite" dipenderà dalle specifiche del computer.

Poiché un computer quantistico non viola la tesi di Church-Turing , in teoria è sicuramente possibile simulare un computer quantistico usando una macchina di Turing ideale . L'approccio ovvio per simulare un tale sistema richiede tempo esponenziale su un computer classico e la complessità dello spazio è una funzione esponenziale del numero di bit quantici simulati. Supponiamo che simuli un computer quantistico a bit, che dovresti archiviare circa 2 n bit di informazioni nel tuo computer classico in ogni istante. Inoltre, l'implementazione delle porte quantistiche richiederà ancora una grande quantità di risorse in termini di complessità temporale e spaziale. Un'implementazione di un gate quantico operante su n -qubit dovrebbe essere archiviatan2nn (perché è possibile rappresentare tutte le operazioni di gate quantistico come una matrice di dimensioni 2 n × 2 n ) bit di informazioni.4n2n×2n

È possibile ordinare una stima del "limite" in base alle specifiche del computer classico. Ad esempio, se la dimensione della memoria (accessibile) del tuo computer classico è di circa TB, mi aspetto che tu possa simulare un computer quantico di registro 4 ( 8 × 10 12 ) 21 bit (per essere sicuro, diciamo 20 ). Tuttavia, tieni presente che i computer classici richiederebbero molto più tempo per accedere a tutti i singoli bit di informazioni, rispetto a un vero computer quantistico (a seconda dell'hardware del computer quantistico). Quindi sarà più lento1log4(8×1012)2120di un vero computer quantistico! Alcune altre limitazioni sono che dopo ogni azione di un gate -qubit è necessario tenere traccia di quali qubit di output sono aggrovigliati, il che è un problema NP-difficile . Inoltre, la misurazione non può essere simulata con precisione su un computer classico, perché in genere non esiste un generatore di numeri realmente casuale .n


Puoi effettivamente simulare un po 'più di qubit se usi solo 1 e 2 qubit gate per scomporre il tuo grande unitario e agire su uno stato puro. Con 8 GB di RAM puoi facilmente eseguire 25 qubit in doppia precisione.
vsoftco,

4

Bene, sto lavorando su un simulatore di un computer quantistico al momento. L'idea di base del calcolo quantistico, ovviamente, è rappresentata dalle porte rappresentate da matrici applicate ai qubit rappresentati dai vettori. Usando il pacchetto numpy di Python, questo non è così difficile da programmare nel senso più elementare.

Da lì, si potrebbe espandere, ovviamente, l'interfaccia. Si potrebbe anche considerare di provare a renderlo un simulatore di un computer quantistico non ideale, cioè tenendo conto dei tempi di decoerenza e della correzione degli errori.

Quindi, entri in un territorio fortemente inesplorato. Come si costruiscono le istruzioni per un computer quantistico? Chissà. Dovrai capire. Dovrai anche capire la tua versione di assembly e persino la tua versione di linguaggi di programmazione di livello superiore.

Quindi, i limiti di un computer classico in questo? Bene, questa è una domanda davvero complicata (e vale la pena porre separatamente, imho) ma ecco un breve riassunto:

  • non sappiamo se i computer quantistici siano effettivamente migliori dei computer classici; gli algoritmi per i computer classici potrebbero non essere ancora abbastanza buoni (supremazia quantistica)
  • diciamo, come sembra abbastanza probabile, che i computer quantistici siano migliori dei computer classici. tale miglioramento dipenderà fortemente dal problema: i computer quantistici potrebbero vedere, ad esempio, un miglioramento della velocità molto più elevato nella ricerca di prime fattorizzazioni rispetto al controllo della posta elettronica. (vedi anche questo P.SE q / a.)
  • O(e649(logN)13(loglogN)23)O((logN)2(loglogN)(logloglogN))
  • |0|1

4

Sento che questa risposta si basa principalmente su un malinteso di fondo su cosa significhi "simulare" qualcosa.

In generale, "simulare" un sistema complesso significa riprodurre alcune funzionalità di tale sistema con una piattaforma che è più facile da controllare (spesso, ma non sempre, un computer classico).

Pertanto, la questione se "si può simulare un computer quantistico in un computer classico" è in qualche modo mal posta. Se vuoi dire che vuoi replicare ogni possibile aspetto di un "computer quantistico", allora ciò non accadrà mai, proprio come non sarai mai in grado di simulare ogni aspetto di qualsiasi sistema classico (a meno che tu non usi lo stesso identico sistema ovviamente).

D'altra parte, è certamente possibile simulare molti aspetti di un dispositivo complesso come un "computer quantico". Ad esempio, si potrebbe voler simulare l'evoluzione di uno stato all'interno di un circuito quantico. In effetti, questo può essere estremamente facile da fare! Ad esempio, se hai Python sul tuo computer, esegui semplicemente quanto segue

import numpy as np
identity_2d = np.diag([1, 1])
pauliX_gate = np.array([[0, 1], [1, 0]])
hadamard_gate = np.array([[1, 1], [1, -1]]) / np.sqrt(2)

cnot_gate = np.kron(identity_2d, pauliX_gate)
H1_gate = np.kron(hadamard_gate, identity_2d)

awesome_entangling_gate = np.dot(cnot_gate, H1_gate)

initial_state = np.array([1, 0, 0, 0])
final_state = np.dot(awesome_entangling_gate, initial_state)
print(final_state)

Congratulazioni, hai appena "simulato" l'evoluzione di uno stato separabile a due qubit in uno stato Bell!

n2n(1)(2)

Altre risposte hanno già toccato vari aspetti di questa durezza e le risposte a questa altra domanda menzionano già molte piattaforme disponibili per simulare / emulare vari aspetti degli algoritmi quantistici, quindi non ci andrò.


(1) Un esempio interessante di ciò è il problema della simulazione di un dispositivo di campionamento del bosone (questo non è un algoritmo quantistico nel senso di uno stato che si evolve attraverso una serie di porte, ma è comunque un esempio di un dispositivo quantico non banale). BosonSampling è un problema di campionamento , in cui si è incaricati del problema del campionamentoda una specifica distribuzione di probabilità, e questo ha dimostrato (sotto ipotesi probabili) di essere impossibile da fare in modo efficiente con un dispositivo classico. Sebbene non sia mai stato dimostrato di essere un aspetto fondamentale di questa durezza, un problema certamente non banale associato alla simulazione di un dispositivo di campionamento del bosone era quello di dover calcolare un numero esponenzialmente elevato di probabilità da cui campionare. Tuttavia, è stato recentemente dimostrato che in effetti non è necessario calcolare l'intera serie di probabilità per campionarne ( 1705.00686 e 1706.01260). Questo non è lontano in linea di principio dalla simulazione dell'evoluzione di molti qubit in un circuito quantistico senza dover memorizzare l'intero stato del sistema in un dato punto. Per quanto riguarda i circuiti quantistici più direttamente, esempi di recenti scoperte nelle capacità di simulazione sono il 1704.01127 e il 1710.05867 (anche uno molto recente, non ancora pubblicato, è il 1802.06952 ).

(2) In effetti, è stato dimostrato (o meglio, è stata fornita una forte evidenza del fatto) che non è possibile simulare in modo efficiente la maggior parte dei circuiti quantistici, vedi 1504.07999 .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.