Enfoque QAOA
class qiskit.circuit.library.QAOAAnsatz(cost_operator=None, reps=1, initial_state=None, mixer_operator=None, name='QAOA', flatten=None)
Bases: EvolvedOperatorAnsatz
Un circuito cuántico QAOA generalizado con soporte de estados iniciales y mezcladores personalizados.
Referencias:
[1] Farhi et al., Un algoritmo cuántico de optimización aproximada. arXiv:1411.4028
Parámetros
- cost_operator (BaseOperator or OperatorBase, optional) – El operador que representa el coste del problema de optimización, denotado como en el documento original. Debe establecerse en el constructor o a través de la propiedad setter.
- reps (int) – El parámetro entero p, que determina la profundidad del circuito, como se especifica en el documento original, por defecto es 1.
- initial_state (QuantumCircuit, optional) – Un estado inicial opcional a utilizar. Si se pasa Ninguno, se aplica un conjunto de puertas Hadamard como estado inicial a todos los qubits.
- mixer_operator (BaseOperator or OperatorBase or QuantumCircuit, optional) – Un mezclador personalizado opcional para utilizar en lugar de las rotaciones X globales, denotado como en el documento original. Puede ser un operador o un circuito cuántico opcionalmente parametrizado.
- name (str) – Nombre del circuito, por defecto "qaoa"
- flatten (bool | None) – Establézcalo en
Truepara obtener un circuito plano en lugar de anidarlo dentro de múltiples capas de objetos puerta. Por defecto actualmente el contenido del circuito de salida se envolverá en objetos anidados para una visualización más limpia. Sin embargo, si está utilizando este circuito para algo más que la visualización, se recomienda encarecidamente establecer esta bandera enTruepara evitar una gran sobrecarga de rendimiento para la vinculación de parámetros.
Atributos
cost_operator
Devuelve un operador que representa el coste del problema de optimización.
Devuelve
operador de costes.
Tipo de retorno
BaseOperator o OperatorBase
initial_state
Devuelve un estado inicial opcional como circuito
mixer_operator
Devuelve un operador mezclador opcional expresado como un operador o un circuito cuántico.
Devuelve
operador o circuito de la mezcladora.
Tipo de retorno
BaseOperator o OperatorBase o QuantumCircuit, opcional
num_qubits
operators
Los operadores que evolucionan en este circuito.
Devuelve
Los operadores que deben evolucionar
(y circuitos) en este ansatz.
Tipo de retorno
Lista[Unión[ BaseOperator, OperatorBase, QuantumCircuit ]]
parameter_bounds
Los límites de los parámetros no vinculados en el circuito.
Devuelve
Una lista de pares que indican los límites, como (inferior, superior). Ninguno indica un parámetro no limitado en la dirección correspondiente. Si se devuelve Ninguno, el problema es totalmente ilimitado.
reps
Devuelve el parámetro reps, que determina la profundidad del circuito.
name
Tipo: str
Un nombre legible para el circuito.
Ejemplo
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit