机组上下文模型
1. 概述
管理航班恢复调度系统中机组成员、排班和中转时间的领域模型,为航班串生成提供可行性和成本计算所需的机组数据。
1. 依赖上下文
- 任务(task)
- infrastructure(基础设施)
2. 概念 / 实体
1. 机组成员(CrewMember)
具有身份信息的机组人员,分为飞行员和非飞行员。
2. 飞行员(CrewPilotMember)
作为飞行员的机组成员,将身份字段委托给底层 Pilot。
PilotRank)。
Pilot 对象。
3. 机组(Crew)
分配给航班任务的机组,由飞行员和非飞行员成员组成。
4. 机组排班(CrewSchedule)
机组成员的排班,将航班任务映射到其分配的职级。
5. 中转时间(TransitTime)
基于飞机和机场关系的中转时间场景及其所需时长。
3. 变量
机组上下文不直接定义优化变量,其数据作为航班串生成的输入参数。
4. 谓词
1. 机组成员类型
isPilot :机组成员 CrewPilotMember)。
isNotPilot :机组成员 CrewNotPilotMember)。
2. 中转时间场景
isSameAircraft :前后任务使用同一飞机。
isDomesticNotSameAircraft :前后任务不同飞机但机场为国内类型。
isInternationalNotSameAircraft :前后任务不同飞机且机场为国际类型。
5. 集合
1. 机组
2. 机组成员
3. 排班
4. 中转时间
6. 中间值
1. 中转时间查找
描述:给定连续航班任务的中转时间。
7. 断言
1. 机组成员完整性
描述:每个机组必须包含至少一名成员。
2. 排班连续性
描述:机组成员的排班中,连续航班任务的到达机场必须与下一任务的出发机场一致。
8. 约束
机组上下文不直接定义优化约束,其数据通过
ConnectionTimeCalculator和RuleChecker间接影响航班串生成的可行性判断。
9. 目标函数(如适用)
机组上下文不直接定义目标函数。
10. 算法引用
当前上下文无独立算法引用。
11. 通用语言
| 术语 | 符号 | 英文 | 定义 |
|---|---|---|---|
| 机组 | Crew | 分配给航班任务的机组人员集合 | |
| 机组成员 | Crew Member | 具有身份信息的机组人员 | |
| 飞行员 | Pilot | 操作飞机的机组成员 | |
| 排班 | Schedule | 机组成员的航班任务分配 | |
| 中转时间 | Transit Time | 连续航班间的必要间隔时间 |
12. 设计决策
| 决策 | 备选方案 | 选择原因 | 日期 |
|---|---|---|---|
| 飞行员/非飞行员分离建模 | 统一 CrewMember 类型 | 职级体系不同,分离更清晰 | - |
| 中转时间按场景枚举 | 连续函数建模 | 场景有限,枚举更直观 | - |
13. 变更记录
| 版本 | 变更 | 原因 |
|---|---|---|
| v1 | 初始实现 | 基础机组域建模 |