AI-Scheduling contains the following components:
WP4T43-03 Scenario Generator WP4T43-04 Genetic Algorithm - Scheduler WP4T43-05 AI Scheduler Model WP4T43-06 Schedule Verifier
#WP4T43-03 Scenario Generator
The scenario generator uses the Stanford Network Analysis Platform (SNAP) to generate multiple scenarios/graphs, each consisting
of a particular scheduling problem. This component takes as input the characteristics of an initial model. Although the
generated scenarios share some characteristics, they all differ in the precedent constraints and the numeric values, making it very
unlikely to have repetitive samples. It is also possible to modify the system's topology by choosing between different options or
designing a unique one. This topology can be fixed for every sample generated or randomly assigned.
Create a dataset sufficiently diverse to emulate different scheduling problems caused by context events. (different task graphs and platform models)
The AI model will utilize the dataset for the learning process, acquiring the adaptation properties that the system needs in order
to react to any possible event.
* SNAP library (already included in the folder).
* Python version 3.x
Installation and usage steps are described in the video: https://ikerlan.sharepoint.com/:v:/r/sites/FRACTAL_project/Documentos%20compartidos/WP1%20-%20Project,%20Risk%20and%20Innovation%20Management/03%20-%20Meetings/202210_04_to_06_2nd%20Review%20Meeting/Demos/WP4/T4.2_TrainingVideo_AI_components.mp4?csf=1&web=1&e=JWNC55
Scheduling tool used for generating the solutions for the training process of the machine learning model. The GA receives all the
scheduling graphs generated by the Scenario Generator (WP4T42-03). The chromosomes of the GA are set to optimize the processor allocation
and the job order. The objective function evaluates the makespan to find the best feasible schedule.
Provide spatial and temporal resource allocation. For example, some applications in real time-triggered systems require schedules to
meet specific deadlines. The Genetic algorithm is one of the best techniques to find the best solutions for scheduling problems by guaranteeing
low makespans.
* galib library (already included in the NewGA folder)
* c++ compiler
Installation and usage steps are described in the video: https://ikerlan.sharepoint.com/:v:/r/sites/FRACTAL_project/Documentos%20compartidos/WP1%20-%20Project,%20Risk%20and%20Innovation%20Management/03%20-%20Meetings/202210_04_to_06_2nd%20Review%20Meeting/Demos/WP4/T4.2_TrainingVideo_AI_components.mp4?csf=1&web=1&e=JWNC55
An Artificial Neural Network (ANN) model is implemented to predict task priorities by learning the behaviour of the GA Scheduler. The dataset
used to train the ANN scheduler consists of input features extracted from the scenarios created by the Scenario Generator (WP4T42-03) and the outputs,
which are the time priorities of the jobs obtained from the GA solutions (WP4T42-04). The input features are selected to capture node characteristics,
importance and connection with the rest of the nodes in the graph. The output features are obtained by applying an algorithm that converts the time
priorities from the GA schedule into a multi-binary format that is used to train the ANN model. This format re-orders the priorities by comparing the
priority values of every job with each other on a one-to-one basis. The neural networks’ training parameters were chosen based on the binary accuracy
of the predictions, keeping in mind that low accuracy values do not necessarily indicate an invalid schedule, as the predictions can still lead to
alternative solutions with different makespans.
Provide temporal and spatial resource allocation for a single FRACTAL node, enhancing the system's dependability while fulfilling the timing
constraints. It also contributes by decreasing the run-time of scheduling with AI predictions.
* Python version 3.x
* Tensorflow
* Sklearn
The Python script file is located in the NewGA folder. ( ANN_priorities_schedule.py)
Installation and usage steps are described in the video: https://ikerlan.sharepoint.com/:v:/r/sites/FRACTAL_project/Documentos%20compartidos/WP1%20-%20Project,%20Risk%20and%20Innovation%20Management/03%20-%20Meetings/202210_04_to_06_2nd%20Review%20Meeting/Demos/WP4/T4.2_TrainingVideo_AI_components.mp4?csf=1&web=1&e=JWNC55
The Schedule verifier component is a tool that allows us to recompute a new schedule using the job priorities learned by the ANN model (WP4T42-05).
Predicting a whole real time-triggered schedule solution is not a task that an AI model can do by itself since any slight inaccuracy can lead to an
incorrect schedule and, therefore, to a possible accident. The schedule verifier detects any possible error and ensures a correct schedule.
Provide the correctness and safety of the resource allocations at development time.
* Python version 3.x
The Python script file is located in the NewGA folder. ( ANN_priorities_schedule.py)
Installation and usage steps are described in the video: https://ikerlan.sharepoint.com/:v:/r/sites/FRACTAL_project/Documentos%20compartidos/WP1%20-%20Project,%20Risk%20and%20Innovation%20Management/03%20-%20Meetings/202210_04_to_06_2nd%20Review%20Meeting/Demos/WP4/T4.2_TrainingVideo_AI_components.mp4?csf=1&web=1&e=JWNC55
The Automated_GA.sh file is used to run all the components one after the other. But they can also run independently.