Capacitated Routing on a Planar Partition

Route flights through a planar partition of the airspace whose cells carry per-time-step capacity limits. Compute the cell sequence of a trajectory, detect capacity violations across a schedule, check route feasibility against residual capacities, and select the minimum-cost feasible route.

Step 1 of 157%

Tutorial

Planar Partitions and Cell Sequences

A planar partition of the airspace is a finite collection of non-overlapping polygonal cells P={C1,C2,,Ck}\mathcal{P} = \{C_1, C_2, \ldots, C_k\} whose union covers the operating region. Each cell carries a capacity κ(Ci)Z0\kappa(C_i) \in \mathbb{Z}_{\geq 0}, the maximum number of aircraft permitted to occupy CiC_i at the same time.

A flight's trajectory is a polyline γ\gamma. Routing on P\mathcal{P} replaces γ\gamma by its cell sequence: the ordered list of cells γ\gamma visits, with consecutive duplicates collapsed.

To compute the cell sequence efficiently when kk is large, query the STRtree on P\mathcal{P} with the bounding box of γ\gamma to obtain the candidate cells, then test which candidates the polyline actually crosses, in order.

For example, with the 2×22 \times 2 grid partition

C1=[0,4]×[0,4],C2=[4,8]×[0,4],C3=[0,4]×[4,8],C4=[4,8]×[4,8],C_1 = [0,4]\times[0,4], \quad C_2 = [4,8]\times[0,4], \quad C_3 = [0,4]\times[4,8], \quad C_4 = [4,8]\times[4,8],

the polyline (1,1)(6,3)(7,6)(1,1) \to (6,3) \to (7,6) starts in C1C_1, crosses x=4x=4 into C2C_2, then crosses y=4y=4 into C4C_4. The cell sequence is

C1C2C4.C_1 \to C_2 \to C_4.

Two cells are adjacent in the cell graph if they share a positive-length edge. In the grid above, C1C_1 is adjacent to C2C_2 and C3C_3 but not to C4C_4, which it touches only at a corner.

navigate · Enter open · Esc close · ⌘K/Ctrl K toggle