En Hamiltongraf är inom matematik en graf som har en Hamiltoncykel. En Hamiltonväg är en väg i en graf som innehåller varje nod exakt en gång. En Hamiltoncykel är en Hamiltonväg som börjar och slutar i samma nod.

En hamiltoncykel i en grafisk representation av Icosianspelet.

Hamiltongrafer har många tillämpningar, bl.a. handelsresandeproblemet och springareproblemet.

Historia redigera

Hamiltongrafer är uppkallade efter William Rowan Hamilton som bl.a. uppfann Icosianspelet. Han sålde idén vidare till en leksaksaffärsman i Dublin. Hamilton löste detta problem med hjälp av vad han kallade "Icosian calculus". Frågan som återstod var, vilka villkor krävs det för att en graf ska ha en hamiltoncykel? Än så länge finns det inget fullständigt sätt att bevisa att det finns en hamiltoncykel i en graf. Men det finns satser som ger tillräckliga villkor för att en graf ska innehålla Hamiltoncykler.

Matematiska egenskaper redigera

 
En enkel graf.

Definitioner redigera

Först följer några definitioner inom grafteori och sedan några intressanta satser gällande Hamiltoncykler.

  • En väg inom grafteori är en ändlig följd av hörn med förbindelse mellan sig i form av s.k. bågar. I grafen till vänster är ett exempel på en väg (a , f, e , c).
  • En cykel är en väg som kommer tillbaks till startpunkten. Ett exempel på grafen till vänster är (c, d, e, c)
  • Antalet kanter som förbinder ett hörn till resten av grafen kallas hörnets grad. Det betecknas som   där   är hörnen. Exempel på grafen till vänster är att hörnen a har grad 2:
 

Den formella definitionen av en Hamiltonväg eller -cykel är följande:

Låt G vara en graf med fler än 2 hörn. Vi säger att grafen G har en Hamiltonväg/cykel om det finns en väg/cykel som omfattar alla hörnen i grafen.

Ett exempel på en Hamiltonväg i grafen till vänster är (b, a, f, e, c, d), och ett exempel på en Hamiltoncykel är (a, b, c, d, e, f, a)

Satser redigera

 
En graf utan Hamiltoncykel.

Det finns än så länge inget ordentligt sätt att bevisa att det finns en Hamiltonväg i en graf. Man kan däremot visa att en graf inte har en hamiltoncykel:

Om G är en enkel graf med k hörn betecknade   sådana att om man tar bort något av dessa hörn och alla de kanter som har hörnen som ändpunkter, så får man en graf med minst   sammanhängande komponenter så kan inte G innehålla någon Hamiltoncykel.[1]

Ett exempel på föregående sats är grafen till höger. Om man tar bort hörnen markerade som x och y blir det 2 + 1 osammanhängande delar, vilket enligt satsen visar att grafen inte har några Hamiltoncykler i sig.

Det finns satser som anger tillräckliga villkor för att det ska finnas en Hamiltoncykel. Följande sats bevisades av G. A. Dirac 1952.

Låt G vara en enkel graf med   hörn. Om graden av varje hörn är minst   innehåller grafen en Hamiltoncykel.[2]

Att hitta en Hamiltoncykel är ett NP-fullständigt problem, vilket innebär att lösningen kan vara väldigt tidskrävande om man jobbar med stora grafer.

Tillämpningar redigera

 
Ett exempel på billigaste Hamiltoncykel.
 
En grafisk representation av alla giltiga drag för en springare på en 8 * 8 schackbräda. Siffrorna anger möjliga drag från den punkten.

Hamiltongrafer har fått en större betydelse med datorns tillkomst då större beräkningar kan göras på kortare tid. Tillämpningarna är många, exempelvis optimering, geometri och logistik. Hamiltongrafer används inom beräkningar inom turnering och Cayleygrafer.[3]

Handelsresandeproblemet redigera

Det är inte alltid intressant att veta om det finns en hamiltoncykel, utan vilken hamiltoncykel som är billigast på en graf som har givna bågkostnader. Detta brukar kallas för handelsresandeproblemet. Bågkostnader kan representera många olika saker; tid, sträcka, kostnad.

Det är oftast svårt att hitta den minsta kostnaden för en cykel eftersom sökandet kan bli väldigt tidskrävande beroende på grafens storlek. Man har istället utformat algoritmer som kan hitta någon cykel, vilket går betydligt fortare, men man vet inte om det faktiskt är den kortaste vägen eller inte. Detta kallas för en heuristisk metod.

Springareproblemet redigera

Springareproblemet behandlar frågan "Är det möjligt för springaren i schack att gå på varje ruta exakt en gång på schackbrädet?"

Detta är en fråga från antiken som klassas som en svår uppgift. Den första algoritmen för att lösa springareproblemet var Warnsdorffs algoritm från 1823.

En enkel sammanfattning av Warnsdorffs lösning är att det gäller att välja den rutan som har så få drag från den som möjligt. Detta är för att inte skapa en återvändsgränd så att springaren inte kan gå på någon annan rutan än den, den har redan gått på.

Källor redigera

  1. ^ A. Asratian; A. Björn; B. O. Turesson: Diskret matematik 2008 Matematiska Institutionen, Linköping
  2. ^ Andrásfai Béla: Introductory Graph Theory 1977 Akadémiai Kiadó, Budapest ISBN 0-85274-249-5
  3. ^ Edited by Alspach B.R.; Godsil C.D. : Cycles in Graphs 1985 Elsevier Science Publishers B.V.

Externa länkar redigera