Bonsoir!
Dans le cadre du TIPE de cette année portant sur le thème du Transport, mon groupe a choisi d'étudier le problème du voyageur de commerce. Cela consiste à, étant donné un nombre de ville, partir d'une ville et trouver le meilleur chemin qui passe une fois par toutes les autres villes et revenir à la ville de départ, le TSP en somme.
J'ai donc choisi l'heuristique gloutonne : On veut rajouter une ville C dans le chemin entre 2 villes A et B du chemin telle que, si l'on note d(X,Y) la distance de la ville X à la ville Y, le nombre d(A,C)+d(B,C)-d(A,B) soit minimal.
Mise en situation : Nous avons choisi les 20 villes les plus peuplées de France, et avec une ville choisie au hasard parmi celles-ci, nous devons trouver le chemin optimal. Ces 20 villes sont stockées dans une liste (que l'on notera M), sont numérotées et leurs coordonnées sont indiquées. Nous disposons d'un programme permettant de calculer la distance entre 2 villes.
Début : J'ai écris un programme choisissant une ville au hasard parmi les 20 villes et trouvant la ville la plus proche afin d'avoir le début du chemin. Ces 2 villes sont stockées dans une nouvelle liste, la liste des villes appartenant au chemin (que l'on notera L) et leurs coordonnées sont stockées dans une autre liste (que l'on notera N). Ces villes sont ensuite supprimées de la liste initiale (via "pop")
Ensuite, j'ai écris un programme choisissant la ville suivante selon l'heuristique gloutonne, nous permettant d'avoir le triangle de base. Cette ville et ses coordonnées sont ajoutées respectivement au liste L et N. Cette ville est aussi "pop" de la liste initiale.
Puis mon but a été de continuer sur cette voie en ajoutant les villes une par une et en les supprimant progressivement de la liste de départ. Mais j'ai des soucis quant aux "pop" et ne sait pas comment gérer les indexations des éléments de la liste.
Pourriez-vous m'aider?
PS : J'ajoute à la suite les programmes que j'ai pus écrire.
-----