Skip to main content
IBM Quantum Platform

DoWhileController

class qiskit.passmanager.DoWhileController(tasks=(), do_while=None, *, options=None)

GitHub

ベース: BaseController[IR, IR]

プロパティセットの do_while 条件が False になるまで、与えられたタスクをループで実行する。

指定されたタスクは常に少なくとも1回は実行され、ループの反復ごとに、すべてのタスクが実行されます(失敗状態が設定された場合を除く)。 このコントローラーは、入力と出力の赤外線が同じです。

新しいフローコントローラを作成する。

パラメーター

  • options (dict[str, Any] | None) – このフローコントローラのオプション。
  • tasks (Task[IR, IR] | Iterable[Task[Any, Any]])
  • do_while (Callable[[PropertySet], bool] | None)

属性

passes

後方互換性のためのタスクの別名。


方法

execute

execute(passmanager_ir, state, callback=None)

GitHub

入力Qiskit IRに対して最適化タスクを実行する。

パラメーター

  • passmanager_ir (IR) – 最適化対象のQiskit IR。
  • state (PassManagerState) – パスマネージャー自身によるワークフロー実行に関連する状態。
  • callback (Callable | None) – 最適化タスクの実行ごとに呼び出されるコールバック関数。

戻り値

Qiskit IRとワークフローの状態を最適化。

戻りの型

タプル [ IR_OUT, PassManagerState ]

iter_tasks

iter_tasks(state)

GitHub

次に実行するタスクを選択するカスタムロジック。

コントローラのサブクラスは、ステートを消費して適切なタスクパイプラインを構築することができる。 タスク実行後に更新された状態は、 yield ステートメントの「戻り値」としてフィードバックされる。 これは、タスクの実行順序が実行時にのみ決定されることを示している。 このメソッドは、与えられたステート・オブジェクトを変更することはできない。

パラメーター

  • state (PassManagerState) – このフローコントローラの実行開始時のパスマネージャワークフローの状態。
  • state - 最後に降参したタスクの実行後のパスマネージャーの状態。 ジェネレーターは、そのロジックに無関係であれば、これを検査する必要はないし、更新する必要もない。

生成数

Task - 次に実行するタスク。

戻りの型

Generator [ Task [ Any, Any ], PassManagerState, None]

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