Title: F
1Föreläsning 980303
2Vad ska hända idag?
- Kort översikt över området
- Genetiska algoritmer
- Huvudalgoritmen
- Exempelproblem
- Organismrepresentation
- Fitnessevaluering
3Vad är evolutionary computing?
- 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
4Notationer som används
- Individ, kromosom, sträng
- Genotyp
- Gen
- Allele
- Population
- Fitness
- Genetiska operatorer
- Urvalstryck
- Genetisk drift
- Generation
5Historia
- 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.
6Genetiska algoritmer (GA)
- Holland och hans studenter spred metoden vidare
under 80-talet. - Genetisk programmering är en speciell variant av
GA och är den metod som kanske är mest inne nu.
7Evolutionella strategier
- Rechenberg, 60-talet
- Flygplansvinge
- Avviker eftersom urvalet görs efter det att ny
avkomma skapats.
8Evolutionell programmering
- Fogel, 60-talet
- Saknar en kombinerings-operator, dvs ingen
avkomma skapas. - Ny population uppstår genom mutering.
9Den 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.
10Jämförelse med andra optimerings-metoder
- GA bearbetar en kodad representation och söker i
representationens rymd i stället för
originaldomänen. - 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. - Sökningen sker med stokastiska operatorer
istället för deterministiska. - Den enda informationen som GA behöver är
objektfunktionen. Behöver inte derivator t.ex.
11Vilka typer av problem kan GAs lösa?
- Funktionsoptimering
- Traditionell forskning störst inom detta område
- Bildbehandling
- Jämka bilder tagna vid olika tillfällen
- Fantombilder
- Kombinatoriska problem
- Knapsack problemet, Traveling salesperson
- Designuppgifter
- Ofta en blandning av optimering och kombinering
- Maskininlärning
- Klassifierare
12Exempel 1 - Funktionsoptimering
13Exempel 2 - Ryggsäcksproblemet
- Finns begränsning på hur tung ryggsäcken kan vara
(11042 viktenheter). - Ska fyllas så mycket som möjligt
- Maximera vinsten
- Bara ett objekt av varje typ
14Representation av organismer
- Alla parametrar i en genetisk algoritm måste
kodas till en sträng. - Alla individer i en population har samma storlek
(antal tecken) och alla bitarna i strängen har
värden från samma alfabet. - Största delen av teorin som finns är utvecklad
för binära strängar (dvs alfabetet är 0, 1). - Andra kodningar kräver andra typer av genetiska
operatorer.
15Nackdelar med binärkodning
- Olagliga individer (illegal individuals)
- Hammingklyftan (Hammingcliff)
- Hammingklyftan kan undvikas med hjälp av
Graykodning
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
- Punkterna E, C och H klättrar mot G
16Ursprungsproblem
Graykodat
A 101
B 100
Omvandling g0 b0 gi bi ? bi-1 för i
1..n Tex (110)b (101)g
F 010
E 011
G 000
H 001
C 110
D 111
Hammingrum (alla grannoder skiljer sig bara en
bit)
C 110
D 111
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
- E klättrar mot H
- F och H klättrar mot G
- C, G och A klättrar mot B
E 011
F 010
G 000
H 001
B 100
A 101
17Representation för våra exempel
- Optimeringsproblemet
- Binärkodning, 10 bitar
- 3 för heltal och 7 för decimaltal
- Noggrannheten i svaret beroende av antalet bitar
- Knapsack-problemet
- 50 bitar (en för varje typ av objekt)
- 1 om i ryggsäcken annars 0
- Problem med övervikten ej löst!
18Initiering av populationen
- Kan vara slumpmässig eller icke-slumpmässig
- 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)
19Slumpmässig initiering
- Vanlig slumpmässig ger en likformigt fördelad
startpopulation - Lätt att implementera
- Liten risk för prematur konvergens
- Utökad slumpmässig initiering
- För varje individ i populationen slumpas ett
givet antal fram och den bästa av dessa väljs
20Icke-slumpmässig initiering
- 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
21Fitnessevaluering
- 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 ska skapa nästa
generation - Bygger ofta på objektfunktionen
- Fitnessvärdet måste vara positivt
- Eftersom urvalsprocessen baserar sig på
sannolikheter proportionellt mot fitnessvärdet
22Raw fitness
- Om objektfunktionen F är icke-negativ så kan man
använda den direkt. f(x) F(x) - Annars definieras raw fitness på följande sätt
- Stora variationer i populationen medför att de
bästa favoriseras så att de kan ta över - Om skillnaderna är för små sker urvalet i princip
slumpmässigt
23Normalisering av fitnessvärden
- Windowing
- Linear normalisation
- Linear scaling
24(No Transcript)
25Normalisering av fitnessvärden
- Sigma truncation
- Power law scaling (k nära 1)
26(No Transcript)
27Illegala individer
- Kan uppkomma vid slumpmässig initiering och/eller
vid skapandet av den nya generationen. - 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.
28Fler sätt att lösa problemet
- Reparera individen så att den blir laglig.
- Straffunktioner (penalty functions)
- Vanligaste alternativet
- ffp eller fp(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.
29- 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. - Knapsack-problemet
- Om vikten för stor dra av en konstant gånger
övervikten. f f - c(w - M)