CheckOperationsAreEqual 작업

정규화된 이름: Std.Diagnostics.CheckOperationsAreEqual

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

요약

두 작업이 지정된 경우 모든 입력 상태에 대해 동일하게 동작하는지 확인합니다.

묘사

이 검사는 최-자미오코프스키 이형성을 사용하여 이 검사를 두 개의 얽힌 레지스터에 대한 검사로 줄임으로써 구현됩니다. 따라서 이 작업은 테스트 중인 각 작업에 대한 단일 호출만 필요하지만 할당하려면 두 배의 큐비트가 필요합니다. 예를 들어, 최적화된 버전의 작업이 순진한 구현과 동일하게 작동하거나 비 양자 입력 범위에서 작동하는 작업이 알려진 사례와 일치하는지 확인하는 데 이 검사를 사용할 수 있습니다.

발언

이 작업을 수행하려면 예상 동작을 모델링하는 작업이 인접해야 하므로 대상 레지스터에서만 역방향 작업을 수행할 수 있습니다. 공식적으로는 이 요구 사항을 완화하는 트랜스포즈 연산을 지정할 수 있지만, 트랜스포지션 연산은 일반적으로 임의 양자 연산에 대해 물리적으로 실현할 수 없으므로 여기에 옵션으로 포함되지 않습니다.

입력

엔큐비트

각 작업에 전달할 큐비트 수입니다.

현실의

테스트할 작업입니다.

예상

테스트 중인 작업에 대한 예상 동작을 정의하는 작업입니다.

출력

작업이 같으면 true이고, 그렇지 않으면 false입니다.