Bonjour,

Dans le cadre des mes études j'ai du faire deux travaux complémentaires en Recherche Opérationnelle. J'en suis au second travail qui a été assez laborieux.
(Vous pouvez le voir dans cette sublime discussion dans laquelle je parlais à moi même : http://forums.futura-sciences.com/pr...ire-lycee.html)

Pour résumer donc, j'en suis à ma vingtième version de mon fichier de modélisation et suis bloqué par un tout petit truc.

Voici l'exercice que je dois résoudre :
P10_emploiDuTempsLycee.pdf

Voici deux résolutions / aides à la résolution :
pages_modifiees.pdf
guer12-4.pdf
(je me suis fais chier à les trouver)

Voici donc le fichier de modélisation que j'ai écrit :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/* Travail Rercherche OP */
/* Horaire de Cours */
/* Ensemble d'objets indices */

set p; #ensemble des professeurs
set c; #nombre de classes
set td; #créneaux

/*Paramètres*/

param t := 4; #nombre de créneaux par jours
param d := 5; #nombre de jours 
param NbC{i in p, j in c}; #Nombre de cours que le prof i doit donner à la classe j


/* Variables */

var X {i in p, j in c, k in td} binary; # =1 si le professeur t donne cours à la classe c pendant la période t

/* Fonction objectif */


minimize Trou :
sum {i in p, j in c, k in 0..4} (X[i,j,(k+1)]+X[i,j,(k+k)]);

/* Contraintes */

#2 planifier tous les cours : 
s.t. forall{i in p,j in c}:
sum {k in td} X[i,j,k] = NbC[i,j];

#3 une classe ne peut suivre plus d'un cours à la fois
s.t. forall{j in c,k in td}: 
sum {i in p} X[i,j,k] <= 1;

#4 Un prof donne un cours à la fois
s.t. forall{i in p, k in td}:
sum {c in c} X[i,j,k] <=1;

#5 Une seule fois une matière par jours
s.t. forall{i in p, j in c, l in d}:
sum {k in ((l-1)*(t+1))..(l*t)} X[i,j,k] <=1;

#6 Sport le jeudi après midi classe 1
s.t. {i = 8,j = 1,k = 15}:
X[8,1,15] = 1;

#7 Sport le jeudi après midi classe 2
s.t. {i=9, j=2, j=15}:
X[9,2,15] = 1;

#8 Pas de cours en première heure du lundi
s.t. forall{i in p, j in c}:
X[i,j,1] = 0;

#9 Mr Efdehicks absent le lundi matin
s.t. forall{k in c}: 
X[4,2,k]=0;

#10 Pas de cours de Biologie Mercredi
s.t. forall{j in c, k in 9..12}:
X[ 2,j,k] = 0;

#11 Les variables sont booléennes
s.t. forall{i in p, j in c, k in td}: X[i,j,k] in {0,1};

/* Données */


data;

set p := {1..9};
set c := {1..2};
set td := {1..20};
set NbC{i in p, j in c};

param NbC : 1 2 :=

1 1 1
2 3 3 
3 2 2
4 0 4
5 4 0
6 3 3 
7 1 1
8 1 0 
9 0 1

end;
Et l'endroit où je suis bloqué est que dans l'énoncé de l'exercice, il y a un domaine de somme qui est hors domaine de définition.
De ce fait, j'ai l'erreur suivante :

Code :
1
2
travail2_4.mod:23: X['1..9','1..2',0] out of domain
J'ai donc besoin d'un coup de pouce à ce niveau.

Merci d'avance, j'en ai vraiment besoin...