60 lines
1.3 KiB
Modula-2
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;
|