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)
Ein verallgemeinerter QAOA-Quantenschaltkreis mit einer Unterstützung von benutzerdefinierten Anfangszuständen und Mischern.
Beispiele:
Zur Definition des QAOA-Ansatzes benötigen wir einen Kosten-Hamiltonian, der das klassische Optimierungsproblem kodiert:
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")
Parameter
- cost_operator (BaseOperator) – Der Operator, der die Kosten des Optimierungsproblems darstellt, wird in [1] als bezeichnet.
- reps (int) – Die ganze Zahl, die die Tiefe der Schaltung bestimmt, heißt in [1].
- initial_state (QuantumCircuit | None) – Ein optionaler Anfangszustand, der standardmäßig aus einer Schicht von Hadamard-Gattern besteht, die den Zustand „ “ vorbereiten. Wird ein benutzerdefinierter Mischer ausgewählt, sollte diese Schaltung so eingestellt werden, dass sie ihren Grundzustand vorbereitet, um die Temperbedingungen ordnungsgemäß zu erfüllen.
- mixer_operator (BaseOperator | None) – Ein optionaler benutzerdefinierter Mischer, der standardmäßig globale Pauli- Rotationen verwendet. Dies wird in [1] als bezeichnet. Ist dies der Fall, muss möglicherweise auch die Website
initial_stategeändert werden. - insert_barriers (bool) – Ob Barrieren zwischen den Kosten und den Mischern eingefügt werden sollen.
- name (str) – Der Name des Stromkreises.
- flatten (bool) – Bei
Truewird ein flacher Schaltkreis zurückgegeben, anstatt ihn in mehreren Schichten von Gatterobjekten zu verschachteln. Die EinstellungFalseist deutlich weniger performant, insbesondere für die Parameterbindung, kann aber für eine sauberere Darstellung wünschenswert sein.
Rückgabetyp
Quellenangaben:
[1] Farhi et al, Ein quantennäher Optimierungsalgorithmus. arXiv:1411.4028
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.