DoWhileController
class qiskit.passmanager.DoWhileController(tasks=(), do_while=None, *, options=None)
ベース: 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)
入力Qiskit IRに対して最適化タスクを実行する。
パラメーター
- passmanager_ir (IR) – 最適化対象のQiskit IR。
- state (PassManagerState) – パスマネージャー自身によるワークフロー実行に関連する状態。
- callback (Callable | None) – 最適化タスクの実行ごとに呼び出されるコールバック関数。
戻り値
Qiskit IRとワークフローの状態を最適化。
戻りの型
タプル [ IR_OUT, PassManagerState ]
iter_tasks
iter_tasks(state)
次に実行するタスクを選択するカスタムロジック。
コントローラのサブクラスは、ステートを消費して適切なタスクパイプラインを構築することができる。 タスク実行後に更新された状態は、 yield ステートメントの「戻り値」としてフィードバックされる。 これは、タスクの実行順序が実行時にのみ決定されることを示している。 このメソッドは、与えられたステート・オブジェクトを変更することはできない。
パラメーター
- state (PassManagerState) – このフローコントローラの実行開始時のパスマネージャワークフローの状態。
- state - 最後に降参したタスクの実行後のパスマネージャーの状態。 ジェネレーターは、そのロジックに無関係であれば、これを検査する必要はないし、更新する必要もない。
生成数
Task - 次に実行するタスク。
戻りの型
Generator [ Task [ Any, Any ], PassManagerState, None]