Skip to main content
IBM Quantum Platform

qiskit.circuit.library.qaoa_ansatz

qiskit.circuit.library.qaoa_ansatz(cost_operator, reps=1, initial_state=None, mixer_operator=None, insert_barriers=False, name='QAOA', flatten=True)

GitHub

Ein verallgemeinerter QAOA-Quantenschaltkreis mit einer Unterstützung von benutzerdefinierten Anfangszuständen und Mischern.

Beispiele:

Zur Definition des QAOA-Ansatzes benötigen wir einen Kosten-Hamiltonian, der das klassische Optimierungsproblem kodiert:

from qiskit.quantum_info import SparsePauliOp
from qiskit.circuit.library import qaoa_ansatz

cost_operator = SparsePauliOp(["ZZII", "IIZZ", "ZIIZ"])
ansatz = qaoa_ansatz(cost_operator, reps=3, insert_barriers=True)
ansatz.draw("mpl")
Schaltplan, der durch den vorherigen Code ausgegeben wurde.

Parameter

  • cost_operator (BaseOperator) – Der Operator, der die Kosten des Optimierungsproblems darstellt, wird in [1] als U(C,γ)U(C, \gamma) bezeichnet.
  • reps (int) – Die ganze Zahl, die die Tiefe der Schaltung bestimmt, heißt pp in [1].
  • initial_state (QuantumCircuit | None) – Ein optionaler Anfangszustand, der standardmäßig aus einer Schicht von Hadamard-Gattern besteht, die den Zustand „ ∣+⟩⊗n|+\rangle^{\otimes n} “ vorbereiten. Wird ein benutzerdefinierter Mischer ausgewählt, sollte diese Schaltung so eingestellt werden, dass sie ihren Grundzustand vorbereitet, um die Temperbedingungen ordnungsgemäß zu erfüllen.
  • mixer_operator (BaseOperator | None) – Ein optionaler benutzerdefinierter Mischer, der standardmäßig globale Pauli- XX Rotationen verwendet. Dies wird in [1] als U(B,β)U(B, \beta) bezeichnet. Ist dies der Fall, muss möglicherweise auch die Website initial_state geändert werden.
  • insert_barriers (bool) – Ob Barrieren zwischen den Kosten und den Mischern eingefügt werden sollen.
  • name (str) – Der Name des Stromkreises.
  • flatten (bool) – Bei True wird ein flacher Schaltkreis zurückgegeben, anstatt ihn in mehreren Schichten von Gatterobjekten zu verschachteln. Die Einstellung False ist deutlich weniger performant, insbesondere für die Parameterbindung, kann aber für eine sauberere Darstellung wünschenswert sein.

Rückgabetyp

QuantumCircuit

Quellenangaben:

[1] Farhi et al, Ein quantennäher Optimierungsalgorithmus. arXiv:1411.4028

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.