Vous êtes sur la page 1sur 6

Cycles eulriens et hamiltoniens

Complment au chapitre 6 La souris et la puce Commenons par rappeler quelques dfinitions que nous avons dj donnes dans le chapitre traitant des graphes de ligne. Dfinition Un cycle qui passe exactement une fois par chaque arte dun graphe est dit eulrien . Un cycle qui passe exactement une fois par chaque sommet dun graphe est dit hamiltonien . Certains graphes ne possdent ni cycle hamiltonien ni cycle eulrien, par exemple celuici-dessous.

Notons quon dfinit de la mme manire les chanes hamiltoniennes et eulriennes, en remplaant cycle par chane. Le graphe ci-dessus a une chane hamiltonienne, par exemple : d-c-a-b. Le graphe ci-dessus a galement une chane eulrienne, par exemple : d-c-a-b-c. Applications Un voyageur de commerce part tous les matins de son domicile reprsent en noir cidessous et doit rendre visite un ensemble de clients reprsents en blanc, puis retourner son domicile. Comment doit-il sy prendre pour minimiser la distance totale parcourue. (On suppose que les distances entre toutes les paires de clients ainsi quentre les clients et le domicile du voyageur de commerce sont connues). On cherche ici un cycle hamiltonien de longueur minimale.

Un camion de ramassage des ordures part du dpt reprsent en noir ci-dessous et doit passer sur chaque route du rseau ci-dessous pour effectuer la collecte des dchets. Comment doit-il sy prendre ? On cherche ici un cycle eulrien.

Les cycles (pas ncessairement hamiltoniens ou eulriens) partagent une proprit importante que Manori fait remarquer Sbastien lorsquil tente de retrouver la souris. Cette proprit nonce ci-dessous peut facilement tre tendue aux chanes. Proprit Lorsquon dessine un cycle dans un graphe, tous les sommets sont ncessairement de degr pair car chaque fois quen entre en un sommet, on en ressort aussi. Lorsquon dessine une chane dans un graphe, tous les sommets intermdiaires (cest-dire tous ceux qui ne sont pas les extrmits de la chane) sont de degr pair. Cest cette proprit que Manori utilise pour retrouver la souris. En effet, le parcours de la souris depuis sa cage jusqu sa cachette est un cycle (si elle se cache dans le laboratoire do elle sest enfuie) ou une chane. Manori dessine le graphe contenant toutes les artes que la souris a parcourues. Il peut le faire grce aux informations fournies par les dtecteurs. Son raisonnement est le suivant : si tous les sommets du graphe sont de degr pair, la souris est revenue son point de dpart et il va tre difficile de la retrouver; si le graphe ne comporte que deux sommets de degr impair, lun de ces sommets est le lieu de sa fuite, et lautre le lieu de sa cachette; si le graphe comporte plus de deux sommets de degr impair, linformation rcolte est incohrente. Par chance, on se trouve dans la deuxime situation et lun des sommets de degr impair (le sommet A) est un laboratoire alors que lautre (le sommet H) est une zone entre les laboratoires avec une seule bouche daration. La souris sy trouve donc forcment.

Au 18e sicle, le grand mathmaticien Euler a rsolu le problme suivant. La ville de Koenigsberg (appele plus tard Kaliningrad) est traverse par la Praegel qui coule de part et dautre de lle de Kneiphof et possde sept ponts, comme le montre la figure cidessous. Un piton peut-il, en se promenant, traverser une et une seule fois chaque pont ?

Pour rsoudre ce problme, Euler a construit un graphe G dont les sommets sont les diffrentes rgions connexes sil ny avait pas de pont, et o chaque arte reprsente une liaison entre deux rgions par un pont. Pour quun piton puisse se promener en traversant chaque pont exactement une fois, il faut que G contienne un cycle eulrien, ce qui nest pas le cas car G contient 4 sommets de degr impair.

Lorsque tous les sommets dun graphe sont de degr pair, il est assez facile de dessiner un cycle eulrien. On peut sy prendre par exemple comme suit. Construction dun cycle eulrien dans un graphe o tous les sommets sont de degr pair. 1. Dterminer un cycle C quelconque. 2. Si C couvre toutes les artes du graphe alors STOP, sinon aller 3. 3. Choisir un sommet v dans C qui est lextrmit dune arte hors de C. Construire un deuxime cycle C contenant v et tel que C et C naient aucune arte en commun. 4. Fusionner C et C pour former un cycle C. Cette fusion se fait en partant du sommet v, en parcourant lensemble du cycle C puis tant revenu au sommet v en visitant lensemble du cycle C pour finalement terminer en v. 5. Poser C gal C et retourner en 2. Illustration

Dfinition Supposons quune distance soit associe chaque arte. Le problme de la dtermination dun cycle hamiltonien de distance totale minimale sappelle le problme du voyageur de commerce .

Le problme du voyageur de commerce est trs difficile rsoudre. Il existe cependant des logiciels permettant de dterminer de telle solutions optimales tant que le nombre de sommets ne dpasse pas quelques centaines (par exemple CONCORDE quon peut tlcharger sur le site internet http://www.tsp.gatech.edu/concorde.html). Lobtention dune solution optimale peut prendre des heures, voire des jours. Lorsquon a affaire des gros graphes ou quon dsire obtenir des solutions trs rapidement, on utilise ce quon appelle des heuristiques qui fournissent des solutions de qualit raisonnable en des temps raisonnables. Heuristique du plus proche voisin 1) Choisir un sommet de dpart x 2) Tant que tous les sommets ne sont pas encore visits faire lopration suivante se rendre au sommet le plus proche pas encore visit Exemple

Cette heuristique a t compare ce que donne par exemple le logiciel CONCORDE. Lerreur est en moyenne denviron 15%. Toute heuristique, y compris celle du plus proche voisin, peut facilement tre amliore en rajoutant la fin une procdure de post-optimisation. Celle-ci consiste vrifier sil existe une paire dartes sur le cycle qui peut tre remplace par une autre paire dartes (il ny a quun remplacement possible par paire dartes) tout en diminuant la distance totale parcourue. Tant que de telles paires dartes existent, les changes sont effectus. Illustration

Cette procdure de post-optimisation permet de rduire considrablement lcart loptimum. Par exemple, en comparant les solutions produites par le logiciel CONCORDE avec la combinaison de lheuristique du plus proche voisin suivie dune post-optimisation, on a pu constater que lerreur est en moyenne denviron 2 3%.

Il existe des mthodes qui permettent de rduire cet cart quelques diximes de pourcent, mais ces mthodes sont beaucoup plus complexes mettre en place. Mais revenons maintenant aux cycles eulriens. Tel que dj mentionn, si tous les sommets dun graphe G sont de degr pair alors il est facile de dterminer un cycle eulrien alors que sil existe au moins un sommet de degr impair, le graphe ne contient aucun cycle eulrien. Dans un cycle eulrien, on impose de passer exactement une fois par chaque arte du graphe. Nous nous intressons ici au problme consistant dterminer un cycle passant au moins une fois par chaque arte du graphe. Dfinition Supposons quune distance soit associe chaque arte dun graphe connexe. Le problme du postier chinois consiste dterminer un cycle aussi court que possible qui passe au moins une fois par chaque arte du graphe. Contrairement au problme du voyageur de commerce, celui du postier chinois est facile rsoudre. Sil nexiste aucun sommet de degr impair, on a dj vu comment dterminer un cycle eulrien et ce cycle est ncessairement le plus court puisquil passe exactement une fois par chaque arte. Sinon, on peut sy prendre comme suit. Algorithme pour dterminer une solution optimale au problme du postier chinois dans un graphe G contenant des sommets de degr impair 1. Crer un graphe complet H dans lequel les sommets sont ceux de degr impair dans G et relier toute paire de sommets dans H par une arte de cot gal la longueur de la plus courte chane dans G reliant les sommets considrs. 2. Dterminer un couplage de cot minimum dans H. 3. Pour chaque arte du couplage optimal dtermin en 2, rajouter la plus courte chane correspondante dans G. 4. Le graphe rsultant a tous ses sommets de degr pair. On peut donc facilement construire un cycle eulrien. Illustration

Dans lexemple ci-dessus, on a suppos que toutes les distances dans G sont unitaires. Remarquons en passant que pour que le point 2 de lalgorithme ait un sens et quon puisse ainsi transformer tous les sommets de degr impair dans G en des sommets de degr pair, il faut quil y ait un nombre pair de sommets de degr impair dans G. Ceci est toujours le cas tel que dmontr ci-aprs.

Proprit Tout graphe contient un nombre pair de sommets de degr impair. Preuve On peut dfinir une partition V=IP de lensemble V des sommets dun graphe en dfinissant I comme lensemble des sommets de degr impair et P comme lensemble des sommets de degr pair. On a donc vV vP vI Nous avons dj montr que cette somme est paire car elle est gale au double du nombre dartes dans le graphe. Comme le premier terme de la somme ci-dessus est pair (cest une somme de nombres pairs), la deuxime somme doit aussi tre paire. Pour quune somme de nombres impairs soit paire, il faut sommer un nombre pair de nombres et on dduit donc que lensemble I contient un nombre pair de sommets. Un problme similaire celui du postier chinois consiste dterminer une tourne de cot total minimum qui passe au moins une fois par un sous-ensemble fix dartes. En pratique, le rseau dune ville est constitu de nombreuses artes et le ramassage des ordures ne doit se faire que sur certaines artes du graphe. Le camion charg deffectuer le ramassage peut cependant emprunter les autres artes du graphe pour se rendre dun point un autre. Dfinition Supposons quune distance soit associe chaque arte dun graphe connexe G et soit D un sous-ensemble dartes desservir dans G. Le problme du postier rural est de dterminer un cycle aussi court que possible dans G qui passe au moins une fois par chaque arte de D. Le problme du postier rural est trs difficile rsoudre, comme celui du voyageur de commerce. En fait les problmes rels sont bien plus complexes que ceux mentionns cidessus puisquil faut tenir compte de nombreuses contraintes, tel que la capacit des vhicules, les pauses des chauffeurs, etc. Par exemple, lorsque la quantit totale livrer ou collecter auprs des clients dpasse la capacit dun vhicule, il faut utiliser plusieurs camions. Le problme se complique donc puisquen plus de dterminer la route de chaque vhicule, il faut galement rpartir les clients parmi les vhicules.

degr(v) = degr(v) + degr(v)