4 machine open-shop scheduling problem with objectif of minimize the total weighted completion time solved with two methods:
- an heuristic using Smith order
- a genetic algorithm
- TODO: tabu search algorithm
- python3, PyQt
- cmake
- gcc
- The jobs data is stored in data.txt
- Each job is composed by 5 integers. The first integer is its weight, the next 4 integers are the processing time of this job on 4 machines respectively.
- launch the ./launch.sh file, the heuristic approch and the algorithm approch will apprear one after another with a PyQT-based visualisation.
- For visualisation, the number of jobs cannot be more than 10.
* find the critical machine (which has the longest processing time)
* sort all jobs in Smith order in the critical machine (by (processTime / weight) in ascending order)
* schedule first on the critical machine with Smith order
* schedule on other machines with Smith order
* Codage:
Each solution is represented by a (NB_JOBS * 4) matrix and a (1 * 4) array
(NB_JOBS * 4) matrix: job sequence in each of the 4 machines
(1 * 4) array: the scheduling order of 4 machine
* Fitness function
Same as the objective function
* Selection operator
Select the best known individuals, copy them in the next generation
* Cross operator
Choose randomly two indivuduals
Choose randomly a position of gene (an index)
Exchange these two genes
* Mutation operator
Choose randomly one indivudual
Choose randomly two positions of gene (two index)
Exchange these two genes
http://mistic.heig-vd.ch/taillard/problemes.dir/ordonnancement.dir/ordonnancement.html