Heuristieken – kennisbits 2 Guszti Eiben
8 koninginnen oplossen versie 3 Methode: Alle koninginnen tegelijk Verbeter configuratie door Maak K > 1 nieuwe configuraties door een paar random veranderingen (“mutaties”) Gooi de slechtste K- 1 “mutanten” weg Itereer
Dit algoritme Gericht op verbetering (iterative improvement method) Heuristiek: maximaliseer verbetering via blinde “mutatie” en kwaliteitgestuurde selectie Oplossingstraject via volledige maar incorrecte configuraties
“Definitie” van heuristiek Leer van het vinden, de wetenschap die langs methodische weg tot oplossingen leert komen. De kunst om door logisch redeneren stap voor stap tot een bepaalde waarheid te komen. Leer van het methodisch zoeken, gebruikmakend van een bepaald aantal vuistregels in een acceptabele rekentijd. Het resultaat is bruikbaar in de praktijk, maar niet altijd optimaal. Heuristics rapidly come to a solution that is hoped to be close to the best possible answer. Heuristics are "rules of thumb", educated guesses, intuitive judgments or simply common sense. Welke heuristieken waren er in de voorbeelden?
Oplossingmethoden Constructive vs. iterative improvement Zoeken via Correct maar onvolledig Volledig maar incorrect kandidaat-oplossingen Deterministische vs. stochastische methoden Heuristische methode ≠ stochastische methode Manieren, maten om onvolledigheid, incorrectheid te meten heuristiek sturen
Concepten bij probleem- definities Concept 1: constraints, beperkingen, eisen, voorwaarden, … zijn Boolean: waar of onwaar Voorbeeld 1: N koninginnen probleem Één constraint per tweetal koninginnen: niet slaan N * (N-1) / 2 constraints in totaal (lokaal – globaal) Voorbeeld 2: graafkleuringsprobleem Één constraint per edge: nodes met andere kleuren # constraints in totaal = # edges (lokaal – globaal) Praktijk: hard constraints vs. soft constraints
Concepten bij probleem- definities Concept 2: optimalisatie-criterium, doelfunctie, kwaliteitsfunctie, … heeft een schaal (“graded”) Voorbeeld 1: Voorbeeld 2: lengte vd route bij handelsreiziger Er kunnen meer optimalisatie-criteria zijn, bij voorbeeld: prijs, kwaliteit, energieverbruik, looks
Probleemtypes Optimialisatie-criteria Constraints Ja Nee Free optimization problem
Probleemtypes Optimialisatie-criteria Constraints Ja Nee Constraint satisfaction problem Free optimization problem
Probleemtypes Optimialisatie-criteria Constraints Ja Nee Constrained optimization problem Constraint satisfaction problem Free optimization problem
Probleemtypes Optimialisatie-criteria Constraints Ja Nee Constrained optimization problem Constraint satisfaction problem Free optimization problem No problem
Probleemtypes & oplossingen FOP = Free Optimization Problem: (S, . , f) Oplossing: s S zdd f (s) is optimaal in S CSP = Constraint Satisfaction Problem: (S, Φ, . ) Oplossing: s S zdd Φ(s) = true COP = Constrained Optimization Problem: (S, Φ, f ) Oplossing: s S zdd Φ(s) = true en f(s) is optimaal in SΦ (SΦ = {s S | Φ (s) = true} )
Constraints ↔ optimalisatiecriteria Neem het 8 koninginnen probleem: Strafpunten voor een koningin q: s(q) = # koninginnen die zij kan slaan Foute koningin: q is fout als s(q) > 0 Kwaliteit van een configuratie c : Q1(c) = som van strafpunten voor alle koninginnen Q2(c) = aantal foute koninginnen Voor beide geldt: Qi(c) = 0 alle constraints OK, dus oplossing Qi minimaliseren = aantal fouten reduceren Constraint satisfaction via optimalisatie
Constraint satisfaction via optimalisatie
COP voorbeeld: Handelsreiziger Gegeven N steden, incl. “thuis” vind de route die A: Alle steden één keer aandoet B: Terugkeert naar “thuis” C: Minmaal is qua lengte / tijd / benzineverbruik … A en B zijn constraints C is een doelfunctie Alle routes van lengte N Alle “A routes” van lengte N Alle “B routes” van lengte N
Eenmalige applicaties Voorbeeld: Optimaliseren van wegennetwerk rondom een nieuw vliegveld Totale kosten: 100en miljoenen euro’s, rekenkosten verwaarloosbaar in vergelijking De taak is eenmalig Veel tijd om algoritme te runnen (meerdere runs) Moet maar één keer een superieure oplossing vinden
Terugkerende applicaties Voorbeeld: Optimaliseren van Internet shopping bezorg-routes Iedere dag verschillende adressen Toch min of meer dezelfde taak Beperkte tijd om algoritme te runnen Moet altijd een redelijke oplossing binnen redelijke tijd vinden
Real-time applicaties Voorbeeld: Optimaliseren van groentijden van verkeerslichten Steeds verschillende toevoer van auto’s Toch min of meer dezelfde taak Beperkte tijd om algoritme te runnen Moet altijd een redelijke oplossing binnen een zéér korte tijd vinden Special case van terugkerende applicaties?
Applicaties en algoritmen Type applicatie bepaalt de eisen jegens een oplossing en de eisen jegens de oplossingsmethode Uitspraken over oplossingsmethodes moeten rekening houden met de applicatie B.v., voorkeur voor een bepaalde methode verschilt per applicatie
Welk stochastisch algoritme is beter? Waarom?
Algoritmen vergelijken Theorie vs. praktijk (bewijs vs. empirische data) Belangrijkste dimensies: Kwaliteit van de oplossing Hoeveelheid rekenwerk – inspanning, snelheid Robuustheid Verbanden tussen dimensies Fix (max) hoeveelheid werk, meet kwaliteit Fix (min) kwaliteit, meet hoeveelheid werk Fix beide, meet succes (ja of nee)
Hoeveelheid werk vs. kwalitiet Algoritme B Algoritme A Kwaliteit van de oplossing Hoeveelheid werk (tijd, # stappen, …) NB Dit is de zgn “anytime behaviour”
Hoeveelheid rekenwerk meten Afhankelijk van fysieke opstelling “Echte” tijd (wall clock time) Computer tijd, CPU time, user time Onafhankelijk van fysieke opstelling Aantal rekenstappen Aantal pogingen Aantal punten bekeken in de zoekruimte Appels met peren vergelijken Scale-up
Scale-up vergelijking Welk algoritme is beter? Waarom?
Testproblemen Gedrag van het algoritme hangt af van de probleeminstantie Beoordeling van het algoritme hangt af van het gedrag hangt af van de probleeminstantie Test suite: collectie van probleeminstanties gebruikt om een algoritme te beoordelen Opties: probleeminstanties uit de echte praktijk academische collecties (internet) uit problem instance generators uit eigen makelij
Experimenteren Vergelijkend vs. beschrijvend Doelen en/of vragen Factoren om te bestuderen / te negeren Design (opstelling, ontwerp) vd experimenten, incl. Wat & hoe vast te leggen, variëren Wat & hoe te meten Test problemen (instanties) Rapporteren ! 26
NP en zo … Probleem X hoort bij de klasse P: alg. dat X oplost in polynomiale tijd NP: alg. dat X oplost & alg. dat oplossingen van X verifieert in polyn. tijd NP-complete: hoort bij NP & elk probleem Y in NP kan getransformeerd worden naar X in polynomiale tijd NP-hard: elk probleem Y in NP kan getransformeerd worden naar X 27
GROTE VRAAG P = NP ? 28
NP-complete P NP NP-hard
NP-complete P = NP = NP-hard