SynthesizeRZRotations
class qiskit.transpiler.passes.SynthesizeRZRotations(*args, **kwargs)
베이스: TransformationPass
RZ 게이트를 클리포드+T 분해로 대체한다.
이 패스는 부동소수점 각도를 사용하는 모든 단일 큐비트 RZ 회전 게이트를 이에 상응하는 클리포드+T 시퀀스로 대체합니다.
내부적으로, 이 패스는 각도를 pi/2: 로 나눈 나머지를 계산함으로써 일반적인 θ에 대한 RZ(θ)를 합성합니다. 따라서 RZ(θ) 회로는 RZ(θ mod pi/2 ) 회로에 적절한 클리포드 게이트를 추가함으로써 구성할 수 있습니다. 특히, 이 패스는 합성 결과를 캐시하여 서로 정해진 허용 오차 범위 내에 있는 각도에 대해 이를 재사용합니다.
예를 들어,
from qiskit.circuit import QuantumCircuit
from qiskit.transpiler.passes import SynthesizeRZRotations
from qiskit.quantum_info import Operator
from numpy import pi
# The following quantum circuit consists of 5 Clifford gates
# and three single-qubit RZ rotations gates
qc = QuantumCircuit(4)
qc.cx(0, 1)
qc.rz(9*pi/4, 0)
qc.cz(0, 1)
qc.rz(3*pi/8, 1)
qc.h(1)
qc.s(2)
qc.rz(13*pi/2, 2)
qc.cz(2, 0)
qc.rz(5*pi/3, 3)
qct = SynthesizeRZRotations()(qc)
# The transformed circuit consists of Clifford, T and Tdg gates
clifford_t_names = get_clifford_gate_names() + ["t"] + ["tdg"]
assert(set(qct.count_ops().keys()).issubset(set(clifford_t_names)))
# The circuits before and after the transformation are equivalent
# (with the default value of approximation_degree used by SynthesizeRZRotations)
assert Operator(qc) == Operator(qct)와 cache_error 가 synthesis_error 모두 지정된 경우, 이들은 각각 근사 합성 및 캐싱을 위한 오차 허용 범위를 지정합니다. 두 값 중 하나라도 지정되지 않은 경우, 허용되는 총 approximation_degree 오차는 에서 도출되며, 와 에 synthesis_error 대한 적절한 cache_error 값이 자동으로 계산됩니다.
매개변수
- approximation_degree – 전체적인 근사화 정도를 조절합니다. 기본값은
1 - 1e-10.입니다. (0, 1]synthesis_error – 의 근사 합성에 허용되는 최대 오차입니다. 지정할 경우, 반드시 다음 범위 내에 있어야 합니다.[0, 1]cache_error – 에 가까운 각도에 대해 캐시된 합성 결과를 재사용할 때 허용되는 최대 오차. 지정할 경우, 반드시 다음 범위 내에 있어야 합니다.
속성
is_analysis_pass
이 패스가 분석 패스인지 확인하십시오.
해당 패스가 DAG 분석기( AnalysisPass, )인 경우, 해당 패스는 DAG를 분석하고 그 분석 결과를 속성 집합에 기록할 수 있음을 의미합니다. 이러한 종류의 패스에서는 DAG에 대한 수정이 허용되지 않습니다.
is_transformation_pass
이 패스가 변환 패스인지 확인하십시오.
패스가 TransformationPass,인 경우, 해당 패스는 DAG를 조작할 수 있지만 속성 집합을 수정할 수는 없습니다(단, 읽기는 가능합니다).
메소드
execute
execute(passmanager_ir, state, callback=None)
입력된 Qiskit IR에 대해 최적화 작업을 실행합니다.
매개변수
- passmanager_ir (DAGCircuit) – 최적화할 Qiskit IR.
- state (DAGCircuit) – 패스 관리자 자체에 의한 워크플로 실행과 관련된 상태.
- callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – 최적화 작업이 실행될 때마다 호출되는 콜백 함수입니다.
리턴
Qiskit 중간 표현(IR) 최적화 및 워크플로 현황.
리턴 유형
튜플 [ DAGCircuit, PassManagerState ]
name
run
update_status
update_status(state, run_state)
워크플로 상태를 업데이트합니다.
매개변수
- state (PassManagerState) – 업데이트할 관리자 상태를 전달합니다.
- run_state (RunState) – 현재 작업의 완료 상태.
리턴
패스 관리자 상태를 업데이트했습니다.
리턴 유형