MapperFnEvolutionSynthesis
class MapperFnEvolutionSynthesis(mapper_fn, product_formula=None)
베이스: object
사용자 정의 매핑에 Evolution 따라 트랜스파일링할 F2QSynthesisPlugin 때 A.
이 플러그인은 입력 Evolution 게이트의 페르미온 해밀토니안 을 를 사용하여 큐비트 연산자로 매핑하고, mapper_fn 를 방출합니다 PauliEvolutionGate. 이를 통해 Evolution 게이트의 규칙을 유지하며, 진화 시간 도 동일하게 유지됩니다.
그것이 이후 어떻게 기저 게이트로 분해되는지는 PauliEvolutionGate 로 전달된 곱 공식에 따라 결정됩니다 product_formula. 이를 기본값으로 두면 (None)는 PauliEvolutionGate해당 연산자 고유의 기본 합성 방식(단일 반복을 갖는 1차 LieTrotter 분해)을 따르게 됩니다. 명시적인 EvolutionSynthesis – 예를 들어 고차 SuzukiTrotter 나 여러 번 반복되는 –을 지정하면, 회로 깊이를 희생하는 대신 더 작은 트로터 오차를 얻는, 다른 트로터-스즈키 곱 공식이 선택됩니다.
이 트랜스파일러 패스 플러그인은 아래에 나열된 인수를 사용하여 초기화할 수 있습니다.
매개변수
- mapper_fn (MapperFunction) – 페르미온-큐비트 연산자 매핑 함수.
- product_formula (EvolutionSynthesis | None) – 방출되는 물질을 합성하는 데 사용되는 제품 화학식
PauliEvolutionGate. (None기본값인 경우) 게이트 자체의 기본 합성 방식이 사용됩니다(단일 반복을 포함한 1차LieTrotter분해).
속성
mapper_fn
유형: MapperFunction
페르미온-큐비트 연산자 대응 함수.
두 개의 입력 인수는 다음과 같아야 합니다:
- 매핑할 연산자.
- 결과 연산자가 정의되어야 하는 큐비트의 개수.
이 기능이 전역 트랜스파일링 F2QLayout 설정과 일치하는지 확인하는 것은 사용자의 책임입니다.
product_formula
유형: EvolutionSynthesis | None
방출된 신호를 합성하는 데 사용되는 제품 공식 PauliEvolutionGate, 또는 해당 게이트 자체의 기본 합성 방식을 따르도록 None 설정합니다.
메소드
run
run(in_node, out_dag, *, f2q_layout)
이 트랜스파일링 플러그인을 실행합니다.
입력 Evolution 게이트의 페르미온 해밀토니안은 를 통해 큐비트 연산자로 매핑되고 mapper_fn, 단순화된 후, 원래의 진화 시간 과 합성 product_formula 과정을 갖는 을 PauliEvolutionGate 구현하는 형태로 out_dag 에 추가된다.
매개변수
- in_node (DAGOpNode) – 입력 페르미온 기반 회로 명령어. 이 플러그인이 호출될 때,
in_node.op속성의 유형은 이어야 합니다Evolution. - out_dag (DAGCircuit) – 출력 큐비트 기반 회로.
- f2q_layout (dict[QuantumRegister, QuantumRegister]) – 전역 변환 설정
F2QLayout.
리턴 유형
없음
인수에 대한 더 자세한 설명은 문서를 참조하십시오 F2QSynthesisPlugin .
인상
NotImplementedError – 여러 인스턴스에 FermionicRegister 걸쳐 분포된 페르미온 모드에 작용할 in_node 때.
매개변수
- in_node (DAGOpNode)
- out_dag (DAGCircuit)
- f2q_layout (dict[QuantumRegister, QuantumRegister])
리턴 유형
없음