3. Le Code

3.1. Introduction

Le code se divise en trois grandes parties: 'main.cpp' contient le code de l'interface en ligne de commande, 'graphe.cpp' contient les structures de données pour représenter et manipuler un ensemble d'arretes, une instance du problème aisni que le code de l'affichage graphique (qui utilise openGL), 'algo.cpp' contient le code spécifique de chaque heuristique. De plus du code général sur les listes chainées, utilisé très fréquemment, se trouve dans lc.cpp et lc.hpp(fonctions génériques: 'templates'), une implantation d'arbre n-aire dans xtree.cpp et xtree.hpp, et un procédé de synchronisation étendant les sémaphores dans synchronizer.cpp Le reste de ce document est consacré au détail de chacune de ces parties.

Conventions

On adoptera dans la suite les conventions suivantes:

  • N désignera le nombre de villes de l'instance du problème considérée.

  • Les termes algorithme et heuristiques seront parfois employés pour désigner l'ensemble des heuristiques et algorithmes implantés.