Skip to main content
IBM Quantum Platform

FermionicPassManager

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

ベース: BasePassManager[DAGCircuit]

あるものを別のもの FermionicCircuit に変換するトランスパイラー・パス・マネージャー。

このパスマネージャーの内部表現(IR)は ですが FermionicDAGCircuit、入力型と出力型は です FermionicCircuit

空のパスマネージャーオブジェクトを初期化します。

パラメーター

  • tasks (Task[IR, IR] | list[Task[IR, IR]]) – パスマネージャーのスケジュールに追加される予定のパスです。
  • max_iteration (int) – 条件が満たされない場合に、スケジュールがループされる最大反復回数。

継承されるメソッド

append

append(tasks)

パススケジュールにタスクを追加する。

パラメーター

tasks (Task[IR, IR] | list[Task[IR, IR]]) – スケジュールに追加するパスマネージャーのタスク一式。

昇給

TypeError – タスクのいずれかの要素が、passmanagerのTaskのサブクラスでない場合。

戻りの型

なし

remove

remove(index)

スケジューラ内の特定のパスを削除します。

パラメーター

index (int) –. 内の位置に基づいて、削除するインデックスを渡します passes()

昇給

PassManagerError – インデックスが見つからない場合。

戻りの型

なし

replace

replace(index, tasks)

スケジューラ内の特定のパスを置き換える。

パラメーター

  • index (int) – 置き換えるタスクのインデックス(内の位置に基づく) tasks()
  • tasks (Task[IR, IR] | list[Task[IR, IR]]) – スケジュールに追加するパスマネージャーのタスク一式。

昇給

  • TypeError – タスクのいずれかの要素が、passmanagerのTaskのサブクラスでない場合。
  • PassManagerError – インデックスが見つからない場合。

戻りの型

なし

run

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

指定されたに対して、すべてのパスを実行します in_programs

パラメーター

  • in_programs (Any |list[Any]) – 登録されているすべてのパスを通じて変換を行うプログラムを入力してください。 単一の入力オブジェクトとして、 Python の組み込みリストオブジェクトを指定することはできません。 リストオブジェクトは、最適化の対象となる複数の入力オブジェクトとみなされます。

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

    各パスの実行後に呼び出されるコールバック関数。 この関数は、5つのキーワード引数を受け取って呼び出されます:

    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

    渡される具体的な引数は、パスマネージャーの内部構造を明らかにするものであり、パスマネージャーの内部構造が変更されるにつれて変更される可能性があります。 コールバック関数を複数のリリースにわたり再利用する予定の場合は、渡される引数が同じであることを必ず確認してください。

    コールバック機能を使用するには、kwargs 辞書を受け取り、変数にアクセスする関数を定義します。 例:

    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) – 並列実行が有効になっている場合に起動する並列プロセスの最大数。 この設定は、ユーザー設定ファイルおよび環境 QISKIT_NUM_PROCS 変数での num_processes 設定を上書きします。 に設定した場合、システムのデフォルト None 設定またはローカルユーザーの設定が使用されます。

  • property_set (dict[str, object] | None) – 指定された場合、パスマネージャパイプラインの PropertySet 初期値として使用される値。 これは、分析結果を共有しても問題がないことが分かっている場合、ある実行から次の実行へと分析結果を保持するために使用できます。 一部の解析は入力回路や特定の条件に依存する場合があるため Target、この議論を用いる際には細心の注意を払う必要があります。

  • kwargs – コンパイラのフロントエンドおよびバックエンドに渡される任意の引数。

戻り値

変換されたプログラム。

戻りの型

いずれか

to_flow_controller

to_flow_controller()

このマネージャーを単一のマネージャーに線形化して FlowControllerLinear、別のパスマネージャー内にネストできるようにします。

戻り値

線形化されたパスマネージャー。

戻りの型

フローコントローラー[* 線形IR*、 IR]

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。