apsis-rs/crates
ApsisRS contributors fd33405213 scheduler: find the earliest start from a swept busy profile
The search listed every time feasibility could change and tested each in
turn, which recomputed the load profile of every resource once per
candidate. The profile does not depend on the candidate, so it is now
swept once: the intervals where a resource has no room are cut from its
availability windows, and the earliest surviving start is read off the
front. The result is confirmed with the direct test and the enumeration is
kept as the fallback, so the sweep is an accelerator and never a second
definition of what is feasible.

The demand of a placed task is read through a vector indexed by task
identifier rather than by scanning the task list or by hashing, because the
identifier is a small dense integer and an array index beats both. Two
thousand random scenarios confirm the two forms agree exactly.

On the crowded case, where every task competes for one resource and the
capacity is the binding constraint, planning three thousand two hundred
tasks falls from 6.7 to 3.7 seconds.
2026-09-30 18:54:03 +08:00
..
apsis-rs docs: register the two scale benchmarks and correct the stale note 2026-09-30 18:23:37 +08:00
foundation math, access: correct the parallel notes and a test's geometry 2026-09-30 18:40:49 +08:00
network math, access: correct the parallel notes and a test's geometry 2026-09-30 18:40:49 +08:00
ops scheduler: find the earliest start from a swept busy profile 2026-09-30 18:54:03 +08:00
orbit docs: record the parallelism decision, interfaces, and measurements 2026-09-30 18:43:14 +08:00
physics docs: fix the broken intra doc links and check them in CI 2026-09-26 23:37:48 +08:00
rf docs: fix the broken intra doc links and check them in CI 2026-09-26 23:37:48 +08:00
sim docs: fix the broken intra doc links and check them in CI 2026-09-26 23:37:48 +08:00