Ich glaube, diese Antwort beruht hauptsächlich auf einem grundlegenden Missverständnis dessen, was es bedeutet, etwas zu "simulieren".
Im Allgemeinen bedeutet "simulieren" eines komplexen Systems, bestimmte Merkmale eines solchen Systems mit einer Plattform zu reproduzieren, die einfacher zu steuern ist (häufig, aber nicht immer, ein klassischer Computer).
Die Frage, ob man "einen Quantencomputer in einem klassischen Computer simulieren kann", ist daher etwas ungeklärt. Wenn Sie meinen, dass Sie jeden möglichen Aspekt eines "Quantencomputers" replizieren möchten, wird dies niemals passieren, so wie Sie niemals jeden Aspekt eines klassischen Systems simulieren können (es sei denn, Sie verwenden dasselbe identische System) System natürlich).
Auf der anderen Seite, werden Sie sicherlich können viele Aspekte eines komplexen Gerät wie ein „Quantencomputer“ simulieren. Beispielsweise könnte man die Entwicklung eines Zustands innerhalb einer Quantenschaltung simulieren wollen. In der Tat kann dies außerordentlich einfach zu tun sein! Wenn Sie beispielsweise Python auf Ihrem Computer installiert haben, führen Sie einfach Folgendes aus
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)
Glückwunsch, Sie haben gerade die Entwicklung eines trennbaren Zwei-Qubit-Zustands in einen Bell-Zustand "simuliert"!
Wenn Sie jedoch versuchen, dasselbe mit beispielsweise 40 Qubits und einem nichttrivialen Gate zu tun, werden Sie es nicht einfach schaffen. Der naive Grund ist, dass man sogar nur den Zustand einesn-qubit (nicht spärlich) Zustand, den Sie ~ angeben müssen2nkomplexe Zahlen, und diese beginnen sehr schnell viel Speicher in Anspruch zu nehmen. Ich sage hier "naiv", weil es in vielen Fällen Tricks geben kann, mit denen Sie dieses Problem umgehen können( 1 ). Aus diesem Grund arbeiten viele Menschen daran, clevere Tricks zu finden, um Quantenschaltungen (und andere Arten von Quantensystemen) mit klassischen Computern zu simulieren, und warum dies alles andere als trivial ist( 2 ).
Andere Antworten haben bereits verschiedene Aspekte dieser Härte angesprochen, und die Antworten auf diese andere Frage erwähnen bereits viele verfügbare Plattformen, um verschiedene Aspekte von Quantenalgorithmen zu simulieren / emulieren, so dass ich hier nicht hingehen werde.
(1)
Ein interessantes Beispiel hierfür ist das Problem der Simulation einer Bosonenabtastvorrichtung (dies ist kein Quantenalgorithmus im Sinne eines Zustands, der sich durch eine Reihe von Gattern entwickelt, aber es ist dennoch ein Beispiel für eine nichttriviale Quantenvorrichtung). BosonSampling ist ein Probenahmeproblem , bei dem man sich mit dem Problem der Probenahme befasstAufgrund einer bestimmten Wahrscheinlichkeitsverteilung hat sich gezeigt, dass dies (unter wahrscheinlichen Annahmen) mit einem klassischen Gerät nicht effizient möglich ist. Obwohl sich nie gezeigt hat, dass dies ein grundlegender Aspekt dieser Härte ist, bestand ein mit der Simulation eines Bosonen-Probenahmegeräts verbundenes sicher nicht triviales Problem darin, eine exponentiell große Anzahl von Wahrscheinlichkeiten zu berechnen, aus denen eine Probe entnommen werden sollte. Es wurde jedoch kürzlich gezeigt, dass man tatsächlich nicht die gesamte Menge von Wahrscheinlichkeiten berechnen muss, um daraus eine Stichprobe zu erstellen ( 1705.00686 und 1706.01260)). Dies ist im Prinzip nicht weit davon entfernt, die Entwicklung vieler Qubits in einer Quantenschaltung zu simulieren, ohne den gesamten Zustand des Systems an einem bestimmten Punkt speichern zu müssen. In Bezug auf direktere Quantenschaltungen sind Beispiele für den jüngsten Durchbruch bei den Simulationsfähigkeiten 1704.01127
und 1710.05867 (auch ein neuerer, noch nicht veröffentlichter, ist 1802.06952 ).
(2)
Tatsächlich wurde gezeigt (oder vielmehr, dass starke Beweise für die Tatsache erbracht wurden), dass es nicht möglich ist, die meisten Quantenschaltungen effizient zu simulieren, siehe 1504.07999 .