TP-recherche-operationnelle/exobonus/bonus.mod
Laurent Fainsin 5e2d153d9e ajout
2021-11-18 17:49:43 +01:00

60 lines
1.3 KiB
Modula-2

#
# 0 1 2 3 5
# 1 0 1 2 3
# 2 1 0 1 2
# 3 2 1 0 1
# 4 3 2 1 0
#
# 0 1 0 0 0
# 0 0 1 0 0
# 1 0 0 0 0
# 0 0 0 0 1
# 0 0 0 1 0
#
# 0 0 0 1 0
# 0 0 1 0 0
# 0 0 0 0 1
# 0 1 0 0 0
# 1 0 0 0 0
#
# 4 2 3 5 1
#
# GLPK model file created by SUN for RO teaching
############################### Model ###############################
############################### Sets ###############################
set POSITIONS;
################### Variables ###################
var cycle{i in POSITIONS, j in POSITIONS}, binary;
################### Constants: Data to load #########################
param Distances{i in POSITIONS, j in POSITIONS};
################### Constraints ###################
# Matrice de permutation
s.t. RespectUnTravailParPersonne{i in POSITIONS}:
sum{j in POSITIONS} cycle[i, j] = 1;
s.t. RespectUnePersonneParTravail{j in POSITIONS}:
sum{i in POSITIONS} cycle[i, j] = 1;
# Pas de sous cycle
s.t. SousCycle1{(i in POSITIONS, j in POSITIONS):(i <= j and i < 4)}:
sum{k in POSITIONS, l in POSITIONS: i <= k <= j, i <= l <= j} cycle[k, l] <= (j - i + 1);
###### Objective ######
minimize CoutTotal:
sum{i in TRAVAUX, j in PERSONNELS} Cout[i, j] * cycle[i, j];
end;