Föreläsning Evolutionary computing
Vad ska hända idag? w Kort översikt över området w Genetiska algoritmer Huvudalgoritmen Exempelproblem Organismrepresentation Fitnessevaluering
Vad är evolutionary computing? w Grundstommen: Population av individer och/eller lösningar Fitness funktion som kan jämföra individer Urvalsoperator - selection operator Mutation Rekombination för att skapa nya individer
Notationer som används w Individ, kromosom, sträng w Genotyp w Gen w Allele w Population w Fitness w Genetiska operatorer w Urvalstryck w Genetisk drift w Generation
Historia w 1957 använder biologen Fraser en dator för att simulera evolution. w 1958 experimenterar Bremmermann med simulerad evoultion över binära genotyper och studerar mutation noga. w 1962 publicerar Bremmermann resultat som använder simulerad evolution där han diskuterar konvergens i förtid och förespråkar mutation framför ”parning”. w 1962 publicerar Holland en artikel om adaptiva system (grunden till genetiska algoritmer) w 1963 börjar Rechenberg och Schwefel att samarbeta med fllygplansvingarna (grunden till evolutionära strategier) w 1966 publicerar Fogel son bok om simulerad evolution (grunden till evolutionell programmering) w 1985 Hålls första konferensen som inriktar sig mot GA samtidigt som teorier om genetisk programmering börjar växa fram.
Genetiska algoritmer (GA) w Holland och hans studenter spred metoden vidare under 80-talet. w Genetisk programmering är en speciell variant av GA och är den metod som kanske är mest ”inne” nu.
Evolutionella strategier w Rechenberg, 60-talet w Flygplansvinge w Avviker eftersom urvalet görs efter det att ny avkomma skapats.
Evolutionell programmering w Fogel, 60-talet w Saknar en kombinerings- operator, dvs ingen avkomma skapas. w Ny population uppstår genom mutering.
Den genetiska algoritmen ÀVälj lämplig representation av individerna och hitta en passande objekt funktion. ÁSkapa en startpopulation. ÂBeräkna fitnessvärdet för alla individer. ÃStanna om termineringsvillkoret är uppfyllt. Ä Skapa nya individer mha urval, kombineringsstrategier tillsammans med genetiska operatorer. ÅTa bort gamla individer ur populationen ÆBeräkna fitnessvärdet för de nya individerna och stoppa in dem i populationen. ÇGå till steg 4.
Jämförelse med andra optimerings- metoder: w GA bearbetar en kodad representation och söker i representationens rymd i stället för originaldomänen. w GA använder global information från hela sökrymden eftersom den använder en population av lösningar istället för en punkt. w Sökningen sker med stokastiska operatorer istället för deterministiska. w Den enda informationen som GA behöver är objektfunktionen. Behöver inte derivator t.ex.
Vilka typer av problem kan GAs lösa? w Funktionsoptimering Traditionell forskning störst inom detta område w Bildbehandling Jämka bilder tagna vid olika tillfällen ”Fantombilder” w Kombinatoriska problem Knapsack problemet, Traveling salesperson w Designuppgifter Ofta en blandning av optimering och kombinering w Maskininlärning Klassifierare
Exempel 1 - Funktionsoptimering
Exempel 2 - ”Ryggsäcksproblemet” w Finns begränsning på hur tung ryggsäcken kan vara (11042 viktenheter). w Ska fyllas så mycket som möjligt Maximera vinsten Bara ett objekt av varje typ
Representation av organismer w Alla parametrar i en genetisk algoritm måste kodas till en sträng. w Alla individer i en population har samma storlek (antal tecken) och alla bitarna i strängen har värden från samma alfabet. w Största delen av teorin som finns är utvecklad för binära strängar (dvs alfabetet är {0, 1}). w Andra kodningar kräver andra typer av genetiska operatorer.
Nackdelar med binärkodning w ”Olagliga individer” (illegal individuals) w Hammingklyftan (Hammingcliff) w Hammingklyftan kan undvikas med hjälp av Graykodning G = 000 E = 010 F = 011 H = 001 A = 110B = 111 C = 100D = 101 f(A) = 0 f(B) = 30 f(C) = 14 f(D) = 0 f(E) = 22 f(F) = 0 f(G) = 28 f(H) = 26 w Punkterna A, F och D klättrar mot B w Punkterna E, C och H klättrar mot G
Ursprungsproblem : Graykodat : Omvandling: g 0 = b 0 g i = b i b i-1 för i = 1..n Tex (110) b = (101) g G = 000 E = 011 F = 010 H = 001 A= 101B = 100 C = 110 D = 111 Hammingrum (alla grannoder skiljer sig bara en bit): G = 000 F = 010 E = 011 H = 001 C = 110 D = 111 B = 100 A = 101 w D klättrar mot E w E klättrar mot H w F och H klättrar mot G w C, G och A klättrar mot B f(A) = 0 f(B) = 30 f(C) = 14 f(D) = 0 f(E) = 22 f(F) = 0 f(G) = 28 f(H) = 26
Representation för våra exempel w Optimeringsproblemet: Binärkodning, 10 bitar 3 för heltal och 7 för decimaltal Noggrannheten i svaret beroende av antalet bitar w Knapsack-problemet 50 bitar (en för varje typ av objekt) 1 om i ryggsäcken annars 0 Problem med övervikten ej löst!
Initiering av populationen w Kan vara slumpmässig eller icke-slumpmässig w Viktiga faktorer att tänka på: Genetisk mångfald ”Jämna” evalueringsvärden. –Om man har outliers så kan dessa ta över populationen (prematur konvergens)
Slumpmässig initiering: w ”Vanlig” slumpmässig ger en likformigt fördelad startpopulation Lätt att implementera Liten risk för prematur konvergens w Utökad slumpmässig initiering För varje individ i populationen slumpas ett givet antal fram och den bästa av dessa väljs
Icke-slumpmässig initiering: w Används när man har specifik kunskap om problemet. Man kan till exempel lägga till redan kända ”bra” individer –individerna kan ta över populationen om de är för bra i relation till de andra vikta slumpfunktionen så att en viss del av sökrymden blir mer representerad –man måste se till att mångfalden finns kvar ta fram intressanta punkter med hjälp av någon algoritm som man sedan utgår ifrån –algoritmen som används kanske missar globala optima pga att de söker sig till vissa delar av sökområdet
Fitnessevaluering w Fitnessvärdet talar om hur ”bra” en individ är Bör ge högre värden till de individer som representerar ”bra” lösningar. Får inte vara allt för stora variationer för att kunna behålla genetisk spridning. w Används vid urval av de som ska skapa nästa generation w Bygger ofta på objektfunktionen w Fitnessvärdet måste vara positivt Eftersom urvalsprocessen baserar sig på sannolikheter proportionellt mot fitnessvärdet
Raw fitness w Om objektfunktionen F är icke-negativ så kan man använda den direkt. f(x) = F(x) w Annars definieras raw fitness på följande sätt: w Stora variationer i populationen medför att de bästa favoriseras så att de kan ta över w Om skillnaderna är för små sker urvalet i princip slumpmässigt
Normalisering av fitnessvärden w Windowing w Linear normalisation w Linear scaling
Normalisering av fitnessvärden w Sigma truncation w Power law scaling (k nära 1)
Illegala individer w Kan uppkomma vid slumpmässig initiering och/eller vid skapandet av den nya generationen. w Några sätt att lösa problemet: Ta bort de illegala och skapa nya tills rätt antal lagliga skapats. +Lätt att implementera. –Olagliga individer kan innehålla genetiskt material som är bra. –Kan finnas väldigt många illegala individer i en sökrymd vilket gör att denna metod blir ineffektiv.
Fler sätt att lösa problemet: w Reparera individen så att den blir laglig. w Straffunktioner (penalty functions) Vanligaste alternativet f’=f+p eller f’=p(f) Om straffet för högt: –GA kommer att ägna stor tid åt att evaluera olagliga individer –Första lagliga individen kommer antagligen att ta över hela populationen Om straffet för lågt –GA kan komma att hitta en lösning som är en olaglig individ.
w Mer om straffunktioner: Låt straffunktionen stå för hur dålig individen är och f = c - p, c konstant. Straffunktioner som uppskattar i vilken omfattning villkoren överskridits är bättre än de som bara kolla antal villkor. Kan skapas utifrån ”the expected completion cost”. Dvs hur mycket skulle det kosta att göra individen laglig. w Knapsack-problemet Om vikten för stor dra av en konstant gånger övervikten. f = f - c(w - M)