Skip to main content
IBM Quantum Platform

OptimizeAnnotated

class qiskit.transpiler.passes.OptimizeAnnotated(*args, **kwargs)

GitHub

베이스: TransformationPass

주석이 달린 연산이 있는 회로에 대한 최적화 패스를 제공합니다.

최적화를 구현했습니다:

  • 주석이 달린 각 연산에 대해 해당 수정자 목록을 표준 형식으로 변환합니다. 예를 들어 inverse(), control(2) , inverse() 을 연속적으로 적용하는 것은 control(2) 을 적용하는 것과 같습니다.
  • 가능하면 주석을 제거합니다. 예를 들어 AnnotatedOperation(SwapGate(), [InverseModifier(), InverseModifier()])SwapGate() 과 동일합니다.
  • 주석을 재귀적으로 결합합니다. 예를 들어 g1 = AnnotatedOperation(SwapGate(), InverseModifier())g2 = AnnotatedOperation(g1, ControlModifier(2)) 의 경우 g2AnnotatedOperation(SwapGate(), [InverseModifier(), ControlModifier(2)]) 로 바꿀 수 있습니다.
  • 주석이 달린 연산에 공액 축소를 적용합니다. 예를 들어 control - [P -- Q -- P^{-1}]P -- control - [Q] -- P^{-1} 으로 다시 작성할 수 있습니다. 즉, 중간 부분만 제어하면 됩니다. 이는 역 및 파워 수정자에도 적용됩니다.

OptimizeAnnotated 이니셜라이저.

매개변수

  • target – 이 패스에 사용할 백엔드 타겟.
  • 등가성_도서관 - 사용된 등가성 라이브러리(이 라이브러리의 지침은 이 패스로 최적화되지 않습니다).
  • basis_gates – 언롤링할 대상 베이스 이름(예: [‘u3’, ‘cx’] )(이 목록에 포함된 명령어는 이 패스에서 최적화되지 않습니다). 또한 가 target 지정된 경우 무시됩니다.
  • 재귀 - 기본적으로 target 또는 basis_gates 중 하나가 지정되면 패스는 재귀적으로 게이트 정의로 내려갑니다(둘 다 지정되지 않은 경우 재귀가 적용되지 않으므로 이러한 객체는 합성할 필요가 없습니다). 이 값을 False 으로 설정하면 모든 경우에 재귀를 방지할 수 있습니다.
  • do_conjugate_reduction - 공액 감소를 수행할지 여부를 제어합니다.

속성

is_analysis_pass

패스가 분석 패스인지 확인합니다.

패스가 AnalysisPass, 인 경우 패스가 DAG를 분석하고 해당 분석 결과를 속성 집합에 쓸 수 있음을 의미합니다. 이러한 종류의 패스에서는 DAG에 대한 수정이 허용되지 않습니다.

is_transformation_pass

패스가 변환 패스인지 확인합니다.

패스가 TransformationPass, 인 경우 패스가 DAG를 조작할 수는 있지만 속성 집합을 수정할 수는 없음을 의미합니다(단, 읽을 수는 있음).


메소드

execute

execute(passmanager_ir, state, callback=None)

GitHub

입력된 키스킷 IR에 대한 최적화 작업을 실행합니다.

매개변수

  • passmanager_ir (DAGCircuit) – 최적화할 Qiskit IR.
  • state (DAGCircuit) – 패스 관리자 자체에 의한 워크플로 실행과 관련된 상태.
  • callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – 최적화 작업이 실행될 때마다 호출되는 콜백 함수입니다.

리턴

최적화된 키스킷 IR 및 워크플로 상태.

리턴 유형

튜플 [ DAGCircuit, PassManagerState ]

name

name()

GitHub

패스 이름.

리턴 유형

str

run

run(dag)

GitHub

Dag에서 OptimizeAnnotated 패스를 실행합니다.

매개변수

dag (DAGCircuit) – 입력합니다.

리턴

상위 수준 연산이 최적화된 출력 데이터입니다.

레이즈

TranspilerError – 문제가 생겼을 때.

update_status

update_status(state, run_state)

GitHub

워크플로 상태를 업데이트합니다.

매개변수

  • state (PassManagerState) – 관리자 상태를 전달하여 업데이트합니다.
  • run_state (RunState) – 현재 작업의 완료 상태입니다.

리턴

패스 관리자 상태가 업데이트되었습니다.

리턴 유형

PassManagerState

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.