Skip to main content
IBM Quantum Platform

ConsolidateBlocks

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

GitHub

베이스: TransformationPass

연속된 게이트의 각 블록을 단일 유니티 노드로 대체합니다.

동일한 큐비트에 작용하는 연속된 게이트 시퀀스를 하나의 UnitaryGate 노드로 통합하여, 나중에 잠재적으로 더 최적화된 하위 회로로 재합성할 수 있도록 합니다. 이 패스의 일반적인 작동 방식은 입력에 DAGCircuit 대한 분석을 수행하여 회로 내의 모든 2-큐비트 블록을 찾아낸 다음, 내부 휴리스틱을 바탕으로 해당 블록을 통합해야 UnitaryGate 하는지 여부를 결정하는 것입니다. 그러나 속성 집합에 또는 run_list 중 하나가 block_list 설정되어 있다면, 이 패스는 DAG에 대한 자체 분석을 수행하지 않습니다.

이 패스를 실행할 때 속성 집합에 또는 run_list 중 하나가 block_list 설정되어 있는지 여부에 따라, 이 패스에는 두 가지 레거시 작동 모드가 있습니다. UnitaryGateblock_list 노드 인덱스의 리스트 목록을 포함해야 하며, 각 내부 리스트는 잠재적으로 하나의 블록으로 통합될 수 있는 블록들의 모음을 나타내야 합니다. 이 블록들은 퀀텀 비트(qubit)의 개수가 얼마든지 될 수 있지만, 이전 Qiskit 릴리스의 사전 설정된 패스 관리자에서는 일반적으로 2개로 설정되어 있었으며, 이는 Collect2qBlocks 패스에 의해 지정되었습니다. 또한 임의의 큐비트 수에 대해 발견된 블록을 설정하는 blocks_list 트랜스파일러 패스가 CollectMultiQBlocks 있습니다. 다른 속성 집합 키는 run_list 통합할 단일 큐비트 블록인 “런(runs)”의 리스트로 구성된 리스트입니다. Collect1qRuns 이는 트랜스파일러 단계에서 설정되었을 가능성이 있습니다. “실행(runs)”에 대한 이 기능은 대부분 트랜스파일러 패스에 Optimize1qGatesDecomposition 의해 대체되었으며, 단일 큐비트 실행을 더 철저하고 효율적으로 단순화하려면 일반적으로 트랜스파일러 패스를 사용하는 것이 좋습니다.

이 패스는 PropertySetConsolidateBlocks_qubit_map 를 사용하여 제어 흐름 작업을 위해 자신의 재귀 작업자 인스턴스와 통신합니다. 키는 사용자 대면 파이프라인에서 관찰할 수 없어야 합니다 PassManager 파이프라인(내부 인스턴스에서만 설정됨 PassManager 인스턴스에서만 설정됨), 다른 패스가 이 키를 설정하면 잘못된 결과나 오류를 반환할 수 있습니다.

ConsolidateBlocks 이니셜라이저.

kak_basis_gateNone 이 아닌 경우 KAK 분해를 위한 기본 게이트로 사용됩니다. 그렇지 않으면 basis_gates 이 아닌 경우 None 이 목록에서 기본 게이트가 선택됩니다. 그렇지 않으면 기본 게이트는 CXGate.

매개변수

  • kak_basis_gate – KAK 분해를 위한 기저 게이트.
  • force_consolidate – 블록 통합을 강제합니다.
  • basis_gates – KAK 게이트를 선택할 수 있는 기본 게이트.
  • approximation_degree[0.0,1.0][0.0, 1.0] 사이의 부동소수점 수치입니다. 값이 낮을수록 더 정밀하게 근사합니다.
  • target – 컴파일 대상 백엔드의 대상 객체.

속성

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에서 ConsolidateBlocks 패스를 실행합니다.

각 블록을 반복하여 동일한 전선의 동일한 유니티로 교체합니다.

update_status

update_status(state, run_state)

GitHub

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

매개변수

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

리턴

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

리턴 유형

PassManagerState

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