# Optimizing Aircraft Routes in Dynamic Conditions Utilizing Multi-Criteria Parameters
## 3 Materials and Methods  
In analyzing the existing algorithms for constructing optimal flight routes, such as the A*, B*, D*, and Dijkstra algorithms, we applied the methodological approaches described in [3,10,12,13]. The data were collected and processed in accordance with the methodology for processing analytical data when constructing aircraft flight paths (proposed in [9]), and simulations to evaluate the effectiveness of algorithms in solving real-world route planning problems were run. To perform the calculations, we used Microsoft Office Excel spreadsheet processors and MATLAB programs. Each indicator was calculated according to the formulas described in [2,3,8]. **Theoretical and methodological analysis of classical algorithms and variations of their improvement. ** Several well-known algorithms were used to consider the construction of optimal paths and flight trajectories in three-dimensional space, each of which has its own characteristics and limitations. Below are the formulas for implementing the main algorithms (A*, B*, D*, and Dijkstra) with detailed explanations. _The A* (A-star) algorithm_ is one of the most popular algorithms, and its main property is that it always finds the optimal route (if such a route exists) [2,3]. An example of the A* algorithm is well illustrated in [14], which shows an example of the algorithm that demonstrates a path from point **A** to point **B**, avoiding obstacles. The A* algorithm is a heuristic method for finding the shortest path in a graph. It combines elements of the Dijkstra and greedy search algorithms. The A* algorithm searches for the shortest path, and when it encounters an obstacle, it starts looking for alternatives. The main disadvantage of this algorithm is that it requires a large amount of memory to store the links between nodes [2]. There are also various modifications of the A* algorithm, including IDA* and fringe search. These modifications use a forgotten vertex approach, meaning that not all vertices need to be stored in memory, as they can all be reconstructed, which increases performance and reduces memory usage. The function for estimating the total cost of the current path through vertex \(n\) in the A* algorithm is as follows [2]:  
\[f(n)=g(n)+h(n), \tag{1}\]  
where \(f(n)\)--the total cost of the current path through vertex \(n\), \(g(n)\)--the cost of the path from the initial vertex to the current vertex \(n\), and \(h(n)\)--a heuristic estimate of the cost of the path from vertex \(n\) to the target vertex (often using Euclidean or Manhattan distance). Explanation: The A* algorithm determines the path by choosing the vertex with the smallest value of \(f(n)\). The heuristic function \(h(n)\) allows the algorithm to evaluate possible paths more efficiently [2]. Advantages of the A* algorithm:  
1. The efficiency of the algorithm in using heuristics:  
* The evaluation function \(f(n)=g(n)+h(n)\) combines the advantages of heuristics and the exact Dijkstra approach. This means that the A* algorithm has the ability to avoid unnecessary calculations by selecting the most promising routes. * The heuristic function \(h(n)\) allows for estimating the distance from the current vertex to the target, which significantly speeds up the process of finding the optimal route. In practice, according to [2], this approach provides the fastest search in the direction of the target if it does not contain obstacles. 2. Guaranteed optimality: When using additive (consistent) heuristics, the A* algorithm is guaranteed to find the optimal route [2]. This means that if \(h(n)\) never overestimates the distance to the target (i.e., is optimistic), then the found path will be the shortest. Disadvantages of the algorithm:
3. Computational complexity:  
* The computational complexity of the algorithm may require a significant amount of computation (\(10^{6}\)), especially for a large number of vertices or a complex topology of the space.