https://github.com/jeremy-cleland/uninformed_search_agents
This project implements and compares three fundamental search algorithms - Depth-First Search (DFS), Breadth-First Search (BFS), and A* Search
https://github.com/jeremy-cleland/uninformed_search_agents
astar-algorithm bfs dfs maze- maze-algorithms maze-solver
Last synced: about 1 month ago
JSON representation
This project implements and compares three fundamental search algorithms - Depth-First Search (DFS), Breadth-First Search (BFS), and A* Search
- Host: GitHub
- URL: https://github.com/jeremy-cleland/uninformed_search_agents
- Owner: Jeremy-Cleland
- Created: 2024-02-12T07:28:34.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-03-06T07:22:01.000Z (over 1 year ago)
- Last Synced: 2024-03-12T07:39:09.375Z (over 1 year ago)
- Topics: astar-algorithm, bfs, dfs, maze-, maze-algorithms, maze-solver
- Language: Python
- Homepage:
- Size: 1.51 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Maze Search Algorithms Comparison
## Project Overview
This project implements and compares three fundamental search algorithms - Depth-First Search (DFS), Breadth-First Search (BFS), and A* Search - in navigating and solving mazes. The objective is to analyze the algorithms' performance across various metrics, including solution path length, nodes expanded, and execution time, within procedurally generated mazes. This comparison aims to provide insights into each algorithm's efficiency and suitability for maze navigation tasks.
## Project Structure
````
maze_search_project/
│
├── algorithms/
│ ├── __init__.py
│ ├── dfs.py
│ ├── bfs.py
│ └── a_star.py
│
├── visualization/
│ ├── __init__.py
│ ├── visualize_maze.py
│ └── animate_search.py
│
├── data_collection/
│ ├── __init__.py
│ └── collect_metrics.py
│
├── utils/
│ ├── __init__.py
│ ├── maze_generation.py
│ ├── node.py
│ └── search_utils.py
│
│
└── main.py
```
## Features
- **Maze Generation:** Generates random mazes with customizable sizes and obstacle densities.
- **Algorithm Implementation:** Includes Python-based implementations of DFS, BFS, and A* search algorithms.
- **Performance Analysis:** Collects and summarizes performance data for each algorithm across multiple maze configurations.
- **Visualization:** Offers visualization tools for maze exploration processes and algorithm performance comparison.
## Getting Started
### Prerequisites
- Python 3.8 or higher
- Required Python packages: `numpy`, `matplotlib`, `plotly`, `networkx`, `pandas`
### Installation
Clone the repository to your local machine:
```bash
git clone https://github.com/yourgithubusername/maze-search-project.git
cd maze-search-project
```
### Install the required Python packages:
```bash
pip install -r requirements.txt
```
## Running the Project
To run the project and generate the algorithm comparison report:
``` bash
python main.py
```
## Usage
- Modify the main.py script to customize the maze generation parameters and the number of runs for the analysis.
- Use the visualization scripts in the visualization/ directory to visually inspect the maze-solving processes and the algorithms' exploration patterns.
## Contributing
Contributions, issues, and feature requests are welcome. Feel free to check the issues page for open issues or to open a new issue.
## License
Distributed under the MIT License. See LICENSE for more information.