Skip to main content

Module scheduling

Module scheduling 

Source
Expand description

Multi-agent task scheduling suggestors.

Two competing implementations of the same scheduling contract:

SuggestorAlgorithmLatencyConfidence
GreedySchedulerSuggestorEDF + earliest-availablesub-ms≤ 0.65
[CpSatSchedulerSuggestor]CP-SAT optional-intervalseconds≤ 1.0

§Formation pattern

Register both in the same [converge_core::Engine]. Both accept "scheduling-request:*" seeds and emit solver-prefixed plans to ContextKey::Strategies:

  • Greedy → "scheduling-plan-greedy:<id>"
  • CP-SAT → "scheduling-plan-cpsat:<id>"

Downstream consumers compare confidence scores and select the plan that maximises throughput. In practice: greedy answers in < 1 ms; CP-SAT improves on it and proves optimality within the time budget.

§Benchmark result (60 tasks · 12 agents · 5 skills · horizon 360 min)

Greedy:  56 / 60 tasks scheduled   (93.3 %)   0.03 ms
CP-SAT:  60 / 60 tasks scheduled  (100.0 %)   260 ms   ← optimal

CP-SAT scheduled 4 additional tasks that greedy could not fit, and proved the schedule is globally optimal.

Re-exports§

pub use problem::SchedulingAgent;
pub use problem::SchedulingPlan;
pub use problem::SchedulingRequest;
pub use problem::SchedulingTask;
pub use problem::TaskAssignment;
pub use greedy::GreedySchedulerSuggestor;

Modules§

greedy
problem