航班串编译上下文模型
1. 概述
将航班串编译到列生成优化模型中,管理任务时间、流量、车队平衡、航班链接和航班容量约束的注册与增量列添加。
1. 依赖上下文
- 任务(task)
- 规则(rule)
- framework (gantt_scheduling)
2. 概念 / 实体
1. 编译(Compilation)
列生成中航班串的决策变量集合,特化为 BunchCompilation<FlightTaskBunch, FltX, FlightTask, Aircraft, FlightTaskAssignment>。
2. 航班链接(FlightLink)
表示两个连续未恢复航段之间的连接关系,具有分割成本。
3. 车队平衡检查点(FleetBalance.CheckPoint)
表示机场和飞机子机型的组合,用于跟踪飞机在各机场的分布。
4. 航班容量(FlightCapacity)
跟踪航班串的旅客和货物容量表达式。
3. 变量
1. 决策变量
2. 辅助变量
4. 谓词
1. 任务类型
isFlight :任务
isRecoveryNeeded :任务
2. 容量类型
hasPassenger :航班任务
hasCargo :航班任务
5. 集合
1. 航班串
2. 任务
3. 链接
4. 检查点
6. 中间值
1. 链接表达式
描述:链接
2. 车队平衡表达式
描述:到达检查点
3. 旅客容量表达式
描述:航班任务
4. 货物容量表达式
描述:航班任务
7. 断言
1. 链接覆盖一致性
描述:每个链接的覆盖数量应与包含该链接的任务决策变量一致。
2. 车队平衡一致性
描述:每个检查点的飞机数量应与原始计划一致。
8. 约束
1. 任务覆盖约束
[EN]:Task Coverage Constraint
描述:每个需要恢复的航班任务必须被恰好一个选中的航班串覆盖。
2. 链接松弛约束
[EN]:Link Slack Constraint
描述:链接的覆盖数量加上松弛变量应大于等于阈值。
3. 车队平衡约束
[EN]:Fleet Balance Constraint
描述:到达每个检查点的飞机数量加上松弛变量应等于预期数量。
9. 目标函数(如适用)
描述:最小化恢复总成本,包括航班串成本和松弛惩罚。
10. 算法引用
| 算法名称 | 文件路径 | 引用位置 | 简要说明 |
|---|---|---|---|
| 阈值松弛 | exampleThresholdSlack | 第三章辅助变量 | 链接和车队平衡的阈值松弛函数 |
11. 通用语言
| 术语 | 符号 | 英文 | 定义 |
|---|---|---|---|
| 航班串 | Bunch | 分配给单架飞机的航班任务有序序列 | |
| 编译 | Compilation | Compilation | 列生成决策变量的集合 |
| 检查点 | CheckPoint | 机场和飞机子机型的组合 | |
| 链接 | Link | 两个连续航段间的连接关系 | |
| 分割成本 | splitCost | Split Cost | 链接的成本分摊 |
12. 设计决策
| 决策 | 备选方案 | 选择原因 | 日期 |
|---|---|---|---|
| 使用阈值松弛而非硬约束 | 硬约束、线性松弛 | 允许不可行解并给予惩罚,提高求解灵活性 | - |
13. 变更记录
| 版本 | 变更 | 原因 |
|---|---|---|
| v1 | 初始实现 | 基础列生成编译 |