注釈
class qiskit.circuit.Annotation(*args, **kwargs)
ベース: object
命令に対する任意の注釈。
アノテーションフレームワークはQiskitの新しく進化したコンポーネントです。 私たちは、このトランスパイラがどのように使用されているか、より多くの証拠が得られるにつれて、この機能とトランスパイラ内でのファーストクラスのサポートが拡大することを期待している。
この基底クラス自体には、規定された動作や意味論がほとんどありません。 主な相互作用は、ユーザーによるサブクラス化やライブラリによるサブクラス化を通じて行われます。 詳細については、「カスタムアノテーションのサブクラス」 を参照してください。
これは、Qiskitコアに含まれていないカスタムパスを含め、任意のトランスパイラパスによって追跡および利用可能な形で、および DAGCircuitQuantumCircuit 内の命令に BoxOp 付加できる追加のメタデータを構造化するためのフレームワークです。
コンパイル時に使用されるステートフル PropertySet コンパイル時に使用されるステート・オブジェクトは、カスタム・トランスパイラ・パスが任意の "ステート "オブジェクトをコンパイル・ワークフローに格納し、後のコンパイラ・パスが取得できるようにするための手段でもあります。 PropertySet は回路の隣に格納されるため、回路全体に関連する解析に最も適しています。 を使用する。 Annotation は、より局所的なスコープを意図しており、命令のボックスに適用される。さらに、バックエンドの実行マシンの低レベルの部分でさらに消費されることを意図している場合、 transpile の出力にまだ存在する可能性がある(たとえば、注釈には、特定のボックスを特別な方法で処理するようにエラー軽減ルーチンに指示するメタデータが含まれる可能性がある)。
Annotation現在、は PassManager 、の有効性に関する前提条件を追跡・検証するための取り組みを一切行っていない。 つまり、特定の変換(ルーティングやベースゲート分解など)によって無効化されてしまう可能性のある命令のボックスにカスタムアノテーションを適用する場合、現在、 または generate_preset_pass_manager() `` を transpile() 呼び出す側であるあなたが、コンパイラが選択した変換によってそのアノテーションが無効化されないことを確認する必要があります。 将来的には、アノテーションが有効性の要件を宣言するための、より充実したサポートを提供できる見込みです。
属性
namespace
デフォルト値: ''