D: Søgning i en labyrint

BFS og DFS i en labyrint — hvilken udgang findes først, og worst-case kompleksitet.

Labyrinten har $n=8\cdot 8=64$ felter. Vi søger fra indgangen $S$ til en af udgangene $A$, $B$ eller $C$. Udforskningsrækkefølge: 1. højre, 2. venstre, 3. op, 4. ned.

a b c d e f g h 1 2 3 6 8 S A B C a3 Udforskningsrækkefølge: 1. højre · 2. venstre · 3. op · 4. ned
Forenklet skitse af labyrinten (S, udgange A/B/C, kritisk felt a3). Se PDF for den fulde labyrint.
Spørgsmål D.1

Hvis vi benytter en bredde-først-søgning, hvilken udgang finder vi da først? Giv en kort forklaring.

Vis svar Skjul svar
Svar D.1

Ved BFS finder man først alle felter 1 skridt fra start, derefter 2 skridt, osv. Derfor findes den udgang der kan nås i færrest skridt først — det er udgang C.

C

Spørgsmål D.2

Hvis vi benytter dybde-først-søgning, hvilken udgang finder vi da først? Giv en kort forklaring.

Vis svar Skjul svar
Svar D.2

Ved DFS afgøres resultatet af udforskningsrækkefølgen. Det afgørende øjeblik er felt a3: her afsøges først mod højre, og DFS finder således først udgang A.

A

Spørgsmål D.3

Hvor mange felter vil blive besøgt under dybde-først-søgningen? Angiv antallet inkl. startfeltet ($S$) og slutfeltet ($A$, $B$ eller $C$).

Vis svar Skjul svar
Svar D.3

Søgningen følger den korteste sti til $A$: ved a3 går vi først til højre; ved d2 igen først til højre; ved g3 først op. Dermed besøges i alt 21 felter.

21

Spørgsmål D.4

Hvad er worst-case-kompleksiteten (i store-O notation) for bredde-først-søgning, udtrykt i antallet af felter $n$ i labyrinten? Giv en kort forklaring.

Vis svar Skjul svar
Svar D.4

I det værste tilfælde kan vi risikere at skulle besøge alle felter. Dermed er kompleksiteten lineær.

$O(n)$