Hamilton-veje og kredse: Definition: En sti x 1, x 2,...,x n i en simpel graf G = (V, E) kaldes en hamiltonvej hvis V = n og x i x j for 1 i < j n. En kreds x 1, x 2,...,x n, x 1 i G kaldes en hamiltonkreds hvis x 1, x 2,...,x n er en hamiltonvej. Sætning: Hvis n 3 da har K n en hamiltonkreds. Sætning(Ore): Hvis G er en simpel graf med n 3 punkter så deg(u) + deg(v) n for ethvert par af punkter u og v som ikke er naboer, da har G en hamiltonkreds. Sætning(Dirac): Hvis G = (V, E) er en simpel graf med n 3 og deg(u) n 2 for ethvert punkt u V da har G en hamiltonkreds. 1
Kortestevej algoritme: Til dette problem betragtes betragtes kombination af graf og vægtfunktion, som tildeler en vægt w(e) 0 til enhver kant i grafen. Spørgsmål : Hvordan findes den korteste vej mellem to punkter i en graf, når længden af en vej mellem to punkter defineres som summen af vægtene tildelt til kanterne fra vejen. Strategi der kan benyttes hvis alle vægte er ens (w) : 1. lad a være det ønskede startpunkt og lad z være slutpunktet. 2. Lad L = {a}, H := G a og lad dist(a,z)=0. 3. Indtil z L gør følgende: dist(a, z) := dist(a, z) + w, L sættes lig alle punkter i H som er naboer til et punkt fra L, H := H L. 2
1. procedure Dijkstra(G: positivt vægtet sammenhængende simpel graf, a,z : punkter) 2. Lad a = v 0, v 1,...,v n = z være punkterne i G og lad w(v i, v j ) være vægten af kanten {v i, v j } hvis den findes og lad ellers w(v i, v j ) =. 3. for i:=1 to n do 4. L(v i ) := 5. L(a):=0 6. while z S do 7. u:= et punkt i S med L(u) minimal 8. S = S {u} 9. for alle punkter v S do 10. if L(u) + w(u, v) < L(v) then L(v) := L(u) + w(u, v). 11. return L(z). 3
Ide : punkterne i S er de S punkter tættest på a. Desuden skal L(x) være den korteste afstand mellem a og x hvis x S. Hvis x ikke er i S da skal L(x) betegne den korteste vej af typen a,...,s, x,hvor s er et punkt S, mellem a og x. Sætning: Dijkstra s algoritme finder den korteste vej mellem punkterne a og z (mht. vægten w). Desuden er kompleksiteten af algoritmen O(n 2 ) Traveling salesman problem: Problem : En omrejsende salgsmand skal besøge n byer præcis engang, og derfter vende tilbage til byen han startede i. Der ønskes da en sådan rute af minimal længde (afstanden mellem ethvert par af byer er kendt). 4
Planare grafer: Definition: En graf siges at være planar hvis den kan tegnes i planet således ingen kanter krydser hinanden. Sætning: Hvis G er en simpel sammenhængende planar graf med e kanter, v punkter og r regioner da er r = e v + 2. korollar: Hvis G er en simpel sammenhængende planar graf med v 3 punkter da er e 3v 6. korollar: Hvis G er en simpel sammenhængende planar graf med v 4 punkter og ingen region er en trekant da er e 2v 4. Det følger at K 5 og K 3,3 ikke er planare grafer. 4-farvesætningen: Hvis G er en planar graf da kan punkterne i G fraves med fire farver således ingen nabo-punkter farves med samme farve. 5
P, NP og NP-fuldstændige problemer Definition : Ved en instans af et problem menes en angivelse af værdier til alle parametre/input til problemet (Derved fås et tilfælde af det givne problem). Eksempel (Isomorfiproblemet): Ved dette problem skal der afgøres om grafer G 1 og G 2 er isomorfe. En instans af problemet er da to grafer. Fornuftig repræsentation af problem : repæsentation af problemet ved en streng hvoraf længden højst er polynomiel i de givne input til problemet. Definition : Et problem π kaldes afgørbart hvis der findes en algoritme for probelmet således der for enhver instans af problemet gives output ja eller nej. Lad D π mængde af alle instanser af π og lad Y π være ja-instanserne. 6
Eksempel : Isomorfiproblemet er afgørbart, men stoppeproblemet er ikke afgørbart. Definition : Kompleksitetsklassen P defineres som mængden af afgørbare problemer hvortil der findes en algoritme med polynomiel tidskompleksitet (O(n k ) for et eller andet k). En Non-deterministisk algoritme til et afgørbart problem π: For en instans I af problemet π der ses på gættes en struktur (eller potentiel løsning) kaldet et certifikat, C(I). Derefter ses om dette certifikat C(I) og I kan give os at I Y π. Der skal gælde at hvis I Y π da findes der sådan et certifikat C(I) således at kendskabet til C(I) og I giver os at I Y π. Derimod skal det for ethvert certifikat gælde at C(I) og I ikke giver os at I Y π hvis I Y π. 7
Eksempel (Isomorfiproblemet): Her skal certifikatet være en funktion mellem punkterne i de to grafer fra instansen. Det kan da let tjekkes om denne funktion er en isomorfi mellem graferne. Definition : Kompleksitetsklassen NP defineres som mængden af afgørbare problemer π (der under en fornuftig repræsentation) kan løses af en non-deterministisk algoritme med polynomiel kompleksitet. Eksempler på problemer i NP: Isomorfiproblemet, Hamiltonkreds og 3-SAT. 3-SAT : Ved dette betragtes en bolsk formel af typen : (l 1,1 l 1,2 l 1,3 ) (l 2,1 l 2,2 l 2,3 ) (l k,1 l k,2 l k,3 ), hvor l i,j er en af q-variable x 1,...,x q eller x 1,...,x q. Spørgsmålet er da om variablene x 1,...,x q kan tildeles værdier således formlen bliver sand. 8
Eksempel på 3-SAT : Lad x 1, x 2, x 3 være variable og betragt : (x 1 x 2 x 3 ) (x 1 x 2 x 3 ) (x 1 x 2 x 3 ). Denne formel er sand hvis x 1 =sand, x 2 = sand og x 3 = falsk. 9
Definition (reducerbar) : Vi siger at et problem π 1 er reducerbar til problemet π 2 hvis der findes en algoritme A som for enhver instans I af π 1 giver en instans A(I) af π 2 som output og hvor I Y π1 hvis og kun hvis A(I) Y π2. Hvis A har polynomiel tidskompleksitet da siges at π 1 er polynomielt reducerbart til π 2 hvilket skrives π 1 p π 2. Definition : Et problem π kaldes NP-fuldstændigt hvis π N P og der for ethvert problem π NP gælder at π p π. Sætning : 3-SAT er NP-fuldstændigt. Sætning : Hvis π er NP-fuldstændigt og π NP og π p π da er π NP-fuldstændigt. Sætning : HAMPATH (givet en graf samt to punkter deri er der da en hamiltonvej mellem dem) er NP-fuldstændigt. Sætning : HAMKREDS er NP-fuldstændigt. 10
åbent problem : Er NP=P. Sætning : P NP. Sætning : Hvis der findes et NP-fuldstændigt problem (eller NP-hårdt problem) π P da vil NP = P. 11