MergeAdjacentBarriers
class qiskit.transpiler.passes.MergeAdjacentBarriers(*args, **kwargs)
베이스: TransformationPass
인접한 장벽이 병합된 회로를 반환합니다.
DAG의 배리어 구조에 영향을 주지 않고 병합할 수 있는 배리어만 병합됩니다.
중복되는 모든 장벽이 반드시 병합되는 것은 아니며 인접한 장벽만 병합됩니다.
예를 들어 회로입니다:
qr = QuantumRegister(3, 'q')
circuit = QuantumCircuit(qr)
circuit.barrier(qr[0])
circuit.barrier(qr[1])
circuit.barrier(qr)에 해당하는 회로로 변환됩니다:
circuit.barrier(qr[0])
circuit.barrier(qr)즉
░ ░ ░ ░
q_0: ─░──░─ q_0: ─░──░─
░ ░ ░ ░
q_1: ─░──░─ => q_1: ────░─
░ ░ ░
q_2: ────░─ q_2: ────░─
░패스를 한 번 반복한 후 이 두 장벽은 초기 회로에서 인접하지 않기 때문에 첫 번째 패스에서 병합되지 않았습니다.
그런 다음 패스를 다시 적용하여 새로 인접한 장벽을 병합할 수 있습니다.
속성
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
update_status
update_status(state, run_state)
워크플로 상태를 업데이트합니다.
매개변수
- state (PassManagerState) – 관리자 상태를 전달하여 업데이트합니다.
- run_state (RunState) – 현재 작업의 완료 상태입니다.
리턴
패스 관리자 상태가 업데이트되었습니다.
리턴 유형