Bonsoir à tous,
Je souhaiterai créer une instance via un générateur.
Les paramètres sont : le nombre de classes, le nombre de périodes et le nombre de ressources.
Le code que j'ai fait :
Le code actuel marche uniquement pour une seule classe. En effet, je veux aller plus loin et faire cela pour plus de classes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ofstream op ("../../../presence/code_new_prb/exec/instance/week/configgen2.txt"); // Ouverture en mode ecriture op<<"nbressource "<< nbressource << endl; op<<"nbperiode "<< nbperiode << endl; op<<"nbclasse "<< NombreClasses<< endl; for(i=0; i<NombreClasses; ++i) { NbrInfClasse[i] = 0; if (NombreClasses==1) // s'il y a une seule classe { NbrInfClasse[i] = nbressource ; op<<"classe " << i << " nbressource " << NbrInfClasse[i] <<" : " ; for (int t=0;t<NbrInfClasse[i];t++){ op <<""<< t <<"\t"; } op << "\n"; int nombre_maximale_P = 8; int nombre_minimale_P = 3; NombrPerdiodeClasse[i]=rand()%(nombre_maximale_P - nombre_minimale_P) + nombre_minimale_P; op<<"classe " << i << " nbperiode " << NombrPerdiodeClasse[i] <<" : " ; for (int t=0;t<NombrPerdiodeClasse[i];t++){ // taille de chaque classe op <<""<< t <<"\t"; } op << "\n"; } } for(i=0; i<NombreClasses; ++i) { NbrInfClasse[i] = 0; NombrPerdiodeClasse[i] = 0; if (NombreClasses > 1) // s'il y a plus d'une classe { op<<"classe " << i << " nbressource " << NbrInfClasse[i] <<" : " ; } }
Je cherche à partager le nombre de ressources (15) sur l'ensemble des classes disponibles (4). De telle sorte que chaque classe doit contenir au minimum 1 ressource mais la somme ne doit pas dépasser le nombre 15. Pour les périodes, pour chaque classe, le nombre de périodes de présence du personnel vaut de 1 jusqu'à 10 (nbperiode ).
Le fichier de sortie souhaité (exemple) :
Merci pour vos réponses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 nbressource 15 nbperiode 10 nbclasse 4 classe 0 nbressource 6 : 0 1 2 3 4 9 classe 1 nbressource 4 : 5 6 7 8 classe 2 nbressource 2 : 10 12 classe 3 nbressource 3 : 11 13 14 classe 0 nbperiode 6 : 0 1 2 6 7 8 classe 1 nbperiode 3 : 0 1 2 classe 2 nbperiode 4 : 5 2 7 8 classe 3 nbperiode 7 : 1 4 7 8 9 5 3
Partager