MULTI-DIMENSIONAL ROUTE OPTIMIZER

Abstract: A system and method of optimizing a multi-dimensional route, such as an aircraft flight path, using a lateral path optimizer and a vertical path optimizer. The lateral path is determined by searching for a path among nodes that minimizes a cost function. The vertical path is determined by reference to pre-determined data generated as a function of aircraft parameters and wind speed. The optimized route is filtered as it is being generated. The optimized route is not limited by pre-determined waypoints.

Description: MULTI-DIMENSIONAL ROUTE OPTIMIZER TECHNICAL FIELD Disclosed is a method and system for optimizing the path of a vehicle in multi -dimensional space. In particular, aircraft flight path optimization is disclosed. COPYRIGHT NOTICE AND PERMISSION A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below and in the drawings hereto: Copyright © 1998, Honeywell, Inc., All Rights Reserved. BACKGROUND ART For safety and efficiency reasons, aircraft routing is commonly along predetermined air routes or great circle routes. Predetermined air routes are often aligned with ground-based navigational aids. In some cases, air routes circumvent geographical regions. Great circle routes, on the other hand, promise shorter flight distances. Weather affects both the efficiency and the safety of a particular flight. Aircraft efficiency improves with favorable winds. In suitable tailwinds, ground speed increases and fuel consumption drops. Reduced fuel consumption often means that additional revenue-generating payload can be carried. Increased ground speed means that flight times are reduced resulting in operational cost savings. Similarly, hazardous weather can impose a wide variety of costs on aircraft operations. Such costs can range from an uncomfortable ride for passengers at the low end, to structural damage, and even loss of aircraft and lives, at the other extreme. Aircraft operators typically go to great length to avoid hazardous weather. In addition, certain geographical and political regions are covered by restricted airspace. Certain regions are preferably avoided by aircraft because costly over flight fees may be imposed. Achieving a desired arrival time is important because it allows the operator to more accurately schedule flights and enjoy greater operational efficiency. Aircraft operating on pre-determined air routes or great circle routes may be forced to make costly adjustments to airspeed in order to meet scheduling requirements. Typical flight path routing fails to consider operational costs associated with atmospheric phenomena, hazardous weather avoidance, region avoidance and arrival time constraints. There exists a need for a system that addresses these shortcomings. SUMMARY The invention determines an optimized route between a starting location and a destination by minimizing a cost function. The cost function is based on factors including fuel consumed, time, over-flight fees and penalty fees associated with restricted airspace. The invention implements an optimization algorithm for determining both lateral and vertical planes. The routes may be displayed over a global map with data including overlays depicting wind fields and restricted regions. Global databases may provide the data for wind conditions, weather, and temperature profiles. In one embodiment, the invention determines the lateral path using a dynamic programming algorithm. In one embodiment, the algorithm operates by constructing a rectangular grid that overlays both the origin and destination location. Determination of the optimal lateral path proceeds in stages beginning with the initial, or origin location. At each stage, the algorithm examines the transition cost from the current node to each of a set of possible nodes. Optimization of the transition costs for each stage proceeds until the destination location has been reached. The vertical path is determined using calculus of variations methods. Calculus of variations methods is a generalized optimization technique and is known in the art. In one embodiment, the vertical path is based on predetermined data stored as a function of parameters including wind speed, aircraft weight and cost index. A filter is used to smooth the route while it is being generated. Filtering improves the quality of the route by minimizing the effects of quantization. Quantization of the calculation may result in an optimal route that requires excessive heading and altitude changes. The user can select from among various routing choices. For example, wind-optimization routing results in substantially maximizing the favorable effects of taihvinds and substantially minimizing the detrimental effects of headwinds. Region avoidance routing provides an optimal route that circumvents specified geographical regions. Similarly, over-flight routing provides an optimal route that considers over- flight costs in calculating a route. Required time of arrival routing provides an optimal route that achieves a desired arrival time. BRIEF DESCRIPTION OF THE DRAWINGS In the drawings, like numerals describe substantially similar components throughout the several views. Figure 1 is an example of a routing scenario. Figure 2 is a global view illustrating a rectangular state space search region. Figure 3 is a map showing wind contours, a great circle route and a wind optimal route. Figure 4 is a map showing exemplary routes circumventing various restricted regions. Figure 5 is a grid illustrating path development between nodes A and B. Figure 6 is a grid illustrating possible departure segments from selected nodes. Figure 7 is a larger scale view of a portion of Figure 2. Figure 8 is a global view depicting wind fields over 50 knots at a particular altitude. Figure 9 is a larger scale view of a portion of Figure 8. Figure 10 is a global view illustrating a great circle route and a wind- optimized route between a node at an origin location and a node at a destination location. Figure 11 is a global view illustrating exemplary routes between a node at an origin location and a node at a destination location, in light of an avoidance region. Figure 12 is a view illustrating exemplary routes between a node at an origin location and a node at a destination location based on considerations of overfly costs and minimum fuel. Figure 13 is a global view illustrating a minimum fuel route and a minimum fuel to satisfy a required arrival time route between a node at an origin location and a node at a destination location. Figure 14 is another view of a grid illustrating path development between nodes A and B. Figure 15 is a coordinate system illustrating one geometry for route planning. Figure 16 is an illustration of geometry with a state space grid superimposed. Figure 17A is an illustration of one embodiment of a segment numbering system. Figure 17B is an illustration of departure segments, corresponding to Figure 17A, based on an approach segment. Figure 17C is a tabular representation of the data of Figure 17 A. Figure 17D is a tabular representation of step increments as a function of departure segments. Figure 17E is a tabular representation of reciprocal segments. Figure 18 is an illustration of lengthened paths around a great circle. Figure 19 is a depiction of the vertical flight path regimes. Figure 20 is an illustration of quantization effects. Figure 21 is an illustration of departure segments at a node. Figure 22 is an illustration of path filtering. Figure 23 is an illustration of the effect of filtering on route selection. Figure 24 is a block diagram illustrating implementation of one embodiment of the invention. DETAILED DESCRIPTION In the following description, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that structural, logical and electrical changes may be made without departing from the scope of the present invention. The following description is, therefore, not to be taken in a limited sense, and the scope of the present invention is defined by the appended claims. The terms path, route, and trajectory are used interchangeably. In addition, a node represents a physical position in space corresponding to latitude, longitude and altitude (or other such coordinates). The term "location" as used herein, is reserved generally for the node associated with the origin or destination and corresponds to the beginning and ending, respectively, of a particular route. The description is divided into multiple sections. The first section provides an overview and an example of route optimization. The second section describes one embodiment of lateral path optimization and application to flight path optimization and includes information showing possible results. The third section describes one embodiment of vertical path optimization as applied to various flight regimes. The fourth section describes one embodiment of path filtering and quantization. The fifth section describes an embodiment of a computer system adapted for implementing the invention. Section 1 The invention relates to determining optimal path routing. In one embodiment, the horizontal, or lateral, path is optimized by an iterative process of evaluating a plurality of alternative routes. As explained subsequently, the alternative routes are defined by the interconnections between nodes. In one embodiment, the position of the nodes is arbitrary. In another embodiment, the nodes are positioned at predetermined points arranged in geometric relation to the position of the origin and destination locations. In other words, the nodes may be distributed uniformly and arranged in a geometric grid pattern. Alternatively, the position of subsequent nodes may be defined in relation to the position of previous nodes. In other words, the nodes may be positioned, or defined, concurrent with the development of an optimized route, thereby, eliminating the requirement of a grid. In another embodiment, the nodes may be arranged in concentric segments of semi-circles. For example, the first set of nodes may consist of the set of points lying on a one mile radius spaced at 10 degree arcs, along a 180 degree semi-circle. In this embodiment, subsequent sets of nodes may be defined at subsequent arcs projecting radially from the nodes lying on the optimized route. Figure 1 depicts an example of traveling from location A to location B. Grid 100 encompasses the space between the two locations and is of rectangular configuration. For this example, travel can proceed along any one of three possible paths where each path is made up of segments. As used herein, "segment" refers to a portion of the flight path between nodes and the term "segment" may be further modified as in "approach segment" and "departure segment" wherein the directional term is with respect to a particular node under consideration. Referring again to Figure 1, from location A, the available routes are segments 110, 130, and 150, leading to nodes marked x, y, and z respectively. As used herein, the term "stage" refers to the transition from one node to a group of nodes. At the next stage, just as at the first stage, travel can proceed along any one of three possible segments. In this example, the three available segments in the group are 120, 140 and 160. Therefore, the path options can be denoted as A-x-B, A-y-B and A-z-B. A transit cost can be calculated for arriving at node x, node y, and node z. Similarly, a cost can be determined for each possible travel path that finishes at location B. Assume that arrival at node x carries a cost of $1.00, y is $2.00 and z is $3.00 and arrival at location B adds another $1.00. Consequently, path A-x-B will cost $2.00, path A-y-B is $3.00, and path A-z-B is $4.00. It will be seen that path A-x-B carries the least cost. Factors that explain the variations in costs associated with arriving at node x, node y, and node z are familiar to aircraft operators. For example, node x may be enjoying favorable tailwinds, node y may be experiencing a turbulent weather and node z may be associated with burdensome over-fly costs. In air travel, the simple grid of Figure 1 is replaced by a larger grid having many nodes. In the context of the invention, the grid" is sometimes referred to as a state space region, an example of which is seen in Figure 2. In Figure 2, state space region 100 is overlaid atop global map 5. Flight is contemplated between location A and location B. Route optimizing consists of identifying the path that yields the desired results. Desired results might include, but are not limited to, a route that requires the least fuel, least travel time, and the avoidance of geographical and political regions. In some situations it may be desirable to select a route that satisfies a required time of arrival. In addition, desired results might consist of various combinations of these, or other, objectives. Figure 3 illustrates the effects of wind optimization for a domestic flight across the United States. The figure depicts a generally eastbound flight between location A (Los Angeles ) and location B (Washington D.C.). Wind contour lines 10, also generally eastbound, overlay the US map 5 and depict the wind velocity at a particular flight level. Great circle route 30 and wind optimal route 40 are marked on map 5. The difference in flight path routing demonstrates the effects of wind optimization. Figure 4 illustrates the effects of a second optimization option, that is, region avoidance optimization. The figure depicts a generally eastbound flight across the Atlantic Ocean between location A, a Texas location and a location B, a European location. Between the origin and destination location are a number of regions that are advantageously avoided. Special Use airspace 20, severe weather regions 35 and 45 and political region 55 present obstacles to a typical flight. Region avoidance routing capabilities of the invention allows the user to select an optimized route that circumvents these regions. Route 60 and route 70 depict possible solutions as generated by this function. In practice, the user will provide further criteria to enable the invention to make a selection between these alternatives. Such further criteria may include wind contour lines or a required time of arrival. Various types of regions may be avoided using this function, including environmentally sensitive regions. In addition, the invention can accommodate changes in position, area, and degree of danger or cost associated with the avoidance region. Route optimization considers multiple paths throughout the grid where each path is defined by the segments between nodes. Consistent with the mode of optimization, the algorithm selects the least cost route between the origin and the destination as connected by the segments. In the example of Figure 1, only three intermediary nodes and two stages were considered. In practice, there may be thousands of nodes and thousands of stages. The example treated the arrival cost at a particular node as though it were purely numerical. In the invention, the costs associated with each particular node must also be correlated with information about the direction of approach to that particular node. In other words, it may cost $5.00 to arrive at a node from the southwest, $5.50 if arriving at the same node from the west, and $6.00 if arriving from the northwest. Figure 5 provides an illustration showing the segmented route generated by this method for travel between location A and location B. Grid 100 provides a reference for the plurality of nodes of which node x, node y, and node z are marked. Segments connecting various nodes are marked 110, 120, 130, 140, 150, and 160. In addition, the example treated node A as having three possible departure segments and nodes x, y, and z each having a single departure segment. In one embodiment of the invention, each node has nine possible departure segments for every approach segment. Figure 6 illustrates one variety of possible departure segments, wherein node A is the origin location from which nine departure segments are possible. Node x and node y can be reached from node A in a single segment. As a function of the direction of approach at node x (denoted as segment 110), this embodiment of the invention provides nine possible departure segments from that node. Similarly, from node y, there are nine possible departure segments available from node k based on the approach segment to node k (denoted as segment 120). Thus far, the example has only considered the lateral route. Air travel also includes a vertical path and this too can be optimized. Parameters associated with the optimization of the vertical path include wind speed, aircraft weight, and cost index. The cost index serves as a model of the aircraft performance. Based on these parameters (including wind speed, aircraft weight, and cost index) there is a corresponding optimum cruise altitude, speed and fuel flow rate. In one embodiment of the invention, the vertical path is optimized using a stored look-up table. As previously noted, various external factors affect the optimization calculation. These factors include wind speed and direction, over-flight fees, special use or restricted airspace, and flight scheduling concerns. Optimization necessitates a balancing of these factors. For example, optimization based solely on wind data may provide a route that carries substantial over-flight fees, violates restricted airspace and may actually reach the destination too late. A different optimization may strike a satisfactory balance in that wind advantages are substantially maximized and disadvantages are substantially minimized, commensurate with substantially minimized over-flight fees and avoidance of restricted airspace (regions) in which the flight satisfies a required time of arrival. In one embodiment of the invention, routes can be displayed over a world map as in Figure 3. Overlays may include wind fields, restricted regions and regions associated with over-flight fees as in Figure 4. Fuel requirements as well as en route times can be displayed and compared for various routes. Comparisons can be made with great circle and other routes. Corresponding with the parameters to be optimized, typical modes of operation for the invention include wind optimization, over-flight fee optimization, region avoidance, and meeting a desired time of arrival. In operating one embodiment of the invention, the user specifies the origin and destination locations, the parameters (or parameters) to be optimized, and selects a viewing option. Users of the invention may include the aircraft pilot or other flight planning personnel. Viewing options might include selecting from among various depictions of the globe or a map and may include options for image rotation and zooming. The user also may be presented with various options for saving calculated routes. Other options allow for retrieval and display of previously saved routes. These functions allow the user to compare various routes. Other functions may allow the user to display multiple routes simultaneously or overlay such data as wind maps or restricted regions. In one embodiment, an assortment of features allows the user to compare routes based on forecasted, as well as actual, weather. Section Two The description of the lateral path optimizer is organized as follows: A. Overview - including summarized process steps and various optimization schemes. B. Dynamic Programming Method - derivation and algorithm overview; includes coordinate transformation and detailed process steps. C. Application to flight path optimization. D. Representative Pseudo Code for implementation. E. Implementation of avoidance region and over- flight fees. F. Implementation of Required Time of Arrival along with alternative methodologies. G. Results obtained in various modes of optimization. Part A - Overview The invention utilizes a dynamic programming method for determining an optimal lateral route. The following description provides an overview and additional detail regarding the dynamic programming method. More detailed descriptions of dynamic programming appear in later sections of this application. In one embodiment, given the location of the origin and destination, a state space search region (or "grid") is generated encompassing these locations. Figure 2 shows a state space search region for a flight from Minneapolis to Paris. Figure 7 depicts a smaller scale view of a portion of this state space region 100. Figure 7 illustrates one embodiment of a node arrangement, wherein node x, node y and node z are marked atop a portion of map 5. In one embodiment, the grid encompasses the region to be searched for the optimal flight path and has dimensions N θ by N φ . The size of the grid is a balance between the computation time and range of options for a suitably optimized route. In other words, if the grid is too small, then, in attempting to optimize, the invention will specify a route that follows along a boundary of the grid. This indicates that the boundary of the grid is serving as an artificial limitation on the optimization of the route. On the other hand, if the grid is too large, then computation time is longer. The grid extends a short distance beyond the origin A and destination B locations to allow for advantageous, but circuitous routes. In one embodiment, the grid includes a large number of latitude and longitudinal lines and has a node at each intersection. The invention optimizes a route of inter-connected nodes throughout the grid. The method implemented by one embodiment of the invention is as follows: 1. Beginning with the origin location, an approach segment is assumed and nine departure segments are generated. This is the first stage. For each approach segment there are nine possible departure segments. The incremental cost for each transition is calculated. The nodes thus generated become active nodes. Active nodes are nodes eligible for further extension and consideration as part of the solution to the optimization process. 2. At each active node generated by the first stage, a set of nine departure segments are generated. This is the second stage. The incremental cost for each transition is again calculated. The total cost to the next node is calculated by adding the incremental cost to the accumulated cost. The recursive equation for the accumulated cost is given by: C i + ] (θ i + ] ,Φ i + 1 M min [C i (θ i ,φJ + ΔC(Δθ,Δφ)] a ,π,C j ,h,V a If the node was reached previously by a different path, then the path having the lowest accumulated cost, along with the direction of approach, is retained with that node in the grid. 3. The process continues in stages. For each active node, a set of nine possible departure segments are generated. The node which was extended then becomes inactive. An inactive node can become active again if reached by an extension and the new cost is lower than the previous cost to reach that node. This is implemented by providing an even stage active node list and an odd stage active node list. This technique allows one active node list to be retained while the other is being generated. 4. At each reached node, the cost is compared to the cost at the destination node. If the cost at the node is larger than the cost to the destination node, then the node is removed from the active node list. Initially, the destination node is assigned a sufficiently high cost. If the assigned cost to arrive at the destination node is too low, then no other path will be found to be lower. In this case, the optimized cost to arrive at the destination node will match the assigned cost to arrive at the destination node. To prevent such a result, optimization should be repeated using a higher cost to arrive at the destination node. The process continues until no active nodes remain. 5. The path is then generated by starting at the destination node and proceeding backwards from the destination location to the origin location using the stored direction of approach associated with each node in the path. The invention may incorporate data from a variety of sources in determining the cost to arrive at any particular node. The invention may utilize global databases showing regions having over-flight fees and restricted airspaces. The invention may also utilize data showing wind and atmospheric information. As an example of such data, consider the wind data illustrated in Figure 8. The figure depicts a global view of prevailing winds exceeding 50 knots at a selected altitude. Wind information is represented by wind barbs. Figure 9 depicts a closer view of such a wind barb 165 in a particular geographic region. Each wind barb 165 denotes wind direction and magnitude. The magnitude is indicated by the tail 170 on the barb, wherein a triangle 175 indicates 50 knots and each line 180 indicates an additional 10 knots. Wind direction is denoted by the barb direction indicated as 185. Depending upon the desired optimization selected by the user, various routes may be generated. Optimization choices available to the user include the following: Wind Optimal Routing: as previously noted, Figure 3 illustrates the effects of wind optimization on routing. Figure 10 provides map 5 illustrating another example of wind optimal routing. In Figure 10, origin location A represents Los Angeles and destination location B represents London. Route 240 is the shortest distance corresponding to the great circle route. Route 250 is a wind-optimized route that requires less fuel and less en route time. Region Avoidance Routing: as previously noted, Figure 4 illustrates the effects of region avoidance optimization. Figure 11 provides another example of region avoidance routing. The illustration depicts a flight from location A in Minnesota to location B in Paris wherein a hazardous weather system lies along the path between the two cities. Flight route 260 circumvents the weather system with minimal fuel and flight route 270 passes through the weather system 275 with minimal fuel. Over-Flight Fees: A third optimization can be performed to minimize over- flight fees. Certain political regions levy over-flight fees for transient aircraft. Over-flight fees may be an attempt to mitigate harm from noise and pollution. Routing of aircraft to avoid such fees can be cost effective. The subject matter calculates routes based, in part, on the over-flight fees. Routes minimizing over-flight fees can be compared with alternative routes offering such advantages as reduced transit time or reduced fuel consumption. Figure 12 illustrates an example of a route configured with regard to over-flight fees. A minimum fuel route from location A (Anchorage) to location B (New York) with over-flight fees over Canada 220 is shown. An over-flight fee is assumed to be charged for flight in Canadian airspace. Three routes are shown: (a) a minimum fuel, labeled 190; (b) minimum fuel with Canadian overflight fees 210; and (c) minimum fuel with a specified time of arrival 200. Required Time of Arrival: A fourth optimization function enables the user to specify a required arrival time. Accurate flight scheduling reduces operating costs and therefore, efficiency. The invention enables route optimization that capitalizes on the favorable effects of tailwinds while avoiding unfavorable headwinds, circumvents weather or other restricted airspace, and yet achieves the required time of arrival. Figure 13 depicts the effect of arrival time on aircraft- routing. Route 230 provides the lowest fuel requirement but at the cost of a delayed arrival. Route 220 satisfies the arrival time requirement at a minimum fuel consumption. During the course of a flight, changed conditions may compel a change in routing. Such changed conditions may include un-forecasted weather, equipment failure, or even in-flight emergencies. Dynamic routing enables determination of a new route based on the present aircraft position and the desired destination. Such in-flight dynamic routing can be performed by ground-based operators or airborne personnel. As with the aforementioned modes of optimization, dynamic routing may include altering the lateral path, the vertical path, and speed profiles. Part B - Dynamic Programming Method Dynamic programming can be applied to optimization where the objective is to minimize J N+] [x(N+l)], where J N + I = , min ∑ L[x(j),u(j),j] u(l) u(N) j = ι where the states x(k) obey the following state transition equation: x(k + l) = g[x(k), u(k), k] ; k = l,N and the states and the controls are subject to the following constraints: C[x(k),u(k)] < 0 The underlying principle of dynamic programing provides that an optimal policy has the property that whatever the initial state and initial decision are, the remaining decision must constitute an optimal policy with regard to the state resulting from the first decision. This principal is applied in a recursive solution for the controls and is determined as follows. The optimum cost function becomes: J jc+l _ min ∑ Lfx(j), u(j) ] u(l)— u(k) j=ι Expressed in recursive form, this becomes: J k+1 = x(j), u(j),j]} J +I = min{L[x(k),u(k),k]+ min u(K) u(l) u(k . "∑ WJ uCD ]} -l) j =l j=l or J k+I min{L[x(k),u(k),k] -ι- J k } u(K) Substituting for the x(k) J k+] = min{L[g(x(k - l)),u(k),k)] + J k } u(K) This technique, when applied to route optimization, becomes a matter of beginning with a specified initial state and achieving the desired final state. In other words, begin with a set of possible initial conditions and end up at the final location, or expressed alternatively, start at the initial location and end at a set of possible final locations. Figure 14 depicts the dynamic programming approach. Figure 14 represents routing expressed in coordinates x, and x 2 where the origin location A is denoted as x(l) and the destination location B is denoted as x(N). Path 300 and 310 are alternative routes approaching the destination location B. The recursive optimization function being implemented is J k+1 = min{L[g(x(k - l)), u(k), k)] + J k } u( ) As noted in Figure 14, the previous stages are represented as x (1) (k) having cost J^ j . and x (2) (k) having cost J 2* ^. The decisions and transition costs can be represented as ΔC[x(k), u(k),k]. In one embodiment, to achieve a solution using dynamic programming, the following steps are performed: 1 ) Construct a state space grid having dimensions x=(x j ,X2). 2) Divide into stages wherein k denotes a particular stage number. A stage is defined as the step to the next set of nodes. 3) At each stage, the cost associated with the transition from the current state x(k) to the set of possible states is calculated. Possible states descending from current state x(k) include x (k+l),x (k+1)... 4) The optimal control u(k), and the corresponding performance value J k is derived from the recursive optimization function. If the state has been reached before retain the lowest accumulated cost at the node and the corresponding approach segment. 5) The process ends when the desired destination state has been reached and the cost to other states is greater. Determine the total accumulated cost to the state from the recursive optimization function. 6) The optimal path corresponding to the initial state x(l) is recovered by inserting the optimal control policy. Dynamic programming is advantageous because it finds a global solution and accounts for state variable constraints. Part C - Application to flight path optimization In route optimization, there are seven states, namely: velocity V, flight path angle γ, heading ψ, altitude h, longitude θ, latitude φ, and mass of fuel m f . Quantization of each state to N levels would create a state space grid having dimensions characterized by N grid = N v x N γ x N ψ x N h x N θ x N φ x N mf . Such a grid would include an extremely large number of nodes. Practical approximations can reduce the dimensions of the grid and yet render a reasonable solution with a marginal effect on accuracy. A first assumption is that the aircraft flies only in cruise mode. Cruise mode is operation at a quasi-steady state (relatively constant speed and altitude). Also, it is assumed that the climb-to-cruise and the descent-from-cruise transitions are made instantaneously. These approximations allow discarding of the velocity, flight path angle and altitude states (N,γ, h). Furthermore, because the final state is a great distance from the initial state, the heading state ψ may also be dropped. The mass of fuel state m f may further be omitted. The remaining states are then longitude and latitude (θ, φ) and the grid dimension becomes Νgrid=Ν θ x N φ . Based on these assumptions, two equality constraints must be satisfied as follows: T(h, V., π) = D(h, V a , C L ) L(h, V„ C L ) = W The integral cost function can be expressed in a recursive form as follows: M J o ' [ (FFR VMds s¥, FFR V: c 'y The transition cost (ΔC) is given by then, the recursive formula for the cost is C i + 1 (θ i + 1 ,Φ i + 1 ) = C 1 (θ j ,φ i ) + minΔC(ΔΘ,Δφ) The lateral acceleration a^ is selected to make the transition to the new latitude-longitude position. The remaining control variables (vertical flight control variables) are chosen to optimize the transition costs (ΔC). Thus, the general method can be broken into a lateral path solver and a vertical path solver. Route Solver Module In one embodiment of the invention, the route solver performs the optimization calculations. As applied to flight path optimization, one embodiment of the route planning geometry is shown in Figure 15. Figure 15 depicts a three-axis coordinate system of X e by Y e by Z e . Angle θ and angle φ denote the longitude and latitude, respectfully, and N denotes the velocity. Other variables in the various equations are assigned the following definitions: *y lateral acceleration m mass m f mass of fuel C cost function R radial height Cl fuel-time cost index Ro radius of the earth D drag S arc length FFR fuel flow rate SOS speed of sound g gravity constant T temperature h altitude Tx,Tz thrust components L Lift V Velocity M Mach Number θ longitude φ latitude μ gravitational constant ψ heading ω e earth's rotation rate σ roll angle p density γ flight path angle The objective of minimizing, or achieving, a desired parameter is expressed in the form of a cost function. The cost function may contain a number of terms, including fuel, time, weather risk, over-flight fees and restricted areas. Variables denoted as K are gain factors and Cl denotes the fuel- time cost index. The cost index is a function of the aircraft and engine performance and operating environment. S ' L FFR + CI. C = i\[ ] + K r R(θ,φ) + K w W(θ,φ) + K sua SUA(θ,φ) + K p P(θ,φ) + K e e(θ,φ) ^ds o Any term in the above equation can be eliminated by setting the gain factors K^ or Cl, to a value of zero. To simplify the description, only the fuel and time terms will be used. The other terms will be added subsequently. Minimizing the cost function amounts to minimizing the weighted sum of fuel and time. Mathematically optimization can be stated as follows: This calculatioμ is subject to dynamic and static constraints as follows: CT — T ~ ) V = — gsinγ + ω c Rcosφ(sinγ cosφ - cosγ sinφsinψ) m (L- T 7 )cosσ , V 2 cosγ „ _ ω^Rcosφ / , . . , . γ = - (g ) 2ω. cosψ cosφ -i — - (cosγ cosφ + sinγ sin ψ sin φ) mV R V Y V (L-T z )sinσ V ω e Rcosψsinφcosc ψ- cosγ cosψ tanφ + 2ω ε (ta γ sinψcosφ -sinφ) + - mVcosγ R Vcosγ h = Vsinγ Vcosγ cosψ θ = R = R 0 + h Rcosφ Vcosγ sinψ φ = R m-r = FFR where the initial and final condition are given by: h(to)=ho θ(t 0 ) = θ 0 ; θ(t f ) = θ f The values of the constants are as follows: - μ = 1.4076554xl0 16 ft 3 /sec 2 R 0 = 2.092574x10 7 ft ω, = 72921112xl0- 5 rad/ sec Vehicle and atmospheric models are utilized to solve the aforementioned equations. These models can be expressed as follows: Vehicle Models T=T(h,V,π,T e ) thrust D=D(h,V,α,δ e ) drag L=L(h,V,π,T e ) lift FFR=FFR(h,V,π,T fuel flow rate Atmospheric Models T e =T e (θ,φ,h) temperature profiles V w =V w (θ,φ,h) wind profiles P = P(T e ) density SOS=SOS(T e ) speed of sound The dynamic programming approach is explained next. First the aforementioned equations are expressed as discrete state transition equations as follows: V = V+ VΔt γ = γ + γ Δt θ(k + l) = θ(k) + θ(k)Δt φ(k+ l) = φ(k) + φ(k)Δt ψ(k+ l) = ψ(k) + ψ(k)Δt h(k + l) = h(k) + h(k)Δt m f = m f + FFRΔt Also Λ ΔS Δt = — V FFR Λ C dm f A Δm f = ΔS = Δs f V ds Δψ is defined as a v Δψ = — Δt V The parameter Δψ is limited by the maximum allowable acceleration of the aircraft. Route Solver - algorithm overview The geometry for the route solver algorithms is shown in Figure 16. Much like the geometry of Figure 15, a three-axis geometry 50 is again depicted. In Figure 16, the origin location A has spherical coordinates longitude θ 0 and latitude φ 0 shown in geometry 50, and the destination location B has spherical coordinates longitude θ d and latitude φ d shown in geometry 50. In one embodiment of the invention, these standard earth centered spherical coordinates are then transformed to the rectangular geometry denoted in grid 100 of Figure 16 wherein origin A' has coordinates i 0 and j 0 (cooresponding to origin A) and destination B' has coordinates i d and j d (corresponding to destination B). The rectangular geometry of grid 100 of Figure 16 may be thought of as a spherical coordinate system with the equator positioned between the origin and destination. In the same manner, the weather profiles and avoidance region coordinates are also transformed to rectangular geometry. This transformation makes the grid more dimensionally uniform. After determining an optimal route, the route coordinates are then transformed back to the standard earth centered spherical coordinate frame. The coordinates are made discrete according to: ^ cos( φ) Δθ (Φ - Φo) J Δφ Route Solver steps detailed The steps performed in the route solver algorithms are as follows: 1) In one embodiment, a pair of active node lists are generated. An even active node list and an odd active node list are generated so that the old active node list can be retained while the new active node list is being generated. The active node list contains the location of the node as shown in the Table 1. At the origin location (first active node), nine heading directions are generated. This is the first stage. The incremental cost for each transition is calculated. Even Node List: iO=active_e(nt,l) j0=active_e(nt,2) Odd Node List: i0=active_o(nt, 1 ) j0=active_o(nt,2) Table 1 : Active Nodes After the first stage, for each active node, nine departure segments are generated. One embodiment of the invention utilizes a numbering scheme for the segments as shown in Figure 17A, 17B, 17C, 17D and 17E. Figure 17A graphically illustrates twenty-four radial directions and their corresponding numerical labels. Figure 17B illustrates the nine departure segments that are generated by the invention based on an entry direction corresponding to a segment marked 3. The segments depicted in Figure 17B correspond to the radials in Figure 17 A and are marked 1 , 5, 6, 11, 12, 19, 20, 4 and 2. The table of Figure 17C indicates the approach segments as "i" and the nine departure segments as "j". For example, approach segment 3 corresponds to departure segments marked 1, 5, 6, 11, 12, 19, 20, 4 and 2. 29 Figure 17D is a tabular representation of the segment corresponding to each numbered departure segment. For example, departure segment 1 corresponds to segment 1 as shown in Figure 17A as well as segment 1 as shown in Figure 17B. Figure 17D provides that Δx(i) is +1 and Δy(i) is 0. The Δx(i) and Δy(i) steps for each of twenty- four exit directions are shown in Figure 17D. As used herein, "step" refers to a change of position relative to the node under consideration and, in this embodiment, is described in rectilinear coordinates. As another example, segment 13 corresponds to a segment that lies between the node under consideration and the node located relative to +2 in the Δx(i) direction and -3 in the Δy(i) direction. Figure 17E is a tabular representation of reciprocal radials for each segment. For example, departure segment 1 corresponds to approach segment 3 and the reciprocal of segment 10 is segment 14. After extending a node it becomes inactive. 2) The total cost to the next node is determined by adding the incremental cost to the accumulated cost. The recursive equation for the accumulated cost is given by: C i+1 (θ i+1 ,φ i+1 ) = C i (θ i ,φ i ) + minΔC(ΔΘ,Δφ) 1) The cost at each node reached (Cp ip p ) is compared to two other costs. The two other costs to be compared with Cp j are, first, the cost previously stored at that node, and second, the cost stored at the destination node. IfCp ip is less than both the cost previously stored at that node and the cost stored at the destination node, then the cost previously stored at that node is replaced with Cp^ : p and the direction of approach to that node is also replaced with the direction of approach associated with Cp ip : p . If Cp ip : is more than either the cost previously stored at that node or the cost stored at the destination node, then the cost, and the direction of approach, previously stored at that node are retained and Cp ip : p , and the corresponding direction of approach to that node, is discarded. C PIPJP The approach segment is determined by the direction of the departure segment from the previous node using the mapping table as shown in Figure 17C. If the cost at the node is larger than the cost to the destination node, then the node is removed from the active node list. 2) The process continues in stages. Inactive nodes can become active again if it is reached by an extension and the new cost is lower than the previous cost to reach that same node. The process continues until no active nodes remain. 3) The path is generated by starting at the destination node and proceeding backward to the origin location using the direction of approach for each node. Part D - Representative Dynamic Programming Pseudo Code The following is representative pseudo code for implementing the dynamic programming route solver in one embodiment. ( 1 ) Indices, Parameters and Data Storage i, j Row and column index of a particular node maxi, maxj Number of rows and columns of node is, j s Row and column index of starting location ie, je Row and column index of ending location maxa Maximum allowed number of active nodes na Number of active nodes nexits _, Number of allowed node exit directions (1 thru 8) icost (maxi, maxj) "Individual node cost" array cp (maxi, maxj) "Accumulated-cost-to-node" array entry (maxi, maxj) "Entry direction" array aexit (8, 8) "Allowed exit directions", for 8 entry possibilities; compass convention is: active (maxa, 2) Table of active nodes, contains active i and j indices idelta (8) Distance to a neighbor node in "i" direction (-1, 0, or +1) jdelta (8) Distance to a neighbor node in "j" direction (-1, 0, or+1) active_flg (maxi, maxj) Active/not active flag for each node iomap (8) Exit node-to-entry node remapping (180° rotation) (2) Initialization Set all cp j = Reset cp ιeje = °° Set all entry =0; Reset entry ιeje =l Set all active_ = 0 ; Reset active_flg =1 Set active j j = ιe; Set active j j =je ; Set na=l • Set aexit m,n m nl n2 n3 n4 n5 n6 n7n8 n9 1 3 7 8 15 16 23 24 4 2 2 4 8 5 9 10 17 18 3 1 3 1 5 6 11 12 19 20 4 2 4 2 6 7 13 14 21 22 1 3 5 7 2 3 14 15 22 23 6 8 6 8 3 4 9 16 24 17 7 5 7 5 4 1 10 11 18 19 8 6 8 6 1 2 12 13 20 21 5 7 9 13 6 12 20 21 2 22 11 15 10 14 22 2 21 7 15 23 12 16 11 15 7 14 22 23 3 24 9 13 12 16 21 3 23 8 9 17 10 14 , 13 9 24 16 8 17 4 18 11 15 14 10 17 4 18 5 11 19 12 16 15 11 18 10 5 19 1 20 9 13 16 12 19 1 20 6 13 21 10 14 17 21 12 6 12 2 22 14 19 23 18 22 13 21 2 14 7 15 20 24 19 23 14 7 15 3 24 16 17 21 20 24 15 23 3 16 8 9 18 22 21 17 16 8 9 4 18 10 19 23 22 18 9 17 4 10 5 11 20 24 23 19 10 5 11 1 20 12 17 21 24 20 11 19 1 - 13 12 6 18 22 Set idelta n , for n=l 24= +1, 0, -1, 0, +1, +1, -1, -1, -2, +2, +3, +3, +2, -2, -3,-3, -1, +1, +3, +3, +1, -1, -3 -3 Set jdelta- j , for n=l 24 = 0, -1, 0, +1, +1, -1, -1, +1, +3, +3, +2, -2, -3, -3, -2, +2, +3, +3, +1, -1, -3, -3, -1, +1 • Set iomap n ,for n=l 24 = 3, 4, 1, 2, 7, 8, 5, 6, 13, 14J5J6, 9, 10, 11, 12, 21, 22, 23, 24, 17, 18, 19, 20 • Set nexits (3) Compute Minimum Cost from End Location to Start Location • LOOP: until number of active nodes, na, = 0 • nc = 0, will contain number of active nodes added in inner loop • LOOP: for each active node, n. n from 1 to na • Get the indices, i, j of the active node from activ^ ! active 2 • Set active_flg j • = 0 • Get direction of last entry, k_ent from entiy • LOOP for each allowed exit direction, k. Note: k from 1 to nexits, except very first time k from 1 to 8 • Get candidate direction of exit, k_exit, from aexit k ent>k • Compute indices, ip, jp of neighbor node in exit direction: ip = i+ idelta k _ exit ; jp =j+ delta k_e χ it • Compute cost from neighbor node to end location: choose one 29 If cost <cp j and cost<cp ls s save cost, and entry directions of active nodes Increment number of active nodes, nc = nc + 1 • End ofn Loop • na = nc • End ofna Loop (4) Route Generation Indices, ipath- j jpath j . , from Start Location to End Location • ipath j -^s ; jpath j =js; n=l • LOOP: until the end location, ipath-^e and jpath^e , is reached • ip=ipath ; jp-=jpathn ipath n+1 =ip+idelta eιltιy ipJp jpathn+1 =jp+jdelta entιyip p • Increment counter, n = n + 1 • End of Loop Part E - Avoidance Regions and Over-flight Fees Avoidance Regions: Various methods can be employed to avoid regions. In one embodiment, in addition to the fuel and time cost, a penalty cost is associated with nodes within the avoidance region. The cost function, with the avoidance region cost included, is: FFR + Cl ΔC = [ , * v ^ ]ΔS + K r R(θ.φ) If the region is to be avoided at all costs, then a very large number is assigned to R(θ,φ) within the region. If the penalty in the region is varying, then varying values can be assigned to the function R(θ,φ) within the region. The factor K- is adjusted to change the proximity of the path to the higher penalty areas of the region. In another embodiment, the nodes within a region to be avoided can be eliminated from the grid. By eliminating nodes in avoidance regions, the number of calculations required for optimization is reduced. Regions treated as avoidance regions include regions of severe weather, special use airspace, politically sensitive regions, and environmentally sensitive regions. The cost function including the different region types is: FFR + Cl ΔC = [ ]ΔS + K r R(θ,φ) + K w W(θ,φ) + K sua SUA(θ,φ) + K D P(θ,φ) + K e e(θ,φ) Over-Flight Fees: The cost of over flight fee are included in the cost function expressed in the following form: FFR + CI ΔC = [ ]ΔS + K 0 O f ΔS where Of is the over flight charge per distance traveled. The factor Kf can be raised or lowered. A high gain will generate routes which may reduce, or even avoid, the over-flight fees. Part F - Required Time of Arrival (RTA) A required time is reached by adjusting the Cost Index (Cl). In one embodiment, the route may be determined by iteration. First, an initial time cost index (Cl) is selected. The selection of an initial Cl can be made by the user or the computer may supply a value. Next, an optimized path is determined from which the time of arrival at the destination location is determined. The difference between the determined time of arrival at the destination location and the desired time is determined. ΔT - t desιred t fmal Next, the cost index is adjusted. Here, the cost index carries a heavy weight on time. CI 1+ , + CI, + t ΔT Increasing the cost index causes an earlier time of arrival and decreasing the cost index causes a later time of arrival. The weight and time at each node is determined from the following equations: W(θ 1+1 ,φ I+1 ) = W(θ 1+1 ,φ 1+I ) + Δm f t(θ l+1 ,φ I+1 ) = t(θ 1+1 ,φ 1+1 ) + ΔS / V The cost index can only be reduced to a value corresponding to the maximum endurance cruise condition for that particular aircraft. At the maximum endurance, the fuel flow rate is at a minimum and the optimum cruise airspeed is then a function only of aircraft weight. To achieve time of arrivals later than that achieved with the minimum cost index, additional processes are used. Exemplary processes are as follows: 1 ) If the required time of arrival is earlier than that which can be achieved by setting Cl at a minimum value, then Cl is set to minimum cost index Cl j - j i,.. The cruise airspeed, altitude and fuel flow rates may be computed from the tables using the current aircraft weight and the minimum cost index CI^. FFR = FFR(W,CI mιn ) h cm = h cπ ( W > CI mιn ) cru = ^cru " » l m m 2) The route is computed using one of the following methods: A) Cost Function Method 1) The cost function in the lateral route solver is changed from minimum fuel and time to minimizing distance and time. The cost function increment is: ΔC = ΔS + C s Δt 2) An initial value of C s is chosen (by the user or the computer may supply a value) and an optimized route as well as time of arrival is determined. The time of arrival error (difference between the calculated time of arrival and the required time of arrival) is determined, and the factor C s is adjusted according to the time of arrival error: C s = K s (T re re Q q - T) 3) The iteration process is continued until the required time of arrival is achieved. B) Path Stretching Method 1) A set of paths around the great circle, shown in Figure 18, is defined by: where increasing values of φ 0 increase the length of the path. 2) An initial value of φ 0 is chosen, and the path is computed using the airspeed, fuel flow rate, altitude and ground speed, and the time of arrival is determined. If the required time of arrival is not achieved, then the of φ 0 is adjusted with the time of arrival error: φ 0 = K t (T req - T) Part G - Route Computation Results The invention can provide advantageous routing as demonstrated by the following comparisons. It is noted, however, that these results are generated using assumed wind and atmospheric data as well as over-flight fees and avoidance regions representative of those existing at a particular time. As such, there exists no guarantee that future results will be similar. The following data shows results for these four cases: 1) Wind Optimal Routes 2) RTA Routes 3) Region Avoidance Routes 4) Over-flight Fee Routes 1. Wind Optimal Routes: A wind optimal route for a commercial aircraft flying from location A (Los Angeles) to location B (London) is shown in Figure 10. The wind data is overlaid atop the image and is similar to the wind field illustrated in Figure 8. Great circle route 240 is also shown for comparison. The wind optimal route deviates to the south to take advantage of favorable tailwinds. A comparison of the fuel and time is given in' Table 2. Table 2: Wind Optimal Route Comparison of Fuel Used and Time Los Angeles to London The data shows a wind optimal route exhibits a savings of 6,145 pounds of fuel and 20 minutes of flight time. RTA Routes: Wind optimal routes having a required time of arrival time (early and late) for a route between location A (Los Angeles) and location B (London) is shown in Figure 13. The wind data is overlaid atop the image and is similar to the wind field illustrated in Figure 8. The distance, fuel, and time is given in Table 3. The fuel and time for the RTA can be compared to the fuel and time for the no RTA case by referring to Table 2. The required times of arrival are met but with an increased cost of fuel. The required times are achieved by changes in both the lateral and the vertical profile. The average speed on the early time of arrival is increased over the minimum fuel route. The average ground speed on the late time of arrival is less that the minimum fuel route and there is a significant change in the lateral path. Table 3: Comparison of Fuel Used and Time For RTA Routes Los Angeles to London Region Avoidance: The mimmum fuel route for a flight from location A (Minneapolis) to location B (Paris) with an avoidance region 275 shown in Figure 11. The cost associated with nodes in the avoidance region is set to a high value so that the region will be entirely avoided. Three routes are shown: (1) a minimum fuel route with no avoidance region - route 270; (2) a minimum fuel route with the avoidance region, route 260; and (3) a minimum fuel, required time of arrival route with the avoidance region, (similar to route 260). The distance, fuel and time are compared in Table 4. Table 4: Comparison of Fuel Used and Time With Avoidance Region Minneapolis To Paris Over-Flight Fees: A minimum fuel route for a flight from location A (Anchorage) to location B (New York) with over-flight fees in Canada is shown in Figure 12. An over-flight fee is assumed to be charged for Canadian airspace. Three route are shown: (a) a mimmum fuel, route 190; (b) mimmum fuel with over-flight fees, route 210; and (c) minimum fuel with a specified time of arrival, route 200. The minimum fuel route 190 is the great circle route. The mimmum fuel route with the over- flight fees 210 entirely avoids Canada. The middle route 200 is minimum fuel with over-flight fees and meeting a required arrival time. The distance, fuel and time is given in Table 5. The minimum fuel with fees (flight around Canada) route, of course, takes more fuel and time than the minimum fuel route but has the lowest total cost - even when over-flight fees are included. The minimum fuel with fees and RTA route takes less fuel and time than the "around Canada" route but has a higher cost including the fees. Table 5: Comparison of Fuel Used and Time with Over-Flight Fees Anchorage to New York Section Three Vertical Path Solver At each step in the lateral path the transition cost ΔC is optimized. Optimizing of the transition costs ΔC implies optimization of the vertical path. In one embodiment, optimization of the vertical path is performed independent of the optimization of the lateral path. The vertical path is divided into three regimes: 1) climb to subsomc cruise; 2) subsonic cruise; and 3) descent. These regimes are depicted in Figure 19. The following is a description of the assumptions and approximations used for determining the transition cost within, and between, each of these three regimes. 1. Climb to Subsonic Cruise: The cost increment for the climb to cruise is given by this integral: Λc Jft FFR : c ']ds s, v Some approximation are made in calculating this integral. For example, it is assumed that the climb to subsonic cruise is made instantaneously. An increment of fuel and time is added. This increment is calculated and stored as a function of take-off weight. ΔC clιmb = Δm fchm b (W τ o ) + CIΔT chm b 2. Subsonic Cruise to Subsonic Cruise: The cost increment for the cruise to cruise transition is given by this integral: It is assumed that the variables FFR, Cl, and V do not change between S j to S 2 , thus the integral can be expressed as: FFR+ CI ΔC = [ ]ΔS where the arc length increment is given by: Δθ = θ(i + 1) -Θ(i) Δφ = φ(i + l) - φ(i) ΔS = R 0 ΔΘ cosφ) 2 + (R 0 Δφ) 2 The control variables are chosen to minimize this function and to satisfy the cruise equilibrium conditions of thrust equals drag and lift equals weight, i.e., subject to T(h, V a ,π) - D(h,V a ,C L ) = 0 L(h,V a ,C L ) - W = 0 v = V + V The aircraft performance model describing thrust, drag, and fuel flow rates are required for this computation. This optimization operation can be advantageously computed off-line. The fuel flow rate, cruise altitude and speed can be stored as a function of the parameters weight (W), cost index (Cl) and wind speed (V w ). The tables that are stored are: FFR = FFR(V W ,W,CI) h cru = h cnJ (V w ,W,CI) V cru = V cru (V w ,W,CI) In one embodiment, the aircraft weight, cost index and wind speed at the current aircraft location are used to determine the corresponding cruise altitude, speed, and fuel flow rate based on stored tables. The above approach shows a look-up table of three variables. A method of reducing this to a table look-up of two variables is given below. The weight and time at each node is determined from: W(θ i+1 ,φ i+1 ) = W(θ 1+1 ,φ i+1 ) + Δm f t(θ 1+1 ,φ I+1 ) = t(θ 1+1 ,φ 1+1 ) + ΔS / V Because the wind velocity is a function of altitude, and the optimum altitude depends on the wind, the determination of the optimal 9 cruise requires the solution of a transcendental function. This function is solved by iteration. The iteration methods is: 1 ) Set wind speed V w to 0; 2) find cruising altitude h crυ , given Cl and aircraft weight W; 3) find wind speed V w , given h cru ; 4) repeat to find until the cruise altitude does not change h cru 3. Descent: The cost increment for the descent is given by this integral: Approximations are made to simplify this integral. It is assumed that the descent from cruise is made instantaneously. An increment of fuel and time is added based on the distance and speed. This increment is calculated and stored as a function of aircraft weight. ΔC desc = Δm fdesc (W desc ) + CIΔT desc Wind Adjusted Cost Index - Vertical Path Solver The cruise solution is a function of three parameters: (a) wind speed; (b) Cost Index (Cl); and (c) aircraft weight (w). The cruise performance (fuel flow rate, speed, and altitude) may be stored as a function of these parameters, however, this requires storage of a large volume of data and three dimensional table look-up routines. A method to reduce the cruise performance cost from a three dimensional look-up to a two dimensional look-up is described. Following is a description of the method. The cost increment for the cruise to cruise transition is given by: ΔC + [ FFR+CI ]ΔS First, the control variables are chosen to minimize this function and to satisfy the cruise equilibrium conditions of thrust equals drag, and lift equals weight but with the wind equal to zero as follows: FFR(h,V,π) + CI mm h,V,π,C L subject to T(h,V,π)- D(h,V,C L ) = 0 L(h,V,C L ) - W = 0 N = 0 This optimization operation is computed off-line and the fuel flow rate, the cruise altitude and speed are stored as a function of the parameters weight (W) and cost index (Cl). The tables that are stored include: FFR = FFR(W,CI) h cru = h cnι (W,CI) V cnι = V CTU (W,CI) The procedure for including the wind effect is: 1) For the specified Cl and the current aircraft weight, compute the "no wind" cost function increment using: FFR(W,CI) + CI ΔC = V(W,CI) 2) Compute a "wind corrected" cost index Cl'. v G = v T + v w 3) Compute the wind cruise condition with the wind-adjusted cost index FFR = FFR(W,CI ) h cnι = h cnι (W,Cl ' ) V„ = V cm (W,CI ) FFR(W,CI ) + CI ΔC = V cru (W,Cl ' ) Section Four Path Filtering The state space quantization used in the dynamic programming method may lead to ambiguity in the solution, as illustrated in Figure 20. In the example shown in Figure 20, the cost function is the distance traveled between the nodes A and B. For purposes of this example only, it is assumed that the permissible turn directions of the departure segment at each node is 0 , +45 and -45 relative to the direction of the approach segment. This means that at each node, the aircraft is allowed to turn leftward or rightward 45 or continue straight. The region of ambiguity is defined by the outer boundary of the permissible routes as noted by labels 400, 410, 420 and 430. Within this boundary there are a number of paths having equal lengths. A reduction of the grid quantization does not reduce the region of ambiguity. With a finer grid, the path from A' to B' exhibits the same characteristics as above with regard to path A to B. One solution is to provide more departure segments at each node. For this reason nine departure segments are specified, as shown in Figure 21. Limiting the possible departure segments to nine does not reduce the ambiguity size to an acceptable level. To further reduce the ambiguity arising because of the quantization, a filter is used to smooth the route as it is generated. The filtering approach is shown in Figure 22. Figure 22 shows a grid 100 with an optimized path having three segments between node A and node B. The three segments are marked dO, dl, and d2. The filter equations are as follows: D, = = d 0 + d, +d 2 ΔD = D, - - D 2 ΔS = = (do - - w 3 ΔD) w 3 = =.4 Thus, the arc length, ΔS, for the current stage is shortened depending on the path shape defined by the previous two nodes. In Figure 22, the filter would result in the selection of route 1 rather than route 2 as shown in Figure 23. This is a desirable result because post-filtering of the routes would result in a shorter distance using route 1. Filtering of the distance of the candidate routes results in a higher quality route. The filter minimizes the effect of the quantization in the lateral path. Section Five Computer System Figure 24 illustrates a block diagram of one embodiment of the invention 500. Route Solver 510 includes lateral path optimizer 560, vertical path optimizer 570 and time of arrival solver 580. Route solver 510 receives inputs from a variety of sources. Cost index 590 is a function supplied to route solver 510. Required time of arrival 600 is user-specified and also supplied to route solver 510. The user provides a site selection 670 that is coordinated with the city location database 610 which is supplied to route solver 510. Aircraft database 520 is supplied to route solver 510 and includes information about fuel flow rates, speeds and altitude data. Weather information 630 may be derived from a variety of weather sources 660 and includes temperature, wind, and storm cell information. The weather information 630 is supplied to the route solver 510. Data corresponding to restricted regions and costs 640 is supplied to the route solver 510. Data corresponding to over- flight fees 650 is also supplied to route solver 510. Route solver 510 generates the optimum route consistent with the user- specified parameters and conveys the solution to the display componentry. Monitor 540 is subject to control 550 and provides the means of displaying the route information. Monitor 540 derives data from the visualization processing module 530 which includes zoom, rotate and play-back features. The visualization processing module 530 receives data from route solver 510. The visualization processing module 530 receives also has available world map information 520. The invention may be adapted to operate on numerous computer platforms, including such systems as Silicon Graphics Indigo2 R4000/4400 work station or personal computers running such operating systems as Windows 95 or Windows NT. In these embodiments, the user interfaces are functionally similar. In one embodiment, the user interface includes Windows pull-down menus. Alternatively, Motif menus, check boxes, slide bars or any other such operator control functions can be utilized. Various display and control functions may be accessible via pull-down menus. Display capabilities of the work station or personal computer are adapted to depict multiple routes, land and water areas as well overlay selected weather information. Selected weather may include winds exceeding a specified speed. In one embodiment, the disclosed subject matter includes encoding in a programming language such as FORTRAN or C. Processing elements available to the computer for determining optimal routing includes the following: 9 1. Origin and destination locations: This data may include a city location database or latitude and longitudinal coordinates. A user may input this data manually or make a selection from menus. Alternatively, a user may make a selection using a pointer and a map. 2. Vertical motion model: This data provides a model of the aircraft operating performance. 3. Weather database: This data may include daily or hourly weather reports. Data may be measured or forecasted weather and includes global data bases depicting atmospheric, wind, weather, and temperature profiles as well as hazardous weather. 4. Vertical path solver: Algorithms, routines, and data necessary for determining optimal vertical path routing based on selected parameters. This function may be implemented as a look-up table or include arithmetic functions for optimizing the path. 5. Lateral (horizontal) path solver: This includes the dynamic programming model as explained below. 6. Visualization graphics: Drivers and conversion functions to display the calculated path in conjunction with reference data such as maps and global displays. 7. Cost Index model: This model provides the operating parameters of the aircraft, or other vehicle. Aircraft modeling is a function of aircraft and engine performance data, including fuel flow rates. 8. Geographical model: This model provides the data used in depicting the globe and map. Political and geographical data are also included. Computer Programming In addition to the route-planning component of the programming, additional elements provide a graphical user interface (or "GUI") and a graphics- hardware interface. A) In one embodiment, the GUI includes modules that provides the visual appearance of the application and provide overall program control. These modules may be encoded in Motif-based C (for Silicon Graphics applications) or Microsoft Windows Visual C/C++ (for PC applications) or other such language. B) In one embodiment, the graphics-hardware interface module may be written in C using Open GL graphics libraries to render three- dimensional displays. This module computes viewing perspectives, displays the globe, and draws path data on the display surface. C) In one embodiment, the route-planning component computes mimmum time and minimum fuel routes between selected locations using optimization algorithms. Optimization may be performed on either the lateral plane, the vertical plane, or both planes. Suitable global databases characterizing such data as land and water areas, atmospheric, wind and temperature profiles are utilized by the route-planning component. In one embodiment, this function is written in FORTRAN and C. Controls and Features In one embodiment, the user interface features Windows-type pull-down menus. Menu selections enable route generation and user-control of functions such as earth perspective, rotation and zoom. Other controls allow the user to save the current route or display previously-saved routes. Other maps, including wind contour maps and land maps, may be overlaid atop the resulting routes via user-controlled check boxes and menus. Short-cut keyboard controls duplicate some of the pull-down menu functionality. City Location Database In one embodiment, the user is presented with various options for selecting origin and destination locations. Various options for identifying locations include, but are not limited to, pointing and clicking an icon on a map, or entering latitude and longitude coordinates, or selecting city names, or selecting from a database of locations. Such a database may consist of entries as shown below: Number Latitude Longitude Cirv 1 61.17 -149.97 Anchorage 2 13.00 100.00 Bangkok 3 18.94 72.83 Bombay (Mumbai) 4 30.00 31.00 Cairo 5 41.80 -87.63 Chicago 6 32.70 -96.70 Dallas 7 28.63 77.20 Delhi 8 22.00 114.00 Hong Kong 9 21.30 -157.85 Honolulu 10 -26.17 28.03 Johannesburg 11 51.00 7.00 Cologne 12 34.05 -118.23 Los Angeles 13 51.50 0.10 London 14 19.33 -99.17 Mexico City 15 25.77 -80.18 Miami 16 45.00 -93.00 Minneapolis 17 55.75 37.70 Moscow 18 40.70 -74.00 New York 19 48.83 2.33 Paris 20 33.50 -112.17 Phoenix 21 -22.88 -43.22 Rio de Janeiro 22 42.00 12.00 Rome 23 31.11 -122.40 San Francisco 24 47.60 -122.33 Seattle 25 31.00 121.00 Shanghai 26 1.30 103.90 Singapore 27 -33.87 151.20 Sydney 28 17.48 -149.45 Tahiti 29 35.75 139.75 Tokyo 30 47.00 8.00 Zurich Wind Temperature Data Base This data may include daily or hourly weather reports. Data may be measured or forecasted weather and includes global data bases depicting atmospheric, wind, weather, and temperature profiles including hazardous weather. Wind data includes wind speed and direction as a function of latitude, longitude and altitude. Temperature profiles provide temperature data also, as a function of latitude, longitude and altitude. Such profiles are commercially available at six and twelve hour update intervals. One such service, the National Weather Service, provides data in gridded binary format (GRIB) at 1.25° by 1J5 updated twice daily. Figure 8 depicts a global view of such wind data. Conclusion Systems and methods have been described for optimizing aircraft routing. The systems and methods are based on weather and atmospheric information, geographic regions and airspace regions, over-flight fees afrd required arrival time to generate an optimal route. Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown. Many adaptations of the invention will be apparent to those of ordinary skill in the art. As an example, values chosen for the number of generated departure paths from particular nodes, as well as the grid selection, configuration and coordinate system are based upon good operational judgment, and changes may be made, due to differences in judgment or equipment performance, without departing from the scope herein. Accordingly, this application is intended to cover any adaptations or variations of the invention. It is manifestly intended that this invention be limited only by the following claims and equivalents thereof.

Claims: CLAIMS 1. A method of determining a route between an origin and a destination comprising: beginning at the origin, determining mutliple feasible segments from the origin to a node at the end of each feasible segment; iteratively determimng further segments from the nodes to create multiple segment paths between the origin and the destination; and determining the segment path between the origin and destination having the least cost. 2. The method of claim 1 wherein the determination of least cost is a function of weather conditions. 3. The method of claim 1 wherein the determination of least cost is a function of time. 4. The method of claim 1 wherein up to three feasible segments are determined from each node. 5. The method of claim 1 wherein up to nine feasible segments are determined from each node. 6. The method of claim 1 wherein the segments are constrained to lie within a grid logically constructed to contain the origin and destination. 7. The method of claim 1 wherein the nodes are uniformly dispersed within the grid, and the segments are defined to span between selected nodes. 8. A method of selecting a flight path from an origin to a destination, the method comprising: defining a plurality of nodes in a lateral plane, wherein the plurality of nodes comprise the origin and destination; generating a plurality of possible lateral flight paths from the origin to the destination, wherein the plurality of possible lateral flight paths comprise segments, further wherein each of the segments connects two of the plurality of nodes; and generating an optimized lateral flight path, wherein the optimized lateral flight path is one flight path of the plurality of possible lateral flight paths that satisfies a desired optimization criteria, further wherein the desired optimization criteria comprises at least one criteria selected from the group consisting of wind-optimization, region avoidance, over-flight fee minimization and required time of arrival. 9. The method of claim 8 further comprising generating an optimized vertical flight path, wherein the optimized vertical flight path is a function of predetermined parameters, further wherein the predetermined parameters include aircraft weight, wind speed and a cost index. 10. The method of claim 8 further comprising selecting the optimized lateral flight path and the optimized vertical flight path as the flight path. 11. The method of claim 8 including adjusting the optimized lateral flight path while generating an optimized lateral flight path wherein adjusting comprises reducing the length of the optimized lateral flight path as a function of the distances between a set of nodes. 12. The method of claim 8 wherein generating an optimized lateral flight path comprises determining the cost, as a function of the direction of approach, associated with transit to selected nodes. 13. The method of claim 8 wherein defining a plurality of nodes in a lateral plane comprises defining nodes in a geometrically ordered arrangement. 14. The method of claim 8, wherein generating an optimized lateral flight path comprises accessing data selected from the group consisting of atmospheric data, wind field data, restricted airspace data and over-flight fee data. 15. The method of claim 8, further comprising displaying the flight path on a visual display. 16. A computer-implemented method of selecting an optimized flight path from an origin location to a destination location, such that'the selected flight path satisfies specified optimization criteria, the method comprising: defining a grid that encompasses the location of origin and the location of destination, wherein the grid comprises a plurality of nodes of which the origin and destination are nodes therein; generating a lateral flight path by selecting a set of nodes, such that the selected set of nodes satisfies the optimization criteria; generating a vertical flight path within the grid as a function of the wind speed, aircraft weight and cost index; adjusting the lateral flight path while generating the lateral flight path to reduce the length of the lateral flight path; and selecting the adjusted lateral flight path and the vertical flight path as the flight path. 17. The method of claim 16 wherein generating a lateral flight path by selecting a set of nodes that satisfies the optimization criteria comprises generating a lateral flight path by selecting a set of nodes that substantially satisfies a criteria selected from the group consisting of minimizing a cost function, minimizing the fuel consumed by the aircraft, minimizing the time en route, minimizing over-flight fees associated with specified airspace, avoiding a specified region, and satisfying a required time of arrival. 18. The method of claim 16 wherein the grid includes a plurality of uniformly spaced nodes and generating a lateral flight path includes evaluating the optimization criteria at selected nodes. 19. The method of claim 16 wherein generating a lateral flight path by selecting a set of nodes, such that the selected set of nodes satisfies the optimization criteria includes accessing data selected from the group consisting of atmospheric data, wind field data, restricted airspace data and over-flight fee data. 20. A flight path optimizing system for selecting an optimal flight path, that satisifies specified criteria, from an origin location to a destination location, the system comprising: a location database, wherein the contents of the location database corresponds to locations of origin and destination; a data file, wherein the contents of the data file comprises data corresponding to the location database and the contents of the data file corresponds to data selected from the group consisting of atmospheric data, wind field data, restricted airspace data and over-flight fee data;. a vehicle model file, wherein the contents of the vehicle model file corresponds to data representative of fuel flow rates and vehicle performance; a lateral path solver, wherein the lateral path solver includes programming to cause the system to search a lateral region for a lateral path that satisfies the specified criteria; a vertical path solver, wherein the vertical path solver includes stored data representative of fuel flow rate, altitude and aircraft speed as a function of aircraft weight, wind speed and cost index; and a display member to display the lateral path and vertical path. 21. The system of claim 20 further including a filter wherein the filter reduces the length of the lateral path.

Inventors: SCHULTZ ROBERT L, SHANER DONALD A, SCHULTZ, ROBERT, L., SHANER, DONALD, A.
Applicants: HONEYWELL INC, HONEYWELL INC.
Application year: 1999
Main classification: G01C21
IPC codes: B64C13, B64F1, G01C21, G05D1, G08G5