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 Tegels Configuratie van tegels Algoritme
Wat is de (een) oplossing? Freecell Configuratie van kaarten ? Reeks stappen (kaartverplaatsingen) Algoritme
Een oplossing is … Afhankelijk van de probleemformulering: Vraag: 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 vak Volgens 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 gespecificeerd Helder 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 één Positiekeuze: eerste de beste Bij vastlopen backtracken
8 koninginnen oplossen versie 1.b Methode: Koninginnen één voor één Positiekeuze: bezet zo min mogelijk vrije velden Bij 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 tegelijk Verminder 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 2 1 2 3 4 5 6
Dit algoritme Gericht op verbetering (iterative improvement method) Heuristiek: maximaliseer verbetering via “educated guess” Oplossingstraject via volledige maar incorrecte configuraties