AccueilđŸ‡«đŸ‡·Chercher

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.
    Exemple d'un graphe admettant un parcours eulérien.
  • Dessin Ă  la main sans lever le crayon
    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.

Animation d'un des 372 circuits eulĂ©riens (de premiĂšre arĂȘte donnĂ©e) du graphe des arĂȘtes de l'octaĂšdre rĂ©gulier. Ce graphe est eulĂ©rien car tous ses sommets sont de degrĂ© 4.

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.
    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.
    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 :

  1. trouver une arĂȘte non empruntĂ©e
  2. trouver un nouveau sommet qui admet encore des arĂȘtes incidentes non empruntĂ©s
  3. coller le circuit dans le parcours en cours de construction

Pour cela, il suffit de maintenir efficacement avec des listes doublement chainées :

  1. la liste des sommets du parcours en construction qui ont encore des arĂȘtes inutilisĂ©es
  2. pour chaque sommet, la liste des arĂȘtes non encore utilisĂ©es
  3. 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

  1. (en) Patrick Bosc, Marc Guyomard et Laurent Miclet, Conception d'algorithmes Principes et 150 exercices non corrigés, (lire en ligne)
  2. (la) Leonhard Euler, « "Solutio problematis ad geometriam situs pertinentis" », Comment. Academiae Sci. I. Petropolitanae 8,‎ , p. 128–140 (lire en ligne)
  3. Algorithmique, (lire en ligne)
  4. « CHEMIN EULÉRIEN — Figures unicursales » : « LA CÉLÈBRE ENVELOPPE et variantes », sur NOMBRES - CuriositĂ©s, thĂ©orie et usages.
  5. « Ponts de Königsberg et cycle eulérien », sur www.bibmath.net (consulté le )
  6. (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 )
  7. (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 )
  8. 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).
  9. (en) Dieter Jungnickel, Graphs, Networks and Algorithms, Springer-Verlag, coll. « Algorithms and Computation in Mathematics », (ISBN 978-3-642-09186-5, lire en ligne)
  10. 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.
  11. 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)
  12. (en) Sanjoy Dasgupta, Christos Papadimitriou et Umesh Vazirani, Algorithms, McGraw-Hill,

Voir aussi

Articles connexes

Bibliographie

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.