Skip to main content
IBM Quantum Platform

SabrePreLayout

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

GitHub

베이스: 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)

GitHub

입력된 키스킷 IR에 대한 최적화 작업을 실행합니다.

매개변수

  • passmanager_ir (IR) – 최적화할 Qiskit IR.
  • state (PassManagerState) – 패스 관리자 자체의 워크플로 실행과 관련된 상태입니다.
  • callback (Callable[[Task, IR_OUT, PropertySet, float, int], None] | None) – 최적화 작업이 실행될 때마다 호출되는 콜백 함수입니다.

리턴

최적화된 키스킷 IR 및 워크플로 상태.

리턴 유형

튜플 [ IR_OUT, PassManagerState ]

name

name()

GitHub

패스 이름.

리턴 유형

str

run

run(dag)

GitHub

Dag에서 SabrePreLayout 패스를 실행합니다.

검색된 시작 레이아웃은 속성 세트 값 sabre_starting_layouts 에 기록됩니다.

매개변수

dag (DAGCircuit) – DAG를 사용하여 시작 레이아웃을 만듭니다.

update_status

update_status(state, run_state)

GitHub

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

매개변수

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

리턴

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

리턴 유형

PassManagerState

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