__init__.py~ 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. # schedulers/__init__.py
  2. from .scheduler_naive import naive_budget_scheduler # noqa: F401
  3. __all__ = [
  4. "naive_budget_scheduler",
  5. "run_scheduler",
  6. ]
  7. def run_scheduler(
  8. node_path_list,
  9. importance_list,
  10. scheduler_name,
  11. bounces,
  12. C_total,
  13. network_generator,
  14. ):
  15. """
  16. スケジューラ名で分岐して実行するディスパッチ関数。
  17. 戻り値は (per_pair_results, total_cost) を期待(各スケジューラ共通化)。
  18. """
  19. if scheduler_name == "NaiveBudget":
  20. return naive_budget_scheduler(
  21. node_path_list=node_path_list,
  22. importance_list=importance_list,
  23. bounces=bounces,
  24. C_total=C_total,
  25. network_generator=network_generator,
  26. )
  27. # 将来追加例:
  28. # elif scheduler_name == "WeightedBudget":
  29. # from .scheduler_weighted import weighted_budget_scheduler
  30. # return weighted_budget_scheduler(...)
  31. raise ValueError(f"Unknown scheduler name: {scheduler_name}")