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=J1e−iθ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, 항등 연산자는 무시합니다(입력값을 Operator 확인하지 않는다는 점에 유의하십시오). 이렇게 하면 ID와 관련된 매개변수도 함께 제거됩니다.
  • flatten (bool | None) – 인 경우 True, 게이트 객체의 여러 계층 안에 중첩하는 대신 평면 회로가 반환됩니다. 이 값을 로 설정하면, 특히 매개변수 바인딩 시 성능이 현저히 False 저하되지만, 더 깔끔한 시각화를 위해 바람직할 수 있습니다.

리턴 유형

QuantumCircuit

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