__init__.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. from .lnaive_scheduler import lnaive_budget_scheduler
  2. from .greedy_scheduler import greedy_budget_scheduler
  3. from .groups_scheduler import groups_budget_scheduler
  4. from .w_naive_scheduler import w_naive_budget_scheduler
  5. def run_scheduler(
  6. node_path_list,
  7. importance_list,
  8. scheduler_name,
  9. bounces,
  10. C_total,
  11. network_generator,
  12. return_details=True,
  13. ):
  14. if scheduler_name == "LNaive":
  15. return lnaive_budget_scheduler(
  16. node_path_list, importance_list, bounces, C_total, network_generator,
  17. return_details=return_details,
  18. )
  19. elif scheduler_name == "Greedy":
  20. return greedy_budget_scheduler(
  21. node_path_list, importance_list, bounces, C_total, network_generator,
  22. return_details=return_details,
  23. )
  24. elif scheduler_name == "Groups":
  25. return groups_budget_scheduler(
  26. node_path_list, importance_list, bounces, C_total, network_generator,
  27. return_details=return_details,
  28. )
  29. elif scheduler_name == "WNaive":
  30. return w_naive_budget_scheduler(
  31. node_path_list, importance_list, bounces, C_total, network_generator,
  32. return_details=return_details,
  33. )
  34. raise ValueError(f"Unknown scheduler name: {scheduler_name}")