Skip to main content
IBM Quantum Platform

FermionicPassManager

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

Basi: BasePassManager[DAGCircuit]

Un gestore di passaggi del transpiler che converte FermionicCircuit da uno all’altro.

La rappresentazione interna (IR) di questo gestore di passaggi è FermionicDAGCircuit, mentre i tipi di input e output sono FermionicCircuit.

Inizializza un oggetto "pass manager" vuoto.

Parametri

  • tasks (Task[IR, IR] | list[Task[IR, IR]]) – Un pass che verrà aggiunto al calendario del gestore dei pass.
  • max_iteration (int) – Il numero massimo di iterazioni che il programma effettuerà se la condizione non viene soddisfatta.

Metodi ereditati

append

append(tasks)

Aggiungere attività al programma dei turni.

Parametri

tasks (Task[IR, IR] | list[Task[IR, IR]]) – Una serie di attività del gestore dei pass da aggiungere alla pianificazione.

Aumenti

TypeError – Quando un elemento delle attività non è una sottoclasse di Task di PassManager.

Tipo di restituzione

Nessuna

remove

remove(index)

Rimuove un determinato passaggio dallo scheduler.

Parametri

index (int) – Passare l'indice da rimuovere, in base alla posizione in passes().

Aumenti

PassManagerError – Se l'indice non viene trovato.

Tipo di restituzione

Nessuna

replace

replace(index, tasks)

Sostituire una determinata sessione nello scheduler.

Parametri

  • index (int) – Indice delle attività da sostituire, in base alla posizione in tasks()
  • tasks (Task[IR, IR] | list[Task[IR, IR]]) – Una serie di attività del gestore dei pass da aggiungere alla pianificazione.

Aumenti

  • TypeError – Quando un elemento delle attività non è una sottoclasse di Task di PassManager.
  • PassManagerError – Se l'indice non viene trovato.

Tipo di restituzione

Nessuna

run

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

Esegui tutti i passaggi sul file specificato in_programs.

Parametri

  • in_programs (Any |list[Any]) – Inserire i programmi da trasformare attraverso tutti i passaggi registrati. Un singolo oggetto di input non può essere un oggetto lista incorporato di tipo Python. Un oggetto elenco viene considerato come un insieme di oggetti di input da ottimizzare.

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

    Una funzione di callback che verrà chiamata dopo l'esecuzione di ogni passaggio. La funzione verrà chiamata con 5 argomenti chiave:

    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

    Gli argomenti passati esattamente rivelano il funzionamento interno del gestore dei pass e sono soggetti a modifiche man mano che cambia il funzionamento interno del gestore stesso. Se intendi riutilizzare una funzione di callback in diverse versioni, assicurati di verificare che gli argomenti passati siano gli stessi.

    Per utilizzare la funzionalità di callback, occorre definire una funzione che accetti il dizionario kwargs e acceda alle variabili. Ad esempio:

    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) – Il numero massimo di processi paralleli da avviare se l'esecuzione parallela è abilitata. Questa impostazione ha la precedenza num_processes sul file di configurazione dell'utente e sulla variabile d'ambiente QISKIT_NUM_PROCS . Se impostato su verrà utilizzata None la configurazione predefinita del sistema o quella locale dell'utente.

  • property_set (dict[str, object] | None) – Se specificato, il valore iniziale da utilizzare come per PropertySet la pipeline del gestore dei passaggi. Questa funzione può essere utilizzata per mantenere i risultati dell'analisi da un'esecuzione all'altra, nei casi in cui si sia certi che l'analisi possa essere condivisa in tutta sicurezza. Si tenga presente che alcune analisi saranno specifiche per il circuito di ingresso e per il caso particolare in questione Target, pertanto è necessario prestare molta attenzione quando si utilizza questo argomento.

  • kwargs – Argomenti arbitrari passati al frontend e al backend del compilatore.

Risultati

Il programma o i programmi modificati.

Tipo di restituzione

Qualsiasi

to_flow_controller

to_flow_controller()

Linearizza questo gestore in un unico elemento FlowControllerLinear, in modo che possa essere annidato all’interno di un altro gestore di passaggi.

Risultati

Un gestore di passaggi linearizzato.

Tipo di restituzione

Controllore di flusso lineare [IR, IR]

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.