Frage:
Warum nicht Quantenschaltungen auf klassischen Computern implementieren?
theQman
2016-12-18 21:19:22 UTC
view on stackexchange narkive permalink

Ich habe das große Ganze in meinem Studium des Quantencomputers irgendwie aus den Augen verloren.Ich verstehe, dass wir immer noch nicht wissen, ob Quantencomputer im Sinne der Komplexität der Berechnungen leistungsfähiger sind als klassische.Aber ich frage mich:

Da jedes Quantengatter als (einheitliche) Matrixmultiplikation angesehen werden kann und die Matrixmultiplikation klassisch in Polynomzeit erfolgen kann, woher kommt der vermeintliche Vorteil?Was hindert mich daran, eine Quantenschaltung mit Polynomgröße als Polynomzahl von Matrixmultiplikationen (die Polynomzeit erfordern) zu implementieren?Welche Operation ist klassisch nicht verfügbar?

Wahrscheinlich eine bessere Frage für die [Computer Science SE] (http://cs.stackexchange.com/)
Dafür gibt es ein Perl-Paket.Probieren Sie es aus und sehen Sie, was der Nachteil ist.
Angenommen, Sie haben 200 Ellen.Nicht viel, oder?Dies entspricht einem Vektor von 10 ^ 60 Amplitudenwerten, wobei jeder eine komplexe Zahl ist.Jede einheitliche Transformation muss diesen Vektor drehen.
@BlueRaja-DannyPflughoeft Es überspannt zwar die Grenze, aber ich neige dazu, dass es hier zum Thema gehört.
Sowohl Quanten- als auch klassische Computer sind vollständig. Es gibt nichts, was einer berechnen kann, was der andere nicht kann.Es ist nur eine Frage, wie lange es dauern wird.
@Peter,, das wäre Berechenbarkeit, nicht Komplexität.Es geht nicht darum, welche Arten von Problemen gelöst werden können, sondern genau um die Unterschiede in der (Skalierung der) Zeit, die benötigt wird.
Relevant: http://www.smbc-comics.com/comic/the-talk-4
Dies ist keine Antwort auf Ihre Frage, aber wenn Sie interessiert sind, habe ich in einer Quantencomputerklasse ein Programm geschrieben, mit dem alle Quantenschaltungen ausgeführt werden können, die wir an die Tafel gezeichnet haben: https://github.com/Erhannis / QCircuit
Vier antworten:
Mark Mitchison
2016-12-18 21:29:38 UTC
view on stackexchange narkive permalink

Die Matrixmultiplikation ist in der Anzahl der Matrixelemente polynomisch.Bei der Quantenberechnung ist die Anzahl der Matrixelemente im Wesentlichen die Anzahl der Elemente im Quantenzustandsvektor, die in der Größe der Eingabe (der Anzahl der Qubits) exponentiell ist.

Ich verstehe Ihre Antwort teilweise, aber etwas ist immer noch nicht klar.Wenn wir so etwas wie die Schaltung für die Quanten-Fourier-Transformation nehmen ([Beispiel] (http://cdn.iopscience.com/images/1367-2630/13/1/013021/Full/nj367104fig1.jpg)), dann haben wireine Polynomzahl von 2x2 Matrixmultiplikationen, nicht wahr?
@theQman i) Verwickelte Tore, die auf ein Paar Qubits einwirken, können minimal durch $ 4 \ mal 4 $ Matrizen dargestellt werden, nicht durch $ 2 \ mal 2 $.ii) Sobald Sie mit mehreren Qubits arbeiten, vergrößert sich die Darstellung zwangsläufig.Stellen Sie sich zum Beispiel ein verwickeltes Tor $ U_ {ij} $ vor, das auf Qubits $ i $ und $ j $ einwirkt, und nehmen Sie 3 Qubits.Arbeiten Sie zuerst mit Qubits 1 und 2, dann mit 2 und 3. Dies führt zu einer Matrixmultiplikation $ (I_1 \ otimes U_ {23}) (U_ {12} \ otimes I_3) $, wobei $ I_j $ das $ 2 \ -mal ist2 $ Identität auf Qubit $ j. $ Schreiben Sie es aus, Sie werden sehen, dass die Anzahl der Matrixelemente nicht polynomiell skaliert!
@theQman Nein, das tust du nicht.Die Aktion jedes einzelnen Gates wird durch eine $ 2 ^ n × 2 ^ n $ -Matrix für $ n $ Qubits beschrieben, unabhängig davon, ob es sich um ein Single-Qubit-Gate, einen Zwei-Qubit-Swap oder ein gesteuertes Phasengatter handelt.
The Vee
2016-12-19 07:44:56 UTC
view on stackexchange narkive permalink

Der falsche Punkt in der Prämisse ist, dass eine Zusammensetzung von Einzel-Qubit- und Zwei-Qubit-Gates durch eine Art Zusammensetzung von 2 × 2- und 4 × 4-Matrizen dargestellt wird. Wenn ein Single-Qubit-Gate (für zwei Qubits ist dies ähnlich) auf das $ i $ -te Qubit von $ n $ einwirkt, muss die Matrix in umgewandelt werden $$ (Id_2) ^ {\ otimes (i-1)} \ otimes A \ otimes (Id_2) ^ {\ otimes (n-i)}, $$ Dabei ist $ A $ die ursprüngliche $ 2 × 2 $ -Matrix, um ihre Wirkung auf den $ n $ -Qubit-Zustand zu beschreiben. Dies ist eine Matrix mit den Dimensionen $ 2 ^ n × 2 ^ n $, unabhängig vom Typ des Gates.

Während das Tensorprodukt mit Identitäten trivial aussieht, erinnern wir uns einfach daran, was es für eine Anwendung auf einen Zustandsvektor mit dem einfachsten Algorithmus bedeutet:

  für jeden Index u, 0 ≤ u < 2 ^ n:
  definiere u_i = Bitwert des i-ten Bits von u
  definiere v = u XOR 2 ^ i
  wenn u_i = 0:
    neu (psi [u], psi [v]) = a * psi [u] + b * psi [v]
  sonst:
    neu (psi [u], psi [v]) = d * psi [u] + c * psi [v]
 

Ja, im Kern dieses Pseudo-Algorithmus gibt es nur eine zweidimensionale Multiplikation. Aber es wird $ 2 ^ n $ mal gemacht.

Noch bevor man die eigentliche klassische Simulation ausführen kann, kann der verfügbare Speicher knapp werden, selbst wenn der Zustand zu einem bestimmten Zeitpunkt gespeichert wird. Nehmen Sie $ n = 100 $ Qubits, das sind $ 2 ^ {100} $ komplexe Amplituden mit doppelter Genauigkeit (jeweils 128 Bit). Ich erhalte eine Schätzung, die die Datenspeicherkapazität aller Computer auf der Erde um etwa 14 Größenordnungen übersteigt, sodass wir das nicht so bald sehen werden. In der Zwischenzeit würde ein Quantencomputer mit 100 Bit für Anwendungen gerade erst interessant werden. Theoretisch ist es nicht ungewöhnlich, viel mehr als das vorgesehene zu sehen.

Ich verstehe nicht ganz, wie Quantencomputer funktionieren (Sie können sich vorstellen, dass mein Grundstudium „Quantenmechanik für Ingenieure“ mich auf das Thema etwas unvorbereitet gemacht hat), aber ich liebe es immer noch, darüber zu lesen, weil Zeilen wie „die Datenspeicherkapazität vonalle Computer auf der Erde um etwa 14 Größenordnungen “, was mich nur zum Kichern bringt.Es ist aufregend!
Amara
2016-12-18 21:41:23 UTC
view on stackexchange narkive permalink

Um es etwas anders auszudrücken: Der Hilbert-Raum (H) für Ihre Quantenschaltung wächst exponentiell ($ \ text {dim H} = 2 ^ n $), wobei n die Anzahl der Qubits ist.Es gibt eine Klasse von Quantenschaltungen, die in Polynomzeit implementiert werden können, aber sie erfordern, dass die Gatter in der Quantenschaltung auf die Pauli-Gruppe und / oder den Normalisierer der Pauli-Gruppe beschränkt sind (Gottesman-Knill-Theorem).Dies schränkt auch ein, welche Art von Fehlermodellen man in der Quantenschaltung verwendet.Der Hauptgrund ist, dass es einen Isomorphismus gibt, den man zwischen der Pauli-Gruppe und dem Vektorraum über dem endlichen Feld mit Elementen definieren kann.Die Multiplikation der Pauli-Gruppenelemente wird zu einem symplektischen Produkt der Vektorraumelemente.

Craig Gidney
2016-12-24 00:21:04 UTC
view on stackexchange narkive permalink

Weil die Matrizen größer sind als Sie denken.

Betrachten Sie eine einfache Schaltung mit 8 Qubits. vielleicht eine Fourier-Transformation. Es werden ~ 40 Gates verwendet, und jedes Gate multipliziert den 8-Qubit-Systemzustandsvektor mit einer Matrix. Dieses System klassisch simulieren. Sie könnten erwarten, dass wir so etwas wie $ 40 \ cdot 8 = 320 $ willkürliche Einheiten der Computerarbeit (AUCW) investieren müssen.

Der Systemzustandsvektor hat jedoch eine Amplitude für jeden möglichen klassischen Zustand des Systems. Acht Bits können $ 2 ^ 8 = 256 $ mögliche Werte zugewiesen werden, daher muss unser Zustandsvektor 256 Einträge haben, nicht acht oder sechzehn. Dementsprechend muss eine Matrix, die dieses System transformiert, die Größe $ 256 \ mal 256 $ haben, obwohl nur $ 256 $ eine viel bessere grobe Schätzung der "Arbeitsgröße" ist, da die Matrix eines einzelnen Gates spärlich ist. Unsere Vermutung von $ 40 \ cdot 8 = 320 $ AUCW war weit entfernt! Eine viel bessere Vermutung ist $ 40 \ cdot 2 ^ 8 = 40 \ cdot 256 = 10240 $. Also $ 10 $ kiloAUCW.

Dieses Problem wird viel viel schlimmer, wenn die Anzahl der Qubits größer wird. Mit 50 Qubits hat der Zustandsvektor $ 2 ^ {50} $ Einträge, die Matrizen sind $ 2 ^ {50} \ mal 2 ^ {50} $, die Fourier-Transformation verwendet ~ 1250 Gates und wir müssen eine Million ausgeben Millionen million AUCWs für die klassische Simulation. Während der Quantencomputer nur 1250 AUQW leistet.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...