This was my thesis project for my Bachelor's degree in Computer Science Engineering at the University of Rome La Sapienza. The project focuses on developing an efficient algorithm for pathfinding in large-scale graphs, with applications in geographic information systems and network routing.
The core of the project is an optimized version of the A* algorithm, which incorporates heuristic functions tailored for specific types of graphs. The algorithm is designed to minimize both time and space complexity, making it suitable for real-time applications.
The implementation is done in Python, utilizing libraries such as Streamlit for the user interface. The codebase is structured to allow easy modifications and extensions, enabling users to adapt the algorithm for various use cases.
To run the application, ensure you have Python installed along with the required libraries. You can install the dependencies using pip:
pip install -r requirements.txt
After installing the dependencies, you can start the application with the following command:
streamlit run app.py
This will launch a local web server where you can interact with the pathfinding algorithm through a user-friendly interface.
The project includes a comprehensive evaluation of the algorithm's performance on different datasets. The results demonstrate significant improvements in efficiency compared to traditional pathfinding methods, particularly in large and complex graphs. Detailed results and analysis can be found in the thesis document included in this repository which unlikelt is in Italian.
This project is licensed under the MIT License. See the LICENSE file for details.
I would like to thank my thesis advisor and colleagues for their support and guidance throughout the development of this project.
For any questions or further information, please feel free to contact me at www.linkedin.com/in/ludovico-pollastro-496ab6269.