Le problème des graphes eulériens est relié à la connexité d'un graphe, un graphe étant connexe quand pour tout couple de sommets, on peut trouver un chemin passant du premier sommet au second. On voit ici comment manipuler de tels graphes avec networkx.
Sur un échiquier 3x3, les deux cavaliers noirs sont placés sur les cases a1 et c1, les deux cavaliers blancs occupant les cases a3 et c3.
Lien vers Une solution possible.
On rappelle des éléments de cours sur les circuits eulériens, et on les étudie avec networkx.
La question à l'origine de la théorie des graphes est due à Euler, en 1736 : dans cette partie de la ville de Königsberg :
Peut-on, lors d'une promenade, revenir à notre point de départ en empruntant une, et une seule fois, chaque pont ?
Pour y répondre, Euler a introduit le graphe suivant (les arcs symbolisent les ponts ; les sommets, les quatre zones terrestres) :
Le problème de départ se ramène alors à la question suivante : peut-on trouver un circuit permettant d'emprunter une, et une seule fois chaque arête, en retournant à son point de départ ?
La réponse, dans ce cas particulier, est non : comme
on en conclut forcément que le degré de $s$ est pair. Or, dans le graphe ci-dessus, tous les sommets ont un degré impair.
Faire une résolution numérique du problème des ponts de Königsberg à l'aide de Networkx:
Ce problème, introduit par Euler, conduit aux définitions suivantes...
Définition (Chaîne eulérien)
On appelle chaîne eulérienne une chaîne contenant une et une seule fois toutes les arêtes du graphe.
Définition (Circuit eulérien)
On appelle circuit eulérien un circuit contenant une et une seule fois toutes les arêtes du graphe.
Remarque : On n'a plus affaire à une chaîne, mais à un circuit : le point de départ et celui d'arrivée coïncident.
Définition (Graphe eulérien)
Un graphe eulérien est un graphe possédant un circuit eulérien.
Remarque : On peut passer plusieurs fois par un sommet donné, pourvu que les arêtes empruntées soient toutes différentes.
Du problème initial d'Euler, on peut en déduire le résultat suivant (rappelons qu'il s'agit ici de graphes non orientés)...
Théorème
Il y a équivalence entre :
De plus, s'il n'y a pas de sommet de degré impair, alors le graphe est Eulérien.
Preuve : En parcourant un chemin ou un circuit, pour chaque sommet visité, on utilise une arête pour arriver à ce sommet et une arête pour en repartir, ces deux arêtes ne devant plus être utilisées par la suite.
Le nombre d'arêtes utilisables en ce sommet diminue donc de deux. Si un sommet est d'ordre impair, une de ses arêtes aboutissant à ce sommet doit donc être soit sur la première arête d'un chemin, soit sur la dernière.
Un chemin n'ayant que deux extrémités, le nombre de sommets d'ordre impair ne peut excéder deux.
Exercice : Soit G un graphe connexe non eulérien. Est-il toujours possible de rendre G eulérien en lui rajoutant un sommet et quelques arêtes?
Réponse : Oui. Quand on ajoute un nouveau sommet, son nombre d'arêtes doit être pair, pour ne pas poser de nouveaux problèmes. On peut donc ainsi corriger le problème d'imparité pour un nombre pair de sommets : en reliant chaque couple de deux sommets de degré impairs, à un sommet que l'on crée uniquement pour ce couple. Or, tout graphe simple possède un nombre pair de sommets de degré impair...
Exercice : On considère des dominos dont les faces sont numérotées 1, 2, 3, 4 ou 5.
Réponse :
On considère des dominos dont les faces sont numérotées 1, 2, 3, 4 ou 5. On souhaite arranger ces dominos de façon à former une boucle fermée (en utilisant la règle habituelle de contact entre les dominos).
Le problème des graphes eulériens revient à chercher si un chemin particulier existe. Voici, deux autres problèmes (travaux pratiques) d'existence d'un chemin entre deux sommets donnés.
Un loup, une chèvre et un chou fleur se trouvent sur la rive gauche d’un fleuve ; un passeur souhaite les transporter sur la rive droite mais, sa barque étant trop petite, il ne peut transporter qu’un seul d’entre eux à la fois.
Comment doit-il procéder afin de ne jamais laisser ensemble et sans surveillance le loup et la chèvre, ainsi que la chèvre et le chou fleur ?
On va construire un graphe dont les sommets sont les états possibles du système. A priori, le loup (L), la chèvre (C) et le chou fleur (F) peuvent être soit sur la rive gauche (G), soit sur la rive droite (D), soit sur le bateau (B).
On souhaite prélever 4 litres de liquide dans un tonneau. Pour cela, on dispose de deux récipients non gradués :
Comment doit-on procéder ?
Résoudre le problème en faisant construire le graphe non orienté modélisant le problème et en demandant à Networkx de construire le plus court chemin entre la situation initiale et la situation finale attendue.
Lien vers Une solution possible.