Skip to main content

Module selection

Module selection 

Source
Expand description

Selection - ノード選択アルゴリズム

§設計思想: TypeAliasPolicyPattern

各 Selection アルゴリズムは独立した struct として実装され、 SelectionLogic trait を実装する。

  • ロジックの分離: 各アルゴリズムの実装が独立
  • 型による制約: Operator の型パラメータで組み合わせを制約可能
  • Config 連携: SelectionKind enum で Config/serde 対応
  • 動的切り替え: AnySelection で enum dispatch による動的ディスパッチ

§統計情報

Selection アルゴリズムは SwarmStats(collector/stats.rs)を Single Source of Truth として使用する。各メソッドは &SwarmStats を引数に取り、アクション統計を参照する。

§モジュール構成

モジュール内容
statsNodeStats(後方互換)
kindSelection の種類(SelectionKind enum)
fifoFIFO 選択
ucb1UCB1 選択
greedyGreedy 選択
thompsonThompson Sampling 選択
any動的選択ラッパー(AnySelection

§使用例

use swarm_engine_core::exploration::selection::{Fifo, Ucb1, SelectionLogic};

// 静的型付け(コンパイル時に Selection が決定)
let fifo = Fifo::new();
let ucb1 = Ucb1::new(1.41);

// 動的切り替え(実行時に Selection を変更可能)
let any = AnySelection::from_kind(SelectionKind::Ucb1, 1.41);

Structs§

Fifo
FIFO 選択(frontiers の順番)
Greedy
Greedy 選択(ボーナス最大を優先)
NodeStats
ノードの実行統計
Thompson
Thompson Sampling 選択
Ucb1
UCB1 選択

Enums§

AnySelection
動的に Selection を切り替えられるラッパー
SelectionKind
Selection アルゴリズムの種類

Traits§

SelectionLogic
ノード選択ロジック

Type Aliases§

FifoSelection
FifoSelection の別名(後方互換)
GreedySelection
GreedySelection の別名(後方互換)
ThompsonSelection
ThompsonSelection の別名(後方互換)
Ucb1Selection
Ucb1Selection の別名(後方互換)