CheckOperationsAreEqual 操作
完全修飾名: Std.Diagnostics.CheckOperationsAreEqual
operation CheckOperationsAreEqual(nQubits : Int, actual : (Qubit[] => Unit), expected : (Qubit[] => Unit is Adj)) : Bool
概要
2 つの操作を指定すると、すべての入力状態に対して同じように動作することを確認します。
形容
このチェックは、Choi-Jamiołkowski の同型化を使用して実装され、このチェックを 2 つの絡み合ったレジスタのチェックに減らします。 したがって、この操作では、テスト対象の各操作を 1 回呼び出すだけで済みますが、割り当てる量子ビットの数は 2 倍になります。 このチェックを使用して、たとえば、最適化されたバージョンの操作が単純な実装と同じように動作すること、または一連の非量子入力に対して動作する操作が既知のケースと一致することを確認できます。
備考
この操作では、予期される動作をモデル化する操作が隣接可能である必要があります。これにより、ターゲット レジスタに対して逆関数を単独で実行できます。 正式には、この要件を緩和する転置操作を指定できますが、転置操作は一般的に任意の量子操作では物理的に実現できないため、オプションとしてここに含まれません。
インプット
nQubits
各操作に渡す量子ビットの数。
実際の
テストする操作。
期待
テスト対象の操作に対して想定される動作を定義する操作。
アウトプット
操作が等しい場合は True、それ以外の場合は false。