Upload
stefanie-brander
View
237
Download
1
Embed Size (px)
Citation preview
Heuristieken – kennisbits 1
Guszti Eiben
I can't find an efficient algorithm, I guess I'm just too dumb.
I can't find an efficient algorithm, because no such algorithm is possible.
I can't find an efficient algorithm, but neither can all these famous people.
Onderwerpen
Problemen Oplossingsmethodes Applicaties Evalueren en vergelijken van oplossings-
methodes Statistieken Experimenteren Rapporteren
8 koninginnen probleem
Goed of fout ? (#1)
Waarom? Hoe goed / fout?
Goed of fout ? (#2)
Waarom? Hoe goed / fout?
Goed of fout ? (#3)
Waarom? Hoe goed / fout?
Algemeen vs. specifiek
Algemeen: N > 1 koninginnen Specifiek: N = 8 Eigenschap “grootte” is voldoende specifiek
Tegeltjes probleem? Vliegtuig probleem?
Probleem ≠ probleem instantie
Wat is de (een) oplossing? 8-konninginnen
Configuratie van koninginnen
Mokum Air Dienstregeling
TegelsConfiguratie van tegelsAlgoritme
Wat is de (een) oplossing? Freecell
Configuratie van kaarten ?Reeks stappen (kaartverplaatsingen)Algoritme
Een oplossing is …
Afhankelijk van de probleemformulering: Een object Een traject (tussen objecten) Een algoritme om objecten / trajecten te vinden
Vraag: Zijn er goede / slechte oplossingen? Zijn er betere / slechtere oplossingen? Waar hang dat vanaf? Hoe meten we dat?
Algoritme
Algoritme generaliseert de zoektocht naar een object of traject.
Niet oplossing voor een probleeminstantie, maar voor een hele klasse van problemen.
Herbruikbaar
Vraag: wat is een “algoritme” ?
Representatie
(3, 14, 24, 25, 36, 47, 53, 58) (5, 1, 8, 4, 2, 7, 3, 6) Zijn er goede / slechte representaties? Waar hangt dat vanaf?
Probleem, oplossing, oplosser
Probleem, probleem instantie
versus Oplossingsmethode, algoritme
Oplossing (≠ representatie) Representatie: hoort bij probleem of algoritme?
Vraag: heuristiek = algoritme?
Gevraagde oplossingen bij dit vakVolgens de presentaties van de opdrachten Mokum Air:
“Stel een dienstregeling op voor … ” Amstelhaege:
“Lever twee plattegronden af …” Tegels:
“Verzin een algoritme om …” Free cell:
“Maak een solver die ...”
Waarom is het oplossen moeilijk? Probleem nieuw Probleem onoverzichtelijk
Niet helder gespecificeerdHelder maar complex (complicated?)
Probleem instantie te groot (grootte = ?)
N # velden # configuraties van koninginnen
8 64 4426165368
12 144 103619293824707000
16 256 10078751602022300000000000
20 400 2788360983670900000000000000000000
8 koninginnen oplossen versie 1.a Methode:
Koninginnen één voor éénPositiekeuze: eerste de besteBij vastlopen backtracken
8 koninginnen oplossen versie 1.b Methode:
Koninginnen één voor éénPositiekeuze: bezet zo min mogelijk vrije veldenBij vastlopen backtracken
Effect van strategie
Eerste de beste Bezet zo min mogelijk
Dit algoritme
Gericht op uitbreiding (vanaf leeg, één voor één) – constructive method
Recursief geprogrammeerd (?) Heuristiek: verminder kans op backtracks Oplossingstraject via correcte maar
onvolledige configuraties
8 koninginnen oplossen versie 2 Methode:
Alle koninginnen tegelijkVerminder fouten door
○ Kies koningin met de meeste conflicten○ Verplaats die naar het beste vak in dezelfde rij○ “beste vak”= met de minste conflicten
Bij vastlopen: random verplaatsing
8 koninginnen oplossen versie 21
654
32
Dit algoritme
Gericht op verbetering (iterative improvement method)
Heuristiek: maximaliseer verbetering via “educated guess”
Oplossingstraject via volledige maar incorrecte configuraties