Vous êtes sur la page 1sur 9

Leon 10

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.

I Le problme du voyageur de commerce : exemple dintroduction


En 1962, Procter et Gamble lancrent un concours pour rsoudre le problme suivant : Trouver un parcours passant par les 33 villes figurant sur la carte ci-dessous et le plus court possible.

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.

Leon 10 : Introduction aux problmes combinatoires "difficiles"

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.

II Le problme du voyageur de commerce


Dfinition d'un cycle ou d'un circuit hamiltonien Un cycle hamiltonien est un cycle qui passe une fois et une seule par chaque sommet du graphe. On dit aussi tourne ou tour. Si le graphe est orient, on dfinit de la mme manire un circuit hamiltonien. Dans un graphe de n sommets, le nombre de tournes est gal (n-1) !, qui correspond aux nombres de permutations de n-1 lments. ((n-1)! et non n! car on peut partir d'un sommet quelconque). A chaque arte (ou arc si le graphe est orient) on affecte un nombre cij qui peut, par exemple, reprsenter un cot, un temps ou une longueur. On lappelle longueur de larte (ou de l'arc). Dfinition du problme du voyageur de commerce Cas non orient ou symtrique cij = cji Il s'agit de dterminer parmi tous les cycles hamiltoniens, celui (ou ceux) de longueur minimale. Cas orient (ou non symtrique ) cij cji Il s'agit de dterminer parmi tous les circuits hamiltoniens, celui (ou ceux) de longueur minimale. Le problme du voyageur de commerce est le cas le plus simple du problme dorganisation de tournes de livraisons. Exemple de problme modlisable par un problme de voyageur de commerce Le processus de peinture des carrosseries automobiles est complexe et, dans certains cas, il comprend le passage des carrosseries dans une cuve de peinture. Aprs une srie dune peinture donne, on change de peinture. Le passage d'une peinture une autre gnre un cot fixe, d au temps darrt pour le nettoyage de la cuve ainsi qu' la perte des matires premires rsiduelles. Le cot qui en dcoule dpend des peintures qui se succdent. Le problme est de dterminer lordre de passage des diffrentes peintures de manire minimiser tous les cots de changement. Ce problme est modlis par un problme de voyageur de commerce. On dfinit un graphe dont les sommets sont associs aux diffrents coloris. Chaque arc (le problme est non symtrique car passer de i j na pas le mme cot que passer de j i), reprsente le passage d'une peinture la suivante. La longueur correspond au cot de changement de coloris.

Leon 10 : Introduction aux problmes combinatoires "difficiles"

Trouver le bon ordre de passage revient dterminer une tourne optimale.

III Introduction la complexit de certains problmes


Il nest pas rare de voir voquer le problme du voyageur de commerce dans la presse traditionnelle ! Jusqu prsent les algorithmes que nous avons rencontrs, par exemple dans la recherche de plus courts chemins, dans le problme central de lordonnancement ou du flot maximum sont de bons algorithmes en ce sens que le temps de calcul se comporte comme une fonction polynomiale de la taille du problme. La taille du problme est, par exemple, dans le cas d'un problme de plus court chemin mesure par le nombre de sommets et d'arcs du graphe et dans celui du voyageur de commerce par le nombre de villes. Pour mesurer l'efficacit d'un algorithme, on value l'ordre de grandeur du nombre d'oprations lmentaires (addition, multiplication, affectation...) que devra faire l'ordinateur et ceci quelles que soient les donnes du problme lorsque sa taille tend vers l'infini. Evaluation du temps de calcul en fonction de la nature de l'algorithme et de la taille du problme Considrons 4 types d'algorithmes avec les comportements suivants : - en "n" : le temps de calcul croit comme la taille du problme (c'est par exemple le cas de l'algorithme de Bellman) - en n2 (c'est le cas de l'algorithme de Moore Dijkstra) - en n3 - en en Dans chacun des cas, on fait l'hypothse qu'on rsout en un millime (10 3 ) de secondes un problme de taille 10. Que devient le temps de calcul lorsque la taille du problme est multiplie par 10, par 100 ou par 1000, donc passe 100, 1000 ou 10 000 ? Dans le tableau suivant les temps sont en secondes.

Taille -> Algo en n Algo en n2 Algo en n2 Algo en en

10-3 10-3 10-3 10-3

10

10-2 10-1 1 1039

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

Leon 10 : Introduction aux problmes combinatoires "difficiles"

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.

IV Rsolution du problme du voyageur de commerce par des mthodes approches


De trs nombreuses heuristiques existent pour le problme du voyageur de commerce. Heuristique du plus proche voisin Principe On part d'une ville quelconque et l'on se dirige vers la ville la plus proche sans repasser par une ville dj visite. Partir d'un sommet TANT QUE la tourne n'est pas complte Aller la ville la plus proche non encore visite FINTANTQUE

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

Leon 10 : Introduction aux problmes combinatoires "difficiles"

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.

c<a+b b<a+c a < b + c.

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

Leon 10 : Introduction aux problmes combinatoires "difficiles"

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

V Coloration des sommets dun graphe


Le problme de coloration d'une carte de gographie est galement trs clbre. Il s'agit de trouver le nombre minimum de couleurs ncessaires pour colorier une carte gographique de telle manire que deux pays ayant une frontire commune n'ait pas la mme couleur. La rponse a t apporte en 1976 : il suffit de 4 couleurs. Afin de modliser ce problme, nous dfinissons un nouveau type de problme d'optimisation sur un graphe. Coloration des sommets d'un graphe Il s'agit d'affecter chaque sommet une couleur telle que 2 sommets adjacents naient pas la mme couleur. Trouver une coloration ne pose aucun problme ; il suffit de mettre une couleur diffrente par sommet. Le vrai problme est de le faire avec un nombre minimum de couleurs. Nombre chromatique d'un graphe On appelle nombre chromatique d'un graphe le nombre minimum de couleurs ncessaires pour une coloration des sommets. Le problme de coloration d'une carte gographique se ramne la coloration des sommets d'un graphe : la carte nous associons un graphe dont les sommets correspondent aux pays. Lorsque deux pays ont une frontire commune, on relie les sommets associs par une arte. Dans ce cas, on sait que 4 couleurs suffisent. La raison est que le graphe est particulier : il est planaire, c'est dire qu'il en existe une reprsentation telle que 2 artes ne se coupent pas Exemple d'application Les organisateurs d'un congrs sont confronts la ralisation du planning des confrences. Certaines peuvent avoir lieu simultanment alors que d'autres doivent imprativement tre places des moments diffrents. Chaque confrence occupant une demi-journe, les organisateurs voudraient que les confrences puissent tre places dans un minimum de temps. On suppose pour cet exemple qu'il n'y a que 7 confrences. Les incompatibilits entre elles sont traduites dans ce tableau. Combien faut-il de demi-journes au minimum ?

Leon 10 : Introduction aux problmes combinatoires "difficiles"

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

Leon 10 : Introduction aux problmes combinatoires "difficiles"

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.

Leon 10 : Introduction aux problmes combinatoires "difficiles"