PauliEvolutionSynthesisRustiq
class qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSynthesisRustiq
합성 PauliEvolutionGate 를 합성합니다.
이 플러그인 이름은 :PauliEvolution.rustiq 이 플러그인은 메서드를 사용할 객체의 HLSConfig 객체에서 이 메서드를 사용할 HighLevelSynthesis.
Rustiq 합성 알고리즘은 [1에] 설명되어 있으며, 다음에서 제공되는 Rust 기반 양자 회로 합성 라이브러리에서 구현됩니다 https://github.com/smartiel/rustiq-core.
대규모 회로에서는 플러그인 실행 시간이 상당히 오래 걸릴 수 있습니다.
플러그인은 다음과 같은 추가 옵션을 지원합니다:
-
최적화_count (bool): True이면 합성 알고리즘이 최적화를 시도합니다
2-큐비트 게이트 수, False이면 2-큐비트 깊이입니다.
-
보존_순서(bool): 폴리의 순서를 보존할지 여부, 최대
정류성.
-
upto_clifford (bool): True이면 최종 클리포드 연산자를 합성하지 않습니다.
-
upto_phase (bool): True이면 반환된 회로의 전역 위상은 다음과 같습니다
는 주어진 폴리 네트워크의 글로벌 단계와 다릅니다.
-
resynth_clifford_method (int): 최종 합성을 위한 전략을 설명합니다
클리포드 운영자. 허용되는 값은 0(나이브 접근 방식), 1(키스킷 욕심 합성), 2(러스티크 아이소메트리 합성)입니다.
참조
- 티모테 구보 드 브루지에르와 사이먼 마르티엘, 해밀턴 시뮬레이션 회로의 더 빠르고 더 짧은 합성, arXiv:2404.03280 [quant-ph]
메소드
run
run(high_level_object, coupling_map=None, target=None, qubits=None, **options)
주어진 연산에 대한 합성을 실행합니다.
매개변수
- high_level_object (Operation) – 객체에 합성하는 연산은
DAGCircuit객체로 합성하는 연산입니다. - coupling_map (CouplingMap) – 합성이 물리적 회로에서 수행되는 경우 백엔드의 커플링 맵입니다.
- target (Target) – 대상 백엔드를 나타내는 대상입니다.
- qubits (list) – 물리적 회로에서 합성이 수행되는 경우 연산이 정의되는 큐비트 목록입니다.
- 옵션 - 메서드별 추가 옵션 kwarg.
리턴
오퍼레이션의 양자 회로 표현
성공하면 None
리턴 유형