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)
프리셋 생성 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_map및basis_gates. -
basis_gates (list[str] | None) – 언롤링할 기본 게이트 이름 목록 (예:
['u1', 'u2', 'u3', 'cx']). -
coupling_map (CouplingMap |list | None) –
방향성 그래프는 커플링 맵을 나타냅니다. 여러 형식이 지원됩니다:
CouplingMap인스턴스- 목록은 인접 행렬로 제공되어야 하며, 각 항목은 백엔드에서 지원되는 모든 지시된 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'이며, 이들은 각각,DenseLayout및SabreLayout을 나타냅니다.StagedPassManager이는 또한 출력 단계에서layout사용할 외부 플러그인 이름이 될 수도 있습니다. 인수로"layout"list_stage_plugins()를stage_name지정하여 설치된 플러그인 목록을 확인할 수 있습니다. -
routing_method (str | None) – 이 아키텍처에서 큐비트를 라우팅하는 데 사용할 패스입니다.
BasicSwap유효한 선택지는'basic','lookahead','sabre', 및'none'로, 각각,LookaheadSwapSabreSwap,, 그리고 라우팅이 필요한 경우 오류를 나타냅니다.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) – 입력 회로가 영 초기화되었는지 여부를 나타냅니다.
리턴
주어진 옵션에 대한 사전 설정 패스 관리자
리턴 유형
레이즈
ValueError - 에 잘못된 값을 전달한 경우 optimization_level .