INTRODUCTION AUX PROBLEMES COMBINATOIRES "DIFFICILES" : LE PROBLEME DU VOYAGEUR DE COMMERCE ET LE PROBLEME DE COLORATION D'UN GRAPHE
Dans cette leon, nous prsentons deux problmes trs clbres, celui du voyageur de commerce et celui de la coloration d'une carte de gographie. Nous commenons par le problme du voyageur de commerce. Aprs en avoir donn la dfinition et des exemples d'application, nous aborderons le problme du temps de calcul de certains algorithmes, et proposerons des mthodes de rsolution approches. Nous introduirons ensuite le problme de coloration des sommets d'un graphe. Aprs la dfinition et des exemples d'application, nous dcrirons des mthodes de rsolution approches.
C'tait une des premires versions de ce qui deviendra le clbre problme dit du "voyageur de commerce", problme tudi par Dantzig ds 1954. L'origine de ce nom est assez obscure et probablement peu de voyageurs de commerce l'utilisent ! Cf : http://www.math.Princeton.edu/tsp/car54.html
Le graphe ci-dessous correspond un problme avec 5 villes en supposant que toutes les liaisons sont possibles. Les distances sont mises arbitrairement.
Il sagit de partir dun sommet et dy revenir en parcourant une fois et une seule chaque sommet avec litinraire le plus court. Cet itinraire est indpendant de la ville de dpart. Par exemple, la longueur de litinraire a b c d e a est gale 38 alors que celle de a b e c d a vaut 40.
10
100
10-1 10 1 000
1000
10 000
1 1 000 1 000 000
Pour le premier algorithme en "n", lorsque la taille est multiplie par 10 le temps l'est galement. On arrive donc, pour une taille de 10 000 (taille multiplie par 1000) 1 seconde (10-3 * 103). Pour lalgorithme en n2, quand la taille du problme est multiplie par 10, le temps de calcul est multipli par 10 2. Pour lalgorithme en n3, quand la taille du problme est multiplie par 10, le temps est multipli par 103. Donc si la taille est multiplie par 100, le temps sera multipli par 1003 = 106 = 1 million ! et 1 million de secondes gal 11,5 jours ! Pour lalgorithme en en, le temps est multipli par e100/e 10 = e90 dont l'ordre de grandeur est 1039, un "1" suivi de 39 zros ! Le problme de voyageur de commerce appartient une catgorie de problme pour lequel on ne possde actuellement pas d'algorithme dont le temps de calcul croit de manire raisonnable, c'est-dire polynomiale, avec la taille du problme. Lorsque la taille du problme devient leve (selon les donnes cela peut tre quelques centaines de villes) on se contente de petits problmes ou l'on abandonne l'ide d'obtenir une solution optimale. L'enjeu conomique est de taille, au point qu' l'aube du troisime millnaire le Clay Institute a mis en jeu 1 million de dollars pour qui trouverait un bon algorithme pour rsoudre ce type de problme, celui du voyageur de commerce et tous ceux qui tombent dans cette mme catgorie et il y en a
beaucoup ! Voir http://www.claymath.org/Millennium_Prize_Problems/ Face ce challenge, on va se contenter de mthodes approches encore appeles "heuristiques" qui vont permettre de trouver rapidement une solution que l'on espre pas trop loigne de la solution optimale.
Si on part de a, la ville la plus proche est b, puis c, puis d, puis e, puis a. On obtient la tourne a b c d e a de longueur : 5 + 10 + 5 + 8 + 10 = 38
Cette heuristique trs simple peut donner des rsultats arbitrairement mauvais. Si la longueur de l'arte (a, e) est gale M, nombre arbitrairement grand, l'heuristique du plus proche voisin donnera toujours la tourne a b c d e a dont la longueur (28 + M) peut tre aussi loigne que l'on veut de la solution optimale qui est en fait, ds que la longueur de (a, e) dpasse 11, le tour a b c e d a de longueur 39. Une deuxime heuristique Principe On commence par trier les artes par longueur croissante. Puis on parcourt la liste trie des artes et on slectionne les artes de manire ne pas crer de court circuit, ni de sommet de degr 3, c'est--dire une fourche, ceci jusqu' ce qu'on puisse revenir au sommet de dpart. Trier les artes par ordre de longueur croissante TANTQUE la tourne n'est pas complte Prendre la premire arte non examine de la liste Si elle ne cre ni cycle, ni fourche avec les artes prcdemment slectionnes, la retenir. FINTANTQUE
Exemple
On commence par (a, b) de longueur 5 puis (c, d) de longueur 5 galement, puis(c, e) de longueur 7. On ne peut pas prendre (e, d) de longueur 8 qui crerait un sous-cycle decd, donc on prend (a, d) de longueur 9 et on termine par (b, e) de longueur 14. On trouve la tourne a b e c d a de longueur 40.
Contrairement l'heuristique du plus proche voisin, si la longueur de l'arte (a, e) passe M, cette nouvelle arte n'a aucune chance dtre retenue puisque les artes sont examines dans l'ordre des longueurs croissantes, cette heuristique conduit encore la tourne a b e c d a. Evaluation de la performance des heuristiques Nous venons de voir que l'heuristique du plus proche voisin pouvait donner des rsultats aussi loigns que l'on veut de la solution optimale. Pour valuer la performance d'une heuristique, on peut comparer le rsultat qu'elle fournit une minoration de la tourne optimale (en pratique on ne connat videmment pas la tourne optimale). Par exemple, pour le graphe prcdent, on peut affirmer que toute tourne a une longueur au moins gale la somme des longueurs des 5 artes les plus courtes, soit ici 34. L'heuristique 2 donne une tourne de longueur 40. On est donc au pire 6 sur 34 soit 17 % de la tourne optimale. En fait, la tourne optimale a pour longueur 38. Il y a 2 solutions a b c d e a et a b d c e a (dont le tour donn par lheuristique du plus proche voisin !). Dans certains cas, on est en mesure d'valuer a priori les performances de certaines heuristiques, en particulier lorsque le graphe est "euclidien" : dans ce cas l'ingalit triangulaire est vrifie.
On peut alors dmontrer que la longueur de la tourne fournie par l'heuristique prcdente est, dans tous les cas de figure, c'est dire quelles que soient les donnes du problme, infrieure 2 fois celle
de la tourne optimale. La meilleure heuristique connue actuellement pour le problme de voyageur de commerce euclidien est telle que, quel que soit le problme, la longueur de la tourne obtenue est, de manire certaine, infrieure ou gale 1,5 fois la longueur de la tourne optimale. On dit qu'elle a un rapport de performance garantie de 1,5. Le problme du voyageur de commerce donne lieu beaucoup de travaux. Par exemple, la solution optimale d'un problme sur 15112 villes en Allemagne a t obtenue en 2001. Les mthodes utilises sont des mthodes mathmatiques sophistiques qui ont t mises en oeuvre sur tout un ensemble d'ordinateurs travaillant en parallle. cf : http://www.math.princeton.edu/tsp/history.html
A B C D E F A *** *** B *** *** C *** D *** E *** F G "***" indique que les confrences ne doivent pas tre organises simultanment.
On modlise ce problme par un problme de coloration des sommets d'un graphe. Les sommets sont associs aux confrences. Deux confrences incompatibles sont relies entre elles par une arte. Le graphe obtenu est un "graphe d'incompatibilit". Dans une coloration des sommets, on ne peut attribuer la mme couleur 2 confrences incompatibles. On peut donc mettre sur la mme demi-journe toutes les confrences associes des sommets de mme couleur. Le nombre minimum de couleurs correspond au nombre minimum de demi-journes. On a par exemple la solution suivante (il y en a d'autres) : A, C et G couleur 1, B et E couleur 2, D et F couleur 3.
Il suffit de 3 demi-journes. On ne peut pas faire mieux, par exemple parce que E, F et G sont incompatibles 2 2. Rsolution de problmes de coloration par des mthodes approches Dans le cas gnral, on ne connat pas de bons algorithmes pour rsoudre le problme de coloration avec un nombre minimum de couleurs. Cest encore un problme un million de dollars ! On fait donc appel des heuristiques pour obtenir une bonne solution. Lheuristique la plus simple consiste prendre les sommets dans un ordre donn (qui peut tre quelconque) et leur affecter la premire couleur possible. La solution dpend bien sr de lordre dans lequel les sommets seront examins. Numroter les sommets de 1 n Numroter les couleurs POUR i de 1 n Colorier le sommet i avec la premire couleur possible. FINPOUR
Exemple
Ordre des couleurs : 1 : Rouge, 2 : bleu, 3 : vert, 4 : jaune On commence par le sommet 1 qui l'on attribue la premire couleur : rouge. La premire couleur possible pour le sommet 2 est la couleur 2, le bleu. Pour le sommet 3, la couleur possible de plus petit numro est le rouge (couleur 1). On peut ensuite mettre le sommet 4 en bleu, 5 en rouge et 6 en bleu. Pour le sommet 7 on doit utiliser le vert et pour le sommet 8 la quatrime couleur, le jaune. On vient d'obtenir une coloration avec 4 couleurs. Mais ce n'est pas la solution optimale ! Lamlioration de l'heuristique prcdente passe par un choix plus judicieux de lordre dexamen des sommets. On modifie l'heuristique prcdente en numrotant les sommets dans l'ordre de leur degr dcroissant. Pour le reste, le principe est inchang. Numroter les sommets dans l'ordre des degrs dcroissants Numroter les couleurs POUR i de 1 n Colorier le sommet i avec la premire couleur possible. FINPOUR
On commence donc la coloration par le sommet qui porte maintenant le numro 1 car il est de degr 4, on passe ensuite au sommet 2 (de degr 3) puis au sommet 3 etc. On constate que 3 couleurs suffisent maintenant et l'on ne peut trouver mieux en raison des sommets 1, 2 et 3 qui doivent tre 2 2 de couleurs diffrentes. Leon 10 : Introduction aux problmes combinatoires "difficiles" 8
Ici l'heuristique a fourni la solution optimale mais comme ce n'est qu'une mthode approche ce n'est hlas pas toujours le cas ! Heuristique DSATUR Lheuristique prcdente peut encore tre amliore (statistiquement) de la manire suivante : Le choix des sommets est fait sur un critre dynamique. On dfinit d'abord le degr de saturation d'un sommet. Le degr de saturation DSAT(i) est dfini de la manire suivante : SI aucun sommet adjacent i n'est colori alors DSAT(i)=degr (i) SINON DSAT(i)= nombre de couleurs diffrentes utilises par les sommets adjacents i On a alors l'heuristique appele DSATUR qui est une des plus connues pour le problme de coloration. POUR i de 1 n poser DSAT(i)=degr(i) Numroter les couleurs TANTQUE il existe un sommet non colori Choisir un sommet avec DSAT maximum, en cas d'galit celui de plus grand degr, en cas d'galit celui de plus petit numro Colorier le sommet i avec la premire couleur possible Mettre jour DSAT pour les sommets adjacents ce sommet FINTANTQUE L'heuristique DSATUR est en particulier la base de la rsolution du problme d'allocation de frquence en tlphonie mobile. Ce problme se ramne un problme de coloration de graphe, les sommets correspondent aux zones, 2 zones voisines ne devant pas avoir la mme frquence pour viter les interfrences, les sommets associs seront relis par une arte.