This project joins two final projects, my final projet on the AI course offered by my university and the final project for the Building AI course offered by the University of Helsinki.
The aim of this repository is to stablish the safest route for a flight in order to avoid being recognized by radars. That way, it alows to implement two different heuristic functions and adapt the probability of being found and generates map showing the path choosen and the probability to be detected.
Even if the problem might not be very clear and might seem silly this same logic can be applied to multiple aplications.
- Aircraft defense
- Actual driving applications which aim to find less dense routes or avoid radars to provide efficient routes for users
- Safe comercial flights (avoiding knwon areas of turbulence of eisting metheorologic threats)
- Emergency response in catastrophic areas where there is a clear image of affected areas
- Scientific research expeditions both planetary and on Earth
Scenario configuration (map boundaries, radar locations, POIs) and detection tolerance
Generates random radars with varying technical specifications across a geographic area
Computes radar coverage probability for every location in the map
Uses A* algorithm to find safe routes between Points of Interest (POIs) that avoid high-detection areas
Visualizes radar locations, detection fields, and the computed safe path
This solution allows real-time interaction because of the heursitic search efficiency but also pre-route planning and continuous monitoring and adaptation
Some of the resources used (others than those seen during my university course) include:
- https://en.wikipedia.org/wiki/Chebyshev_distance
- https://web.archive.org/web/20120205043036/http://aigamedev.com/open/tutorial/symmetry-in-pathfinding/#3JumpPointSearch
- https://numpy.org/doc/stable/reference/generated/numpy.argmin.html
There are multiple problems and limitations to the project, to my opinion the most important ones include:
-
There is no automatic changes in route. That is, the image is static and it does not adapt to the movement of the user in real-time
-
Again, for modifications the inputs myst be given and the code reruned, loosing very valuable time of action given its very specific usage in delicate operations.
The most logical step to follow next is to make the adaptation faster. Furthermore, I would particularly like to detect the position of the user and adapt the route according to the movement of the user making it mode adaptable and responsive to real-life interactions. However that would require of more complex tools.
The most important acknowledgements in this projects are:
-
To my university which proposed this type of projects and encouraged me to persue them by giving me guidance and very strong technical foundations
-
To the course Building AI which gave me the impulse to retake thses projects and develop them further on.