Quantensimulatoren

Bei Quantensimulatoren handelt es sich um Softwareprogramme, die auf klassischen Computern ausgeführt werden und als Zielcomputer für ein Q#-Programm fungieren. Sie ermöglichen das Ausführen und Testen von Quantenprogrammen in einer Umgebung, die die Reaktion von Qubits auf verschiedene Operationen vorhersagt. In diesem Artikel erfahren Sie, welche Quantensimulatoren im Quantum Development Kit (QDK) enthalten sind. Darüber hinaus enthält er Informationen zu den verschiedenen Verfahren, mit denen Sie ein Q#-Programm an die Quantensimulatoren übergeben können – etwa über die Befehlszeile oder mit Treibercode, der in einer klassischen Sprache geschrieben ist.

Quantensimulatoren im Quantum Development Kit (QDK)

Der Quantensimulator ist für das Bereitstellen der Implementierungen von Quantenprimitiven für einen Algorithmus zuständig. Dies gilt auch für primitive Vorgänge, z. B. H, CNOT und Measure, sowie für die Verwaltung und Nachverfolgung von Qubits. Das QDK enthält verschiedene Klassen von Quantensimulatoren, die für unterschiedliche Simulationen des gleichen Quantenalgorithmus stehen.

Mit jeder Art von Quantensimulator können unterschiedliche Implementierungen dieser Primitive bereitgestellt werden. Mit dem Simulator für den vollständigen Zustand wird der Quantenalgorithmus beispielsweise ausgeführt, indem der Quantenzustandsvektor vollständig simuliert wird, während der tatsächliche Quantenzustand beim Ablaufverfolgungssimulator für Quantencomputer nicht berücksichtigt wird. Stattdessen wird hiermit die Nutzung von Gates, Qubits und anderen Ressourcen für den Algorithmus nachverfolgt.

Quantencomputerklassen

Für die Zukunft ist für das QDK die Definition weiterer Quantencomputerklassen geplant, um andere Arten von Simulationen und die Ausführung auf Quantenhardware zu unterstützen. Indem der Algorithmus konstant gehalten wird, während die zugrunde liegende Computerimplementierung variiert, wird das Testen und Debuggen eines simulierten Algorithmus vereinfacht. Anschließend können Sie beim Ausführen auf echter Hardware sicher sein, dass sich der Algorithmus nicht geändert hat.

Das QDK enthält mehrere Quantencomputerklassen, die allesamt im Namespace Microsoft.Quantum.Simulation.Simulators definiert sind.

Simulator Klasse Beschreibung
Simulator für den vollständigen Zustand QuantumSimulator Dient zum Ausführen und Debuggen von Quantenalgorithmen und ist auf ca. 30 Qubits begrenzt.
Einfache Ressourcenschätzung ResourcesEstimator Dient zum Durchführen einer Analyse auf oberster Ebene für die Ressourcen, die zum Ausführen eines Quantenalgorithmus benötigt werden, und unterstützt Tausende von Qubits.
Auf der Ablaufverfolgung basierende Ressourcenschätzung QCTraceSimulator Dient zum Ausführen einer erweiterten Analyse des Ressourcenverbrauchs für das gesamte Aufrufdiagramm des Algorithmus und unterstützt Tausende von Qubits.
Toffoli-Simulator ToffoliSimulator Dient zum Simulieren von Quantenalgorithmen, die auf die Quantenoperationen X, CNOT und mehrfach gesteuertes X beschränkt sind, und unterstützt Millionen von Qubits.

Aufrufen des Quantensimulators

Unter Möglichkeiten zum Ausführen eines Q#-Programms sind drei Möglichkeiten zum Übergeben des Q#-Codes an den Quantensimulator beschrieben:

  • Verwenden der Befehlszeile
  • Verwenden eines Python-Hostprogramms
  • Verwenden eines C#-Hostprogramms

Quantencomputer sind Instanzen normaler .NET-Klassen. Sie werden also genauso wie .NET-Klassen erstellt, indem ihr Konstruktor aufgerufen wird. Die Vorgehensweise hängt hierbei jeweils davon ab, wie Sie das Q#-Programm ausführen.

Nächste Schritte