Airport Ground Operations Scheduling
1/21
Planning & Reasoning 2024-2025
Vincenzo Crisà 2143080
Stefano D’Urso 2143081
Fabrizio Italia 2143104
1. PDDL
Description
1 Domain
The goal is to efficiently manage the movement and allocation of planes, runways, and gates in an airport.
Planes arrive at the airport and require an available runway for
landing.
Once landed, they must taxi to a gate for passenger unloading
and boarding.
After completing operations at the gate, the planes need a
runway to take off.
Constraints
1 Domain
Constraints include:
The system should minimize fuel consumption while ensuring efficient use of runways and gates.
Predicates
1 Domain
(plane-at ?p - plane ?l - object) | Plane p is at a location l (runway or gate) |
(gate-available ?g - gate) | Gate g is available for assignment |
(runway-available ?r - runway) | Runway r is available for landing or takeoff |
(waiting-to-land ?p - plane) | Plane p is waiting to land |
(plane-takenoff ?p - plane) | Plane p has taken off |
(passengers-loaded ?p - plane) | Plane p has passengers on board |
(has-unloaded-passengers ?p - plane) | Plane p disembarked passengers at the gate |
(has-loaded-passengers ?p - plane) | Plane p boarded passengers at the gate |
(assigned-gate ?p -plane ?g -gate) | Plane p has assigned gate g |
(priority ?p - plane) | Plane p is a priority plane |
Functions
1 Domain
(taxi-time ?p - plane ?g - gate) | Time needed to taxi from gate to runway and viceversa |
(fuel-level ?p - plane) | Amount of fuel remaining in the plane |
(fuel-consumption-rate ?p - plane) | Fuel consumption per action |
(total-cost) | Cost to minimize |
Actions
1 Domain
| LAND | TAXI TO ASSIGNED GATE |
Preconditions | The plane is waiting to land. The runway is available. The plane has passengers loaded. The plane has priority or no higher-priority planes are waiting. | The plane is at a runway. The assigned gate is available. The plane has passengers loaded. The plane has priority or no higher-priority planes are ahead. Sufficient fuel for taxiing. |
Effects | The plane lands and is now at the runway. The runway becomes unavailable. The plane is no longer waiting to land. | The plane moves to the assigned gate. The gate becomes unavailable. The runway becomes available. |
Cost | 2 × fuel consumption rate | taxi time × fuel consumption rate |
Actions
1 Domain
| TAXI TO GATE | UNLOAD PASSENGERS |
Preconditions | The plane is at a runway. An available gate exists. The plane has passengers loaded. The plane has priority or no higher-priority planes are ahead. Sufficient fuel for taxiing. | The plane is at a gate. The plane has passengers loaded. |
Effects | The plane moves to an available gate. The gate becomes unavailable. The runway becomes available. | Passengers are unloaded. |
Cost | taxi time × fuel consumption rate | No additional cost |
Actions
1 Domain
| REFUEL PLANE | LOAD PASSENGERS |
Preconditions | The plane is at a gate. The fuel level is not enougth to go to the runway and take off. | The plane is at a gate. The plane has already unloaded its previous passengers. |
Effects | The plane’s fuel level increases by 50 units. | The plane now has loaded passengers. |
Cost | No additional cost | No additional cost |
Actions
1 Domain
| TAXI TO RUNWAY | TAKE OFF |
Preconditions | The plane is at a gate. The plane has passengers loaded. The runway is available. The plane has priority or no higher-priority planes are ahead. Sufficient fuel for taxiing and landing. | The plane is at a runway. The plane has passengers loaded. The plane has priority or no higher-priority planes are ahead. The plane has minimum 10 units of fuel. |
Effects | The plane moves to the runway. The runway becomes unavailable. The gate becomes available. | The plane takes off. The runway becomes available again. |
Cost | taxi time × fuel consumption rate | Fuel consumption of 10 units. |
General problem
1 Domain
In the problem files the different design choices of the initial state are related to
• Planes that are waiting to land.
The goal is to take off all the planes, after their landing and gating process.
Instances
1 Domain
Planes | Available gates | Available runways | Fuel level | Taxi time | Fuel consumption rate | Assigned gate | High priority | |||||
P1 P2 | G1 G2 G3 | R1 | P1: 10 P2: 20 | | G1 | G2 | P1: 0.5 P2: 0.2 | - | - | |||
P1 | 1 | 0.5 | ||||||||||
P2 | 0.2 | 0.3 | ||||||||||
P1 P2 P3 | G1 G2 G3 G4 | R1 R2 | P1: 10 P2: 20 P3: 30 | | G1 | G2 | G3 | P1: 0.5 P2: 0.2 P3: 0.3 | P1: G1 P2: G2 | - | ||
P1 | 1 | 0.5 | 0.3 | |||||||||
P2 | 0.2 | 0.3 | 0.8 | |||||||||
P3 | 0.4 | 0.6 | 1 | |||||||||
P1 P2 P3 P4 P5 | G1 G2 G3 G4 G5 | R1 R2 R3 | P1: 10 P2: 20 P3: 30 P4: 80 P5: 20 | | G1 | G2 | G3 | G4 | G5 | P1: 0.5 P2: 0.2 P3: 0.3 P4: 0.4 P5: 0.6 | - | P1 P2 |
P1 | 1 | 0.5 | 0.3 | 0.4 | 0.2 | |||||||
P2 | 0.2 | 0.3 | 0.8 | 0.4 | 0.3 | |||||||
P3 | 0.4 | 0.6 | 1 | 0.3 | 0.7 | |||||||
P4 | 0.1 | 0.2 | 0.4 | 0.3 | 0.7 | |||||||
P5 | 0.3 | 0.4 | 0.7 | 1 | 1.2 | |||||||
Instance 1
Instance 2
Instance 3
2. The Planner
ENHSP-20
2 The Planner
Expressive Numeric Heuristic Search Planner is a PDDL automated planning system that supports classical and numeric Planning.
The planner reads in input a PDDL domain and problem file and it provides a sequence of actions to achieve the goal state starting from an initial state.
ENHSP transforms the PDDL descriptions into a graph-search problem where nodes represent states visited by the planner. The planner builds this graph in an incremental forward fashion and is guided by a heuristic function to explore only those nodes whose associated state is reachable from the initial state and get the planner closer to the goals.
To run the planner use the command ./run_enhsp.sh, where ENHSP-20 is executed with two different configurations for each instance: sat-hadd and opt-hmax.
The chosen metric to be minimized is the sum of the actions costs, which are proportional to the fuel consumption rate and taxi time.
Algorithms and heuristics
2 The Planner
Results
2 The Planner
| sat-hadd | opt-hmax | ||||
| Inst. 1 | Inst. 2 | Inst. 3 | Inst. 1 | Inst. 2 | Inst. 3 |
| 24.78 | 37.36 | 75.5 | 11.25 | 11.5 | 12.38 |
Metric | 21.98 | 33.72 | 55.12 | 21.98 | 33.72 | 55.12 |
Plan length | 13 | 19 | 31 | 13 | 19 | 31 |
Planning time | 599 ms | 457 ms | 3.5 min | 974 ms | 794 ms | 4.2 min |
Heuristic time | 17 ms | 17 ms | 3.15 min | 46 ms | 68 ms | 3.6 min |
Search time | 43 ms | 39 ms | 3.5 min | 156 ms | 165 ms | 4.2 min |
Expanded | 81 | 28 | 689,916 | 86 | 772 | 1,591,350 |
Evaluated | 101 | 74 | 1,423,817 | 109 | 962 | 1,898,302 |
Duplicates | 108 | 16 | 3,755,167 | 104 | 1852 | 7,153,641 |
Dead-Ends | 0 | 4 | 0 | 0 | 60 | 0 |
sat-hadd vs opt-hmax
2 The Planner
Plans
2 The Planner
sat-hadd
opt-hmax
(land-plane P1 R1)
(taxi-to-gate P1 R1 G2)
(land-plane P2 R1)
(taxi-to-gate P2 R1 G1)
(unload-passengers P1 G2)
(load-passengers P1 G2)
(refuel-plane P1 G2)
(taxi-to-runway P1 G2 R1)
(takeoff P1 R1)
(unload-passengers P2 G1)
(load-passengers P2 G1)
(taxi-to-runway P2 G1 R1)
(takeoff P2 R1)
(land-plane P1 R1)
(taxi-to-gate P1 R1 G2)
(unload-passengers P1 G2)
(load-passengers P1 G2)
(refuel-plane P1 G2)
(taxi-to-runway P1 G2 R1)
(takeoff P1 R1)
(land-plane P2 R1)
(taxi-to-gate P2 R1 G1)
(unload-passengers P2 G1)
(load-passengers P2 G1)
(taxi-to-runway P2 G1 R1)
(takeoff P2 R1)
Plans
2 The Planner
sat-hadd
opt-hmax
(land-plane P1 R1)
(land-plane P3 R2)
(taxi-to-assigned-gate P1 R1 G1)
(land-plane P2 R1)
(taxi-to-gate P3 R2 G3)
(taxi-to-assigned-gate P2 R1 G2)
(unload-passengers P3 G3)
(load-passengers P3 G3)
(taxi-to-runway P3 G3 R1)
(takeoff P3 R1)
(unload-passengers P2 G2)
(load-passengers P2 G2)
(taxi-to-runway P2 G2 R1)
(takeoff P2 R1)
(unload-passengers P1 G1)
(refuel-plane P1 G1)
(load-passengers P1 G1)
(taxi-to-runway P1 G1 R1)
(takeoff P1 R1)
(land-plane P1 R1)
(taxi-to-assigned-gate P1 R1 G1)
(unload-passengers P1 G1)
(refuel-plane P1 G1)
(land-plane P3 R2)
(taxi-to-gate P3 R2 G3)
(unload-passengers P3 G3)
(load-passengers P3 G3)
(load-passengers P1 G1)
(taxi-to-runway P3 G3 R1)
(takeoff P3 R1)
(land-plane P2 R1)
(taxi-to-runway P1 G1 R2)
(takeoff P1 R2)
(taxi-to-assigned-gate P2 R1 G2)
(unload-passengers P2 G2)
(load-passengers P2 G2)
(taxi-to-runway P2 G2 R1)
(takeoff P2 R1)
Plans
2 The Planner
sat-hadd
opt-hmax
(land-plane P1 R3) (land-plane P2 R2) (land-plane P5 R1) (taxi-to-gate P1 R3 G3) (land-plane P3 R3) (taxi-to-gate P2 R2 G5) (taxi-to-gate P3 R3 G4) (land-plane P4 R3) (unload-passengers P3 G4) (load-passengers P3 G4) (unload-passengers P1 G3) (taxi-to-gate P5 R1 G1) (unload-passengers P5 G1) (load-passengers P1 G3) (load-passengers P5 G1) (refuel-plane P1 G3) | (taxi-to-gate P4 R3 G2) (taxi-to-runway P1 G3 R2) (takeoff P1 R2) (unload-passengers P2 G5) (load-passengers P2 G5) (taxi-to-runway P2 G5 R1) (takeoff P2 R1) (taxi-to-runway P5 G1 R2) (takeoff P5 R2) (taxi-to-runway P3 G4 R3) (takeoff P3 R3) (unload-passengers P4 G2) (load-passengers P4 G2) (taxi-to-runway P4 G2 R1) (takeoff P4 R1) |
(land-plane P1 R3) (land-plane P2 R2) (land-plane P5 R1) (taxi-to-gate P2 R2 G5) (unload-passengers P2 G5) (load-passengers P2 G5) (taxi-to-runway P2 G5 R2) (takeoff P2 R2) (taxi-to-gate P1 R3 G3) (unload-passengers P1 G3) (refuel-plane P1 G3) (taxi-to-gate P5 R1 G1) (unload-passengers P5 G1) (load-passengers P5 G1) (land-plane P4 R3) (taxi-to-gate P4 R3 G2) | (unload-passengers P4 G2) (load-passengers P1 G3) (load-passengers P4 G2) (taxi-to-runway P1 G3 R2) (takeoff P1 R2) (taxi-to-runway P4 G2 R1) (taxi-to-runway P5 G1 R3) (takeoff P5 R3) (land-plane P3 R3) (taxi-to-gate P3 R3 G4) (unload-passengers P3 G4) (load-passengers P3 G4) (taxi-to-runway P3 G4 R3) (takeoff P3 R3) (takeoff P4 R1) |
Conclusion
2 The Planner
3. IndiGolog
Reasoning tasks
3 IndiGolog
IndiGolog is applied to the management of airport operations, specifically in handling aircraft landings, taxiing, passenger management, and takeoff processes.
It uses different controllers:
Relational Fluents
3 IndiGolog
waitingToLand(Plane) | The plane is waiting for landing. |
passengersLoaded(Plane) | Indicates passengers are on board. |
hasPassengersLoaded(Plane) | Passengers have been successfully loaded. |
hasPassengersUnloaded(Plane) | Passengers have disembarked. |
planeTakeonOff(Plane) | The plane has taken off. |
gateAvailable(G) | Checks if a gate is available. |
runwayAvailable(R) | Checks if a runway is available. |
emergency(Plane) | Indicates an emergency for the specified plane. |
requestToLand(Plane) | The plane has requested permission to land. |
new_land | Represents the occurrence of a new landing. |
Functional Fluents
3 IndiGolog
gate(Plane) | The assigned gate for the plane. |
runway(Plane) | The assigned runway for the plane. |
dim(Plane) | The plane’s dimensions, which influence scheduling. |
Simple controller
3 IndiGolog
The Simple controller iterates through all waiting planes, handling their departure in a simple manner without considering aircraft dimensions.
The controller combines the following basic procedures:
proc(go_to_gate(P,R,G), [land(P,R),taxiToGate(P,R,G)]).
proc(handle_passengers(P,G), [unload(P,G), load(P,G)]).
proc(departure(P,G,R), [taxiToRunway(P,G,R), takeoff(P,R)]).
Smart controller
3 IndiGolog
The Smart controller iterates through all waiting planes accounting for plane dimensions and available gates.
It follows these steps:
Exogenous controller
3 IndiGolog
The Exogenous controller introduces dynamic and emergency landings mechanism through prioritized interrupts:
Exogenous controller
3 IndiGolog
Authors
Fabrizio Italia 2143104
Stefano D’Urso 2143081
Vincenzo Crisà 2143080
Thank you for the attention!