TemplateOptimization
class qiskit.transpiler.passes.TemplateOptimization(*args, **kwargs)
Basen: TransformationPass
Klasse für den Durchlauf der Vorlagenoptimierung.
Parameter
- template_list (list[QuantumCircuit()]) – Liste der verschiedenen Schaltungsvorlagen, die verwendet werden können.
- heuristics_backward_param (list[int]) – [length, survivor] Dies sind die Parameter für die Anwendung von Heuristiken auf den rückwärts gerichteten Teil des Algorithmus. Dieser Teil des Algorithmus erstellt einen Baum mit passenden Szenarien. Dieser Baum wächst exponentiell. Die Heuristik bewertet, welche Szenarien die längste Übereinstimmung aufweisen und behält nur diese bei. Die Länge ist das Intervall, in dem der Baum geschnitten wird, und survivor ist die Anzahl der Szenarien, die beibehalten werden. Wir empfehlen die Nutzung von l=3 und s=1, um einen erheblichen Zeitvorteil zu haben. Wir erinnern daran, dass die Heuristik den Verlust eines Teils der maximalen Übereinstimmungen impliziert. Für weitere Einzelheiten siehe Referenz.
- heuristics_qubits_param (list[int]) – [länge] Die Heuristiken für die Qubit-Auswahl gehen von der Tag-Abhängigkeit der Schaltung aus, um die Anzahl der zu untersuchenden Qubit-Konfigurationen zu begrenzen. Die Länge ist die Anzahl der Nachfolger oder nicht Vorgänger, die in der Tag-Abhängigkeit der Schaltung erforscht werden, jedes Qubit des Knotens wird zur Menge der zugelassenen Qubits hinzugefügt. Wir empfehlen die Verwendung von length=1. Für weitere Einzelheiten siehe Referenz.
- user_cost_dict (Dict[str, int]) – quantenkosten-Wörterbuch, das an TemplateSubstitution übergeben wird, um sein Verhalten zu konfigurieren. Damit werden alle Standardwerte außer Kraft gesetzt, wenn None nicht angegeben ist. Der Schlüssel ist der Name des Gatters und der Wert seine Quantumkosten.
Attribute
is_analysis_pass
Prüfen Sie, ob der Pass ein Analysepass ist.
Wenn der Pass ein AnalysisPass, ist, bedeutet dies, dass der Pass die DAG analysieren und die Ergebnisse dieser Analyse in den Eigenschaftssatz schreiben kann. Änderungen an der DAG sind bei dieser Art von Pass nicht zulässig.
is_transformation_pass
Prüfen Sie, ob der Pass ein Transformationspass ist.
Wenn es sich bei dem Pass um TransformationPass, handelt, bedeutet dies, dass der Pass die DAG manipulieren kann, aber den Eigenschaftssatz nicht ändern kann (aber er kann gelesen werden).
Methoden
execute
execute(passmanager_ir, state, callback=None)
Ausführen der Optimierungsaufgabe für die Eingabe Qiskit IR.
Parameter
- passmanager_ir (DAGCircuit) – Qiskit IR zur Optimierung.
- state (DAGCircuit) – Zustand, der mit der Ausführung des Workflows durch den Pass-Manager selbst verbunden ist.
- callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – Eine Callback-Funktion, die bei jeder Ausführung einer Optimierungsaufgabe aufgerufen wird.
Rückgabe
Optimierte Qiskit IR und Stand des Workflows.
Rückgabetyp
name
run
run(dag)
Parameter
dag (DAGCircuit) – DAG-Schaltung.
Rückgabe
optimierte DAG-Schaltung.
Rückgabetyp
Erhöht
TranspilerError – Wenn die Schaltung nicht die richtige Form aufweist oder wenn sich die Ausgangsschaltung anders verhält als die Eingangsschaltung.
update_status
update_status(state, run_state)
Aktualisieren Sie den Workflow-Status.
Parameter
- state (PassManagerState) – Übergeben Sie den Status des Managers zur Aktualisierung.
- run_state (RunState) – Erledigungsstatus der aktuellen Aufgabe.
Rückgabe
Aktualisierter Status des Passmanagers.
Rückgabetyp