An algorithm for task scheduling with resource constraints.
This project implements two task scheduling algorithms. The first one uses a brute-force approach to find the optimal schedule (Branch&Bound), while the second one employs the A* search algorithm for an optimized solution.
- Brute-force task scheduling
- A* search-based task scheduling
- Support for task dependencies, durations, resources, and constraints
- Python 3.x
- NumPy library
-
Clone the repository:
git clone https://github.com/gbrandrea/task-scheduling-algorithm.git
-
Navigate to the project directory:
cd task-scheduling-algorithm -
Install dependencies:
pip install -r requirements.txt
This project relies on the NumPy library. The requirements file ensures that you have all the necessary dependencies installed.
-
Explore the project:
You're all set! Feel free to explore and use the task scheduling algorithms.
This project should be used by running the "useYourTasks" class. You will be asked to give the basic information for the task, and you will have to choose the algorithm you want to use. Then an array of the "instant to begin each task" will be given to you. You can also execute the "algEx" class to run the examples and check how this works!
This project is licensed under the GNU General Public License v2.0 - see the LICENSE file for details.