The Zewail City Pathfinding Project aims to solve the problem of finding the optimal path between any two places within Zewail City, which is represented as a graph. The graph consists of nodes that represent different places within the city, and the weights of the edges represent the cost associated with traversing from one place to another. The project utilizes various search algorithms, including informed, uninformed, and local search algorithms, to find the most efficient routes.
The problem addressed in this project is similar to the Traveling Salesman Problem (TSP) in its context. The goal is to determine the optimal path between any given start and goal locations within Zewail City. The graph representation allows us to model the city's layout, with nodes representing distinct places and the edge weights indicating the associated costs. To aid in the search process, a heuristic function is defined using the Euclidean distance between nodes.
The project provides the following functionality:
-
Input: The user is prompted to enter the start and goal locations within Zewail City.
-
Search Algorithms: The program implements various search algorithms to find the optimal path from the start to the goal. The employed algorithms include informed search algorithms (such as A* search), uninformed search algorithms (such as breadth-first search), and local search algorithms.
-
Assessment: The results of each search algorithm are evaluated and assessed based on their completeness and optimality. Some algorithms may guarantee finding the optimal solution, while others may not.
-
Output: The program outputs the found path from the start to the goal, along with any relevant metrics or statistics related to the search process.
To use the Zewail City Pathfinding Project, follow these steps:
- download the notebook
- Enter the desired start and goal locations within Zewail City.
- all the search algorithms will run
- Wait for the program to complete the search and evaluate the results.
- Review the outputs, which include the optimal path from the start to the goal(A* algorithm), as well as any relevant metrics or statistics.
- Repeat the process for different start and goal locations as needed.
The project has the following dependencies:
- Programming Language: python
- building a simple gui visualizing the path
- using the linked image to use as the reference for the map
The Zewail City Pathfinding Project can be further improved and expanded in the following ways:
-
Additional Heuristics: Explore and implement additional heuristics for the search algorithms to enhance their efficiency and effectiveness.
-
Graph Visualization: Develop a graph visualization component to display the city's layout and the path between the start and goal locations.
-
User Interface: Create a user-friendly interface that allows users to interact with the program more intuitively and visualize the search process.
-
Performance Optimization: Identify and implement optimizations to improve the search algorithms' performance, especially for large-scale graphs.
Mahmoud Thabet