1. Introduction
The Terminal Manoeuvring Area (TMA) is a portion of controlled airspace surrounding airports with high traffic. It is the first area within which the aircraft can begin to maneuver (initiate turns, level flights, reduce speed etc.) after they take off, and the last one before they land. Its purpose is to establish the connection between the airport runways and the airways. The TMA is usually a very busy area, which requires much attention from the controllers, as arriving and departing aircraft may cross paths, the first ones have to land as soon as possible, all on the same runway (or two, depending on the airport) while the second ones must be dispatched to their different locations and altitudes. Thus the design of the departure and arrival routes is very important, as it will determine the workload for the controllers, and so their efficiency. The departure routes are called the Standard Instrument Departure (SID), and the arrival routes are the Standard Terminal Arrival Routes (STAR). Their design is a complex task which is carried out today by procedures designers by hand.
Currently, most SIDs and STARs rely on well-defined steps. For example, a SID will usually be made of an initial climb, followed by a level flight to gain speed, and then a second climb to reach the en-route sector. However, technological progress is bound to allow more possibilities in the future and near future. For example, the concept of Performance Based Navigation (PBN), and more specifically the Required Navigation Performance (RNP) procedures, are being developed to increase efficiency, especially in areas such as the TMAs [
1]. These procedures aim at broadening the range of actions that an adequately equipped aircraft may perform, like Continuous Climb Operations (CCO) [
2], which allows for more efficiency when taking off by removing the need for level flights, or its descent equivalent (CDO) [
3]. Our work aims to design a tool that can take advantage of these new possibilities to design SIDs and STARs that are operationally usable.
The problem at stake thus falls into the path searching (or path planning) category. This is not to be mistaken for trajectory planning, since in the present case the temporal aspect is not taken into account as the routes are meant to be designed at the strategic level, which means that the procedures are designed only once, for example when a new airport is built, and then serve as a reference for daily operations. Thus, elements such as weather or moving obstacles cannot be taken into account in this study. This problem has been addressed since the late 1950s with the Dijkstra [
4] and Bellman [
5] algorithms on the shortest paths in a graph. The matter gained interest in the early 1980s with the emergence of robotics and is still studied as of today. Several approaches to the topic can be found in Reference [
6]. The aeronautical sector also took interest in the subject, and some methods have been tested in this particular case (summarized in Reference [
7]). In the following, the approaches used in the literature to the subject of aircraft path and trajectory planning will be reviewed with a focus on different aspects such as 2D or 3D design, exact or heuristic approach, single or multiple routes design.
In the case of 2D path generation, the simplest approach when the obstacles are polygonal is the Visibility Graph [
8], which relies on the fact that the shortest path between two points in 2D with polygonal obstacles passes through the summits of these obstacles. A variant of this is provided in Reference [
9] in the case where obstacles can be curves. To go further on the topic of circular obstacles, Kim et al. proved that the shortest 2D path between two points lies in a convex hull around the segment between the two points [
10], which allows the reduction of the computation time in some cases. This idea of the convex hull has been used in a certain number of works addressing the problem of aircraft trajectories. For example, in Reference [
11], the authors use the convex hull coupled with a Genetic Algorithm (GA) to compute aircraft trajectories avoiding moving obstacles. The method is also used in Reference [
12] to help reduce the size of the search space.
The topic of route generation, as widely studied as it is in 2D, is way more complex to tackle in 3D. As an example, it is proven that the visibility graph extension in 3D becomes a Non-deterministic Polynomial time (NP) hard problem, as explained in Reference [
13]. In Reference [
14], the problem of 3D is addressed by imposing Cleared Flight Levels (CFL) on a linear climb or descent along a 2D generated path. This path is computed using either an A* algorithm or a GA. In the same fashion, the authors in Reference [
15] explicitly take into account a minimum and a maximum climb or descent slope to detect conflicts between a route and an obstacle and impose level flights to avoid them.
Be it in 2D or 3D, the route design problem becomes even more complex when the subject of multiple routes design is addressed, as each one must be counted as an obstacle to the others due to the route separation requirement. Two approaches can be considered. The first is to generate the routes sequentially, for example in the decreasing order of traffic on the routes, so as to favor the busiest ones. This method is used for example in Reference [
16] where the routes are computed dynamically to avoid hazardous weather, or in Reference [
17] where the route generation focuses on the PBN concept of Radius-to-Fix (RF). The other way of designing multiple routes is to compute them all at once using a heuristic. For example, in Reference [
18], the order of the routes generation is decided with an SA algorithm, with each route being computed individually using a Fast Marching method and a Gradient Descent method. Similarily, in Reference [
14], the routes are all generated, then those in conflict are penalized to allow the GA to find another solution without conflicts.
The routes design problem can be seen as an optimization problem, due to objective functions being maximized or minimized (such as the routes length, for example). Many general-purpose algorithms have been created to address the topics of space processing and shortest path finding and every work in the literature is based on at least one of them. Some are exact algorithms, such as the Bellman-Ford [
5], the Dijkstra [
4] or the Branch-and-Bound [
19] algorithms. Their main advantage is that they provide the optimal solution every time. However, their time complexity does not allow for their use on large problems, for they are not able to yield a solution in a reasonable time. This aspect makes them very useful for computing a single path on a relatively small instance. On the other hand, are the heuristics and metaheuristics family, with methods such as the A* [
20] or its derivatives [
21], the Simulated Annealing [
22] or the Genetic Algorithms [
23]. They provide solutions in a reduced time, although these solutions may not be optimal. A nice summary of metaheuristics can be found in Reference [
24]. These methods are better tailored for extensive problems such as multiple 3D routes design.
In this paper a method is proposed that allows the design of multiple routes in a TMA with the use of the Simulated Annealing (SA) meta heuristic combined with an exact method for the design of each individual route. The main contribution of this work lies in the range of operational practices and constraints that are taken into account. The routes are built in 3D, when most of the related works focus on 2D paths, in such a way that their merging points are distributed in a way that allows the controllers to handle the heavy traffic on them. This work also allows the taking into account other elements, such as obstacles, military zones, cities or no-flight zones, or other aerial routes. The result is a set of routes, each being represented as a succession of 2D segments associated with an altitude cone. The 2D part of the route respects a limited turn angle constraint at all times and the cone of altitudes allows the setting of level flights in order to avoid potential military zones or other routes. The approach uses the SA meta heuristic to optimize a set of paths, each one being computed by a deterministic path search algorithm in a graph. This requires the construction of a graph structure to represent the TMA, which is achieved by sampling the TMA along concentric layers around each runway inside it.
The paper is organized as follows:
Section 2 introduces the subject, the objective of the work and the main constraints associated to it. Then, in
Section 3, the problem is expressed more precisely, in a formal way. In
Section 4, the approach used to address the problem is presented. Finally, in
Section 5 several cases on which the algorithm has been tested are given, some from the literature and others designed specifically for this resolution method.
3. Problem Modelling
This paper proposes a mathematical model to automatically design routes while minimizing some criteria for aircraft departures and arrivals that can be used is real-life scenarios. A discrete approach is used, as it seems more appropriate in the current state of air traffic management. As of today, both controllers and pilots prefer to set the courses in straight lines, and make punctual turns when necessary. Thus the path modeling is mostly based on segments. Continuous approaches tend to yield solutions that satisfy the criteria of obstacle avoidance or route separation but are often not suited for the current state of aircraft control and management as they provide solutions with frequent turns involved. References [
28,
29] are examples, even though they address the topic of en-route trajectories.
In this section, the representation chosen to model the problem is described, as well as the data input, the decision variables, constraints and objective function.
3.1. Input Data
As part of the input to the problem are given:
Location and orientation of each runway taken into account in the TMA
All obstacles in the TMA (mountains, buildings, military zones…) denoted by the set
. The way of protecting the routes from obstacles will not be discussed here. Therefore, it will be assumed that all obstacles given comprise a satisfactory margin of protection. More information on how to build protection areas around procedures can be found in Reference [
30]. An obstacle
is viewed as a cylinder: a 2D polygon
, given as a list of points, forms the base, and a minimum and a maximum altitude,
and
, that give the lower and upper limits of the obstacle. Later on, an obstacle will be denoted as
for its base, lower and upper limits
The set of cities T as 2D polygons on the ground with their population distribution that gives the population density at a given point in the city. The cost of flying over a city is denoted as
The entry and exit points of the TMA . These are 2D points associated to an altitude range. This range represents the minimum and maximum altitudes at which the aircraft can go through the point.
The expected traffic flow at each of these points
A maximum turn angle , as aircraft limitations and regulations prevent them from making too sharp turns.
A minimum and maximum climb and descent slope and in percentages.
The maximum number and minimum and maximum length of the level flights (resp. , and )
For the rest of this document and to simplify the presentation without any loss of generality, only one runway will be considered, in a departure (SID) configuration.
As in Reference [
12], a route
will be modeled by the means of two elements: a succession of segments
in the horizontal plane, to fit the current state of air traffic control and a
vertical profile to take into account the various capabilities of the aircraft. In the next paragraphs, the tools that allow to define
and
will be introduced.
3.2. Tma Discretization
The aim is to create a discrete representation of the TMA and more specifically, to end up with a graph structure in which the horizontal paths can be searched.
Vertices
Vertices can be assimilated to the waypoints by which the aircraft will pass. The aim is to generate a set V of points that cover the TMA’s projection on the ground. This is achieved in the following way:
The center is the first waypoint at which an aircraft is authorized to maneuver.
This point will be the center of concentric layers (for example circles or squares) of increasing size, such that the last one passes through the exit point that is farthest from the center in the TMA. These layers are denoted where is the number of layers. The center itself is considered as the first layer. Layers can be any borders of an increasing family of convex sets.
Each is then sampled to create a 2D set points where is the number of points on . Let the set of all 2D points. In the rest of the document and without loss of generality, it will be assumed that for all i, and that all exit points are located on the last layer in order to keep the notation simple.
Arcs
Now that V is created, a set E of arcs has to be defined. This set is built by applying the following rules:
All arcs are oriented, from a vertex on a layer to a vertex on the layer . The arc that connects with will be denoted .
The arcs between (the center) and are constructed by taking into account the direction of the runway. An arc between and exists if and only if its angle with this direction is less than the maximum authorized turn angle .
The other arcs are built recursively, layer by layer: all the arcs starting on a layer i are built before any of those starting on the layer . An arc exists if and only if there exists such that the angle formed by the segments , and is less than the maximum authorized turn angle .
The graph
will serve as a base for finding the paths (
Figure 1).
3.3. Route Modeling and Decision Variables
Based on the graph G, the result to find is a set of routes connecting the center to the exit points.
The variables of the problem are the routes to be designed. A route
for the exit
P is defined as an ordered subset of
E to which is added a
vertical profile. The vertical profile gives the minimal and maximal possible altitudes at which an aircraft can fly at a given point along the path. This representation is motivated by the observation of the take-off and landing profiles at Charles-De-Gaulle airport (
Figure 2), a large airport, representative of the ones this work aims to study. It is built taking into account the curvilinear abscissa of the path, the minimum and maximum slopes and the level flights on the path. The choice of this representation instead of 3D points has been made because the current charts represent the procedures as 2D paths with optional mentions of constrained altitudes. Thus the path and the altitude range are two distinct features of a procedure.
Basically, the decision regarding the vertical profile lies in choosing to put a level flight or not at a given arc. A route
can be defined by a couple
where:
The tuple
is called the
horizontal profile of the route. The component
indicates the presence (1) or absence (0) of a level flight between the layers
i and
, that is, on the arc
. The horizontal profile
can also be seen as a continuous piecewise linear function
In the rest of the paper, one definition or the other will be used indifferently, as they denote the same object. Based on
and
, it is possible to give another point of view of the vertical profile according to Algorithm 1. The idea is to create two functions:
where
is the length of
. Later on, the
curvilinear abscissa will be defined as the value
which represents the distance flown from the center to
. The functions
are continuous piecewise linear and can be characterized by their values at curvilinear abscissa of the intersection between the route and the layers. By abuse of notation, the values corresponding to layer
i are denoted by
. The vertical profile
will be referred to indifferently as either
or
depending on the context.
Algorithm 1 Construction of |
Require:HorizontalPath = , VerticalProfile = in the binary representation, an initial altitude Altinit, a minimum slope Slopemin, a maximum slope Slopemax |
1: Initialization: Let = (Altinit,0,…0) and = (Altinit,0…,0) two arrays of length , = Altinit, = Altinit |
2: for i from 1 to do |
3: Let = HorizontalPath and Alti = VerticalProfile |
4: Let |
5: Let Altmin = + Slopemin and Altmax = + Slopemax |
6: if Alti is true then |
7: |
8: |
9: |
10: else |
11: Altmin |
12: Altmax |
13: |
14: |
15: end if |
16: end for |
17: return |
Figure 3 gives an example of the construction of the functions
, in which four layers are represented (two normal climbs and two level flights in the picture on the right).
The horizontal and vertical portions of the route
i that start at layer
and end at layer
will be denoted as
and
respectively. This allows us to define the
merging layer of two routes i and
j as
Note that, by construction,
. Also,
always exists and can be 1. In this case, the routes
i and
j only have the center in common. The
merge point is then introduced as the common node between
and
located on layer
. For example, in
Figure 4, a merge point is represented on the left, on layer 3. Finally, the family
is defined, such that
.
3.4. Constraints
The constraints stated in
Section 3 are expressed in the following way:
Obstacle avoidance:
where
d is the euclidean distance between two objects (i.e., the minimum distance between two points, one on the first object and the other on the second) and
and
are respectively the minimum horizontal and vertical distances to keep with an obstacle.
Route separation: The arcs of routes
i and
j starting on their merge point are denoted
and
. The constraint is expressed as:
and
This means that any two points belonging to two different routes must be horizontally separated by a minimum distance. When it is not the case, their altitudes must differ by at least a minimum vertical distance. Moreover, Equation (5) states that the angle between the two routes must be greater than a limit value at the merge point.
Figure 4 illustrates this constraint: it shows (in red) a path that violates it by including too sharp turns.
Level flights constraint: A
level flight is defined as a maximum continuous portion of route on which the maximum altitude is fixed. For example, a level flight in a SID will force the altitude to be no greater than a fixed value. The constraints on level flights are imposed in order to maximize the use of continuous climb:
3.5. Objective Function
The problem is multi-objective in nature. However, to simplify the optimization process, the objective function has been set as a weighted sum of three terms. A first goal is to create the shortest possible routes (it is assumed here that these are the fastest, even though this may not always be true). This first part of the objective is expressed:
where
is the length of arc
e. This part of the objective is called the
route length criterion.
The second part of the objective is the total length of the solution sub-graph:
where
if
e belongs to at least one route, 0 otherwise. It can easily be seen that this part of the objective is different and sometimes contradictory with the previous one. This part of the objective is called the
graph weight.
The last part of the objective is about cities, regarding the noise disturbance. As the air traffic and the population grow, it is more and more difficult to avoid flying over cities. However, this is also more and more required when the routes are designed. Thus, it has been taken into account as follows: the aircraft must avoid flying over them but if there is no choice, the impact has to be as small as possible, so the routes must try to pass over the least populated areas.
where
is the cost of an aircraft flying at altitude
z at
regarding noise emissions. The noise intensity varies with the altitude of the aircraft and its calculation can take into account many parameters [
31]. As a simplification, this paper considers that the nominal noise (noise intensity besides the aircraft) is decreased by 6 dB every time the distance to the aircraft is multiplied by 2. The nominal noise at 3 meters is set here at 100 dB [
32]. The cost
for
being a city is expressed as:
Finally, the optimization problem is given by:
where,
α,
β and
γ are chosen by the user and express the relative importance of these criteria.
By choosing a single-objective function, all the criteria are combined into one. As a result, the solutions may be optimal in neither of these criteria, as the route length and the graph weight are contradictory objectives, most of the time (the route length objective tends to make the routes go straight from the center to the exit point while the graph weight criterion will often push the merging points towards the exits).
4. Resolution Approach
Compared to the problem modeling given in the previous section, in the resolution method some of the constraints have been relaxed to make them a part of the objective function, as it can be quite difficult to find a solution that satisfy all constraints. The aim is to manipulate a linear combination of all criteria as the objective function. The relative importance of all these criteria is for the user to choose depending on those they want to focus on. Therefore, the following constraints are affected:
Obstacle avoidance constraint: The obstacle avoidance becomes part of the objective: an extremely high cost is added to the route objective compared to the other criteria whenever an obstacle is traversed. This way, the priority of the algorithm is to avoid them, should it make a route longer, for example. Therefore, in certain very complex situations, the algorithm may return a solution that passes through obstacles
Limited turn constraint: This constraint is affected in the same way as the obstacle avoidance constraint: whenever a route contains illicit turns, it is heavily penalized in the objective.
Route separation: The routes are created sequentially, by decreasing the order of expected traffic flow. The aim is to prioritize the busiest routes. To handle this, all routes that have already been designed are set as obstacles regarding the design of the next ones. The airprox (routes being too close to each other) constraint then becomes similar to the obstacle constraint.
4.1. Simulated Annealing
To solve the described problem, the Simulated Annealing (SA) meta-heuristic is applied. It was first introduced in the early 1980s [
22]. The aim is to make an analogy with the annealing of physical materials. The process involves bringing a solid to a sufficiently high temperature, and then let it cool down slowly in order to make it reach an optimal arrangement of its molecules. This corresponds to a state of minimum energy [
33]. This method is quite efficient when it comes to optimizing a single-objective function and works in the following way:
In this section is first described how this algorithm has been adapted to the problem. The next paragraph will explain the way to build an initial solution for the starting point. Then the neighbor generation process is described and finally the way to evaluate a solution is stated.
4.2. Generating a Solution
This is the key issue to be addressed by the algorithm. The paths are created one by one, by decreasing order of traffic flow (so that the busiest path is the least constrained by the other routes). Moreover, a set of merge layers is introduced, which is a subset of . Their purpose is to define where the merging points may be created.
4.2.1. Creating the Merge Layers
The merge layers can change during the execution of the algorithm. However, the center is always considered as a merge layer and a minimum distance between two consecutive merge layers must always be ensured. To achieve this, for instance, it can be imposed that all are regularly spaced by a known distance. Then, a merge layer can be set every layer starting from the center. If the last merge layer is too close to the last layer , it must be removed so that the exit points are far enough from any merge point.
4.2.2. Finding One Path
Each individual path is computed with a deterministic path search algorithm in a graph, with a carefully chosen cost for the arcs, as the algorithm has to be able to explore various possible paths for two given starting and ending points. This last point requires that the cost of the edges can vary during the execution of the algorithm. Otherwise, for two given points, the result of the search would always be the same. To achieve this, the algorithm biases the costs of the edges in the graph for each path to be computed. To each merge layer is associated a number (the bias) between −1 and +1. A negative bias will increase the costs of the arcs ’on the right’ of each node until the next merge layer, while a positive bias will increase those ’on the left’ (see
Figure 5). The closer the bias is to −1 or +1, the sharper the turn will be, while a null bias will favor the straightforward paths. By resetting the costs of the arcs at each path search, it is possible to explore the entirety of the graph while keeping a way to recreate any path, given its start and end points along with the biases.
The coefficients for the cost bias are chosen in a way that helps reducing the zigzag phenomenon. The aim is to generate a sequence of numbers that are coherent with their predecessors and successors. In order to achieve this, the generation is based on the raised cosine function:
The method works as follows, for a given starting vertex o (origin) and a given ending vertex a (arrival):
A number and two signs are randomly chosen.
Three amplitude values in are set. These values can be chosen randomly, but in this work, they are decrease down to zero with the progress of the SA. This allows to explore the state space when the temperature is high and focus on a narrower neighborhood when it is low.
Three raised cosine functions are generated (see
Figure 6):
A function g is defined as on , by setting on and on
The coefficients are chosen so that the route to find has the same shape relatively to the segment than g has relatively to
4.2.3. Creating a Set of Paths
The paths are created sequentially so that the busiest routes are the least constrained. A complete set of paths is created in the way described in the Algorithm 2:
Algorithm 2 Generating a set of routes |
Require: The center center, the exits ordered by decreasing traffic flow. |
1: Initialization: Set a starting point Start = center, an null matrix Biases of size . |
2: for i from 1 to do |
3: Fill Biases with the biases using the raised cosine formula. If a route begins on a layer greater than 1 or ends before the layer , the corresponding cells of Biases are set to a default value less than or greater than 1. |
4: Set the arcs costs according to the coefficients in Biases |
5: Set Shortest path from Start to |
6: Set Start = a randomly selected intersection of one of with a merge layer, that is not already a merge point. |
7: end for |
8: return |
Note that the first time this function is called, all values for Biases at step 3 are set to 0. This allows to test the straightforward way, which can be the best one in some cases. The biases can start to change at the first generation of a neighbor. Thus the initial solution is created by calling Algorithm 2 and by always setting the biases (the values of the array Biases) to zero.
4.3. Generating a Neighbor
To create a neighbor, the algorithm can operate on several parameters:
The route of connection (see step 6 in Algorithm 2)
The layer on which a route connects to an other (i.e., the merge layer)
The coefficients for the arcs bias algorithm
The level flights on a route (choice of the )
The merge layers, that can be changed. In this case, all routes are computed again. This is meant to induce exploration at the beginning of the search
A neighbor is created by randomly changing one of these parameters on the current solution. Sometimes, all of them are randomly changed, to allow for more exploration. However, the probability of this happening greatly decreases with time.
4.4. Evaluation
In the simulated annealing meta-heuristic, it is necessary to be able to evaluate frequently a given solution (i.e., a set of routes). This evaluation is carried out in the same way as in Reference [
12], by means of a grid with the following features:
The grid covers at least the area of the graph
Each cell of the grid is a square whose side length is not greater than the minimum horizontal separation (for example, 1 NM in this work).
Each cell holds the following information:
- –
The height of the highest ground obstacle that can be found in this cell (mountain, antenna, building…)
- –
The minimum and maximum altitudes of a forbidden flight zone in this area (if any)
- –
The density of population on the ground (if any)
Thus, the obstacles are ’widened’ due to the discretization. This allows to take additional margins, but could also lead to the loss of potential solutions. This is why it is important to keep the grid squares rather small. For the evaluation, each route is discretized with an arbitrary step, for example . Each of the created points belongs to one cell of the grid according to its coordinates in the plane. The evaluation of the point is carried out by considering its cell for the evaluation of obstacles or cities, and by also considering its neighboring cells (more specifically all cells in a radius of around the point) for the evaluation of conflicts between routes or with obstacles.