Seminar Report
Seminar Report
Seminar Report
KURUKSHETRA
SEMINAR REPORT
ON
A Dynamic Programming Approach for 4D Flight
Route Optimization
1
Submitted by:
HIMANSHU ROHILLA
11610187
CO-4
Submitted To:
Prof. MANTOSH BISWAS
Department of Computer Engineering
NIT Kurukshetra
2
Abstract
The solution was aimed at optimizing flight routes so that the
overall cost depending on fuel is as low as possible. Several data
tables are taken as inputs, including aircraft positions and
destinations, weather information and other aviation related data.
The task was to produce a flight plan for each flight given a list of
(latitude, longitude, altitude, airspeed) quadruplets. The cost of
flight plan was evaluated with an open source simulator. Proposed
method produces an initial solution with the Dijkstra’s algorithm to
avoid restricted zones, and then refines it using dynamic
programming and local search techniques. Wind forecast are
extensively utilized and the plane is significantly diverted from the
great circle route if necessary. Moreover the method tries to set the
ascending and descending profiles of the flights to further decrease
the cost.
3
INDEX
Serial Title of the section Page
Number Number
1. Introduction 5
2. Input data 8
3. Proposed solution 13
3.a Initial Route 14
3.b 2D optimization 16
3.c 1D optimization 20
3.d Implementation Details 22
4. Numerical results 23
5. Conclusion 24
6. References 25
4
Introduction
Economic growth makes air transportation more important every
day. The increasing number of flights leads to high complexity
scheduling and planning problems. Airlines are constantly seeking
ways to make the flights more efficient. From gate conflicts to
operational challenges to air traffic management, the dynamics of
a flight can change quickly and lead to costly delays.
5
4. Industry profits of $33.8 billion are forecasted for 2018,
following profits of $38.0 billion in 2017.
6
TABLE I: Flight plan for one plane containing 5 instructions. The
altitude is given in feet the airspeed is given in knots.
Flight plans not only have to take the laws of physics into account
but also route restrictions from the air traffic control and aviation
authorities. This means that there are geographical zones in which
the planes must not fly, or there are specified altitudes for different
types of flights where they are allowed to cruise.
A good flight plan should
(1) find a short 2D path between the origin and a destination
with taking winds into account.
(2) find a proper cruising altitude and establish an efficient
altitude profile for ascent and descent.
(3) set the airspeed to keep a balance between traveling time
and fuel consumption.
7
Input Data
This section gives more details about the input data available for
the route planning algorithms.
1. Flight Data
Status information about flights for that the route to the
destination had to be optimized.
Data was provided for 14 days for approximately 1000
flights on each day.
For each flight, the departure and arrival airport, the
current position and altitude, the departure and
scheduled arrival time, fuel, delay, turbulence costs and
some other, less important, information was given.
2. Airports
Latitude, longitude and altitude of 63 airports where the
planes had to land.
The airports and the positions of the planes at the cut off
time of an example day is shown in Fig. 1.
Fig. 1: Airports (blue) and plane positions at the cut off time of an example day (red).
8
3. Restricted Zones
Planes were not allowed to fly into the restricted zones
of the airspace.
Each zone was a convex polyhedron, given with the
coordinates of the vertices and the lower and upper
altitude bounds.
Restricted zones were the same on every day. The
number of zones was 19.
4. Turbulent Zones
Planes got some cost penalty, if they flew the turbulent
zones of the airspace.
Each zone was a convex polyhedron, given with the
coordinates of the vertices and the lower and upper
altitude bounds.
Turbulent zones were different on different days.
The number of zones varied between 5 and 9 zones per
day.
5. Weather Data
Wind data was provided as 2D vectors given hourly at
eight altitude levels on a 451X337 geographical grid.
There were two kinds of wind data: live wind before the
cut off time, and forecast wind from the NWS SOO
Science and Training Resource Center for the entire
flying period.
Some other weather data was also given for the airports:
ground conditions for the arrival, such as temperature,
wind and visibility, given in hourly resolution up to the cut
off time.
9
The polygons of the restricted and turbulent zones for an
example day, and the wind vectors on the grid of the highest
altitude level is shown in Fig. 2
6. The Simulator
As mentioned earlier, the objective function of FQ2 was
calculated by a simulator. The simulator was written in
F#, and it contained 2300 lines.
10
The simulator computes a total cost value for all flight
plans loaded into it, and finally outputs one number, the
average total cost. The structure of the cost function for
one flight can be written in the following form:
11
One more relevant characteristic of the simulator was
that the ground speed of the aircraft was calculated as
the function of airspeed and wind:
12
Proposed Solution
We split the problem into three main parts. First, we create an initial
flight plan for the aircraft. Second, we perform a 2D optimization
process, to set the latitude and longitude coordinates of the
waypoints. Third, we set the altitudes and the airspeed of the flight
along the route obtained from the previous step. The 2D and the
1D profile of a flight plan is visualized in Fig. 3.
Fig. 3: The 2D shape, the altitude-distance and the velocity-distance graph of an example flight.
13
1. Initial Routes
14
Fig. 4: An initial 2D path with two additional waypoints created with Dijkstra’s algorithm.
15
2. 2D Optimization
Fig. 5: A wind optimal 2D path far from the great circle can
significantly reduce the fuel, delay and turbulence costs.
For the flight above, the blue route reduces the total cost with
nearly 15 percent. The core part of our solution was to explore
16
the airspace to discover such routes with a dynamic
programming-based approach.
17
The original objective function cannot be evaluated for partial
routes, as the delay cost is not defined. Therefore, we created
one by omitting the delay term from the formula of the total
cost.
Previj: The index of the previous point at level i-1 in the best
route.
Propij: The status of the aircraft after reaching Pij in the best
route.
During the algorithm for all grid points pij we simulate the
routes from all the points pk in the previous level, with starting
properties Propk and register the best one (to make the
notation shorter, we use the single index k instead of (i 1; k)
for the points in the previous level). Apart from level 1 this is
the minimum of 2n+1 possible routes. At the end of the
procedure we obtain a new route that is not worse than the
initial one since the initial path was also present among the
ones we considered. The pseudo-code of our dynamic
programming-based route optimizer is shown on the next
page.
18
>Procedure to construct wind-optimal routes with dynamic
programming
19
3. 1D Optimization
Our initial flight profile was the following: if the flights were far
enough from the destination they ascended to the maximum
altitude level, cruised, and started descending. As we
described it in the Simulator subsection, the airspeed
instruction affects only in the cruising phase, so there was no
reason the decrease the airspeed from the maximum in the
ascending and descending phases. In some cases, it is worth
to decrease the airspeed during the cruising part: if the plane
is on time, which means the delay cost would be still zero even
with a lower cruise speed, it is possible to reduce the fuel
consumption by decreasing the speed.
This means that the parametrization of the 1D profile can be
done with two variables: the first one is the descending
distance and the second one is the cruise speed. For this 1D
optimization part we implemented an exhaustive search
method to optimize these two constants. For some of the
flights (an example for the optimized 1D profiles plotted on
20
Fig. 7) this improvement spared another 10 percent of the total
cost:
21
4. Implementation Details
Bash scripts was used for automation, and Python for data
processing. FQ2 simulator was rewritten and dynamic
programming-based approach was implemented in MATLAB.
The flights on each day were divided into 4 parts, and the
optimization process was run on 14x4 = 56 cores. The
hardware used during the competition was a 64 core Linux
server with 1 terabyte memory.
22
Numerical Results
TABLE II: Reduction of the average cost after different steps of our algorithm.
23
Conclusion
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.
24
References
25