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
| // chaque opération est caractérisée par un num_job, num_operation, num ressource, date de début et durée d'exécution
static void explore (int k, int j, int date_debut)
{
int destination = 26, i=0 ;
int solution_initiale[][] = {{2,1,2,10,0},{1,1,1,12,0},{1,2,2,10,12},{3,1,3,10,0},{3,2,2,2,22},{1,3,3,4,22}, {3,3,2,2,24}, {2,2,3,7,10},{2,3,1,9,17}};
int nbre_oper = 8, s;
boolean taboo [][]= new boolean [8][2];
int chemin_tab[][]= new int[8][2];
if (solution_initiale[k][4] == date_debut)
{
if (solution_initiale[k][4]+ solution_initiale[k][3] == destination)
{
for (s=0;s<8;s++)
{
System.out.print(chemin_tab[s][0]+""+chemin_tab[s][1]+"--");
return;
}
}
else
{
taboo[i][0] = true; taboo[i][1]= true;
while (i<8)
{
if (solution_initiale[k][4] == solution_initiale[i][4]+ solution_initiale[i][3] )
{
chemin_tab[j][0]= solution_initiale[k][0];
chemin_tab[j][1]= solution_initiale[k][1];
j++;
date_debut = solution_initiale[k][4]+ solution_initiale[k][3];
explore (k,j, date_debut);
}
i++;
}
taboo[i][0] = true; taboo[i][1]= true;
}
}
} |
Partager