Kit de Desenvolvimento Quântico (QDK) Simulador toffoliQuantum Development Kit (QDK) Toffoli simulator

O simulador QDK Toffoli é um simulador de propósito especial com um âmbito limitado e apenas suporta X CNOT X operações quânticas multi-controladas.The QDK Toffoli simulator is a special-purpose simulator with a limited scope and only supports X, CNOT, and multi-controlled X quantum operations. Toda a lógica clássica e computações estão disponíveis.All classical logic and computations are available.

Embora o simulador Toffoli seja mais restrito na funcionalidade do que o simulador de estado completo,tem a vantagem de ser capaz de simular muito mais qubits.While the Toffoli simulator is more restricted in functionality than the full state simulator, it has the advantage of being able to simulate far more qubits. O simulador Toffoli pode ser usado com milhões de qubits, enquanto o simulador de estado completo está limitado a cerca de 30 qubits.The Toffoli simulator can be used with millions of qubits, while the full state simulator is limited to about 30 qubits. Isto é útil, por exemplo, com oráculos que avaliam as funções booleanas - podem ser implementados usando o conjunto limitado de algoritmos suportados e testados em um grande número de qubits.This is useful, for example, with oracles that evaluate Boolean functions - they can be implemented using the limited set of supported algorithms and tested on a large number of qubits.

Invocando o simulador toffoliInvoking the Toffoli simulator

Expões o simulador toffoli através da ToffoliSimulator aula.You expose the Toffoli simulator via the ToffoliSimulator class. Para mais detalhes, consulte Formas de executar um Q# programa.For additional details, see Ways to run a Q# program.

Invocando o simulador Toffoli de C #Invoking the Toffoli simulator from C#

Tal como sucede com outros computadores de destino, vai criar primeiro uma instância da classe ToffoliSimulator e, depois, transmiti-la como o primeiro parâmetro do método Run de uma operação.As with other target machines, you first create an instance of the ToffoliSimulator class and then pass it as the first parameter of an operation's Run method.

Tenha em conta que, ao contrário da classe QuantumSimulator, a classe ToffoliSimulator não implementa a interface IDisposable, pelo que não precisa de a incluir dentro de uma instrução using.Note that, unlike the QuantumSimulator class, the ToffoliSimulator class does not implement the IDisposable interface, and thus you do not need to enclose it within a using statement.

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

Invocando o simulador Toffoli de PythonInvoking the Toffoli simulator from Python

Utilize o método toffoli_simulate da biblioteca Python com a Q# operação importada:Use the toffoli_simulate() method from the Python library with the imported Q# operation:

qubit_result = myOperation.toffoli_simulate()

Invocando o simulador Toffoli da linha de comandoInvoking the Toffoli simulator from the command line

Ao executar um Q# programa a partir da linha de comando, utilize o parâmetro -simulador (ou atalho -s para especificar a máquina alvo do simulador de Toffoli.When running a Q# program from the command line, use the --simulator (or -s shortcut) parameter to specify the Toffoli simulator target machine. O seguinte comando executa um programa utilizando o estimador de recursos:The following command runs a program using the resources estimator:

dotnet run -s ToffoliSimulator

Invocando o simulador Toffoli dos Cadernos JuptyerInvoking the Toffoli simulator from Juptyer Notebooks

Use o comando mágico I Q# %toffoli para executar a Q# operação.Use the IQ# magic command %toffoli to run the Q# operation.

%toffoli myOperation

Operações apoiadasSupported operations

O simulador Toffoli suporta:The Toffoli simulator supports:

  • Rotações e Paulis exponencial, tais como R Exp e, quando a operação resultante é igual X ou a matriz identitária.Rotations and exponentiated Paulis, such as R and Exp, when the resulting operation equals X or the identity matrix.
  • Medição e afirmação de operações, mas apenas na base de Z Pauli.Measurement and assert operations, but only in the Pauli Z basis. Note que a probabilidade de uma operação de medição é sempre 0 ou 1; não há aleatoriedade no simulador toffoli.Note that a measurement operation's probability is always either 0 or 1 ; there is no randomness in the Toffoli simulator.
  • DumpMachine e DumpRegister funções.DumpMachine and DumpRegister functions. Ambas as funções funcionam o estado de base atual Z de cada qubit, um qubit por linha.Both functions output the current Z-basis state of each qubit, one qubit per line.

Especificando o número de qubitsSpecifying the number of qubits

Por padrão, um ToffoliSimulator caso atribui espaço para 65.536 qubits.By default, a ToffoliSimulator instance allocates space for 65,536 qubits. Se o seu algoritmo necessitar de mais qubits do que este, pode especificar a contagem de qubits fornecendo um valor para o qubitCount parâmetro ao construtor.If your algorithm requires more qubits than this, you can specify the qubit count by providing a value for the qubitCount parameter to the constructor. Cada qubit adicional requer apenas um byte de memória, por isso não há um custo significativo para sobrestimar o número de qubits que você precisará.Each additional qubit requires only one byte of memory, so there is no significant cost to overestimating the number of qubits you'll need.

Por exemplo:For example:

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

Ver tambémSee also