Scheduling problems are prevalent in various domains such as examination timetabling, task scheduling in operating systems, and resource allocation. To optimize such problems efficiently, Graph Coloring Algorithms provide an effective solution by minimizing conflicts and ensuring optimal resource utilization.
This project aims to implement graph coloring algorithms to optimize scheduling problems, focusing on techniques like:
- Greedy Algorithm
- Welsh-Powell Algorithm
- DSATUR Algorithm
The goal is to minimize conflicts in scheduling scenarios where resources such as time slots, classrooms, or processors must be allocated efficiently. The project addresses:
- Conflict-free scheduling
- Minimization of resource usage
- Enhanced efficiency through algorithm optimization
- Assigns colors (resources) sequentially to nodes (tasks/events) with minimal conditions.
- Time Complexity:
O(V + E)
- A more efficient method that sorts nodes by degrees before coloring.
- Time Complexity:
O(VlogV)
- Dynamically selects the vertex with the highest saturation degree for coloring.
- Time Complexity:
O(V^2)
- HTML/CSS/JavaScript
- ReactJS
- NetworkX (Graph visualization and manipulation)
- Matplotlib (For visual representation)
- Numpy and Pandas (For data handling)
- Development Environment: Jupyter Notebook / VS Code
- Clone the repository:
git clone https://github.com/yourusername/Optimization-of-Scheduling-Problems-using-Graph-Coloring-Algorithms.git- Navigate to the project directory:
cd Optimization-of-Scheduling-Problems-using-Graph-Coloring-Algorithms- Install dependencies:
pip install networkx matplotlib- Run the application:
python main.py- Input your scheduling requirements in the defined format.
- Choose your desired graph coloring algorithm (Greedy, Welsh-Powell, or DSATUR).
- Visualize the optimized schedule output with minimized conflicts.
Nodes (Events/Tasks): 5
Edges (Conflicting Tasks): [(0,1), (0,2), (1,2), (1,3), (2,3), (3,4)]
Node 0 -> Color 1
Node 1 -> Color 2
Node 2 -> Color 3
Node 3 -> Color 1
Node 4 -> Color 2
The project provides a graphical representation of the scheduling process, making it easier to understand resource allocations and minimize conflicts.
β
Efficient scheduling with minimal conflicts
β
Multiple graph coloring algorithms for comparison
β
Visual output for enhanced understanding
β
Scalable for complex scheduling scenarios
- Integration with real-world data sets (e.g., exam timetables)
- Enhancing the visualization interface
- Adding support for weighted graph scenarios
Contributions are welcome! Feel free to submit issues or pull requests to improve the project.
This project is licensed under the MIT License.
For queries or collaborations, reach out at anshikasaklani894@gmail.com.