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

Un circuito quantistico generalizzato QAOA con un supporto di stati iniziali e miscelatori personalizzati.

Esempi:

Per definire l'ansatz QAOA è necessaria un'hamiltoniana dei costi, che codifichi il problema di ottimizzazione classico:

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")
Schema del circuito prodotto dal codice precedente.

Parametri

  • cost_operator (BaseOperator) – L'operatore che rappresenta il costo del problema di ottimizzazione, indicato con U(C,γ)U(C, \gamma) in [1].
  • reps (int) – Il numero intero che determina la profondità del circuito, chiamato pp in [1].
  • initial_state (QuantumCircuit | None) – Uno stato iniziale opzionale da utilizzare, il cui valore predefinito è un livello di porte di Hadamard che preparano lo stato +n|+\rangle^{\otimes n}. Se si sceglie un mixer personalizzato, questo circuito deve essere configurato in modo da prepararne lo stato di base, al fine di soddisfare adeguatamente le condizioni di ricottura.
  • mixer_operator (BaseOperator | None) – Un mixer personalizzato opzionale, che ha come impostazione predefinita le rotazioni globali di Pauli- XX. Questo è indicato con U(B,β)U(B, \beta) in [1]. Se questa opzione è impostata, potrebbe essere necessario modificare anche il sito initial_state .
  • insert_barriers (bool) – Se inserire delle barriere tra i costi e gli operatori del mixer.
  • name (str) – Il nome del circuito.
  • flatten (bool) – Se True, viene restituito un circuito piatto invece di annidarlo all'interno di più strati di oggetti gate. L'impostazione di False è significativamente meno performante, soprattutto per il binding dei parametri, ma può essere auspicabile per una visualizzazione più pulita.

Tipo di restituzione

QuantumCircuit

Riferimenti:

[1] Farhi et al, Un algoritmo di ottimizzazione quantistica approssimativa. arXiv:1411.4028

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.