A Dynamic Programming Approach for 4D Flight
Route Optimization
Christian Kiss-T ´oth, G ´abor Tak ´acs
Sz ´echenyi Istv ´an University, Gy ˝or, Hungary
IEEE International Conference on Big Data Oct 27-30, 2014
Overview
GE Flight Quest 2 was an optimization contest in 2013/14,
organized by Kaggle.
The goal was tooptimize flight routes w. r. t. to the average of
their total costs.
Our teamTaki & Chris reached fifth place during the final
Input data I.
Flight Data:
the data of the flights had to be optimized in the cut off times
data was provided for 14 days, 1000 flights per day
departure and arrival airport, the current position and altitude, the departure and scheduled arrival time, fuel, delay, turbulence costs, etc.
Airport Data:
the list of the 63 airports where planes had to land latitude, longitude coordinates and altitude
Data visualization I.
y: 63 airports
Input data II.
Restricted Zones:
zones where the planes were not allowed the fly in convex polyhedrons in the airspace
same on every day 19 zones
Turbulent Zones:
zones where you got some penalty if you fly in convex polyhedrons in the airspace
different on different days
Input data III.
Weather Data:
wind speeds provided as 2D vectors given hourly on eight different altitude levels
every level was a 451 337 grid
live wind and forecast wind
ground conditions for the arrival: temperature, wind, visibility in hourly resolution
Some other less important data about the airports for the arrival process of the simulator.
Data visualization II.
RESTRICTED ZONES TURBULENT ZONES
The problem
Optimal flight plans for the plains had to be created, with the lowest possible cost
Flight plan:
list of instructions (max 200 per flight)
every instruction is a (latitude, longitude, altitude, airspeed) quadruples
FlightID Ordinal Latitude Longitude Altitude AirSpeed
324485334 1 37:0700 109:7300 40000 600 324485334 2 36:8664 110:3550 40000 600 324485334 3 35:2374 115:0335 40000 600 324485334 4 34:4377 117:1485 2000 600 324485334 5 34:4025 117:2391 2000 600 ...
The simulator
The objective function (total cost) of FQ2 was calculated by a simulator:
thesource code was open, written in F# ( 2300 rows)
consists of several submodules, including fuel consumption models for ascending, cruising and descending, a landing, weight, atmosphere and aircraft model and an airspeed limiter
simulates all flight plans loaded into it in discrete time steps computes a total cost value for the flights
outputs one number, the average total cost
The cost of a flight can be written in the following form: Ctotal =Cfuel+Cdelay+Coscillation+Cturbulence
Proposed solution I.
creating initial flight plans for the flights =) initial solution
set the latitude and longitude coordinates of the waypoints =) 2D
optimization process
set the altitudes and the airspeed of the flight =) 1D
Proposed solution II.
INITIAL SOLUTION:
creating initial routes to avoid crashing of the planes connecting two points on a plane avoiding a set of convex polygons
DIJKSTRA’SALGORITHM: shortest path from one point to all others in an edge-weighted graph with non-negative weights
vertices: current position, destination airport, all the vertices of the restricted zones
weights: the distances between the points
Proposed solution III.
2D OPTIMIZATION PROCESS:
Fuel consumption: function of the airspeed (instruction) Groundspeed: function of airspeed and wind speed Modifying routes to take advantages on the wind
Proposed solution IV.
Explore the airspace usingDYNAMICPROGRAMMINGtechnique:
Proposed solution V.
1D OPTIMIZATION PROCESS:
Parameterizing the 1D profiles with two variables
descending distance: the distance from the destination airport cruise speed : the airspeed instruction during the cruising phase
Proposed solution VI.
optimizing the two parameters with exhaustive search: 1D
OPTIMIZATION
refining the 1D profile of the routes to take advantages on some
Implementation details
Bash scripts for automatization Python for data processing
MATLAB to rewrote the simulator and for the optimization process
We divided the flights on each day into 4 parts, and run the
optimization process on 14 4 = 56 cores
The hardware we used during the competition was a64 core
Numerical results & Time consumption
Solution type Average cost Improvement
Dijkstra’s algorithm 11736:4$ —
Dynamic programming 11707:4$ 29$
2D refinement 11702:3$ 5:1$
1D optimization 11687:2$ 15:1$
Conclusions & Summarization
We presented our solution that reached fifth place in the final phase of the GE Flight Quest 2 competition.
The main elements of our route optimization method are the Dijkstra’s algorithm, dynamic programming, local and exhaustive search procedures.
Our method is able to produce reasonable initial plans in a short time.
To improve the initial solution the most effective and time consuming part was the dynamic programming part. Most of our methods can be useful for real life flight route
optimization, since the simulator used in FQ2 was quite realistic in many aspects.
Acknowledgement
This research was supported by the project
T ´AMOP-4.2.2.A-11/1/KONV-2012-0012: Basic research for the
development of hybrid and electric vehicles - The Project is supported by the Hungarian Government and co-financed by the European Social Fund