CommutationChecker
class qiskit.circuit.CommutationChecker(standard_gate_commutations=None, cache_max_entries=1000000, *, gates=None)
베이스: object
두 작업의 변환을 확인합니다.
쿼비트에서 및 두 개의 유니테리가 다음과 같은 경우 출퇴근합니다
여기서,
를 로 설정하고, 몇 큐비트 시스템에서 반올림 오류를 고려하여 로 설정했습니다. 이 메트릭은 키스킷의 다른 근접성 검사와의 일관성을 위해 선택되었습니다.
가능한 경우, 치환 관계는 조회 테이블에서 조회됩니다. 이는 매개변수가 없는 표준 게이트(예: XGate 또는 HGate)나 자유 매개변수를 갖는 게이트(예: RXGate 각도가 ParameterExpression 인 )의 경우에 해당합니다. approximation_degree그렇지 않은 경우, 행렬 기반의 검증이 수행되며, 이 때 교환 연산을 수행할 때의 평균 게이트 충실도가 특정 임계값을 초과하면 두 연산이 교환된다고 한다(참조).
qiskit.circuit.commutation_checker.CommutationChecker.__init__()’의 인수는 cache_max_entries Qiskit 2.5.0 부터 더 이상 사용되지 않습니다. Qiskit 3.0 에서 제거될 예정입니다.
메소드
매개변수
check_commutation_entries
check_commutation_entries(first_op, first_qargs, second_op, second_qargs)
저장된 정류 관계가 있는 경우 반환합니다
매개변수
- first_op (Operation) – 첫 번째 작업.
- first_qargs (list) – 첫 번째 연산의 큐비트.
- second_op (Operation) – 두 번째 작업.
- second_qargs (list) – 두 번째 연산의 큐비트.
리턴
게이트가 출퇴근하는 경우 참이고 그렇지 않은 경우 거짓입니다.
리턴 유형
clear_cached_commutations
clear_cached_commutations()
캐시된 통근을 보유한 사전을 지웁니다
더 이상 내부 캐시가 없기 때문에 이 메서드는 아무 작업도 수행하지 않습니다
이 메서드는 qiskit.circuit.commutation_checker.CommutationChecker.clear_cached_commutations() Qiskit 2.5 부터 더 이상 사용되지 않습니다. Qiskit 3.0 에서 제거될 예정입니다.
commute
commute(op1, qargs1, cargs1, op2, qargs2, cargs2, max_num_qubits=None, approximation_degree=1.0, matrix_max_num_qubits=3)
두 연산이 교환 가능한지 확인합니다. 의 반환 값은 연산들이 True 진정으로 교환 가능함을 의미하며, 의 반환 값은 연산들이 교환 가능하지 False 않거나 교환성 검사가 생략되었음을 의미합니다(예를 들어, 연산에 조건이 있거나 큐비트가 너무 많은 경우).
매개변수
- op1 (Operation) – 첫 번째 작업.
- qargs1 (Sequence[Qubit |int]) – 첫 번째 연산의 큐비트.
- cargs1 (Sequence[Qubit |int]) – 첫 번째 연산의 clbits.
- op2 (Operation) – 두 번째 작업.
- qargs2 (Sequence[Qubit |int]) – 두 번째 연산의 큐비트.
- cargs2 (Sequence[Qubit |int]) – 두 번째 연산의 clbits.
- max_num_qubits (int | None) – 고려할 큐비트의 최대 개수이며, 어느 한 연산의 큐비트 수가 이 수치를 초과할 경우 검사를 생략할 수 있습니다. 기본값은 로
None, 이는 제한이 없음을 의미합니다. 또한 참조: 계산된 행렬의matrix_max_num_qubits차원을 제한하기 위해. - approximation_degree (float) – 두 작업 사이의 평균 게이트 충실도가 이 수치(최대
1e-12)보다 높으면 통근하는 것으로 간주합니다. - matrix_max_num_qubits (int) – 행렬 표현을 계산할 수 있는 큐비트의 최대 개수. 예를 들어 사용자 정의 게이트와 같이 즉시 사용할 수 있는 효율적인 검사 방법이 없는 경우 이 방법이 필요합니다.
리턴
두 연산이 교환법칙을 만족하는지 여부.
리턴 유형
commute_nodes
commute_nodes(op1, op2, max_num_qubits=3, approximation_degree=1.0)
두 DAGOpNode 객체가 교환 관계에 있는지 확인합니다.
이는 와 commute() 동일하지만, 연산, 큐비트 및 클비트가 객체에 DAGOpNode 묶여 있다는 점이 다릅니다. 자세한 내용은 여기를 참조하십시오 commute() .
매개변수
리턴 유형
num_cached_entries
num_cached_entries()
캐시된 항목 수를 반환합니다
더 이상 내부 캐시가 없기 때문에 이 메서드는 항상 0을 반환합니다.
이 메서드는 qiskit.circuit.commutation_checker.CommutationChecker.num_cached_entries() Qiskit 2.5 부터 더 이상 사용되지 않습니다. Qiskit 3.0 에서 제거될 예정입니다.