Anmerkung
class qiskit.circuit.Annotation(*args, **kwargs)
Basen: object
Ein beliebiger Vermerk für Anweisungen.
Das Annotations-Framework ist eine neue und sich weiterentwickelnde Komponente von Qiskit. Wir gehen davon aus, dass die Funktionalität dieser Funktion und ihre erstklassige Unterstützung innerhalb des Transpilers erweitert wird, wenn wir mehr Beweise dafür erhalten, wie sie verwendet wird.
Diese Basisklasse allein weist nur sehr wenig festgelegtes Verhalten oder festgelegte Semantik auf. Die Interaktion erfolgt in erster Linie über Unterklassen, die vom Benutzer oder von der Bibliothek erstellt werden. Weitere Informationen finden Sie unter „Benutzerdefinierte Unterklassen für Anmerkungen“.
Dies ist ein Framework zur Strukturierung zusätzlicher Metadaten, die Anweisungen innerhalb von QuantumCircuitBoxOp und DAGCircuit so angehängt werden können, dass sie von beliebigen Transpiler-Durchläufen – einschließlich benutzerdefinierter Durchläufe, die nicht zum Qiskit-Kern gehören – nachverfolgt und verarbeitet werden können.
Während der zustandsbehaftete PropertySet während einer Kompilierung auch eine Möglichkeit für benutzerdefinierte Transpiler-Pässe bietet, beliebige "Zustands"-Objekte im Kompilierungs-Workflow zu speichern, die von späteren Compiler-Pässen abgerufen werden können, wird der PropertySet neben der Schaltung gespeichert und ist daher am besten für Analysen geeignet, die sich auf die Schaltung als Ganzes beziehen. Eine Annotation ist für einen eher lokalen Anwendungsbereich gedacht, der sich auf eine Box mit Anweisungen bezieht, und kann darüber hinaus in der Ausgabe von transpile vorhanden sein, wenn sie für die weitere Verwendung durch einen untergeordneten Teil der Ausführungsmaschinerie Ihres Backends bestimmt ist (eine Anmerkung könnte beispielsweise Metadaten enthalten, die eine Routine zur Fehlerbehebung anweisen, eine bestimmte Box auf besondere Weise zu behandeln).
AnnotationPassManager Derzeit werden keine Anstrengungen unternommen, um die Voraussetzungen für die Gültigkeit eines zu überprüfen und zu validieren. Das heißt: Wenn Sie eine benutzerdefinierte Annotation auf einen Anweisungsblock anwenden, der durch bestimmte Transformationen (wie z. B. Routing, Basis-Gate-Zerlegung usw.) ungültig werden würde, liegt es derzeit an Ihnen als Aufrufer von transpile() oder generate_preset_pass_manager() , sicherzustellen, dass die vom Compiler ausgewählten Transformationen die Annotation nicht ungültig machen. Wir gehen davon aus, dass es in Zukunft eine noch bessere Unterstützung für Annotationen geben wird, mit denen deren Gültigkeitsanforderungen deklariert werden können.
Attribute
namespace
Standardwert: ''