CollectAndCollapse
class qiskit.transpiler.passes.CollectAndCollapse(*args, **kwargs)
베이스: TransformationPass
회로에서 노드 블록을 수집하고 통합하는 일반적인 트랜스파일러 패스입니다.
이 트랜스파일러 패스는 수집 함수와 축소 함수라는 두 가지 함수에 의존합니다. 수집 함수 collect_function 는 DAG를 받아 블록 목록을 반환합니다. 접기 함수 collapse_function 는 DAG와 블록 목록을 가져와 각 블록을 통합한 후 수정된 DAG를 반환합니다.
입력 및 출력 DAG는 유형이 DAGCircuit유형이지만, 블록을 수집하기 위해 정류성 분석을 활용할 때는 내부적으로 DAGDependency 표현이 내부적으로 사용됩니다. 이를 지원하기 위해 collect_function 및 collapse_function 은 두 가지 유형의 DAG 및 DAG 노드에서 모두 작동해야 합니다.
다른 수집 및 통합 트랜스파일러 패스, 예를 들어 CollectLinearFunctions는 이 패스에서 파생되어 collect_function 및 collapse_function 을 특정 함수로 수정할 수 있습니다.
매개변수
- collect_function (callable) – dAG를 받아 "수집된" 노드 블록 목록을 반환하는 함수입니다
- collapse_function (callable) – dAG와 "수집된" 블록 목록을 가져와 각 블록을 통합하는 함수입니다.
- do_commutative_analysis (bool) – true이면 노드 간의 정류성 관계를 활용합니다.
속성
is_analysis_pass
패스가 분석 패스인지 확인합니다.
패스가 AnalysisPass, 인 경우 패스가 DAG를 분석하고 해당 분석 결과를 속성 집합에 쓸 수 있음을 의미합니다. 이러한 종류의 패스에서는 DAG에 대한 수정이 허용되지 않습니다.
is_transformation_pass
패스가 변환 패스인지 확인합니다.
패스가 TransformationPass, 인 경우 패스가 DAG를 조작할 수는 있지만 속성 집합을 수정할 수는 없음을 의미합니다(단, 읽을 수는 있음).
메소드
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)
CollectLinearFunctions 패스를 실행합니다. :param dag: 최적화할 DAG. :type dag: DAGCircuit
리턴
최적화된 DAG입니다.
리턴 유형
update_status
update_status(state, run_state)
워크플로 상태를 업데이트합니다.
매개변수
- state (PassManagerState) – 관리자 상태를 전달하여 업데이트합니다.
- run_state (RunState) – 현재 작업의 완료 상태입니다.
리턴
패스 관리자 상태가 업데이트되었습니다.
리턴 유형