Approche QAOA
class qiskit.circuit.library.QAOAAnsatz(cost_operator=None, reps=1, initial_state=None, mixer_operator=None, name='QAOA', flatten=None)
Bases : EvolvedOperatorAnsatz
Un circuit quantique QAOA généralisé avec un support d'états initiaux et de mélangeurs personnalisés.
Références :
[1] Farhi et al, Un algorithme d'optimisation approximative quantique. arXiv:1411.4028
Paramètres
- cost_operator (BaseOperator or OperatorBase, optional) – L'opérateur représentant le coût du problème d'optimisation, noté dans le document original. Doit être défini soit dans le constructeur, soit par l'intermédiaire de l'outil de définition des propriétés.
- reps (int) – Le paramètre entier p, qui détermine la profondeur du circuit, comme spécifié dans le document original, la valeur par défaut étant 1.
- initial_state (QuantumCircuit, optional) – Un état initial facultatif à utiliser. Si la valeur « None » est transmise, un ensemble de portes de Hadamard est appliqué à tous les qubits en tant qu'état initial.
- mixer_operator (BaseOperator or OperatorBase or QuantumCircuit, optional) – Un mélangeur personnalisé facultatif pouvant remplacer les rotations X globales, désigné sous le nom de « » dans l'article original. Il peut s'agir d'un opérateur ou d'un circuit quantique paramétré (facultativement).
- name (str) – Nom du circuit, par défaut "qaoa"
- flatten (bool | None) – Réglez ce paramètre sur
Truepour obtenir un circuit plat au lieu de l'imbriquer dans plusieurs couches d'objets de porte. Par défaut, le contenu du circuit de sortie sera enveloppé dans des objets imbriqués pour une visualisation plus propre. Cependant, si vous utilisez ce circuit pour autre chose que la visualisation, il est fortement recommandé de mettre ce drapeau àTrueafin d'éviter une surcharge de performance importante pour la liaison des paramètres.
Attributs
cost_operator
Renvoie un opérateur représentant le coût du problème d'optimisation.
Retours
opérateur de coûts.
Type de retour
BaseOperator ou OperatorBase
initial_state
Renvoie un état initial facultatif sous forme de circuit
mixer_operator
Renvoie un opérateur de mélangeur facultatif exprimé sous la forme d'un opérateur ou d'un circuit quantique.
Retours
l'opérateur ou le circuit du mélangeur.
Type de retour
BaseOperator ou « OperatorBase » ou « QuantumCircuit », facultatif
num_qubits
operators
Les opérateurs qui évoluent dans ce circuit.
Retours
Les opérateurs à faire évoluer
(et circuits) dans cet ansatz.
Type de retour
Liste[Union[ BaseOperator, OperatorBase, QuantumCircuit ]]
parameter_bounds
Les limites des paramètres pour les paramètres non liés du circuit.
Retours
Une liste de paires indiquant les limites, sous la forme (inférieur, supérieur). Aucun indique un paramètre non borné dans la direction correspondante. Si aucun n'est renvoyé, le problème est entièrement non borné.
reps
Renvoie le paramètre reps, qui détermine la profondeur du circuit.
name
Type : str
Un nom lisible par l'homme pour le circuit.
Exemple
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit