Concepts#
Composable Attributes#
Problems are built by enabling attributes (GeoNode, Consumer, Stock, Rendezvous, ServiceQuery, etc.) and attaching them to entities at runtime. This removes the need for deep inheritance hierarchies.
Constraint Registry#
Constraint generators auto-register based on enabled attributes. When you call
problem.enableAttributes<...>(), the registry activates routing, capacity,
time window, and other generators in priority order.
Evaluators#
Evaluators check feasibility and insertion deltas for metaheuristics. When attributes are enabled, the corresponding evaluators become active and drive constraint-aware decoding and local search.
Legacy Compatibility#
The legacy hierarchy (VRP -> CVRP -> CVRPTW) is still supported. The composable problem is the preferred interface for new work.