ApplyLayout
class qiskit.transpiler.passes.ApplyLayout(*args, **kwargs)
베이스: TransformationPass
에서 가상 큐비트와 물리적 큐비트의 매핑을 적용하거나 업데이트합니다 DAGCircuit.
키스킷의 "레이아웃"은 가상 큐비트(사용자가 일반적으로 회로를 생성하는 기준)를 하드웨어에서 이를 표현하는 데 사용되는 물리적 큐비트에 매핑하는 것입니다.
이 패스는 layout 및 post_layout 키의 상태에 따라 두 가지 작동 모드가 있습니다 PropertySet:
-
표준 작동:
post_layout설정되어 있지 않습니다. 이것은 가상 큐비트 위에 정의된DAGCircuit를 받아 물리적 큐비트의 관점에서 다시 작성합니다. 이 경우layout필드는 레이아웃 패스에 의해 선택되어야 합니다(예SetLayout또는VF2Layout)에 의해 선택되어야 하며, 그것과DAGCircuit가 모두 접두사로 확장되어 있어야 합니다(EnlargeWithAncilla및FullAncillaAllocation). -
레이아웃 개선:
post_layout을 설정( 예VF2PostLayout). 이 경우post_layout은 이미 올바른 크기여야 합니다. 입력에 이미 적용된 리라벨링 위에 _추가_ 리라벨링으로 해석됩니다DAGCircuit.패스가 실행되면
layout필드가 두 리레이블의 구성을 나타내도록 업데이트되고DAGCircuit및 모든 최종 순열과 마찬가지로 업데이트됩니다.post_layout필드가 제거됩니다.
속성
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)
dag 에서 ApplyLayout 패스를 실행합니다.
매개변수
dag (DAGCircuit) – DAG를 맵에 추가합니다.
리턴
매핑된 DAG(물리적 큐비트 포함)입니다.
리턴 유형
레이즈
TranspilerError – 에서 property_set 레이아웃이 발견되지 않거나, 전체 물리적 큐비트가 없는 경우.
update_status
update_status(state, run_state)
워크플로 상태를 업데이트합니다.
매개변수
- state (PassManagerState) – 관리자 상태를 전달하여 업데이트합니다.
- run_state (RunState) – 현재 작업의 완료 상태입니다.
리턴
패스 관리자 상태가 업데이트되었습니다.
리턴 유형