Skip to main content
IBM Quantum Platform

TokenSwapperSynthesisPermutation

class qiskit.transpiler.passes.synthesis.hls_plugins.TokenSwapperSynthesisPermutation

GitHub

베이스: HighLevelSynthesisPlugin

토큰 스와퍼 알고리즘을 기반으로 하는 순열 합성 플러그인입니다.

이 플러그인 이름은 :permutation.token_swapper 이 플러그인은 메서드를 사용할 객체의 HLSConfig 객체에서 이 메서드를 사용할 HighLevelSynthesis.

좀 더 자세히 설명하면, 이 플러그인은 PermutationGate 유형의 객체를 합성하는 데 사용됩니다. 합성이 성공하면 플러그인은 스왑 게이트로만 구성된 양자 회로를 출력합니다. 합성에 성공하지 못하면 플러그인은 없음(None)을 출력합니다.

커플링_맵 또는 큐비트 중 하나가 None인 경우, 레이아웃/라우팅 전에 합성을 수행할 때와 마찬가지로 합성된 회로가 연결 제약 조건을 준수할 필요가 없습니다.

반면, 커플링_map과 큐비트를 모두 지정하면 합성된 회로는 연결 제약 조건을 준수해야 합니다. 현재 플러그인은 큐비트와 큐비트 사이의 스왑 게이트만 생성하며, 즉 커플링 맵에서 다른 큐비트를 사용하지 않습니다(이러한 합성이 불가능한 경우 플러그인은 None을 출력합니다).

플러그인은 다음과 같은 플러그인별 옵션을 지원합니다:

  • 트라이얼: 토큰 스와퍼가 매핑을 수행하기 위한 시도 횟수입니다. 가장 적은 수의 스왑을 가진 회로가 반환됩니다.
  • 시드: 시드: 토큰 스와퍼에게 무작위 트라이얼을 위한 시드를 지정하는 인수입니다.
  • parallel_threshold: 알고리즘이 병렬 처리를 사용할 그래프의 노드 수를 지정하는 토큰 스와퍼에 대한 인수입니다.

토큰 스왑 알고리즘에 대한 자세한 내용은 백서를 참조하세요: arXiv:1902.09102.


메소드

run

run(high_level_object, coupling_map=None, target=None, qubits=None, **options)

GitHub

주어진 퍼뮤테이션에 대한 합성을 실행합니다.

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