Quantum Development Kit-SimulatorQuantum Development Kit Toffoli Simulator

Das Quantum Development Kit bietet einen deffoli-Simulator, bei dem es sich um einen Zweck Simulator handelt, mit dem Quantum-Algorithmen simuliert werden können, die auf x-, CNOT-und multigesteuerte X-Quantum-Vorgänge beschränkt sind (alle klassischen Logik und Berechnungen sind verfügbar).The Quantum Development Kit provides a Toffoli simulator, which is a special-purpose simulator that can simulate quantum algorithms that are limited to X, CNOT, and multi-controlled X quantum operations (all classical logic and computations are available).

Während der Vorgang "deffoli" in der Operation wesentlich eingeschränkter ist als der vollständige Zustands Simulator, kann er weitaus mehr Qubits simulieren.While the Toffoli simulator is much more restricted in operation than the full state simulator, it can simulate far more qubits. Der-Simulator kann mit Millionen von Qubits verwendet werden, während der vollständige Zustands Simulator im Allgemeinen auf ungefähr 30 beschränkt ist.The Toffoli simulator can be used with millions of qubits, while the full state simulator is generally limited to about 30. Es kann einen begrenzten Satz von Quantum-Algorithmen ausführen und Debuggen, die in Q # auf dem Computer geschrieben wurden. Beispielsweise können Oracles, die Boolesche Funktionen evaluieren, mithilfe dieser Gates implementiert werden. Diese werden daher bei einer großen Anzahl von Qubits mit diesem Simulator getestet.It can execute and debug a limited set of quantum algorithms written in Q# on your computer; for instance, oracles that evaluate Boolean functions can be implemented using these gates and so tested on vary large numbers of qubits using this simulator.

Dieser Quantum-Simulator wird über die ToffoliSimulator-Klasse verfügbar gemacht.This quantum simulator is exposed via the ToffoliSimulator class. Um den Simulator zu verwenden, erstellen Sie einfach eine Instanz dieser Klasse, und übergeben Sie Sie an die Run-Methode des Quantum-Vorgangs, den Sie zusammen mit den restlichen Parametern ausführen möchten:To use the simulator, simply create an instance of this class and pass it to the Run method of the quantum operation you want to execute along with the rest of the parameters:

    var sim = new ToffoliSimulator();
    var res = myOperation.Run(sim).Result;
    ///...

Andere VorgängeOther Operations

Der ToffoliSimulator unterstützt Drehungen und exponentiierte Paulis, z. b. R und Exp, wenn der resultierende Vorgang gleich X oder der Identität ist.The ToffoliSimulator supports rotations and exponentiated Paulis, such as R and Exp, when the resulting operation is equal to X or to the identity.

Messungen und Assert werden unterstützt, aber nur in der Pauli-Z Basis.Measurement and assert are supported, but only in the Pauli Z basis. Beachten Sie, dass die Wahrscheinlichkeit einer Messung immer entweder 0 oder 1 ist. Es gibt keine Zufälligkeit im-Simulator von "".Note that the probability of some measurement is always either 0 or 1; there is no randomness in the Toffoli simulator.

DumpMachine und DumpRegister werden unterstützt.DumpMachine and DumpRegister are supported. Beide geben den aktuellen Zbasierten Status jedes Qubit, ein Qubit pro Zeile, aus.They both output the current Z-basis state of each qubit, one qubit per line.

QubitcountQubitCount

Standardmäßig wird von der ToffoliSimulator Speicherplatz für 65.536 Qubits zugewiesen.By default, the ToffoliSimulator allocates space for 65,536 qubits. Wenn der Algorithmus mehr als diesen Wert erfordert, können Sie die Anzahl der Qubits ändern, indem Sie einen Wert für den qubitCount-Parameter für den Konstruktor bereitstellen.If your algorithm requires more than this, you can change the qubit count by providing a value for the qubitCount parameter to the constructor. Jedes zusätzliche Qubit erfordert ein zusätzliches Byte Arbeitsspeicher, sodass die Anzahl der benötigten Qubits nicht signifikant ist.Each additional qubit requires an additional byte of memory, so there is no significant cost to overestimating the number of qubits you'll need.

Beispiel:For example:

    var sim = new ToffoliSimulator(qubitCount: 1000000);
    var res = myLargeOperation.Run(sim).Result;