De Euler-graaf en de Hamilton-graaf
De Euler-graaf is een speciaal soort graaf die geïdentificeerd is door de wiskundige Leonhard Euler naar aanleiding van zijn oplossing van het probleem van de Zeven bruggen van Königsberg. Dit probleem komt neer op de vraag of het mogelijk is in een samenhangende graaf een wandeling te maken waarin alle kanten van de graaf precies één keer voorkomen (een zogeheten Euler-wandeling) of zelfs een dergelijke wandeling te maken zodat deze begint en eindigt in dezelfde knoop (Euler-cykel).
In 1736 loste Euler dit probleem op en bewees dat de oplossing heel simpel is:
Stelling: een simpele, samenhangende graaf bevat een Euler-cykel dan en slechts dan als de graad van alle knopen even is.
Bewijs:
"": Als een graaf een Euler-cykel bevat, dan is er dus een wandeling van iedere knoop in de graaf naar diezelfde knoop waarin alle kanten van de graaf voorkomen. In een simpele graaf kan het niet anders dan dat in een dergelijke wandeling ook alle knopen voorkomen: een kant moet tussen twee knopen lopen. Verder is het ook nog zo, dat je in die wandeling bij iedere knoop waar je "aankomt" ook weer "weggaat" (in omgekeerde volgorde bij het beginpunt, uiteraard). Omdat je in een Euler-cykel iedere kant maar één keer mag gebruiken, betekent dat dat er bij iedere knoop, voor iedere "inkomende" kant ook een "uitgaande" kant moet zijn. Dus het aantal kanten waarmee een knoop incident is, is in een Euler-graaf altijd een veelvoud van twee, oftewel de graad van al de knopen is even.
"":
Algemene opmerking: Stel, je hebt twee gesloten wandelingen (d.w.z. cykels), allebei zonder dubbel gebruikte kanten, die niet een kant maar wel een knoop k gemeen hebben. Die kunnen we aan elkaar plakken tot een nieuwe wandeling: start de eerste wandeling in k, maak hem af en ga dan verder met de volgende (die weer eindigt in k).
Goed, stel nu dat in een simpele, samenhangende graaf alle knopen even graad hebben. In deze graaf kan ik een cykel maken zonder dubbele kanten: ik kies een knoop en begin over kanten te lopen totdat ik niet verder kan. Ik ben nu weer terug waar ik begonnen ben (alle knopen hebben even graad, dus de enige knoop die tijdens mijn wandeling een ongebruikte "ingang"-kant heeft en geen ongebruikte "uitgang"-kanten is die knoop waar ik begonnen ben). De kanten die ik in mijn cykel gebruikt heb, haal ik nu weg. Dan herhaal ik dit proces, totdat alle kanten op zijn. Nu heb ik een aantal losse, gesloten wandelingen die geen kanten, maar wel een aantal punten gemeen hebben. Op de manier van de algemene opmerking boven, plak ik nu al mijn wandelingen aan elkaar -- ik heb nu de graaf terug waar ik mee begonnen was, en een Euler-cykel die ik erin gemaakt heb.