FullAncillaAllocation
class qiskit.transpiler.passes.FullAncillaAllocation(*args, **kwargs)
베이스: AnalysisPass
커플링 맵 또는 타겟의 모든 유휴 노드를 레이아웃의 앤실라로 할당합니다.
모든 유휴 물리 큐비트(커플링 맵이나 타깃에 존재하지만 다그 회로에는 없는 큐비트)를 앤실라로 할당하기 위한 패스입니다. 또한 이러한 물리적 앙실라에 대응하는 새로운 가상 큐비트를 선택합니다.
이것은 분석 패스로, 물리적 앤실라 위치와 해당 가상 큐비트를 선택하는 역할만 담당합니다. 별도의 변환 패스를 통해 해당 가상 큐비트를 회로에 추가해야 합니다.
FullAncillaAllocation 이니셜라이저.
매개변수
coupling_map (Union[CouplingMap, Target]) – 커플링 맵을 나타내는 방향 그래프입니다.
속성
is_analysis_pass
패스가 분석 패스인지 확인합니다.
패스가 AnalysisPass, 인 경우 패스가 DAG를 분석하고 해당 분석 결과를 속성 집합에 쓸 수 있음을 의미합니다. 이러한 종류의 패스에서는 DAG에 대한 수정이 허용되지 않습니다.
is_transformation_pass
패스가 변환 패스인지 확인합니다.
패스가 TransformationPass, 인 경우 패스가 DAG를 조작할 수는 있지만 속성 집합을 수정할 수는 없음을 의미합니다(단, 읽을 수는 있음).
메소드
execute
execute(passmanager_ir, state, callback=None)
입력된 키스킷 IR에 대한 최적화 작업을 실행합니다.
매개변수
- passmanager_ir (IR) – 최적화할 Qiskit IR.
- state (PassManagerState) – 패스 관리자 자체의 워크플로 실행과 관련된 상태입니다.
- callback (Callable[[Task, IR_OUT, PropertySet, float, int], None] | None) – 최적화 작업이 실행될 때마다 호출되는 콜백 함수입니다.
리턴
최적화된 키스킷 IR 및 워크플로 상태.
리턴 유형
튜플 [ IR_OUT, PassManagerState ]
name
run
run(dag)
Dag에서 FullAncillaAllocation 패스를 실행합니다.
새로운 (물리적 큐비트, 가상 큐비트) 쌍으로 레이아웃을 확장합니다. Dag는 이미 회로에 있는 가상 큐비트를 신호합니다. 이 패스는 새로운 가상 큐비트를 할당하여 충돌이 발생하지 않도록 합니다(즉, 레이아웃 편향성이 유지됨)
커플링_맵과 레이아웃은 함께 어떤 물리적 큐비트가 비어 있는지를 결정합니다.
매개변수
dag (DAGCircuit) – 분석할 회로
리턴
는 수정되지 않은 동일한 DAG 회로를 반환합니다
리턴 유형
레이즈
TranspilerError – 속성 집합에 레이아웃이 없거나 초기화 시점에 설정되지 않은 경우.
update_status
update_status(state, run_state)
워크플로 상태를 업데이트합니다.
매개변수
- state (PassManagerState) – 관리자 상태를 전달하여 업데이트합니다.
- run_state (RunState) – 현재 작업의 완료 상태입니다.
리턴
패스 관리자 상태가 업데이트되었습니다.
리턴 유형
validate_layout
static validate_layout(layout_qubits, dag_qubits)
layout_qregs 의 모든 qreg가 dag_qregs 에 이미 존재하는지 확인합니다. 그렇지 않으면 올리세요.