Route compilation context model
1. Overview
Route compilation turns feasible routes into a restricted master problem (RMP). It owns route-usage variables, artificial coverage, customer rows, fleet rows, and phase objectives.
1. Dependent Contexts
The VRP context supplies customer, vehicle-type, and cost semantics. Route generation supplies feasible columns. The application controls branch nodes, column-generation iterations, and phase transitions.
2. Concepts / Entities
1. Customers and Vehicle Types
2. Route Columns
3. Branch Nodes and Phases
Branch node
3. Variables
1. Decision Variables
2. Auxiliary Variables
3. Kotlin/Rust Registration Forms
Kotlin registers routes with UIntVariable1; the column-generation backend explicitly applies linearRelax() for LP solving. Artificial coverage uses URealVariable1. Rust directly registers route and artificial variables as continuous values in
Coverage equalities and nonnegativity imply
4. Predicates
5. Sets
All following equations fix
6. Intermediate Values
1. Customer Coverage
Description: Coverage is route usage weighted by customer-coverage coefficients.
2. Fleet Usage
Description: Each route consumes one vehicle of its type.
3. Total Route Cost
7. Assertions
Every column must pass route validation and respect the branch node:
Each available route has one vehicle type and visits no customer twice:
8. Constraints
1. Customer Coverage [客户覆盖]
Description: Real routes or phase-I artificial coverage must cover each customer exactly once.
2. Fleet Limit [车队数量]
Description: Selected routes must not consume more vehicles than are available.
3. Phase-II Artificial Fixing [第二阶段人工量固定]
Description: Artificial coverage cannot substitute for real service during cost optimization.
Corollary: Coverage becomes
9. Objective Function (if applicable)
1. Phase I
Description: Minimize artificial coverage not supplied by real routes.
2. Phase II
Description: Fix all artificial coverage to zero, then minimize real route cost.
These are two phases, not a single objective
10. Algorithm References
| Algorithm | Referenced In | Description |
|---|---|---|
| Restricted master solve | Sections 3, 8, 9 | Solves a node LP and extracts customer and fleet duals |
| Column insertion | Sections 5, 6 | Updates variables and coverage, fleet, and objective coefficients |
| Phase transition | Sections 8, 9 | Fixes eliminated artificial coverage and switches objectives |
| Branch-and-price | Application | Handles fractional solutions, node bounds, and integer incumbents |
Kotlin route-compilation source; Kotlin/Rust example entry points.
11. Ubiquitous Language
| Term | Symbol | Definition |
|---|---|---|
| Route usage | Value of a route column in the master | |
| Artificial coverage | Temporary phase-I customer coverage | |
| Coverage | Customer coverage supplied by real routes | |
| Fleet usage | Vehicles used for a specified type | |
| Restricted master | Master containing only the node's available routes |
12. Design Decisions
| Decision | Alternative | Rationale |
|---|---|---|
| Distinguish LP and integer domains | Declare integer variables in every phase | Dual pricing requires the node LP |
| Separate feasibility and cost phases | Mix objectives with an unspecified large constant | Makes feasibility restoration distinct from cost optimization |
| Filter routes by branch node | Share unfiltered columns across nodes | Enforces branch rules in both master and pricing |
13. Change Log
| Version | Change | Reason |
|---|---|---|
| 1.1 | Aligned bilingual domains, coverage rows, and phase objectives | Removed contradictions between the split page and the overall model |