Analyse af ombytningspuslespil

Relaterede dokumenter
Analyse af ombytningspuslespil

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal Aarhus Universitet

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

Rolf Fagerberg. Forår 2013

Grundlæggende Algoritmer og Datastrukturer

Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538)

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Sortering. Eksempel: De n tal i sorteret orden

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Sommeren 2001, opgave 1

Invarianter og kombinatoriske beviser

Grafer og graf-gennemløb

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.

Sortering. Eksempel: De n tal i sorteret orden

Grafer og graf-gennemløb

Rolf Fagerberg. Forår 2015

Sortering af information er en fundamental og central opgave.

Grafer og graf-gennemløb

Rolf Fagerberg. Forår 2015

Sortering i lineær tid

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Sortering af information er en fundamental og central opgave.

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.

.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)}

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Rolf Fagerberg. Forår 2014

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Introduktion til DM507

Videregående Algoritmik. Version med vejledende løsninger indsat!

DM507 Algoritmer og datastrukturer

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Rolf Fagerberg. Forår 2012

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.

DM507 Algoritmer og datastrukturer

Skriftlig Eksamen Algoritmer og sandsynlighed (DM538)

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Datastrukturer (recap)

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Sammenhængskomponenter i grafer

P2-gruppedannelsen for Mat og MatØk

Danmarks Tekniske Universitet

Algoritmer og invarianter

Matematik og dam. hvordan matematik kan give overraskende resultater om et velkendt spil. Jonas Lindstrøm Jensen

Grundlæggende køretidsanalyse af algoritmer

Datastrukturer (recap)

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2.

DesignMat Kvadratiske matricer, invers matrix, determinant

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Spilstrategier. 1 Vindermængde og tabermængde

Matematisk modellering og numeriske metoder. Lektion 16

Beat the Clock Sorteringsnetværk

Dynamisk programmering

DM507 Algoritmer og datastrukturer

Dynamisk programmering

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Primtal - hvor mange, hvordan og hvorfor?

Nordisk Matematikkonkurrence Danmarks Matematiklærerforening Skoleåret Opgaver ved semifinalen

Geometrisk skæring. Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter

Om hypoteseprøvning (1)

Introduktion. Introduktion. Algoritmer og datastrukturer. Eksempel: Maksimalt tal

Statistik viden eller tilfældighed

Introduktion. Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3. Philip Bille

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

ØVEHÆFTE FOR MATEMATIK C FORMLER OG LIGNINGER

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Mandags Chancen. En optimal spilstrategi. Erik Vestergaard

6. december. Motivation. Internettet: Login til DIKU (med password) Handel med dankort Fortrolig besked Digital signatur

DM507 Algoritmer og datastrukturer

Danmarks Tekniske Universitet

1. Beregn sandsynligheden for at samtlige 9 klatter lander i felter med lige numre.

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer.

Ugeseddel 4 1. marts - 8. marts

DM517:Supplerende noter om uafgørlighedsbeviser:

Matematikken i kunstig intelligens Opgaver om koordinerende robotter

Matematikken i kunstig intelligens Opgaver om koordinerende robotter LØSNINGER

STUDENTEREKSAMEN MATHIT PRØVESÆT MAJ MATEMATIK A-NIVEAU. MATHIT Prøvesæt Kl STXA-MATHIT

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign

Mindste udspændende træ

Orienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer.

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Merging og Hashing (del I)

Grafmanipulation. Frank Nasser. 14. april 2011

Statistik II 1. Lektion. Analyse af kontingenstabeller

Skriftlig Eksamen Beregnelighed (DM517)

Eksamen i Diskret Matematik

Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s

Om sandhed, tro og viden

Danmarks Tekniske Universitet

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

Matroider Majbritt Felleki

Transkript:

Analyse af ombytningspuslespil 1 / 7

Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. 2 / 7

Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. Spørgsmål: Hvilken bedste (laveste) score kan du opnå på 5 forsøg? 2 / 7

Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. Spørgsmål: Hvilken bedste (laveste) score kan du opnå på 5 forsøg? Hvilken algoritme bruger du? 2 / 7

Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. Spørgsmål: Hvilken bedste (laveste) score kan du opnå på 5 forsøg? Hvilken algoritme bruger du? Kan du sige noget om bedste og værste køretid for din algoritme for puslespil med n brikker? 2 / 7

Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. Spørgsmål: Hvilken bedste (laveste) score kan du opnå på 5 forsøg? Hvilken algoritme bruger du? Kan du sige noget om bedste og værste køretid for din algoritme for puslespil med n brikker? Afhænger det af input (startopstillingen)? 2 / 7

Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. Spørgsmål: Hvilken bedste (laveste) score kan du opnå på 5 forsøg? Hvilken algoritme bruger du? Kan du sige noget om bedste og værste køretid for din algoritme for puslespil med n brikker? Afhænger det af input (startopstillingen)? Er køretiden relateret til antal brikker, som står rigtigt til at starte med? 2 / 7

Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. Spørgsmål: Hvilken bedste (laveste) score kan du opnå på 5 forsøg? Hvilken algoritme bruger du? Kan du sige noget om bedste og værste køretid for din algoritme for puslespil med n brikker? Afhænger det af input (startopstillingen)? Er køretiden relateret til antal brikker, som står rigtigt til at starte med? Er den grådige algoritme (sæt én på plads i hvert skridt) bedst mulig, eller kan man få flere skridt hvor to sættes på plads ved nogle gange at undlade at sætte een på plads? 2 / 7

Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. Spørgsmål: Hvilken bedste (laveste) score kan du opnå på 5 forsøg? Hvilken algoritme bruger du? Kan du sige noget om bedste og værste køretid for din algoritme for puslespil med n brikker? Afhænger det af input (startopstillingen)? Er køretiden relateret til antal brikker, som står rigtigt til at starte med? Er den grådige algoritme (sæt én på plads i hvert skridt) bedst mulig, eller kan man få flere skridt hvor to sættes på plads ved nogle gange at undlade at sætte een på plads? Hvis grådig er bedst mulig, er der andre algoritmer som er lige så gode (eller skal man sætte én på plads hver gang for at være bedste mulig)? 2 / 7

Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. Spørgsmål: Hvilken bedste (laveste) score kan du opnå på 5 forsøg? Hvilken algoritme bruger du? Kan du sige noget om bedste og værste køretid for din algoritme for puslespil med n brikker? Afhænger det af input (startopstillingen)? Er køretiden relateret til antal brikker, som står rigtigt til at starte med? Er den grådige algoritme (sæt én på plads i hvert skridt) bedst mulig, eller kan man få flere skridt hvor to sættes på plads ved nogle gange at undlade at sætte een på plads? Hvis grådig er bedst mulig, er der andre algoritmer som er lige så gode (eller skal man sætte én på plads hver gang for at være bedste mulig)? Mere generelt, kan vi præcist karakterisere de bedst mulige algoritmer? 2 / 7

Model af puslespil Vi modellerer brikkerne i et puslespil som tallene 1, 2, 3,..., n, nummereret efter opstillingen når puslespillet er løst: 5 10 14 3 1 11 9 15 8 7 2 12 4 13 6 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 / 7

Model af puslespil Vi modellerer brikkerne i et puslespil som tallene 1, 2, 3,..., n, nummereret efter opstillingen når puslespillet er løst: 5 10 14 3 1 11 9 15 8 7 2 12 4 13 6 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 NB: dette kan også ses som et array: 5 10 14 3 1 11 9 15 8 7 2 12 4 13 6 16 Dette gør vi til opgavetimerne (i Java-opgaverne) 3 / 7

Model af puslespil Vi modellerer brikkerne i et puslespil som tallene 1, 2, 3,..., n, nummereret efter opstillingen når puslespillet er løst: 5 10 14 3 1 11 9 15 8 7 2 12 4 13 6 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 NB: dette kan også ses som et array: 5 10 14 3 1 11 9 15 8 7 2 12 4 13 6 16 Dette gør vi til opgavetimerne (i Java-opgaverne) En opstilling af tallene 1, 2, 3,..., n i et array af længde n kaldes også en permutation. 3 / 7

Den grådige algoritme WHILE ikke alle brikker på plads: vælg en brik ikke på plads byt den med brikken på dens plads 4 / 7

Den grådige algoritme WHILE ikke alle brikker på plads: vælg en brik ikke på plads byt den med brikken på dens plads For et puslespil med n brikker, hvad er det maksimale antal ombytninger? 4 / 7

Den grådige algoritme WHILE ikke alle brikker på plads: vælg en brik ikke på plads byt den med brikken på dens plads For et puslespil med n brikker, hvad er det maksimale antal ombytninger? For hver ombytning: mindst én brik kommer på plads, og ingen brik forlader dens plads. Derfor maksimalt n ombytninger. 4 / 7

Den grådige algoritme WHILE ikke alle brikker på plads: vælg en brik ikke på plads byt den med brikken på dens plads For et puslespil med n brikker, hvad er det maksimale antal ombytninger? For hver ombytning: mindst én brik kommer på plads, og ingen brik forlader dens plads. Derfor maksimalt n ombytninger. For et puslespil med n brikker, hvoraf k allerede står på plads, hvad er det maksimale antal ombytninger? 4 / 7

Den grådige algoritme WHILE ikke alle brikker på plads: vælg en brik ikke på plads byt den med brikken på dens plads For et puslespil med n brikker, hvad er det maksimale antal ombytninger? For hver ombytning: mindst én brik kommer på plads, og ingen brik forlader dens plads. Derfor maksimalt n ombytninger. For et puslespil med n brikker, hvoraf k allerede står på plads, hvad er det maksimale antal ombytninger? For hver ombytning: mindst én brik kommer på plads, og ingen brik forlader dens plads. Derfor maksimalt n k ombytninger. 4 / 7

Den grådige algoritme WHILE ikke alle brikker på plads: vælg en brik ikke på plads byt den med brikken på dens plads For et puslespil med n brikker, hvad er det maksimale antal ombytninger? For hver ombytning: mindst én brik kommer på plads, og ingen brik forlader dens plads. Derfor maksimalt n ombytninger. For et puslespil med n brikker, hvoraf k allerede står på plads, hvad er det maksimale antal ombytninger? For hver ombytning: mindst én brik kommer på plads, og ingen brik forlader dens plads. Derfor maksimalt n k ombytninger. For et puslespil med n brikker, hvoraf k allerede står på plads, hvad er det minimale antal ombytninger? 4 / 7

Den grådige algoritme WHILE ikke alle brikker på plads: vælg en brik ikke på plads byt den med brikken på dens plads For et puslespil med n brikker, hvad er det maksimale antal ombytninger? For hver ombytning: mindst én brik kommer på plads, og ingen brik forlader dens plads. Derfor maksimalt n ombytninger. For et puslespil med n brikker, hvoraf k allerede står på plads, hvad er det maksimale antal ombytninger? For hver ombytning: mindst én brik kommer på plads, og ingen brik forlader dens plads. Derfor maksimalt n k ombytninger. For et puslespil med n brikker, hvoraf k allerede står på plads, hvad er det minimale antal ombytninger? For hver ombytning: højst to brik kommer på plads. Derfor mindst (n k)/2 ombytninger. 4 / 7

Kredse Bedre analyse end mellem (n k)/2 og n k ombytninger? 5 / 7

Kredse Bedre analyse end mellem (n k)/2 og n k ombytninger? Observation: en permutation giver på naturlig måde anledning til en samling kredse (engelsk: cycles): A 9 3 8 7 1 2 12 11 5 10 6 4 B C D Figur 2: Et puslespil hvor brikkerne udgør 4 cykler A, B, C, og D. Idé: Et tal (brik) t peger på det tal (brik), som står på plads t. evis. Lad de to brikker der byttes om være x og y, og antag de er placeret på henholdsv elterne f 1 og f 2, og at deres korrekte placering er på henholdsvis f 3 og f 4 (hvor muligvis f 3 5 / 7 og/eller f = f ). De to tilfælde er illustreret i nedenstående figur. Ombytningen i samm

Kredse og ombytninger 6 / 7

Kredse og ombytninger Bevis. Lad de to brikker der byttes om være x og y, og antag de er placeret på henholdsvis felterne f 1 og f 2, og at deres korrekte placering er på henholdsvis f 3 og f 4 (hvor muligvis f 3 = Observation: En ombytning af to brikker i samme kreds øger antal kredse f 2 og/eller f 4 = f 1 ). De to tilfælde er illustreret i nedenstående figur. Ombytningen i samme medcykel præcis svarerén. til aten gå fra ombytning venstre modafhøjre, to brikker hvor en cykel i forskellige deles i to cyklere. kredseombytningen mindsker antal mellem kredse to forskellige med præcis cykler svarer én: til at gå fra højre mod venstre, hvor to cykler sættes sammen til en cykel. f 4 y f 2 ombyt(x, y) f 4 f 2 x x f 3 f 1 ombyt(x, y) y f 1 f 3 Lemma 5 Algoritmen kræver præcis n k ombytninger for at løse et puslespil med n brikker og k cykler i starten. Bevis. Da algoritmen altid ombytter to brikker fra samme cykel (y kommer umiddelbart efter x i cyklen), øger hver ombytning antallet af cykler med én (Lemma 4). Da man starter med k cykler og slutter med n cykler (Lemma 3) foretages der præcis n k ombytninger. Sætning 1 For at løse et puslespil med n brikker og k cykler i starten kræves præcis n k ombytninger. Bevis. At n k ombytninger er tilstrækkeligt (en øvre grænse) følger af Lemma 5. At man ikke kan gøre det med færre ombytninger (en nedre grænse) følger af at ingen ombytning kan forøge antallet af cykler med mere end én (Lemma 4), og at man skal starte og slutte med 6 / 7

Kredse og ombytninger Bevis. Lad de to brikker der byttes om være x og y, og antag de er placeret på henholdsvis felterne f 1 og f 2, og at deres korrekte placering er på henholdsvis f 3 og f 4 (hvor muligvis f 3 = Observation: En ombytning af to brikker i samme kreds øger antal kredse f 2 og/eller f 4 = f 1 ). De to tilfælde er illustreret i nedenstående figur. Ombytningen i samme medcykel præcis svarerén. til aten gå fra ombytning venstre modafhøjre, to brikker hvor en cykel i forskellige deles i to cyklere. kredseombytningen mindsker antal mellem kredse to forskellige med præcis cykler svarer én: til at gå fra højre mod venstre, hvor to cykler sættes sammen til en cykel. f 4 y f 2 ombyt(x, y) f 4 f 2 x x f 3 f 1 ombyt(x, y) Observation: En brik er på den rigtige plads brik er i en kreds af længde én. Lemma 5 Algoritmen kræver præcis n k ombytninger for at løse et puslespil med n brikker og k cykler i starten. Bevis. Da algoritmen altid ombytter to brikker fra samme cykel (y kommer umiddelbart efter x i cyklen), øger hver ombytning antallet af cykler med én (Lemma 4). Da man starter med k cykler og slutter med n cykler (Lemma 3) foretages der præcis n k ombytninger. y f 1 f 3 Sætning 1 For at løse et puslespil med n brikker og k cykler i starten kræves præcis n k ombytninger. Bevis. At n k ombytninger er tilstrækkeligt (en øvre grænse) følger af Lemma 5. At man ikke kan gøre det med færre ombytninger (en nedre grænse) følger af at ingen ombytning kan forøge antallet af cykler med mere end én (Lemma 4), og at man skal starte og slutte med 6 / 7

Kredse og ombytninger Bevis. Lad de to brikker der byttes om være x og y, og antag de er placeret på henholdsvis felterne f 1 og f 2, og at deres korrekte placering er på henholdsvis f 3 og f 4 (hvor muligvis f 3 = Observation: En ombytning af to brikker i samme kreds øger antal kredse f 2 og/eller f 4 = f 1 ). De to tilfælde er illustreret i nedenstående figur. Ombytningen i samme medcykel præcis svarerén. til aten gå fra ombytning venstre modafhøjre, to brikker hvor en cykel i forskellige deles i to cyklere. kredseombytningen mindsker antal mellem kredse to forskellige med præcis cykler svarer én: til at gå fra højre mod venstre, hvor to cykler sættes sammen til en cykel. f 4 y f 2 ombyt(x, y) f 4 f 2 x x f 3 f 1 ombyt(x, y) Observation: En brik er på den rigtige plads brik er i en kreds af længde én. Lemma 5 Algoritmen kræver præcis n k ombytninger for at løse et puslespil med n brikker og k cykler i starten. Derfor: puslespil løst der er n kredse. Bevis. Da algoritmen altid ombytter to brikker fra samme cykel (y kommer umiddelbart efter x i cyklen), øger hver ombytning antallet af cykler med én (Lemma 4). Da man starter med k cykler og slutter med n cykler (Lemma 3) foretages der præcis n k ombytninger. y f 1 f 3 Sætning 1 For at løse et puslespil med n brikker og k cykler i starten kræves præcis n k ombytninger. Bevis. At n k ombytninger er tilstrækkeligt (en øvre grænse) følger af Lemma 5. At man ikke kan gøre det med færre ombytninger (en nedre grænse) følger af at ingen ombytning kan forøge antallet af cykler med mere end én (Lemma 4), og at man skal starte og slutte med 6 / 7

Kredse og ombytninger Bevis. Lad de to brikker der byttes om være x og y, og antag de er placeret på henholdsvis felterne f 1 og f 2, og at deres korrekte placering er på henholdsvis f 3 og f 4 (hvor muligvis f 3 = Observation: En ombytning af to brikker i samme kreds øger antal kredse f 2 og/eller f 4 = f 1 ). De to tilfælde er illustreret i nedenstående figur. Ombytningen i samme medcykel præcis svarerén. til aten gå fra ombytning venstre modafhøjre, to brikker hvor en cykel i forskellige deles i to cyklere. kredseombytningen mindsker antal mellem kredse to forskellige med præcis cykler svarer én: til at gå fra højre mod venstre, hvor to cykler sættes sammen til en cykel. f 4 y f 2 ombyt(x, y) f 4 f 2 x x f 3 f 1 ombyt(x, y) Observation: En brik er på den rigtige plads brik er i en kreds af længde én. Lemma 5 Algoritmen kræver præcis n k ombytninger for at løse et puslespil med n brikker og k cykler i starten. Derfor: puslespil løst der er n kredse. Bevis. Da algoritmen altid ombytter to brikker fra samme cykel (y kommer umiddelbart efter x i cyklen), øger hver ombytning antallet af cykler med én (Lemma 4). Da man starter med k cykler og slutter med n cykler (Lemma 3) foretages der præcis n k ombytninger. Konklusion: Et puslespil med n brikker og k kredse i startopstillingen kræver mindst n k ombytninger, og man kan altid gøre det med n k ombytninger (f.eks. via den grådige algoritme, som i hvert skridt deler en kreds af længde t i to kredse af længde t 1 og 1). Sætning 1 For at løse et puslespil med n brikker og k cykler i starten kræves præcis n k ombytninger. y f 1 f 3 Bevis. At n k ombytninger er tilstrækkeligt (en øvre grænse) følger af Lemma 5. At man ikke kan gøre det med færre ombytninger (en nedre grænse) følger af at ingen ombytning kan forøge antallet af cykler med mere end én (Lemma 4), og at man skal starte og slutte med 6 / 7

Kredse og ombytninger Bevis. Lad de to brikker der byttes om være x og y, og antag de er placeret på henholdsvis felterne f 1 og f 2, og at deres korrekte placering er på henholdsvis f 3 og f 4 (hvor muligvis f 3 = Observation: En ombytning af to brikker i samme kreds øger antal kredse f 2 og/eller f 4 = f 1 ). De to tilfælde er illustreret i nedenstående figur. Ombytningen i samme medcykel præcis svarerén. til aten gå fra ombytning venstre modafhøjre, to brikker hvor en cykel i forskellige deles i to cyklere. kredseombytningen mindsker antal mellem kredse to forskellige med præcis cykler svarer én: til at gå fra højre mod venstre, hvor to cykler sættes sammen til en cykel. f 4 y f 2 ombyt(x, y) f 4 f 2 x x f 3 f 1 ombyt(x, y) Observation: En brik er på den rigtige plads brik er i en kreds af længde én. Lemma 5 Algoritmen kræver præcis n k ombytninger for at løse et puslespil med n brikker og k cykler i starten. Derfor: puslespil løst der er n kredse. Bevis. Da algoritmen altid ombytter to brikker fra samme cykel (y kommer umiddelbart efter x i cyklen), øger hver ombytning antallet af cykler med én (Lemma 4). Da man starter med k cykler og slutter med n cykler (Lemma 3) foretages der præcis n k ombytninger. Konklusion: Et puslespil med n brikker og k kredse i startopstillingen kræver mindst n k ombytninger, og man kan altid gøre det med n k ombytninger (f.eks. via den grådige algoritme, som i hvert skridt deler en kreds af længde t i to kredse af længde t 1 og 1). Sætning 1 For at løse et puslespil med n brikker og k cykler i starten kræves præcis n k ombytninger. Konklusion: En algoritme bruger det optimale antal ombytninger (n k) hvis og kun hvis hver ombytning er med to brikker som er i samme kreds. Bevis. At n k ombytninger er tilstrækkeligt (en øvre grænse) følger af Lemma 5. At man ikke kan gøre det med færre ombytninger (en nedre grænse) følger af at ingen ombytning kan forøge antallet af cykler med mere end én (Lemma 4), og at man skal starte og slutte med y f 1 f 3 6 / 7

Forventet antal kredse Sætning (uden bevis her): Det forventede antal kredse i en tilfældig permutation er n H n = 1/i i=1 7 / 7

Ifølge Sætning 1 har vi at ikke alle puslespil kræver det samme antal ombytninger. Det afgørende er antallet af cykler i permutationen (omplaceringen) af brikkerne. Hvis permutationerne er tilfældige valgt således at alle permutationer er lige sandsynlige, så gælder nedenstående sætning. Det følger heraf at det forventede optimale antal ombytninger for et Forventet antal kredse Sætning (uden bevis her): Det forventede antal kredse i en tilfældig permutation tilfældigt puslespil er er n n 1 i=1 i. Sætning 2 Det forventede antal cykler i en tilfældig n permutation af n brikker er H n = 1/i n H n = i=1 i=1 Ved simulering (afprøvning, 10.000.000 tilfældige permutationer) for H n = 64 ses følgende n ln n + γ + fordeling 1 af antallet af permutationer: 1 i. H n betegnes det n-te harmoniske tal og kan tilnærmelsesvis beskrives ved 2n 1 12 n 2 + 1 120 n 4 1 252 n 6 +, hvor γ = 0.577215664901... er Euler-Mascheroni konstanten. % 20 10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 antal cykler 16 17 18 148529 728362 1632232 2239366 2144855 1547248 886375 418886 168591 59330 18833 5463 1422 393 95 17 2 1 [Figur: Gerth Brodal] Figur 3: Fordelingen af antallet af cykler i 10.000.000 tilfældige puslespil med 64 brikker. Det forventede antal cykler er H 4.7439. 7 / 7