Optimize1qGates
class qiskit.transpiler.passes.Optimize1qGates(*args, **kwargs)
베이스: TransformationPass
단일 큐비트 u1, u2, u3 게이트를 단일 게이트로 결합하여 체인을 최적화합니다.
Optimize1qGates 이니셜라이저.
매개변수
- basis (list[str]) – 고려해야 할 기본 게이트, 예: [‘u3’, 'cx']. 이 패스의 효과에서 기준은 기준 파라미터와 세트 {‘u1’,’u2’,’u3’, ‘u’, ‘p’} 사이의 세트 교차점입니다.
- eps (float) – 확인할 EPS
- target (Target) – 대상 백엔드를 나타내는
Target는 대상 백엔드를 나타내며,basis와target이 모두 지정되면 이 인수가 우선하고basis은 무시됩니다.
속성
is_analysis_pass
패스가 분석 패스인지 확인합니다.
패스가 AnalysisPass, 인 경우 패스가 DAG를 분석하고 해당 분석 결과를 속성 집합에 쓸 수 있음을 의미합니다. 이러한 종류의 패스에서는 DAG에 대한 수정이 허용되지 않습니다.
is_transformation_pass
패스가 변환 패스인지 확인합니다.
패스가 TransformationPass, 인 경우 패스가 DAG를 조작할 수는 있지만 속성 집합을 수정할 수는 없음을 의미합니다(단, 읽을 수는 있음).
메소드
compose_u3
static compose_u3(theta1, phi1, lambda1, theta2, phi2, lambda2)
제품에 대한 세타, 파이, 람다의 세 배를 반환합니다.
u3(theta, 파이, 람다)
= u3(theta1, phi1, lambda1).u3(theta2, phi2, lambda2 ) = Rz( phi1 ).Ry( theta1 ).Rz( lambda1+phi2 ).Ry( theta2 ).Rz( lambda2 ) = Rz( phi1 ).Rz(phi').Ry(theta').Rz(lambda').Rz( lambda2 ) = u3(theta’, phi1 + phi', lambda2 + lambda')입니다
세타, 파이, 람다를 반환합니다.
execute
execute(passmanager_ir, state, callback=None)
입력된 키스킷 IR에 대한 최적화 작업을 실행합니다.
매개변수
- passmanager_ir (DAGCircuit) – 최적화할 Qiskit IR.
- state (DAGCircuit) – 패스 관리자 자체에 의한 워크플로 실행과 관련된 상태.
- callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – 최적화 작업이 실행될 때마다 호출되는 콜백 함수입니다.
리턴
최적화된 키스킷 IR 및 워크플로 상태.
리턴 유형
튜플 [ DAGCircuit, PassManagerState ]
name
run
run(dag)
Dag에서 Optimize1qGates 패스를 실행합니다.
매개변수
dag (DAGCircuit) – 최적화할 DAG를 설정합니다.
리턴
최적화된 DAG입니다.
리턴 유형
레이즈
TranspilerError – 만약 YZY 와 ZYZ 각도가 동일한 회전 행렬을 나타내지 않는다면.
update_status
update_status(state, run_state)
워크플로 상태를 업데이트합니다.
매개변수
- state (PassManagerState) – 관리자 상태를 전달하여 업데이트합니다.
- run_state (RunState) – 현재 작업의 완료 상태입니다.
리턴
패스 관리자 상태가 업데이트되었습니다.
리턴 유형
yzy_to_zyz
static yzy_to_zyz(xi, theta1, theta2, eps=1e-09)
Y.Z.Y 단일 큐비트 게이트를 Z.Y.Z 게이트로 표현합니다.
방정식 풀기
Ry( theta1 ).Rz(xi).Ry( theta2 ) = Rz(phi).Ry(세타).Rz(람다)
세타, 파이, 람다의 경우.
솔루션 세타, 파이, 람다를 반환합니다.