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
| pseudo code
1. Initialiser le nombre de groupes souhaité construire : (X à définir)
2. Donner des nombres aléatoires de groupes.
// construction des groupes
parcourir toutes les tournees sauf l'ecart (ni-1)
{
if le nombre de taches est superieur a zero
affecter au minimum un groupe
mettre a jour le nombre de groupes restants
}
while le nombre de groupes restants n'est pas atteint
{
if le nombre de groupe dans chaque tournee est inferieur aux nombres de taches dans chauqe groupe
affecter les groupes pour les taches restantes
mettre a jour le nombre de groupes restants
}
3. Diviser les taches sur les groupes
// boucle sur toutes les tournees
{
initialiser la variable somme = nombre de taches
// boucle sur l'ensemble des groupes
{
mettre a jour le nombre de taches restants
}
while le nombre de taches est tjrs superieur a zero
{
if le nombre de groupe restant et superieur a zero
choisir aléatoirement un groupe dans une tournee i
else
mettre a jour le tableau des taches inserees dans le groupe
et mettre a jour le nombre de taches restantes
}
}
} |