Zoeken met beperkt geheugen Zoekalgoritmen (2009 2010) College 7: Zoeken met beperkt geheugen Dirk Thierens, Tekst: Linda van der Gaag algoritmen voor zoeken met beperkt geheugen zijn ontwikkeld voor problemen met grote oplossingsdiepten; waarbij een oplossing slechts een doeltoestand is; een algoritme voor zoeken met beperkt geheugen doorzoekt slechts een deel van de zoekruimte van een probleem, gestuurd door kennis van het probleem; enkele algoritmen voor zoeken met beperkt geheugen zijn: (random-restart) hill climbing; beam search; simulated annealing; tabu search. Zoekalgoritmen: Zoeken met kosten 159 / 353 Zoekalgoritmen: Beperkt geheugen 160 / 353 Impliciete doeltoestanden Voor veel zoekproblemen geldt: de doeltoestanden van het probleem zijn impliciet omschreven; een oplossing van het probleem is dan een enkele doeltoestand. Voorbeeld Gegeven zijn een landkaart en drie kleuren: Een representatie van het kleuringsprobleem Het kleuringsprobleem kan als volgt als een zoekprobleem geformuleerd worden: een toestand van de landkaart is een toekenning van een kleur aan elk land op de kaart: Een doeltoestand is een kleuring van de landen zodanig dat aangrenzende landen verschillend gekleurd zijn. de toestandsruimte van het probleem is de verzameling van alle mogelijke toestanden van de kaart; Zoekalgoritmen: Beperkt geheugen Impliciete doeltoestanden 161 / 353 Zoekalgoritmen: Beperkt geheugen Impliciete doeltoestanden 162 / 353
Een representatie vervolg Een representatie vervolg een begintoestand is een willekeurige toestand van de landkaart; een doeltoestand is een toestand van de kaart waarin aangrenzende landen verschillend gekleurd zijn: de ene toestand van de landkaart wordt in de andere getransformeerd door van één land de kleur te wijzigen: Zoekalgoritmen: Beperkt geheugen Impliciete doeltoestanden 163 / 353 Zoekalgoritmen: Beperkt geheugen Impliciete doeltoestanden 164 / 353 Hill climbing inleiding Hill climbing Hill climbing is sterk gerelateerd aan best-first search: beide algoritmen maken gebruik van heuristische waarden van toestanden om het zoekproces te sturen. De belangrijkste verschillen zijn: hill climbing houdt slechts de huidige toestand bij; hill climbing selecteert nooit een toestand met een slechtere heuristische waarde dan de huidige toestand. Verder gebruikt hill climbing meestal een kwaliteitsbegrip als heuristische functie. De essentie van hill climbing is in pseudocode procedure hill-climb(t,h) returns t: t argmax{h(s) s in successors(t)}; while h(t ) h(t) do t t ; t argmax{h(s) s in successors(t)} enddo endprocedure De procedure hill-climb wordt aangeroepen met een begintoestand t en een te maximaliseren heuristische kwaliteitsfunctie h. Zoekalgoritmen: Beperkt geheugen Hill climbing 165 / 353 Zoekalgoritmen: Beperkt geheugen Hill climbing 166 / 353
Een voorbeeld De vier eigenschappen Beschouw nogmaals het kleuringsprobleem en de volgende toestand: De heuristische waarde van een toestand is het aantal landen met anders gekleurde buren. Het hill-climbing algoritme construeert bijvoorbeeld: Als de toestandsruimte van een zoekprobleem tenminste één doeltoestand bevat, dan geldt: hill climbing vindt niet noodzakelijk een doeltoestand; als hill climbing met een toestand termineert, dan is dit niet noodzakelijk een doeltoestand; hill climbing kost constant veel ruimte; hill climbing kost in de praktijk polynomiaal veel tijd. Zoekalgoritmen: Beperkt geheugen Hill climbing 167 / 353 Zoekalgoritmen: Beperkt geheugen Hill climbing: Eigenschappen 168 / 353 Een heuristisch landschap Globale en lokale maxima De heuristische functie voor een zoekprobleem definieert een landschap op de toestandsruimte van het probleem: heuristische waarde globaal maximum lokaal maximum huidige toestand toestanden Beschouw de toestandsruimte T van een zoekprobleem en een heuristische functie h op T: een globaal maximum voor h is een toestand t waarvoor geldt dat h(t) h(t ) voor alle t T; een lokaal maximum voor h is een toestand t waarvoor geldt dat er is een t T met h(t ) > h(t); voor alle successors s van t geldt dat h(s) < h(t). Hill climbing beklimt een berg in het landschap. Zoekalgoritmen: Beperkt geheugen Heuristisch landschap 169 / 353 Zoekalgoritmen: Beperkt geheugen Heuristisch landschap 170 / 353
Een voorbeeld Beschouw nogmaals de te maximaliseren heuristische functie voor de 8-puzzel. Veronderstel dat het hill-climbing algoritme de volgende tussentoestand heeft gegenereerd: Plateaus Beschouw de toestandsruimte T van een zoekprobleem en een heuristische functie h op T. Een toestand t bevindt zich op een voor h als geldt dat 1 2 5 8 4 7 6 3 1 2 3 8 4 7 6 5 h(s) h(t) voor alle successors s van t; er is tenminste één successor s met h(s ) = h(t). heuristische waarde globaal maximum tussentoestand doeltoestand lokaal maximum Toepassing van elke mogelijke operator op de toestand verkleint het aantal correct gepositioneerde tegels: de tussentoestand is een lokaal maximum. huidige toestand toestanden Zoekalgoritmen: Beperkt geheugen Heuristisch landschap 171 / 353 Zoekalgoritmen: Beperkt geheugen Heuristisch landschap 172 / 353 Een voorbeeld Het gedrag van hill climbing Beschouw nogmaals de te maximaliseren functie voor het kleuringsprobleem. Veronderstel dat het hill-climbing algoritme de volgende toestand heeft gegenereerd: Beschouw een landschap op de toestandsruimte van een zoekprobleem: zodra hill climbing een maximum bereikt, termineert het; hill climbing kan het lokale maximum niet onderscheiden van het globale maximum; hill climbing kan niet uit een lokaal maximum ontsnappen; op een vertoont hill climbing onsystematisch zoekgedrag. Toepassing van de operatoren laat het aantal landen met anders gekleurde buren onveranderd of verkleint dit aantal: de toestand bevindt zich op een. Hill climbing hanteert een onherroepelijke zoekstrategie. Zoekalgoritmen: Beperkt geheugen Heuristisch landschap 173 / 353 Zoekalgoritmen: Beperkt geheugen Heuristisch landschap 174 / 353
De effectiviteit van hill climbing De invloed van probleemrepresentatie De grilligheid van het landschap op de toestandsruimte van een zoekprobleem bepaalt de effectiviteit van het hill-climbing algoritme: h(t) De grilligheid van het heuristische landschap voor hill climbing wordt bepaald door attractieveld t de representatie van het praktijkprobleem als een zoekprobleem: de definitie van de verzameling van toestanden van het probleem; de definitie van de operatoren; hoe meer lokale maxima, hoe kleiner de kans dat hill climbing het globale maximum vindt; hoe kleiner het attractieveld van het globale maximum, hoe kleiner de kans dat hill climbing het vindt. de gekozen heuristische functie. Zoekalgoritmen: Beperkt geheugen Heuristisch landschap 175 / 353 Zoekalgoritmen: Beperkt geheugen Representatie 176 / 353 Een alternatieve representatie Een alternatieve representatie vervolg Het kleuringsprobleem kan ook als volgt als een zoekprobleem geformuleerd worden: een toestand van de landkaart is een partiële toekenning van kleuren aan de landen op de kaart: de begintoestand is de lege toestand waarin geen enkele kleur is toegekend: de toestandsruimte is de verzameling van alle mogelijke toestanden van de kaart; een doeltoestand is een toestand waarin alle landen een kleur hebben en aangrenzende landen verschillend gekleurd zijn; Zoekalgoritmen: Beperkt geheugen Representatie 177 / 353 Zoekalgoritmen: Beperkt geheugen Representatie 178 / 353
Een alternatieve representatie vervolg De twee representaties vergeleken Vergelijk nu de volgende operatoren: een toestand van de landkaart wordt in een andere getransformeerd door aan een nog ongekleurd land een kleur toe te kennen; een toestand wordt in een andere getransformeerd door aan een nog ongekleurd land een kleur toe te kennen die ongelijk is aan de kleuren van de buren. Beschouw nogmaals de oorspronkelijke representatie van het kleuringsprobleem en veronderstel dat de landkaart een oplossing heeft: als het hill climbing algoritme termineert, dan heeft het een doeltoestand gevonden; het hill climbing algoritme kan een pad van exponentiële lengte in de toestandsruimte doorlopen; het hill climbing algoritme vindt een doeltoestand met een kans die nadert naar 1.00. Zoekalgoritmen: Beperkt geheugen Representatie 179 / 353 Zoekalgoritmen: Beperkt geheugen Representatie 180 / 353 De twee representaties vergeleken vervolg Convergentie versus diversiteit Beschouw nu de alternatieve representatie van het kleuringsprobleem en veronderstel dat de landkaart een oplossing heeft: als het hill climbing algoritme termineert, dan heeft het niet noodzakelijk een doeltoestand gevonden; het hill climbing algoritme doorloopt een pad van lineaire lengte in de toestandsruimte; de kans dat hill climbing een doeltoestand vindt is sterk afhankelijk van de specifieke landkaart. Algoritmen en representaties voor zoeken met beperkt geheugen moeten een afweging maken van: convergentie: het zoekproces wordt gestuurd naar een maximum; diversiteit: een verscheidenheid aan alternatieven wordt onderzocht. Sterke convergentie gaat meestal ten koste van diversiteit, en vice versa. Zoekalgoritmen: Beperkt geheugen Representatie 181 / 353 Zoekalgoritmen: Beperkt geheugen Convergentie en diversiteit 182 / 353