无效的Qubits使用检查器
Invalidated Qubits Use Checker
是量子计算机Trace Simulator的一部分,用于检测代码中的潜在错误。 考虑下面的一段Q#代码来说明由Invalidated Qubits Use Checker
检测到的问题。
Q#
operation UseReleasedQubitTest () : () {
body {
mutable q = new Qubit[1];
using( ans = Qubit[1] ) {
set q[0]= ans[0];
}
H(q[0]);
}
}
当H
应用于q[0]
它指向已经释放的量子比特。 这可能导致未定义的行为。 当启用Invalidated Qubits Use Checker
,如果操作应用于已释放的量子位,则会抛出异常InvalidatedQubitsUseCheckerException
。 有关更多详细信息,请参阅InvalidatedQubitsUseCheckerException上的API文档。
使用无效的Qubits在C#程序中使用检查器
以下是C#驱动程序代码的一个示例,用于使用量子计算机Trace Simulator
并启用Invalidated Qubits Use Checker
:
C#
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();
}
}
}
类QCTraceSimulatorConfiguration
存储量子计算机轨迹模拟器的配置,并可作为QCTraceSimulator
构造函数的参数提供。 当useInvalidatedQubitsUseChecker
设置为true时,将启用Invalidated Qubits Use Checker
。 有关更多详细信息,请参阅QCTraceSimulator和QCTraceSimulatorConfiguration上的API文档。