Skip to main content

u_schedule/
lib.rs

1//! Scheduling framework for the U-Engine ecosystem.
2//!
3//! Provides domain models, constraints, validation, dispatching rules,
4//! and a greedy scheduler for scheduling problems. This crate defines
5//! the scheduling domain language — metaheuristic algorithms (GA, SA, CP)
6//! are provided by `u-metaheur` at a lower layer.
7//!
8//! # Modules
9//!
10//! - **`models`**: Domain types — `Task`, `Activity`, `Resource`, `Schedule`,
11//!   `Assignment`, `Calendar`, `Constraint`, `TransitionMatrix`
12//! - **`validation`**: Input integrity checks (duplicate IDs, DAG cycles, resource refs)
13//! - **`dispatching`**: Priority dispatching rules (SPT, EDD, ATC, etc.) and rule engine
14//! - **`scheduler`**: Greedy scheduler and KPI evaluation
15//! - **`ga`**: GA-based scheduling with OSV/MAV encoding
16//! - **`cp`**: CP-based scheduling formulation
17//!
18//! # Architecture
19//!
20//! This crate sits at Layer 3 (Frameworks) in the U-Engine ecosystem.
21//! It depends on `u-metaheur` and `u-numflow` but contains only scheduling
22//! domain logic — no nesting, packing, or manufacturing concepts.
23//!
24//! # References
25//!
26//! - Pinedo (2016), "Scheduling: Theory, Algorithms, and Systems"
27//! - Brucker (2007), "Scheduling Algorithms"
28//! - Blazewicz et al. (2019), "Handbook on Scheduling"
29//! - Haupt (1989), "A Survey of Priority Rule-Based Scheduling"
30
31pub mod cp;
32pub mod dispatching;
33pub mod ga;
34pub mod models;
35pub mod scheduler;
36pub mod validation;
37
38#[cfg(feature = "wasm")]
39pub mod wasm;