Licence Informatique 1ère année 2014-2015
Université de Lorraine 1/2
Projet de Méthodologie de la programmation
du Problème du Voyageur du Commerce
Cahier des charges 2 (pour 3 séances de 4h00 de TP)
Résolution du Problème du Voyageur du Commerce via un algorithme
génétique – gestion des données
1. Définition de constantes
- Définir une constante NOMBRE_SOLUTIONS_MAX, qui représente le nombre maximal de
solutions à gérer. Lui donner la valeur 100.
2. Définition de variables
- Définir une variable nombreDeSolutions, de type entier, qui correspond au nombre de
solutions à gérer.
- Définir une variable solutions, qui est un tableau de Solution.
- Définir une variable solutionsAuxiliaires, qui est aussi un tableau de Solution.
3. Définition et appel de fonctions
- Ecrire une fonction nommée saisirNombreDeSolutions qui demande la saisie d’un
entier compris entre 0 et NOMBRE_SOLUTIONS_MAX et qui renvoie cet entier. Appeler
cette fonction pour saisir dans la variable nombreSolutions le nombre de solutions à
gérer.
- La fonction saisirNombreDeVilles étant très similaire à la fonction
saisirNombreDeSolutions, définir une fonction générique nommée
saisirNombre, qui prend en paramètres une valeur minimum min et une valeur
maximum max et qui demande la saisie d’un nombre en vérifiant qu’il est compris entre min
et max. Cette fonction servira à toutes les saisies de nombres.
- Ecrire une procédure nommée initialiserSolutions qui initialise solutions avec
nombreDeSolutions éléments :
o le 1er élément sera une solution créée avec la fonction
genererSolutionAvecHeuristique ;
o les (nombreSolutions-1) autres éléments seront des solutions aléatoires
obtenues avec la fonction genererSolutionAleatoire.
- Ecrire une fonction nommée retournerIndiceMeilleureSolution qui retourne
l’indice de la meilleure solution dans le tableau solutions.
- Ecrire une fonction nommée retournerMoyenneDesDistances qui calcule la
moyenne des distances des solutions du tableau solutions.
- Ecrire une fonction nommée estUneBonneSolution qui détermine si une solution est
« bonne », c’est-à-dire que sa distance est inférieur à la distance moyenne des solutions dans
le tableau solutions. La fonction doit renvoyer TRUE si la solution testée est bonne et
FALSE sinon.