Frelsning 980303 Evolutionary computing Vad ska hnda idag

  • Slides: 29
Download presentation
Föreläsning 980303 Evolutionary computing

Föreläsning 980303 Evolutionary computing

Vad ska hända idag? Kort översikt över området w Genetiska algoritmer w • •

Vad ska hända idag? Kort översikt över området w Genetiska algoritmer w • • Huvudalgoritmen Exempelproblem Organismrepresentation Fitnessevaluering

Vad är evolutionary computing? w Grundstommen: • Population av individer och/eller lösningar • Fitness

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 w w Individ, kromosom, sträng Genotyp Gen Allele Population w

Notationer som används w w w Individ, kromosom, sträng Genotyp Gen Allele Population w w w Fitness Genetiska operatorer Urvalstryck Genetisk drift Generation

Historia w w w w 1957 använder biologen Fraser en dator för att simulera

Historia w w w w 1957 använder biologen Fraser en dator för att simulera evolution. 1958 experimenterar Bremmermann med simulerad evoultion över binära genotyper och studerar mutation noga. 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”. 1962 publicerar Holland en artikel om adaptiva system (grunden till genetiska algoritmer) 1963 börjar Rechenberg och Schwefel att samarbeta med fllygplansvingarna (grunden till evolutionära strategier) 1966 publicerar Fogel son bok om simulerad evolution (grunden till evolutionell programmering) 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) Holland och hans studenter spred metoden vidare under 80 -talet. w

Genetiska algoritmer (GA) 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. w

Evolutionella strategier Rechenberg, 60 -talet w Flygplansvinge w Avviker eftersom urvalet görs efter det

Evolutionella strategier Rechenberg, 60 -talet w Flygplansvinge w Avviker eftersom urvalet görs efter det att ny avkomma skapats. w

Evolutionell programmering Fogel, 60 -talet w Saknar en kombineringsoperator, dvs ingen avkomma skapas. w

Evolutionell programmering Fogel, 60 -talet w Saknar en kombineringsoperator, dvs ingen avkomma skapas. w Ny population uppstår genom mutering. w

Den genetiska algoritmen À Välj lämplig representation av individerna och hitta en passande objekt

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 optimeringsmetoder: GA bearbetar en kodad representation och söker i representationens rymd

Jämförelse med andra optimeringsmetoder: 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. w

Vilka typer av problem kan GAs lösa? w Funktionsoptimering • Traditionell forskning störst inom

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 1 - Funktionsoptimering

Exempel 2 - ”Ryggsäcksproblemet” Finns begränsning på hur tung ryggsäcken kan vara (11042 viktenheter).

Exempel 2 - ”Ryggsäcksproblemet” Finns begränsning på hur tung ryggsäcken kan vara (11042 viktenheter). w Ska fyllas så mycket som möjligt w • Maximera vinsten • Bara ett objekt av varje typ

Representation av organismer Alla parametrar i en genetisk algoritm måste kodas till en sträng.

Representation av organismer 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. w

Nackdelar med binärkodning ”Olagliga individer” (illegal individuals) w Hammingklyftan (Hammingcliff) w Hammingklyftan kan undvikas

Nackdelar med binärkodning ”Olagliga individer” (illegal individuals) w Hammingklyftan (Hammingcliff) w Hammingklyftan kan undvikas med hjälp av Graykodning w A = 110 B = 111 F = 011 E = 010 G = 000 H = 001 C = 100 D = 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 Punkterna A, F och D klättrar mot B w Punkterna E, C och H klättrar mot G w

Ursprungsproblem: 110 010 111 011 Omvandling: g 0 = b 0 gi = bi

Ursprungsproblem: 110 010 111 011 Omvandling: g 0 = b 0 gi = bi bi-1 för i = 1. . n 000 001 100 Graykodat: Tex (110)b = (101)g 101 A= 101 E = 011 G = 000 C = 110 B = 100 F = 010 H = 001 D = 111 Hammingrum (alla grannoder skiljer sig bara en bit): C = 110 F = 010 G = 000 B = 100 D = 111 E = 011 H = 001 A = 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 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 w

Representation för våra exempel w Optimeringsproblemet: • Binärkodning, 10 bitar • 3 för heltal

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 Kan vara slumpmässig eller icke-slumpmässig w Viktiga faktorer att tänka på:

Initiering av populationen Kan vara slumpmässig eller icke-slumpmässig w Viktiga faktorer att tänka på: w • 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

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

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

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. Används vid urval av de som skapa nästa generation w Bygger ofta på objektfunktionen w Fitnessvärdet måste vara positivt w • Eftersom urvalsprocessen baserar sig på sannolikheter proportionellt mot fitnessvärdet

Raw fitness Om objektfunktionen F är icke-negativ så kan man använda den direkt. f(x)

Raw fitness 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 w

Normalisering av fitnessvärden w Windowing w Linear normalisation w Linear scaling

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)

Normalisering av fitnessvärden w Sigma truncation w Power law scaling (k nära 1)

Illegala individer Kan uppkomma vid slumpmässig initiering och/eller vid skapandet av den nya generationen.

Illegala individer Kan uppkomma vid slumpmässig initiering och/eller vid skapandet av den nya generationen. w Några sätt att lösa problemet: w • 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: Reparera individen så att den blir laglig. w Straffunktioner

Fler sätt att lösa problemet: Reparera individen så att den blir laglig. w Straffunktioner (penalty functions) w • 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

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)