This task scheduling project is a Python-based implementation of several Artificial Intelligence methods. The project aims to demonstrate how different AI methods can be utilized to optimize task scheduling and resource allocation in a computing environment.
The app prompts users to select an AI method and then allows them to determine the number of nodes and tasks to be scheduled. For each task, the app assigns a random deadline and required compute power for its completion. Similarly, for each node, the app determines the random speed at which it can complete tasks and its associated cost.
The AI methods implemented in the project include Greedy, Hill-climbing, Random restart hill-climbing, Simulated annealing, and Genetic algorithm.
Once the task scheduling process is completed, the app generates a report that provides information on the overall performance of the task scheduling process. For example, the report include information on how many tasks were completed within their respective deadlines, the total cost incurred during the task scheduling process, and other relevant statistics. Additionally, the app generates an Excel file that provides a more detailed breakdown of the task assignments and associated deadlines.