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)
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")
Parametri
- cost_operator (BaseOperator) – L'operatore che rappresenta il costo del problema di ottimizzazione, indicato con in [1].
- reps (int) – Il numero intero che determina la profondità del circuito, chiamato 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 . 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- . Questo è indicato con 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 diFalseè significativamente meno performante, soprattutto per il binding dei parametri, ma può essere auspicabile per una visualizzazione più pulita.
Tipo di restituzione
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.