QAOA-Ansatz
class qiskit.circuit.library.QAOAAnsatz(cost_operator=None, reps=1, initial_state=None, mixer_operator=None, name='QAOA', flatten=None)
Basen: EvolvedOperatorAnsatz
Ein verallgemeinerter QAOA-Quantenschaltkreis mit einer Unterstützung von benutzerdefinierten Anfangszuständen und Mischern.
Quellenangaben:
[1] Farhi et al, Ein quantennäher Optimierungsalgorithmus. arXiv:1411.4028
Parameter
- cost_operator (BaseOperator or OperatorBase, optional) – Der Operator, der die Kosten des Optimierungsproblems darstellt, in der Originalarbeit als bezeichnet. Muss entweder im Konstruktor oder über den Property Setter gesetzt werden.
- reps (int) – Der ganzzahlige Parameter p, der die Tiefe des Schaltkreises bestimmt, ist wie in der Originalarbeit angegeben, Standard ist 1.
- initial_state (QuantumCircuit, optional) – Ein optionaler Anfangszustand, der verwendet werden soll. Wird „None“ übergeben, wird auf alle Qubits eine Reihe von Hadamard-Gattern als Anfangszustand angewendet.
- mixer_operator (BaseOperator or OperatorBase or QuantumCircuit, optional) – Ein optionaler benutzerdefinierter Mixer, der anstelle der globalen X-Rotationen verwendet werden kann und in der Originalveröffentlichung als „ “ bezeichnet wird. Kann ein Operator oder eine optional parametrisierte Quantenerschaltung sein.
- name (str) – Ein Name des Stromkreises, standardmäßig 'qaoa'
- flatten (bool | None) – Setzen Sie dies auf
True, um eine flache Schaltung auszugeben, anstatt sie in mehrere Schichten von Gatterobjekten zu verschachteln. Standardmäßig wird der Inhalt des Ausgabeschaltkreises in verschachtelte Objekte eingewickelt, um eine bessere Darstellung zu ermöglichen. Wenn Sie diese Schaltung jedoch für etwas anderes als die Visualisierung verwenden, wird dringend empfohlen, dieses Flag aufTruezu setzen, um einen großen Performance-Overhead für die Parameterbindung zu vermeiden.
Attribute
cost_operator
Gibt einen Operator zurück, der die Kosten des Optimierungsproblems darstellt.
Rückgabe
kostenbetreiber.
Rückgabetyp
BaseOperator oder OperatorBase
initial_state
Gibt einen optionalen Ausgangszustand als Schaltkreis zurück
mixer_operator
Gibt einen optionalen Mixer-Operator zurück, ausgedrückt als Operator oder Quantenschaltung.
Rückgabe
mischerbediener oder -kreis.
Rückgabetyp
BaseOperator oder „ OperatorBase “ oder „QuantumCircuit“ (optional)
num_qubits
operators
Die Operatoren, die in diesem Kreislauf entwickelt werden.
Rückgabe
Die zu entwickelnden Operatoren
(und Schaltungen) in diesem Ansatz.
Rückgabetyp
List[Union[ BaseOperator, OperatorBase, QuantumCircuit ]]
parameter_bounds
Die Parametergrenzen für die ungebundenen Parameter in der Schaltung.
Rückgabe
Eine Liste von Paaren, die die Grenzen angeben, als (untere, obere). None bedeutet, dass der Parameter in der entsprechenden Richtung nicht begrenzt ist. Wird None zurückgegeben, ist das Problem völlig unbegrenzt.
reps
Gibt den Parameter reps zurück, der die Tiefe des Schaltkreises bestimmt.
name
Typ: str
Ein von Menschen lesbarer Name für den Stromkreis.
Beispiel
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit