Skip to main content
IBM Quantum Platform

FermionicPassManager

class FermionicPassManager(tasks=(), max_iteration=1000)

Basen: BasePassManager[DAGCircuit]

Ein Transpiler-Pass-Manager, der das eine FermionicCircuit in das andere umwandelt.

Die interne Darstellung (IR) dieses Pass-Managers lautet FermionicDAGCircuit, aber der Eingabe- und Ausgabetyp ist FermionicCircuit.

Initialisiere ein leeres Pass-Manager-Objekt.

Parameter

  • tasks (Task[IR, IR] | list[Task[IR, IR]]) – Ein Pass, der in den Zeitplan des Pass-Managers aufgenommen werden soll.
  • max_iteration (int) – Die maximale Anzahl an Iterationen, die der Zeitplan durchlaufen wird, wenn die Bedingung nicht erfüllt ist.

Vererbte Methoden

append

append(tasks)

Aufgaben zum Fahrplan hinzufügen.

Parameter

tasks (Task[IR, IR] | list[Task[IR, IR]]) – Eine Reihe von Aufgaben des Pass-Managers, die dem Zeitplan hinzugefügt werden sollen.

Erhöhungen

TypeError – Wenn ein Element der Aufgaben keine Unterklasse von „passmanager Task“ ist.

Rückgabetyp

Keine

remove

remove(index)

Entfernt einen bestimmten Durchlauf aus dem Scheduler.

Parameter

index (int) – Geben Sie den Index des zu entfernenden Elements an, basierend auf der Position in passes().

Erhöhungen

PassManagerError – Falls der Index nicht gefunden wird.

Rückgabetyp

Keine

replace

replace(index, tasks)

Einen bestimmten Durchlauf im Scheduler ersetzen.

Parameter

  • index (int) – Zu ersetzender Aufgabenindex, basierend auf der Position in tasks()
  • tasks (Task[IR, IR] | list[Task[IR, IR]]) – Eine Reihe von Aufgaben des Pass-Managers, die dem Zeitplan hinzugefügt werden sollen.

Erhöhungen

  • TypeError – Wenn ein Element der Aufgaben keine Unterklasse von „passmanager Task“ ist.
  • PassManagerError – Falls der Index nicht gefunden wird.

Rückgabetyp

Keine

run

run(in_programs, callback=None, num_processes=None, *, property_set=None, **kwargs)

Führe alle Durchläufe für die angegebene Datei durch in_programs.

Parameter

  • in_programs (Any |list[Any]) – Geben Sie Programme ein, die über alle registrierten Durchläufe transformiert werden sollen. Ein einzelnes Eingabeobjekt darf kein in „ Python “ integriertes Listenobjekt sein. Ein Listenobjekt wird als mehrere zu optimierende Eingabeobjekte betrachtet.

  • callback (Callable[[Task, IR, PropertySet, float, int], None] | None) –

    Eine Callback-Funktion, die nach jeder Durchlaufausführung aufgerufen wird. Die Funktion wird mit 5 Schlüsselwortargumenten aufgerufen:

    task (GenericPass): the pass being run
    passmanager_ir (Any): depending on pass manager subclass
    property_set (PropertySet): the property set
    running_time (float): the time to execute the pass
    count (int): the index for the pass execution

    Die genau übergebenen Argumente geben Einblick in die internen Abläufe des Pass-Managers und können sich ändern, sobald sich diese internen Abläufe ändern. Wenn Sie beabsichtigen, eine Callback-Funktion über mehrere Versionen hinweg wiederzuverwenden, sollten Sie unbedingt sicherstellen, dass die übergebenen Argumente identisch sind.

    Um die Callback-Funktion zu nutzen, definieren Sie eine Funktion, die das „kwargs“-Dikt entgegennimmt und auf die Variablen zugreift. Zum Beispiel:

    def callback_func(**kwargs):
        task = kwargs['task']
        passmanager_ir = kwargs['passmanager_ir']
        property_set = kwargs['property_set']
        running_time = kwargs['running_time']
        count = kwargs['count']
        ...
  • num_processes (int | None) – Die maximale Anzahl paralleler Prozesse, die gestartet werden sollen, wenn die parallele Ausführung aktiviert ist. Dieses Argument hat Vorrang vor der Einstellung in num_processes der Benutzerkonfigurationsdatei und der QISKIT_NUM_PROCS Umgebungsvariable. Wenn diese Option aktiviert ist, wird die None Systemstandardkonfiguration oder die lokale Benutzerkonfiguration verwendet.

  • property_set (dict[str, object] | None) – Falls angegeben, der Anfangswert, der als für PropertySet die Pipeline des Pass-Managers verwendet werden soll. Dies kann genutzt werden, um Analysen von einem Durchlauf zum nächsten zu übernehmen – sofern Sie sicher sind, dass die Weitergabe der Analyse unbedenklich ist. Beachten Sie, dass manche Analysen spezifisch für die Eingangsschaltung und den jeweiligen Fall sind Target; daher sollten Sie bei der Anwendung dieses Arguments große Vorsicht walten lassen.

  • kwargs – Beliebige Argumente, die an das Frontend und das Backend des Compilers übergeben werden.

Rückgabe

Das/die umgewandelte(n) Programm(e).

Rückgabetyp

Beliebig

to_flow_controller

to_flow_controller()

Linearisieren Sie diesen Manager zu einem einzelnen Element FlowControllerLinear, damit er in einen anderen Pass-Manager eingebettet werden kann.

Rückgabe

Ein linearisierter Pass-Manager.

Rückgabetyp

Durchflussregler Linear [IR, IR]

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.