Skip to main content
IBM Quantum Platform

qiskit.transpiler.generate_preset_pass_manager

qiskit.transpiler.generate_preset_pass_manager(optimization_level=2, backend=None, target=None, basis_gates=None, coupling_map=None, initial_layout=None, layout_method=None, routing_method=None, translation_method=None, scheduling_method=None, approximation_degree=1.0, seed_transpiler=None, unitary_synthesis_method='default', unitary_synthesis_plugin_config=None, hls_config=None, init_method=None, optimization_method=None, dt=None, qubits_initially_zero=True, *, _skip_target=False)

GitHub

프리셋 생성 PassManager

이 함수는 사전 설정된 패스 관리자를 빠르게 생성하는 데 사용됩니다. 사전 설정된 패스 관리자는 해당 transpile() 함수에서 기본으로 사용하는 패스 관리자입니다. 이 함수는 해당 transpile() 함수가 내부적으로 생성하여 사용하는 것과 동일한 독립형 PassManager 객체를 생성할 수 있는 편리하고 간단한 방법을 제공합니다.

패스 관리자 구성을 위한 대상 제약 조건은 Target 인스턴스, a BackendV2 인스턴스 또는 느슨한 제약 조건(basis_gates, coupling_map, 또는 dt)을 통해 지정할 수 있습니다. 대상 제약 조건의 우선 순위는 다음과 같이 작동합니다. target 입력이 제공되면 backend 입력이나 느슨한 제약 조건보다 우선합니다. backend 이 위 목록의 느슨한 제약 조건과 함께 제공되면 느슨한 제약 조건이 해당 백엔드 제약 조건보다 우선합니다. 이 동작은 아래 표에 요약되어 있습니다. 표의 첫 번째 열에는 사용자가 제공한 잠재적인 제약 조건이 요약되어 있으며, 각 셀에는 해당 특정 제약 조건 입력에 우선 순위가 할당되었는지 또는 다른 입력(target/backend( V1 )/backend( V2 ))에 우선 순위가 할당되었는지가 표시됩니다.

사용자 제공
대상
백엔드( V2 )
기초_게이트대상기초_게이트
커플링_맵대상커플링_맵
dt대상dt
참고

대상 베이시스가 클리포드+T 게이트로 구성될 경우, 이 함수는 특화된 클리포드+T 트랜스파일러 파이프라인을 구축합니다. 더 자세한 내용은 를 참조하십시오 generate_preset_clifford_t_pass_manager() . 이 흐름에서는 연속 베이스 세트로의 트랜스파일링에만 적용되는 인수는 무시됩니다. 예를 들어, 단일 큐비트 유니터리를 클리포드+T 시퀀스로 합성할 때는 가 "unitary_synthesis_method" 고려되지 않습니다.

매개변수

  • optimization_level (int) –

    를 생성하는 최적화 수준입니다 StagedPassManager 를 생성할 최적화 수준입니다. 이를 지정하지 않으면 기본적으로 최적화 수준 2가 사용됩니다. 이 값은 0, 1, 2 또는 3이 될 수 있습니다. 레벨이 높을수록 잠재적으로 더 최적화된 회로가 생성되지만, 트랜스파일링 시간이 길어집니다:

    • 0: 최적화 없음
    • 1: 조명 최적화
    • 2: 무거운 최적화
    • 3: 더욱 강력한 최적화
  • targetbackend (Backend | None) –, coupling_map``basis_gates, 및 의 기본값 소스로 사용할 수 있는 선택적 백엔드 객체입니다. 이 외에도 backend 다른 인수가 지정된 경우, 해당 인수가 백엔드에 포함된 값보다 우선 적용됩니다.

  • Targettarget (Target | None) – 백엔드 컴파일 대상을 나타내는. 다음 속성들은 설정되지 않은 경우 이 인자에서 추론됩니다: coupling_mapbasis_gates.

  • basis_gates (list[str] | None) – 언롤링할 기본 게이트 이름 목록 (예: ['u1', 'u2', 'u3', 'cx']).

  • coupling_map (CouplingMap |list | None) –

    방향성 그래프는 커플링 맵을 나타냅니다. 여러 형식이 지원됩니다:

    1. CouplingMap 인스턴스
    2. 목록은 인접 행렬로 제공되어야 하며, 각 항목은 백엔드에서 지원되는 모든 지시된 2쿼트 상호 작용을 지정합니다: [[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]
  • initial_layout (Layout |list[int]) – 물리적 큐비트 상의 가상 큐비트의 초기 위치.

  • Passlayout_method (str | None) – 초기 큐비트 배치를 결정하는 데 사용할. TrivialLayout'trivial'유효한 선택지는, 'dense', 및 'sabre'이며, 이들은 각각, DenseLayoutSabreLayout 을 나타냅니다. StagedPassManager이는 또한 출력 단계에서 layout 사용할 외부 플러그인 이름이 될 수도 있습니다. 인수로 "layout"list_stage_plugins()stage_name 지정하여 설치된 플러그인 목록을 확인할 수 있습니다.

  • routing_method (str | None) – 이 아키텍처에서 큐비트를 라우팅하는 데 사용할 패스입니다. BasicSwap유효한 선택지는 'basic', 'lookahead', 'sabre', 및 'none' 로, 각각, LookaheadSwap SabreSwap,, 그리고 라우팅이 필요한 경우 오류를 나타냅니다. StagedPassManager이는 또한 출력 단계에서 routing 사용할 외부 플러그인 이름이 될 수도 있습니다. 인수로 "routing"list_stage_plugins()stage_name 지정하여 설치된 플러그인 목록을 확인할 수 있습니다.

  • translation_method (str | None) – 게이트를 기저 게이트로 변환하는 방법. BasisTranslator'translator'유효한 선택지이며, 'synthesis' 각각, 및 UnitarySynthesis 을 나타냅니다. StagedPassManager이는 또한 출력 단계에서 translation 사용할 외부 플러그인 이름이 될 수도 있습니다. 인수로 "translation"list_stage_plugins()stage_name 지정하여 설치된 플러그인 목록을 확인할 수 있습니다.

  • scheduling_method (str | None) – 지시 사항 일정을 잡을 때 사용할 패스입니다. 'asap'올바른 선택지는 와 입니다 'alap' . StagedPassManager이는 또한 출력 단계에서 scheduling 사용할 외부 플러그인 이름이 될 수도 있습니다. 인수로 "scheduling"list_stage_plugins()stage_name 지정하여 설치된 플러그인 목록을 확인할 수 있습니다.

  • approximation_degree (float | None) – 회로 근사화에 사용되는 휴리스틱 다이얼로, 는 1.0 (수치적 오차 범위 내에서) 근사화를 하지 않음을, 0.0 는 최대 근사화를 의미합니다. 가 사용 가능한 경우 target , 의 None 값은 대상의 연산에 대해 보고된 오류율 범위 내에서 근사 처리가 허용됨을 나타냅니다.

  • seed_transpiler (int | None) – 트랜스파일러의 확률적 부분에 대한 난수 시드를 설정합니다. 여기에 명시되어 있지 않은 경우, QISKIT_TRANSPILER_SEED 환경 변수를 통해 지정하거나 사용자 설정 파일에서 지정할 수도 있습니다. 우선순위 순서는 다음과 같습니다: 이 인자, 그 다음 환경 변수, 마지막으로 사용자 설정 옵션입니다. 따라서 이 인수를 설정하면 시드를 설정하는 다른 방법들보다 우선 적용됩니다.

  • unitary_synthesis_method (str) – 사용할 단일 합성 방법의 이름입니다. 기본적으로 'default' 이 사용됩니다. 를 사용하여 설치된 플러그인 목록을 볼 수 있습니다 unitary_synthesis_plugin_names().

  • unitary_synthesis_plugin_config (dict | None) – 단일 합성 플러그인에 직접 전달될 선택적 구성 사전입니다. 기본적으로 이 설정은 아무런 영향을 미치지 않습니다. 기본 단일 합성 방식은 사용자 지정 구성을 지원하지 않기 때문입니다. 이는 인수를 unitary_synthesis_method 사용하여 단일 합성 플러그인이 지정된 경우에만 필요합니다. 이 옵션은 각 단일 합성 플러그인마다 설정이 다르므로, 이 옵션을 사용하는 방법에 대해서는 해당 플러그인의 설명서를 참조하십시오.

  • hls_config (HLSConfig | None) – 변환 단계에 HighLevelSynthesis 직접 전달될 선택적 구성 클래스입니다 HLSConfig . 이 구성 클래스를 사용하면 다양한 상위 수준 객체에 대해 합성 알고리즘 목록과 해당 매개변수를 지정할 수 있습니다.

  • StagedPassManagerinit_method (str | None) – 출력의 단계에 init 사용할 플러그인 이름입니다. 기본적으로 외부 플러그인은 사용되지 않습니다. 단계 이름 인수로 를 "init"list_stage_plugins() 사용하여 설치된 플러그인 목록을 확인할 수 있습니다.

  • StagedPassManageroptimization_method (str | None) – 출력의 단계에 optimization 사용할 플러그인 이름입니다. 기본적으로 외부 플러그인은 사용되지 않습니다. 인수로 "optimization"list_stage_plugins()stage_name 지정하여 설치된 플러그인 목록을 확인할 수 있습니다.

  • dt (float | None) – 백엔드 샘플 시간(해상도)을 초 단위로 표시합니다. (기본값)인 경우 None , backend.dt 백엔드가 지정되면 가 사용됩니다.

  • qubits_initially_zero (bool) – 입력 회로가 영 초기화되었는지 여부를 나타냅니다.

리턴

주어진 옵션에 대한 사전 설정 패스 관리자

리턴 유형

StagedPassManager

레이즈

ValueError - 에 잘못된 값을 전달한 경우 optimization_level .

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