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 circuit quantique QAOA généralisé avec un support d'états initiaux et de mélangeurs personnalisés.

Exemples :

Pour définir l'ansatz QAOA, nous avons besoin d'un hamiltonien de coût, codant le problème d'optimisation classique :

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")
Schéma de circuit produit par le code précédent.

Paramètres

  • cost_operator (BaseOperator) – L'opérateur représentant le coût du problème d'optimisation, noté U(C,γ)U(C, \gamma) dans [1].
  • reps (int) – Le nombre entier déterminant la profondeur du circuit, appelé pp en [1].
  • initial_state (QuantumCircuit | None) – Un état initial facultatif à utiliser, dont la valeur par défaut est une couche de portes de Hadamard préparant l'état « +n|+\rangle^{\otimes n} ». Si l'on opte pour un mélangeur personnalisé, ce circuit doit être configuré de manière à établir son état de base, afin de respecter correctement les conditions de recuit.
  • mixer_operator (BaseOperator | None) – Un mélangeur personnalisé facultatif, qui utilise par défaut les rotations globales de Pauli- XX. Elle est désignée par U(B,β)U(B, \beta) en [1]. Si ce paramètre est défini, il se peut que le site initial_state doive également être modifié.
  • insert_barriers (bool) – L'insertion ou non de barrières entre les opérateurs de coût et de mélange.
  • name (str) – Le nom du circuit.
  • flatten (bool) – Si True, un circuit plat est renvoyé au lieu d'être imbriqué dans plusieurs couches d'objets de porte. La valeur False est nettement moins performante, en particulier pour la liaison des paramètres, mais peut être souhaitable pour une visualisation plus propre.

Type de retour

QuantumCircuit

Références :

[1] Farhi et al, Un algorithme d'optimisation approximative quantique. arXiv:1411.4028

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.