Simulador de vestígios quânticos: qubits invalidados usam verificadorQuantum trace simulator: invalidated qubits use checker

O verificador de qubits invalidado faz parte do simulador de traços quânticosdo Kit de Desenvolvimento Quântico.The invalidated qubits use checker is a part of the Quantum Development Kit Quantum trace simulator. Pode usá-lo para detetar potenciais erros no código causados por qubits inválidos.You can use it to detect potential bugs in the code caused by invalid qubits.

Qubits inválidosInvalid qubits

Considere o seguinte pedaço de Q# código para ilustrar as questões detetadas pelo verificador de utilização de qubits invalidados:Consider the following piece of Q# code to illustrate the issues detected by the invalidated qubits use checker:

operation UseReleasedQubit() : Unit {
    mutable q = new Qubit[1];
    using (ans = Qubit()) {
        set q w/= 0 <- ans;
    }
    H(q[0]);
}

Quando aplica a H q[0] operação, aponta para um qubit já lançado, que pode causar um comportamento indefinido.When you apply the H operation to q[0], it points to an already released qubit, which can cause undefined behavior. Quando o Verificador de Utilização de Qubits invalidado está ativado, lança a exceção InvalidatedQubitsUseCheckerException se o programa aplicar uma operação a um qubit já lançado.When the Invalidated Qubits Use Checker is enabled, it throws the exception InvalidatedQubitsUseCheckerException if the program applies an operation to an already released qubit. Para obter mais informações, consulte InvalidatedQubitsUseCheckerException.For more information, see InvalidatedQubitsUseCheckerException.

Invocando os qubits invalidados usam verificadorInvoking the invalidated qubits use checker

Para executar o simulador de traços quânticos com os qubits invalidados use o verificador deve criar uma QCTraceSimulatorConfiguration instância, definir a UseInvalidatedQubitsUseChecker propriedade como verdadeira, e, em seguida, criar um novo exemplo com como QCTraceSimulator o QCTraceSimulatorConfiguration parâmetro.To run the quantum trace simulator with the invalidated qubits use checker you must create a QCTraceSimulatorConfiguration instance, set the UseInvalidatedQubitsUseChecker property to true, and then create a new QCTraceSimulator instance with QCTraceSimulatorConfiguration as the parameter.

var config = new QCTraceSimulatorConfiguration();
config.UseInvalidatedQubitsUseChecker = true;
var sim = new QCTraceSimulator(config);

Utilizando os qubits invalidados, utilize o verificador num programa de anfitrião C#Using the invalidated qubits use checker in a C# host program

Segue-se um exemplo de programas de anfitrião C# que utilizam o simulador de traços quânticos com o verificador de qubits invalidado ativado:The following is an example of C# host programs that uses the quantum trace simulator with the invalidated qubits use checker enabled:

using Microsoft.Quantum.Simulation.Core;
using Microsoft.Quantum.Simulation.Simulators;
using Microsoft.Quantum.Simulation.Simulators.QCTraceSimulators;

namespace Quantum.MyProgram
{
    class Driver
    {
        static void Main(string[] args)
        {
            var traceSimCfg = new QCTraceSimulatorConfiguration();
            traceSimCfg.UseInvalidatedQubitsUseChecker = true; // enables UseInvalidatedQubitsUseChecker
            QCTraceSimulator sim = new QCTraceSimulator(traceSimCfg);
            var res = MyQuantumProgram.Run().Result;
            System.Console.WriteLine("Press any key to continue...");
            System.Console.ReadKey();
        }
    }
}

Ver tambémSee also