Graphe eulérien
En thĂ©orie des graphes, un parcours eulĂ©rien ou chemin eulĂ©rien[1], ou encore chaine eulĂ©rienne d'un graphe non orientĂ© est un chemin qui passe par toutes les arĂȘtes, une fois par arĂȘte. Le nom a Ă©tĂ© donnĂ© en rĂ©fĂ©rence Ă Leonhard Euler[2]. Si un tel chemin revient au sommet de dĂ©part, on parle de circuit eulĂ©rien[3] ou cycle eulĂ©rien, ou encore tournĂ©e eulĂ©rienne[3]. Un graphe qui admet un circuit eulĂ©rien est dit eulĂ©rien. S'il admet un parcours eulĂ©rien, il est dit semi-eulĂ©rien.
Exemples
ProblĂšme du dessin de l'enveloppe
La notion de parcours eulĂ©rien s'illustre avec le problĂšme du dessin de l'enveloppe[4]. Il s'agit de tracer une enveloppe sans lever le crayon et sans dessiner plusieurs fois un mĂȘme trait. On peut modĂ©liser le dessin avec le graphe ci-dessous. Un parcours eulĂ©rien correspond Ă un tracĂ© d'un graphe sur une feuille sans lever le crayon.
- Exemple d'un graphe admettant un parcours eulérien.
- Dessin Ă la main sans lever le crayon
ProblÚme des sept ponts de Königsberg
Le problĂšme des sept ponts de Königsberg[5] est le problĂšme de savoir si on peut traverser chaque pont de la ville de Königsberg en une promenade, une fois sur chaque pont. Comme le montre la figure ci-dessous, le problĂšme se modĂ©lise Ă l'aide d'un graphe comme suit : les ponts constituent les arĂȘtes et les Ăźles et les berges les sommets. Comme ce graphe n'admet pas de parcours eulĂ©rien, le problĂšme n'a pas de solutions.
â â |
Graphe d'un octaĂšdre
On peut aussi considĂ©rer le graphe d'un polyĂšdre, par exemple un octaĂšdre. Les sommets et arĂȘtes du polyĂšdre sont respectivement les sommets et arĂȘtes du graphe.
ThéorÚme d'Euler
Degré d'un sommet
Le degrĂ© d'un sommet est le nombre d'arĂȘtes arrivant Ă ce sommet (arĂȘtes incidentes). Dans les graphes suivants, on indique les degrĂ©s pour chaque sommet.
- Graphe des 7 ponts de Königsberg, et un autre graphe, dit des 5 chambres. Ces graphes n'admettent pas de parcours eulériens. Les nombres indiqués sont les degrés.
- 1. et 4. Graphes ayant un parcours eulérien mais pas de circuit eulérien. 2. Graphe sans solution. 3. Graphe ayant un circuit eulérien.
ĂnoncĂ© du thĂ©orĂšme
Le théorÚme d'Euler, appelé aussi théorÚme d'Euler-Hierholzer, se décline en deux caractérisations[5] :
- Un graphe connexe admet un parcours eulérien si et seulement si ses sommets sont tous de degré pair sauf au plus deux.
- Un graphe connexe admet un cycle eulérien si et seulement si tous ses sommets sont de degré pair.
DĂ©monstration
Euler a démontré les conditions nécessaires en 1735[2]. La démonstration complÚte ci-dessous ayant été publiée par le mathématicien allemand Carl Hierholzer en 1873[6]. On attribue parfois l'équivalence à Euler, comme dans le livre de théorie des graphes de Diestel (voir Th. 1.8.1 dans [7]). Les deux sens directs se démontrent comme suit.
Supposons qu'il y a un parcours eulĂ©rien et empruntons le en supprimant les arĂȘtes utilisĂ©es. Ă chaque passage sur un sommet (sauf au dĂ©but et Ă la fin), on supprime l'arĂȘte qui arrive sur ce sommet et l'arĂȘte qui en part. Ainsi, sauf pour le sommet de dĂ©part ou d'arrivĂ©e, la paritĂ© du degrĂ© reste inchangĂ©e. Ă la fin du parcours, toutes les arĂȘtes sont supprimĂ©es, ce qui permet de conclure sur la paritĂ© des sommets.
Les sens indirects, i.e. les réciproques, se démontrent comme suit.
Montrons le quand tous les sommets sont de degrĂ© pair. Commençons Ă un sommet quelconque s0 du graphe. Empruntons des arĂȘtes, en les supprimant du graphe, tant que cela est possible. Comme les degrĂ©s sont pairs, nous sommes forcĂ©ment revenus au sommet s0 et nous avons trouvĂ© un circuit s0 - s1 - ... - s0. S'il ne reste plus d'arĂȘtes, alors nous avons un circuit eulĂ©rien. Sinon, nous recommençons le processus afin d'exhiber un autre circuit, depuis un sommet si duquel part une arĂȘte. Nous obtenons alors un autre circuit si - ... - si, que nous venons coller dans le circuit prĂ©cĂ©dent Ă la place de si :
s0 - s1 - ... - si -- ... -- si - si+1 - ... s0.
On rĂ©pĂšte le processus jusqu'Ă avoir utilisĂ© toutes les arĂȘtes et l'on obtient un circuit eulĂ©rien.
Algorithmes
Algorithme de Hierholzer
On peut effectivement Ă©crire un programme informatique pour calculer un chemin ou un circuit eulĂ©rien s'il en existe. Discutons l'algorithme du papier de Hierholzer de 1873[6], qui suit l'idĂ©e de sa dĂ©monstration (voir le sens indirect ci-dessus). Il rĂ©pĂšte l'extraction de circuits que l'on colle pour construire un circuit eulĂ©rien[8]. Cet algorithme peut s'implĂ©menter afin d'avoir un algorithme en temps linĂ©aire en le nombre d'arĂȘtes (voir Example 2.5.2, et Algorithm 2.3.1 dans [9]). Pour cela, il suffit que les opĂ©rations suivantes s'exĂ©cutent en temps constant :
- trouver une arĂȘte non empruntĂ©e
- trouver un nouveau sommet qui admet encore des arĂȘtes incidentes non empruntĂ©s
- coller le circuit dans le parcours en cours de construction
Pour cela, il suffit de maintenir efficacement avec des listes doublement chainées :
- la liste des sommets du parcours en construction qui ont encore des arĂȘtes inutilisĂ©es
- pour chaque sommet, la liste des arĂȘtes non encore utilisĂ©es
- la liste des arĂȘtes du parcours en construction
Algorithme de Fleury
Pierre-Henry Fleury[10] a donnĂ© un autre algorithme en 1883 mais dont une implĂ©mentation sur ordinateur serait moins efficace que l'algorithme de Hierholzer. Son idĂ©e est de construire le circuit en empruntant Ă chaque fois en prioritĂ© une arĂȘte dont la suppression ne dĂ©connecte pas le graphe.
Cas d'un graphe orienté
Les résultats ci-dessus s'exportent aux graphes orientés. Un tel graphe est dit eulérien s'il a la propriété suivante :
- On peut ordonner les arcs du graphe de telle façon que deux arĂȘtes consĂ©cutives par rapport Ă l'ordre â oĂč la derniĂšre et la premiĂšre arĂȘtes de l'ordre sont considĂ©rĂ©es comme consĂ©cutives â sont consĂ©cutives dans le graphe.
Là encore cette propriété signifie que l'on peut « parcourir » le graphe en suivant les arcs depuis leur extrémité initiale vers l'extrémité terminale et en utilisant bien sûr exactement une fois chaque arc et en revenant au point de départ. On montre comme pour la version non orientée le théorÚme suivant :
ThĂ©orĂšme d'Euler (version orientĂ©e) â Soit G un graphe orientĂ©. Les trois propositions suivantes sont Ă©quivalentes :
- G est eulérien ;
- G est fortement connexe et chacun de ses sommets est l'extrĂ©mitĂ© initiale et terminale du mĂȘme nombre d'arĂȘtes ;
- G est connexe et chacun de ses sommets est l'extrĂ©mitĂ© initiale et terminale du mĂȘme nombre d'arĂȘtes.
La connexité suffit pour étendre le cas non orienté au cas orienté, et un graphe eulérien est nécessairement fortement connexe.
Complexité algorithmique
Dans certains livres d'algorithmique[11] - [12] (mais aussi le livre de thĂ©orie des graphes de Diestel, voir Chapitre 10, p. 213 de [7]), dans le cadre de la thĂ©orie de la complexitĂ©, le problĂšme EULĂRIEN, de savoir si un graphe est eulĂ©rien, est souvent comparĂ© au problĂšme HAMILTONIEN, de trouver un parcours hamiltonien, c'est-Ă -dire un parcours passant exactement une fois par chaque sommet. DĂ©terminer qu'un graphe admet un circuit eulĂ©rien se fait en temps polynomial (il suffit de vĂ©rifier la paritĂ© des degrĂ©s des sommets du graphe). Ainsi, le problĂšme EULĂRIEN de savoir si un graphe est eulĂ©rien est dans la classe P. Le problĂšme HAMILTONIEN est a priori plus compliquĂ© Ă rĂ©soudre algorithmiquement : c'est un problĂšme NP-complet, avec des applications importantes.
Références
- (en) Patrick Bosc, Marc Guyomard et Laurent Miclet, Conception d'algorithmes Principes et 150 exercices non corrigés, (lire en ligne)
- (la) Leonhard Euler, « "Solutio problematis ad geometriam situs pertinentis" », Comment. Academiae Sci. I. Petropolitanae 8,â , p. 128â140 (lire en ligne)
- Algorithmique, (lire en ligne)
- « CHEMIN EULĂRIEN â Figures unicursales » : « LA CĂLĂBRE ENVELOPPE et variantes », sur NOMBRES - CuriositĂ©s, thĂ©orie et usages.
- « Ponts de Königsberg et cycle eulérien », sur www.bibmath.net (consulté le )
- (de) Carl Hierholzer et Chr Wiener, « Ueber die Möglichkeit, einen Linienzug ohne Wiederholung und ohne Unterbrechung zu umfahren », Mathematische Annalen, vol. 6, no 1,â , p. 30â32 (ISSN 1432-1807, DOI 10.1007/BF01442866, lire en ligne, consultĂ© le )
- (en-GB) Reinhard Diestel, « Graph Theory », Graduate Texts in Mathematics,â (ISSN 0072-5285 et 2197-5612, DOI 10.1007/978-3-662-53622-3, lire en ligne, consultĂ© le )
- Fleischner, Herbert (1991), "X.1 Algorithms for Eulerian Trails", Eulerian Graphs and Related Topics: Part 1, Volume 2, Annals of Discrete Mathematics, 50, Elsevier, pp. X.1â13, (ISBN 978-0-444-89110-5).
- (en) Dieter Jungnickel, Graphs, Networks and Algorithms, Springer-Verlag, coll. « Algorithms and Computation in Mathematics », (ISBN 978-3-642-09186-5, lire en ligne)
- Fleury, Pierre-Henry (1883), "Deux problĂšmes de GĂ©omĂ©trie de situation", Journal de mathĂ©matiques Ă©lĂ©mentaires, 2nd ser. (in French), 2: 257â261.
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest et Clifford Stein, Introduction Ă l'algorithmique, Dunod, , 2e Ă©d., 1176 p. (ISBN 2 10 003922 9)
- (en) Sanjoy Dasgupta, Christos Papadimitriou et Umesh Vazirani, Algorithms, McGraw-Hill,
Voir aussi
Articles connexes
- ProblĂšme du postier chinois (qui consiste Ă chercher un chemin passant au moins une fois par chaque arĂȘte)
- ThéorÚme de BEST, qui donne une formule pour compter le nombre de circuits eulériens d'un graphe
- Liste de sujets portant le nom d'Euler
Bibliographie
- (en) Reinhard Diestel, Graph Theory [détail des éditions]
- Ădouard Lucas, RĂ©crĂ©ations mathĂ©matiques, 9 rue de MĂ©dicis, Paris, Librairie Albert Banchard, (lire en ligne) lire en ligne sur Gallica, voir p. « page 33 » oĂč le problĂšme est dĂ©crit sous le titre Les ponts de Paris en 1880.