Skip to main content
IBM Quantum Platform

qiskit.circuit.library.evolved_operator_ansatz

qiskit.circuit.library.evolved_operator_ansatz(operators, reps=1, evolution=None, insert_barriers=False, name='EvolvedOps', parameter_prefix='t', remove_identities=True, flatten=None)

GitHub

연산자 진화에서 안사츠를 구축합니다.

[O1,...,OJ][O_1, ..., O_J]RR 반복 (reps) 연산자 집합의 경우 이 회로는 다음과 같이 정의됩니다

r=1R(j=J1eiθj,rOj)\prod_{r=1}^{R} \left( \prod_{j=J}^1 e^{-i\theta_{j, r} O_j} \right)

여기서 지수 exp(iθOj)exp(-i\theta O_j)evolution 에서 지정한 제품 공식을 사용하여 확장됩니다.

예:

from qiskit.circuit.library import evolved_operator_ansatz
from qiskit.quantum_info import Pauli

ops = [Pauli("ZZI"), Pauli("IZZ"), Pauli("IXI")]
ansatz = evolved_operator_ansatz(ops, reps=3, insert_barriers=True)
ansatz.draw("mpl")
이전 코드에서 출력한 회로도입니다.

매개변수

  • operators (BaseOperator | Sequence[BaseOperator]) – 진화하는 운영자. 단일 연산자 또는 그 시퀀스일 수 있습니다.
  • reps (int) – 진화한 연산자를 반복할 횟수입니다.
  • evolution (EvolutionSynthesis | None) – 에 사용할 진화 합성에 대한 사양입니다 PauliEvolutionGate. 기본값은 첫 번째 트로터화 순서입니다. 타입의 연산자 Operator 유형의 연산자는 HamiltonianGate를 사용하여 진화하는데, 트로터화에는 확장할 해밀턴 용어가 없기 때문입니다.
  • insert_barriers (bool) – 각 진화 사이에 장벽을 삽입할지 여부를 설정합니다.
  • name (str) – 서킷의 이름입니다.
  • parameter_prefix (str | Sequence[str]) – 회로 파라미터의 이름을 지정합니다. 문자열인 경우, 각 매개변수에 동일한 접두사가 사용됩니다. 연산자별로 접두사를 지정하는 목록일 수도 있습니다.
  • remove_identities (bool) – True 인 경우 ID 연산자를 무시합니다(확인하지 않습니다 Operator 입력은 확인하지 않습니다). 이렇게 하면 ID와 관련된 매개변수도 제거됩니다.
  • flatten (bool | None) – True 이면 여러 개의 게이트 객체 레이어 안에 중첩되는 대신 평면 회로가 반환됩니다. False 으로 설정하면 특히 매개변수 바인딩의 경우 성능이 현저히 떨어지지만 깔끔한 시각화를 위해 바람직할 수 있습니다.

리턴 유형

QuantumCircuit

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