CheckOperationsAreEqual 操作

完全限定的名称:Std.Diagnostics.CheckOperationsAreEqual

operation CheckOperationsAreEqual(nQubits : Int, actual : (Qubit[] => Unit), expected : (Qubit[] => Unit is Adj)) : Bool

总结

给定两个操作,检查它们是否对所有输入状态执行相同操作。

描述

此检查是通过使用 Choi–Jamio kowski 异态性来实现的,以减少此检查到对两个纠缠寄存器的检查。 因此,此操作只需要对要测试的每个操作进行单个调用,但需要分配的量子比特数是两倍。 例如,此检查可用于确保优化版本的操作与其天真实现相同,或者对一系列非量子输入执行的操作与已知情况一致。

言论

此操作要求对预期行为建模的操作是相邻的,以便单独对目标寄存器执行反向操作。 正式来说,可以指定转置运算,这将放宽此要求,但转置操作对于任意量子操作来说通常无法实现,因此此处不包括为一个选项。

输入

nQubits

要传递给每个操作的量子位数。

实际

要测试的操作。

预期

定义所测试操作的预期行为的操作。

输出

如果操作相等,则为 True;否则为 false。