路线生成上下文模型
1. 概述
路线生成上下文搜索满足资源与分支规则的初等路线,并向路线编译上下文返回改进列。定价问题是带资源约束的初等最短路问题(ESPPRC)。
1. 依赖上下文
VRP 上下文提供客户、车型、资源和计算策略;路线编译提供当前阶段及客户、车队行的对偶价格;应用层提供分支规则。
2. 概念 / 实体
1. 标签
一个标签记录当前节点、已访问客户集合、累计载荷、服务时刻和累计定价成本。标签是搜索状态,不是求解器变量。
2. 路线与价格
3. 变量
1. 决策变量
本上下文不复制主问题的路线使用量
2. 辅助变量
标签状态
4. 谓词
5. 集合
6. 中间值
1. 资源递推
从标签
2. 约化成本
令路线的阶段目标系数为:
对车型
成本和对偶值必须采用相同的数值归一化约定;分支要求通过路线兼容性限定搜索空间。
7. 断言
成功扩展必须保持不重复访问和资源可行性:
该蕴含式描述“允许的扩展必须满足什么”,并不要求任意标签都能扩展到所有客户。
8. 约束
1. 路线可行性(Route Feasibility)
描述:定价只在仓库到仓库、客户不重复、满足容量、时间窗及分支规则的路线中搜索。
这些是标签扩展、筛选与完整路线验证条件,不是向主问题注册另一套弧变量和约束。
2. 改进列筛选(Improving Column Filter)
9. 目标函数(如适用)
描述:对允许的车型搜索阶段约化成本最小的路线。
只有完整定价确认没有负约化成本路线,才能支持列生成收敛判断。时间、列数或搜索限制导致的提前返回,不等价于此最优性结论。
10. 算法引用
| 算法 | 引用位置 | 说明 |
|---|---|---|
| 初始路线生成 | 主问题初始化 | 提供种子路线;人工覆盖负责可行性初始化 |
| ESPPRC 标签扩展与支配 | 第 6—8 节 | 维护资源、访问集合和约化成本,淘汰被支配状态 |
| 分支兼容性筛选 | 第 4、8 节 | 将要求与禁止规则作用于搜索图和候选路线 |
| 定价完成状态 | 第 9 节 | 区分完整搜索与因限制而提前返回 |
Kotlin 路线生成源码;Kotlin/Rust 示例入口。
11. 通用语言
| 术语 | 符号 | 定义 |
|---|---|---|
| 标签 | 一条部分路线的搜索状态 | |
| 已访问集合 | 标签已经服务的客户 | |
| 约化成本 | 阶段目标系数减去对应约束行的对偶贡献 | |
| 车队对偶 | 车型可用数量约束的对偶值 | |
| 定价完成 | 可以可靠判断是否仍有改进列的搜索状态 |
12. 设计决策
| 决策 | 备选方案 | 原因 |
|---|---|---|
| 使用 ESPPRC 标签搜索 | 枚举所有路线 | 在资源和初等性限制下增量搜索 |
| 计入客户与车队对偶 | 只减去客户对偶 | 与受限主问题全部基础行保持一致 |
| 明确完成状态 | 把每次返回视为搜索结束 | 防止受限搜索被误报为收敛 |
13. 变更记录
| 版本 | 变更 | 原因 |
|---|---|---|
| 1.1 | 对齐双语资源递推、阶段价格与定价边界 | 补全车队对偶并区分算法状态和模型变量 |