Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Vollqualifizierter Name: Std.Diagnostics.CheckOperationsAreEqual
operation CheckOperationsAreEqual(nQubits : Int, actual : (Qubit[] => Unit), expected : (Qubit[] => Unit is Adj)) : Bool
Zusammenfassung
Bei zwei Vorgängen wird überprüft, ob sie für alle Eingabezustände identisch sind.
Beschreibung
Diese Prüfung wird mithilfe des Choi-Jamiołkowski-Isomorphismus implementiert, um diese Überprüfung auf eine Überprüfung von zwei geangten Registern zu reduzieren. Daher benötigt dieser Vorgang nur einen einzigen Aufruf jedes getesteten Vorgangs, erfordert jedoch doppelt so viele Qubits zuzuordnen. Diese Überprüfung kann verwendet werden, um beispielsweise sicherzustellen, dass eine optimierte Version eines Vorgangs identisch mit seiner naiven Implementierung funktioniert oder dass eine Operation, die auf einen Bereich von nicht-Quantum-Eingaben wirkt, mit bekannten Fällen übereinstimmt.
Bemerkungen
Dieser Vorgang erfordert, dass die Vorgangsmodellierung des erwarteten Verhaltens angrenzend ist, sodass die Umkehrung allein für das Zielregister ausgeführt werden kann. Formell kann man einen Transponieren-Vorgang angeben, der diese Anforderung entspannt, aber der Transponieren-Vorgang ist für willkürliche Quantenoperationen nicht physisch realisierbar und ist daher hier nicht als Option enthalten.
Eingabe
nQubits
Die Anzahl der Qubits, die an jeden Vorgang übergeben werden sollen.
Aktuell
Zu testende Operation.
erwartet
Vorgang, der das erwartete Verhalten für den Testvorgang definiert.
Ausgabe
True, wenn Vorgänge gleich sind, andernfalls "false".