## main.py Inputs
Outputs
Loops
`for noise_model in noise_model_names:`
`Pool.apply_async(…)` で
—
## evaluation.py ### plot_accuracy_vs_budget(…) Inputs: 予算列・スケジューラ名・ノイズモデル・ノード/重要度・`bounces`・`repeat` Outputs: `outputs/plot_accuracy_vs_budgetnoise_model.pdf` Loops:
`for C_total in budget_list:`
`for r in range(repeat):`
`for name in scheduler_names:` → `run_scheduler(…)`
### plot_value_vs_used(…) Inputs: 同上(`return_details=True` で呼ぶ) Outputs: `outputs/plot_value_vs_usednoise_model.pdf`(x=実消費コスト平均) Loops:
`for C_total in budget_list:`
`for r in range(repeat):`
`for name in scheduler_names:` → `run_scheduler(…, return_details=True)`
### plot_value_vs_budget_target(…) Inputs: 同上(`return_details=True` で呼ぶ) Outputs: `outputs/plot_value_vs_budget_targetnoise_model.pdf`(x=目標予算) Loops: `plot_value_vs_used` と同一(プロット時の x だけ `budget_list`)
—
## schedulers/__init__.py Inputs: `node_path_list`, `importance_list`, `scheduler_name`, `bounces`, `C_total`, `network_generator`, `return_details` Outputs:
Loops: なし(ディスパッチのみ)
—
## schedulers/lnaive_scheduler.py Inputs: `node_path_list`, `importance_list`, `bounces`, `C_total`, `network_generator`, `return_details=False` Outputs:
Loops:
`for pair_idx, path_num in enumerate(node_path_list):`
—
## schedulers/greedy_scheduler.py Inputs: `node_path_list`, `importance_list`, `bounces`, `C_total`, `network_generator`, `C_initial_per_pair=40`, `return_details=False` Outputs: 上記 LNaive と同形(初期+残余の詳細はマージ) Loops:
初期プローブ: `for pair_idx, path_num in enumerate(node_path_list):`
—
## schedulers/lonline_nb.py (アルゴ:L-Online) Inputs: `network`, `path_list`, `bounces`, `C_budget`, `return_details=False` Outputs:
Loops:
`while cost < C_budget and len(candidate_set) > 1:`
—
## schedulers/lnaive_nb.py (アルゴ:L-Naive) Inputs: `network`, `path_list`, `bounces`, `C_budget`, `return_details=False` Outputs: L-Online と同形(3タプル/5タプル) Loops: