3. 控制塔场景建模:机场跑道、滑行道、停机坪的图论抽象

在将 Dijkstra 算法应用于控制塔路径优化之前,必须将物理机场映射为计算机可理解的图结构。本节将定义节点与边的抽象规则,并赋予权重以真实的物理意义——距离、时间与燃油消耗。

3.1 机场物理区域 → 图论元素映射

机场的三大核心区域——跑道、滑行道、停机坪——在图中分别对应不同的节点类型与边类型。下表总结了映射关系:

物理区域 图论抽象 节点/边示例 关键属性
跑道入口/出口 节点(Node) RWY-07L-ENTRY, RWY-07L-EXIT 经纬度、海拔、等待队列容量
滑行道交叉口 节点(Node) TWY-A1, TWY-B2, TWY-C3 交叉口类型(T型/十字)、限速
停机位 节点(Node) GATE-12, GATE-15, STAND-3A 机型限制、廊桥/远机位标识
跑道段 边(Edge) RWY-07L-ENTRY → RWY-07L-EXIT 长度、方向(起飞/降落)、占用状态
滑行道段 边(Edge) TWY-A1 → TWY-A2 长度、宽度、最大翼展限制
停机坪连接道 边(Edge) TWY-B2 → GATE-12 长度、推出方向限制
关键原则:每个物理交叉口、入口、出口、停机位都抽象为唯一节点;每段可通行的直线路径(跑道段、滑行道段、连接道)抽象为有向边。双向通行的滑行道需要建立两条方向相反的边。

3.2 节点与边的形式化定义

我们使用带权有向图 G = (V, E, W) 来描述机场地面网络,其中:

  • V:节点集合,包含所有跑道节点、滑行道交叉口节点、停机位节点。
  • E:有向边集合,每条边 e = (u, v) 表示从节点 u 到节点 v 的可通行路径。
  • W:权重函数,为每条边赋予一个非负实数权重。

每个节点 v ∈ V 携带以下属性:

{
  "id": "TWY-A1",
  "type": "intersection",   // "runway_entry", "runway_exit", "intersection", "gate"
  "lat": 40.6398,
  "lon": -73.7789,
  "capacity": 2,            // 同时容纳飞机数量
  "restrictions": ["max_wingspan: 65m"]
}

每条边 e = (u, v) 携带以下属性:

{
  "from": "TWY-A1",
  "to": "TWY-A2",
  "length_m": 320,          // 物理距离(米)
  "max_speed_kmh": 30,      // 最大允许速度(km/h)
  "direction": "bidirectional",
  "surface": "asphalt",
  "weight_type": "time"     // 当前使用的权重类型
}

3.3 权重的物理意义:距离、时间、燃油

Dijkstra 算法的核心在于权重函数的设计。在控制塔场景中,同一段路径可以赋予三种不同的物理权重,分别对应不同的优化目标:

权重类型 符号 计算公式 优化目标 典型应用场景
距离权重 wd wd = 路径长度 (m) 最短滑行距离 燃油充足、无时间压力
时间权重 wt wt = 长度 / 允许速度 + 等待时间 最短滑行时间 航班延误恢复、紧急任务
燃油权重 wf wf = 长度 × 单位油耗系数 + 怠速油耗 最低燃油消耗 燃油紧张、环保优先
实战提示:在实际控制塔系统中,权重通常是动态的。例如,时间权重中的“等待时间”会随跑道占用状态、滑行道拥堵程度实时变化。Dijkstra 算法需要支持权重重计算,每次路径搜索前重新加载最新的边权重。

3.4 机场图结构示例(SVG)

下图展示了一个简化机场的图论抽象模型,包含 1 条跑道、3 条滑行道和 4 个停机位:

机场地面网络图论抽象模型 机场地面网络图论抽象模型 RWY-07L-ENTRY RWY-07L-EXIT TWY-A1 TWY-A2 TWY-B1 GATE-12 GATE-15 GATE-18 GATE-21 跑道段 (2500m) 滑行道 A (320m) 滑行道 B (320m) 连接道 C (280m) 连接道 D (280m) 连接道 E (150m) 连接道 F (80m) 连接道 G (150m) 连接道 H (200m) 图例 跑道节点 滑行道交叉口节点 停机位节点 有向边(路径) 每条边可携带三种权重:距离 (m) / 时间 (s) / 燃油 (kg)

3.5 权重计算示例

以滑行道段 TWY-A1 → TWY-A2(长度 320m,允许速度 30km/h)为例,三种权重的具体计算如下:

# 距离权重
w_d = 320.0  # 单位:米

# 时间权重(假设无等待)
speed_ms = 30 * 1000 / 3600  # 8.33 m/s
w_t = 320.0 / speed_ms       # ≈ 38.4 秒

# 燃油权重(假设单位油耗系数 0.05 kg/km,怠速油耗 0.01 kg/s)
fuel_coeff = 0.05 / 1000     # 0.00005 kg/m
w_f = 320.0 * fuel_coeff     # ≈ 0.016 kg(仅滑行段)
# 若包含怠速等待,则 w_f += 等待时间 * 0.01
工程注意:权重单位必须统一。如果 Dijkstra 算法中混合使用米、秒、千克,会导致路径比较失效。建议在算法内部将所有权重归一化为统一成本单位(如“等效时间秒”),通过转换系数将距离和燃油折算为时间成本。

3.6 多权重切换的图结构设计(SVG)

下图展示了同一段物理路径在不同优化目标下的权重切换机制:

多权重切换机制示意图 多权重切换机制示意图 TWY-A1 TWY-A2 物理路径:长度 320m,限速 30km/h w_d = 320 w_t = 38.4 w_f = 0.016 距离优先 时间优先 燃油优先 权重切换逻辑 控制塔根据当前任务类型(正常调度 / 延误恢复 / 燃油告警)选择对应的权重函数, Dijkstra 算法在搜索时自动使用所选权重计算路径成本。

3.7 建模检查清单

完成机场图论建模后,请对照以下清单进行验证:

  • 节点完整性:是否覆盖所有跑道入口/出口、滑行道交叉口、停机位?
  • 边方向性:双向通行的滑行道是否建立了双向边?单向滑行道是否只建立了单向边?
  • 权重一致性:所有边的权重是否使用同一物理量纲(距离/时间/燃油)?
  • 动态权重接口:是否预留了实时更新边权重的接口(如等待时间、拥堵系数)?
  • 约束条件:节点容量、机型限制、翼展限制是否已编码为节点/边属性?
建模黄金法则:“图越精细,路径越优,但搜索越慢。” 控制塔场景中,节点数量通常控制在 200~500 个,边数量 500~2000 条,既能保证 Dijkstra 算法在 1 秒内完成搜索,又能提供足够的路径多样性。