Welcome to the Algorithmic Graph Theory project repository! This project aims to explore fundamental concepts and algorithms in graph theory through a structured learning approach. Below is a detailed breakdown of our weekly plan and assignments.
- Introduction to graphs, motivation for studying graphs.
- Basic definitions: vertices, edges, degree.
- Paths, walks, cycles, isomorphism.
- Connectivity in graphs.
- Breadth-First Search (BFS) and its applications.
- Depth-First Search (DFS) and its applications.
- Implement BFS and DFS algorithms.
- Apply BFS and DFS to solve basic problems such as finding connected components and shortest paths.
- Definition and properties of trees.
- Minimum Spanning Trees (MST): introduction and importance.
- Kruskal's algorithm: explanation and implementation.
- Prim's algorithm: explanation and implementation.
- The Bellman-Ford algorithm: explanation and use cases.
- Dijkstra’s algorithm: explanation, optimizations, and applications.
- Implement Bellman-Ford and Dijkstra's algorithms.
- Test algorithms on various graph structures and analyze their time complexity.
- Introduction to graph coloring.
- Real-life applications of graph coloring.
- Develop a Sudoku solver using graph theory concepts.
- Apply graph coloring or other relevant algorithms to solve Sudoku puzzles efficiently.
- Fork the repository, create a new branch, and submit pull requests for any improvements or additions.
- Ensure code follows best practices and is well-documented.
- Report any issues or bugs using GitHub Issues.
This README provides an overview of the Algorithmic Graph Theory project, outlining its structure, weekly plan, and how to navigate the repository. For more detailed information and updates, refer to individual files within the repository.