Annotazione
class qiskit.circuit.Annotation(*args, **kwargs)
Basi: object
Un'annotazione arbitraria per le istruzioni.
Il framework di annotazione è un componente nuovo e in evoluzione di Qiskit. Prevediamo che la funzionalità di questo supporto di prima classe all'interno del transpiler si espanderà man mano che avremo maggiori prove del suo utilizzo.
Questa classe base, di per sé, presenta pochissimi comportamenti o semantiche predefiniti. L'interazione principale avviene tramite la creazione di sottoclassi da parte dell'utente o della libreria. Per ulteriori dettagli, consultare la sezione “Sottoclassi di annotazione personalizzate ”.
Si tratta di un framework per la strutturazione di metadati aggiuntivi che possono essere associati alle BoxOp istruzioni all’interno di un QuantumCircuit e DAGCircuit in modi che consentano il tracciamento e l’utilizzo da parte di passaggi di transpiler arbitrari, compresi quelli personalizzati che non fanno parte del nucleo di Qiskit.
Mentre il sistema statico PropertySet utilizzato durante la compilazione, fornisce anche un modo per i passaggi personalizzati del transpiler di memorizzare oggetti "di stato" arbitrari nel flusso di compilazione che possono essere recuperati da passaggi successivi del compilatore, l'oggetto di stato è memorizzato accanto al circuito e quindi è più adatto per le analisi che riguardano il circuito nel suo complesso PropertySet è memorizzato accanto al circuito e quindi è più adatto per le analisi che riguardano il circuito nel suo complesso. Un Annotation ha una portata più locale, si applica a una casella di istruzioni e inoltre può essere ancora presente nell'output di transpile, se è destinato a un ulteriore consumo da parte di una parte di livello inferiore del macchinario di esecuzione del backend (per esempio, un'annotazione potrebbe includere metadati che istruiscono una routine di mitigazione degli errori a trattare una particolare casella in modo speciale).
PassManager Attualmente non viene compiuto alcuno sforzo per monitorare e verificare le condizioni preliminari relative alla validità di un Annotation. In altre parole, se si applica un'annotazione personalizzata a un blocco di istruzioni che verrebbe invalidata da determinate trasformazioni (come il routing, la decomposizione basis-gate, ecc.), spetta attualmente a te, in qualità di chiamante di transpile() o generate_preset_pass_manager() , assicurarti che il compilatore non invalidi l'annotazione selezionata. Prevediamo che in futuro sarà disponibile un supporto ancora più avanzato per le annotazioni, che consentirà di dichiararne i requisiti di validità.
Attributi
namespace
Valore predefinito: ''