SabrePreLayout
class qiskit.transpiler.passes.SabrePreLayout(*args, **kwargs)
베이스: AnalysisPass
추가 세이버 레이아웃 시험에 사용할 시작 레이아웃을 선택합니다.
이 패스는 결합 맵에 “추가” 에지를 계속해서 더하는 방식으로 작동하며, 최종적으로 VF2 가 완벽한 그래프 동형사상을 찾아낼 때까지 이 과정을 반복합니다. 더 정확하게 말하면, 확장 결합 맵은 원본 결합 맵에서 d 주어진 거리 이내에 있는 노드들 사이에 에지를 포함한다. 원래의 경계선에는 노이즈가 없지만, 추가된 경계선에는 거리에 따라 기하급수적으로 증가하는 노이즈가 있습니다. 의 값은 동형사상이 d 발견될 때까지 증가된다.
직관적으로 볼 때, 더 나은 VF2 레이아웃은 추가 에지의 수가 적고, 그 간격도 더 짧아야 한다.
속성 집합 값 기록됨
sabre_starting_layouts (list[Layout])
선택적 목록 Layout 오브젝트 목록입니다.
참조 자료:
[1] 헨리 조우, 매튜 트레이니쉬, 케빈 하트만, 알렉산더 이브리, 제이크 리쉬먼. “LightSABRE: 가볍고 향상된 SABRE 알고리즘" arXiv:2409.08368
매개변수 커플링_맵
원래의 결합 맵 또는 백엔드(연결성 포함)를 모델링하는 대상을 나타내는 유향 그래프.
파라미터 최대_거리
증강 결합 맵을 사용하여 VF2 를 실행할 때의 최대 거리. 특히, 이는 확장된 결합 맵에서 서로 연결되는 원래 노드들 간의 최대 거리도 명시합니다.
매개변수 오류_rate
“추가” 에지에 할당할 오류율. 오류율이 0이 아닐 경우, VF2 는 추가 에지보다 원래의 에지를 우선적으로 선택합니다.
매개변수 max_trials_vf2
VF2 시도의 최대 횟수를 지정합니다. 이 옵션은 주로 Qiskit 2.3 에서 도입된 VF2 의 실시간 점수 계산 기능 때문에 기존 시스템과의 호환성을 유지하기 위한 목적으로 남아 있습니다. 패스의 시간을 제한하려면 대신 call_limit_vf2 매개변수 max_distance 와 를 설정하십시오.
매개변수 call_limit_vf2
내부 VF2 동형사상 검색이 매핑을 확장하려고 시도하는 최대 횟수입니다. 만약 None~라면, 극한은 존재하지 않는다. 2-튜플인 경우, 제한은 첫 번째 항목부터 시작되며, 첫 번째 일치 항목을 찾은 후에는 단계 수를 재설정하지 않고 두 번째 항목으로 전환됩니다. 이를 통해 매핑을 찾기 위한 광범위한 검색을 수행하면서도, 매핑이 발견되면 제한된 확장 범위 내에서 신속하게 검색을 종료할 수 있습니다.
파라미터 개선_레이아웃
사용되지 않음(이 옵션은 VF2 에서 실시간 채점 기능이 도입되면서 더 이상 사용되지 않게 되었습니다).
param min_distance
증강 결합 맵을 적용한 첫 번째 VF2 실행의 거리. 이 설정은 모든 단거리 검사( min_distance > 1 smaller-distance checks)를 건너뛰며, 특히 pass를 VF2Layout 실행하는 것과 동일한 ' distance-1 ' 검사를 건너뜁니다.
레이즈 TranspilerError
실행 시 인수가 coupling_map 제공되지 않은 경우.
속성
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에서 SabrePreLayout 패스를 실행합니다.
검색된 시작 레이아웃은 속성 세트 값 sabre_starting_layouts 에 기록됩니다.
매개변수
dag (DAGCircuit) – DAG를 사용하여 시작 레이아웃을 만듭니다.
update_status
update_status(state, run_state)
워크플로 상태를 업데이트합니다.
매개변수
- state (PassManagerState) – 관리자 상태를 전달하여 업데이트합니다.
- run_state (RunState) – 현재 작업의 완료 상태입니다.
리턴
패스 관리자 상태가 업데이트되었습니다.
리턴 유형