|
|
# Description
|
|
|
this module uses all this information and tries to create an optimal schedule within the bounds of all the requirements and constraints from the other modules. Our current idea is, that it makes use of genetic algorithms in order to find the best schedule.
|
|
|
This module creates one or multiple optimal schedules.
|
|
|
It does so by ordering the tasks and assign to each of them:
|
|
|
* the machine, which is going to execute this task
|
|
|
* the mode in which this task is going to be executed
|
|
|
* the pause time to the previous task of this machine (if any)
|
|
|
the pause time may seem a little odd at first, but waiting could lead to a number of advantages depending on the optimisation criteria and the situation:
|
|
|
* it could avoid a power peak
|
|
|
* it could lead to a usage of cheaper energy without any costs
|
|
|
An example of the avoidance of a peak at no cost in makespan can be seen below:
|
|
|
|
|
|

|
|
|
|
|
|
The schedule is created by a genetic algorithm. Since we are using Java the [Jenetics library](http://jenetics.io/) seems like a good choice. It works for the newest Java versions (up to 11) and can be imported from the central maven repository. The specific implementation of the different parts has not been done yet.
|
|
|
|
|
|

|
|
|
|
... | ... | |