Skip to content

机组上下文模型 ​

1. 概述 ​

管理航班恢复调度系统中机组成员、排班和中转时间的领域模型,为航班串生成提供可行性和成本计算所需的机组数据。

1. 依赖上下文 ​

  1. 任务(task)
  2. infrastructure(基础设施)

2. 概念 / 实体 ​

1. 机组成员(CrewMember) ​

具有身份信息的机组人员,分为飞行员和非飞行员。

typem :机组成员 m 的类型(Operator、Attendant、Other)。

workerNom :机组成员 m 的工号。

namem :机组成员 m 的姓名。

nationalitym :机组成员 m 的国籍。

2. 飞行员(CrewPilotMember) ​

作为飞行员的机组成员,将身份字段委托给底层 Pilot。

rankp :飞行员 p 的职级(PilotRank)。

pilotp :飞行员 p 的底层 Pilot 对象。

3. 机组(Crew) ​

分配给航班任务的机组,由飞行员和非飞行员成员组成。

flightc :机组 c 分配的航班任务。

membersc :机组 c 的成员列表。

4. 机组排班(CrewSchedule) ​

机组成员的排班,将航班任务映射到其分配的职级。

crewMans :排班 s 的机组成员。

scheduless :排班 s 的航班任务到职级的映射。

5. 中转时间(TransitTime) ​

基于飞机和机场关系的中转时间场景及其所需时长。

scenet :中转时间 t 的场景。

durationt :中转时间 t 的所需时长。


3. 变量 ​

机组上下文不直接定义优化变量,其数据作为航班串生成的输入参数。


4. 谓词 ​

1. 机组成员类型 ​

isPilot :机组成员 m 是飞行员(CrewPilotMember)。

isNotPilot :机组成员 m 是非飞行员(CrewNotPilotMember)。

2. 中转时间场景 ​

isSameAircraft :前后任务使用同一飞机。

isDomesticNotSameAircraft :前后任务不同飞机但机场为国内类型。

isInternationalNotSameAircraft :前后任务不同飞机且机场为国际类型。


5. 集合 ​

1. 机组 ​

C :所有机组全集。

Ci :分配给航班任务 i 的机组子集,∀i∈I 。

2. 机组成员 ​

M :所有机组成员全集。

MP :飞行员成员子集。

MN :非飞行员成员子集。

Mc :机组 c 的成员子集,∀c∈C 。

3. 排班 ​

S :所有机组排班全集。

Sm :机组成员 m 的排班子集,∀m∈M 。

4. 中转时间 ​

T :所有中转时间条目全集。


6. 中间值 ​

1. 中转时间查找 ​

描述:给定连续航班任务的中转时间。

transitTime(iprev,isucc)={TSameAircraft,same aircraftTDomestic,different aircraft, domestic airportTInternational,different aircraft, international airportnull,otherwise

7. 断言 ​

1. 机组成员完整性 ​

描述:每个机组必须包含至少一名成员。

∀c∈C(|Mc|≥1)

2. 排班连续性 ​

描述:机组成员的排班中,连续航班任务的到达机场必须与下一任务的出发机场一致。

∀s∈S,∀(iprev,isucc)∈scheduless(iprev.arr=isucc.dep)

8. 约束 ​

机组上下文不直接定义优化约束,其数据通过 ConnectionTimeCalculator 和 RuleChecker 间接影响航班串生成的可行性判断。


9. 目标函数(如适用) ​

机组上下文不直接定义目标函数。


10. 算法引用 ​

当前上下文无独立算法引用。


11. 通用语言 ​

术语符号英文定义
机组CCrew分配给航班任务的机组人员集合
机组成员MCrew Member具有身份信息的机组人员
飞行员MPPilot操作飞机的机组成员
排班SSchedule机组成员的航班任务分配
中转时间TTransit Time连续航班间的必要间隔时间

12. 设计决策 ​

决策备选方案选择原因日期
飞行员/非飞行员分离建模统一 CrewMember 类型职级体系不同,分离更清晰-
中转时间按场景枚举连续函数建模场景有限,枚举更直观-

13. 变更记录 ​

版本变更原因
v1初始实现基础机组域建模