GA Genetiska algoritmer Warwick Tucker Matematiska institutionen Uppsala universitet warwick@math.uu.se 1
Reseproblem Reseproblem Du önskar att resa inom Europa genom att besöka London, Paris, Rom, Stockholm och Wien. Om du vet biljettpriserna mellan dessa städer, hur hittar du den billigaste resan? 2
Reseproblem Reseproblem Du önskar att resa inom Europa genom att besöka London, Paris, Rom, Stockholm och Wien. Om du vet biljettpriserna mellan dessa städer, hur hittar du den billigaste resan? 2-a
Naturvetardagarna, Uppsala, 021129 Reseproblem Reseproblem Du önskar att resa inom Europa genom att besöka London, Paris, Rom, Stockholm och Wien. Om du vet biljettpriserna mellan dessa städer, hur hittar du den billigaste resan? städer möjliga resor 5 120 10 362.800 100 2-b
Naturvetardagarna, Uppsala, 021129 Reseproblem En svensk semesterresa... (24.978 orter) 3
Reseproblem Naturvetardagarna, Uppsala, 021129 En svensk semesterresa... (24.978 orter)... hur manga olika fardv agar finns det? 3-a
Tillämpningar av TSP Tillämpningar av TSP 4
Tillämpningar av TSP Tillämpningar av TSP Borrning i kretskort (65.000 hål) 4-a
Tillämpningar av TSP Tillämpningar av TSP Borrning i kretskort (65.000 hål) Reseplanering för lastbilsfrakt och pakethämtning 4-b
Tillämpningar av TSP Tillämpningar av TSP Borrning i kretskort (65.000 hål) Reseplanering för lastbilsfrakt och pakethämtning Utbyggnad/planering av kraftnät 4-c
Tillämpningar av TSP Tillämpningar av TSP Borrning i kretskort (65.000 hål) Reseplanering för lastbilsfrakt och pakethämtning Utbyggnad/planering av kraftnät Även små förbättringar ger stora vinster. Vi behöver mer effektiva algoritmer! 4-d
Algoritmer Vad är en algoritm? 5
Algoritmer Vad PSfragär replacements en algoritm? ingredienser recept cements ingredienser ugn redskap indata recept ugn redskap kaka mjukvara hårdvara kaka utdata 5-a
Algoritmer Vad PSfragär replacements en algoritm? ingredienser recept cements ingredienser ugn redskap indata recept ugn redskap kaka mjukvara hårdvara kaka utdata En algoritm är ett recept! 5-b
Algoritmer Vad PSfragär replacements en algoritm? ingredienser recept cements ingredienser ugn redskap indata recept ugn redskap kaka mjukvara hårdvara kaka utdata En algoritm är ett recept! Implementerat som ett program 5-c
Algoritmer Vad PSfragär replacements en algoritm? ingredienser recept cements ingredienser ugn redskap indata recept ugn redskap kaka mjukvara hårdvara kaka utdata En algoritm är ett recept! Implementerat som ett program Oberoende av språk 5-d
Algoritmer Vad PSfragär replacements en algoritm? ingredienser recept cements ingredienser ugn redskap indata recept ugn redskap kaka mjukvara hårdvara kaka utdata En algoritm är ett recept! Implementerat som ett program Oberoende av språk Strikta regler för indata/utdata 5-e
Exempel 1 Kan vi alltid hitta effektiva algorimer? 6
Exempel 1 Kan vi alltid hitta effektiva algorimer? Exempel 1: (Hitta ett telefonnummer) Indata: en persons namn Utdata: personens telefonnummer Algoritm: halveringsmetoden på telefonkatalogen 6-a
Exempel 1 Kan vi alltid hitta effektiva algorimer? Exempel 1: (Hitta ett telefonnummer) Indata: en persons namn Utdata: personens telefonnummer Algoritm: halveringsmetoden på telefonkatalogen Hur många sidor kan vi hantera? 6-b
Naturvetardagarna, Uppsala, 021129 Exempel 1 Kan vi alltid hitta effektiva algorimer? Exempel 1: (Hitta ett telefonnummer) Indata: en persons namn Utdata: personens telefonnummer Algoritm: halveringsmetoden på telefonkatalogen Hur många sidor kan vi hantera? sidor bisektioner 1.000 10 1.000.000 20 33 333 6-c
Naturvetardagarna, Uppsala, 021129 Exempel 2 Exempel 2: (Permutationer) Indata: en lista med heltal Utdata: en lista med alla möjliga permutationer Algoritm: generera samtliga permutationer 7
Naturvetardagarna, Uppsala, 021129 Exempel 2 Exempel 2: (Permutationer) Indata: en lista med heltal Utdata: en lista med alla möjliga permutationer Algoritm: generera samtliga permutationer 7-a
Naturvetardagarna, Uppsala, 021129 Exempel 2 Exempel 2: (Permutationer) Indata: en lista med heltal Utdata: en lista med alla möjliga permutationer Algoritm: generera samtliga permutationer Hur långa listor kan vi hantera? 7-b
Naturvetardagarna, Uppsala, 021129 Exempel 2 Exempel 2: (Permutationer) Indata: en lista med heltal Utdata: en lista med alla möjliga permutationer Algoritm: generera samtliga permutationer Hur långa listor kan vi hantera? längd permutationer 5 120 10 3.628.800 15 20 7-c
Exempel 3 Exempel 3: (Stopproblemet) Indata: ett datorprogram Utdata: JA om programmet någonsin slutar, NEJ annars Algoritm: det finns ingen! 8
Exempel 3 Exempel 3: (Stopproblemet) Indata: ett datorprogram Utdata: JA om programmet någonsin slutar, NEJ annars Algoritm: det finns ingen! PROGRAM 1 input: N (positive) while N > 1 do N := N 2 end PROGRAM 2 input: N (positive) while N > 1 do if N is even N := N / 2 else N := 3N + 1 end 8-a
Hagelkornsproblemet Program 2 Hagelkorn 9
Hagelkornsproblemet Program 2 Hagelkorn 2 1 9-a
Naturvetardagarna, Uppsala, 021129 Hagelkornsproblemet Program 2 Hagelkorn 2 1 3 1 9-b
Naturvetardagarna, Uppsala, 021129 Hagelkornsproblemet Program 2 Hagelkorn 2 1 3 1 4 1 9-c
Naturvetardagarna, Uppsala, 021129 Hagelkornsproblemet Program 2 Hagelkorn 2 1 3 1 4 1 5 1 9-d
Naturvetardagarna, Uppsala, 021129 Hagelkornsproblemet Program 2 Hagelkorn 2 1 3 1 4 1 5 1 6 1 9-e
Naturvetardagarna, Uppsala, 021129 Hagelkornsproblemet Program 2 Hagelkorn 2 3 4 5 6 7 1 1 1 1 1 1 9-f
Naturvetardagarna, Uppsala, 021129 Hagelkornsproblemet Program 2 Hagelkorn 2 3 4 5 6 7 1 1 1 1 1 1 8 1 9-g
Naturvetardagarna, Uppsala, 021129 Hagelkornsproblemet Program 2 Hagelkorn 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 9-h
Hagelkornsproblemet Program 2 Hagelkorn 27 9232 1 10
Hagelkornsproblemet Program 2 Hagelkorn 27 9232 1 Startvärdet 27 har 111 hagelkorn! 10-b
Problemtyper Problemtyper inga algoritmer PSfrag replacements långsamma algoritmer snabba algoritmer 11
Problemtyper Problemtyper inga algoritmer PSfrag replacements långsamma algoritmer snabba algoritmer Vi kan inte alltid hitta effektiva algoritmer! 11-a
Problemtyper Problemtyper inga algoritmer PSfrag replacements långsamma algoritmer snabba algoritmer Vi kan inte alltid hitta effektiva algoritmer! Faktum är att vi ibland inte ens kan hitta långsamma algoritmer... 11-b
Algoritmtyper Finns det något hopp? 12
Algoritmtyper Finns det något hopp? Exakta algoritmer Måste finna exakta lösningar inom ändlig tid Brukar kräva djup insikt om problemet Kan vara oacceptabelt långsamma 12-a
Algoritmtyper Finns det något hopp? Exakta algoritmer Måste finna exakta lösningar inom ändlig tid Brukar kräva djup insikt om problemet Kan vara oacceptabelt långsamma Approximativa (heuristiska) algoritmer Brukar hitta bra lösningar inom ändlig tid Brukar kräva liten insikt om problemet Kan vara snabba 12-b
Approximativa algoritmer Approximativa algoritmer finns i två varianter: 13
Approximativa algoritmer Approximativa algoritmer finns i två varianter: 1. Alltid snabba, vanligtvis bra lösningar 2. Vanligtvis snabba, alltid bra lösningar 13-a
Approximativa algoritmer Approximativa algoritmer finns i två varianter: 1. Alltid snabba, vanligtvis bra lösningar 2. Vanligtvis snabba, alltid bra lösningar Genetiska algoritmer (GA) Introducerades av John Holland under 1960-talet Baseras på teorin för ärftlighet (Mendel 1823-1884) Simulerar evolutionen hos en population Approximativa algoritmer av typ 1 13-b
Genetiska algoritmer En typisk genetisk algoritm 14
Genetiska algoritmer En typisk genetisk algoritm 1. Skapa en initialpopulation. 14-a
Genetiska algoritmer En typisk genetisk algoritm 1. Skapa en initialpopulation. 2. Utvärdera alla individers hälsotillstånd. 14-b
Genetiska algoritmer En typisk genetisk algoritm 1. Skapa en initialpopulation. 2. Utvärdera alla individers hälsotillstånd. 3. Utse en ny population för avel, baserat på individernas hälsa. 14-c
Genetiska algoritmer En typisk genetisk algoritm 1. Skapa en initialpopulation. 2. Utvärdera alla individers hälsotillstånd. 3. Utse en ny population för avel, baserat på individernas hälsa. 4. Tillämpa genetiska operatorer på medlemmarna i avelspopulationen. 14-d
Genetiska algoritmer En typisk genetisk algoritm 1. Skapa en initialpopulation. 2. Utvärdera alla individers hälsotillstånd. 3. Utse en ny population för avel, baserat på individernas hälsa. 4. Tillämpa genetiska operatorer på medlemmarna i avelspopulationen. 5. Konstruera en ny generation bestående av avkomman. 14-e
Genetiska algoritmer En typisk genetisk algoritm 1. Skapa en initialpopulation. 2. Utvärdera alla individers hälsotillstånd. 3. Utse en ny population för avel, baserat på individernas hälsa. 4. Tillämpa genetiska operatorer på medlemmarna i avelspopulationen. 5. Konstruera en ny generation bestående av avkomman. 6. Om generationen är tillräckligt frisk slutar vi. Annars återvänder vi till punkt 2. 14-f
Naturvetardagarna, Uppsala, 021129 Genetiska algoritmer 1. Kräver en representation (kodning) av individer som beror på det specifika problemet. Varje kromosom utgörs av flera gener från ett särskilt alfabet, t.ex.. 15
Naturvetardagarna, Uppsala, 021129 Genetiska algoritmer 1. Kräver en representation (kodning) av individer som beror på det specifika problemet. Varje kromosom utgörs av flera gener från ett särskilt alfabet, t.ex. 2. Hälsan skall mäta hur nära en individ är att lösa problemet. Kan viktas mer eller mindre aggressivt.. 15-a
Naturvetardagarna, Uppsala, 021129 Genetiska algoritmer 1. Kräver en representation (kodning) av individer som beror på det specifika problemet. Varje kromosom utgörs av flera gener från ett särskilt alfabet, t.ex. 2. Hälsan skall mäta hur nära en individ är att lösa problemet. Kan viktas mer eller mindre aggressivt. 3. Ändra skalan så att populationens totala hälsopoäng blir 100. Dela ett ruletthjul i proportionerliga delar och snurra.. Individen som kommer upp väljs ut för avel. 15-b
Genetiska algoritmer 4. Två elementära typer: korsning och mutation. ag replacements 00101101011 korsning 00101101001 10011001001 10011001011 ag replacements mutation 00101101011 00111101011 Olika kodningar av det genetiska materialet kräver olika genetiska operatorer. 16
Genetiska algoritmer 4. Två elementära typer: korsning och mutation. ag replacements 00101101011 korsning 00101101001 10011001001 10011001011 ag replacements mutation 00101101011 00111101011 Olika kodningar av det genetiska materialet kräver olika genetiska operatorer. 6. Stoppkriterium, t.ex. Flera generationer utan hälsoförbättring. Ett specifikt mål har uppnåtts. 16-a
Genetiska algoritmer Styrkan med genetiska algoritmer 17
Genetiska algoritmer Styrkan med genetiska algoritmer De är väl anpassade för många beräkningskrävande problem. 17-a
Genetiska algoritmer Styrkan med genetiska algoritmer De är väl anpassade för många beräkningskrävande problem. Adaptiva; fortsätter att prestera bra i en föränderlig miljö. 17-b
Genetiska algoritmer Styrkan med genetiska algoritmer De är väl anpassade för många beräkningskrävande problem. Adaptiva; fortsätter att prestera bra i en föränderlig miljö. Kräver endast begränsad matematisk förståelse av problemet. 17-c
Genetiska algoritmer Styrkan med genetiska algoritmer De är väl anpassade för många beräkningskrävande problem. Adaptiva; fortsätter att prestera bra i en föränderlig miljö. Kräver endast begränsad matematisk förståelse av problemet. Mycket lämpade för parallellberäkningar. 17-d
Genetiska algoritmer Ett litet exempel Utveckla en sträng av tecken tills de bildar en given fras, t.ex. 18
Genetiska algoritmer Ett litet exempel Utveckla en sträng av tecken tills de bildar en given fras, t.ex. my name is warwick tucker 18-a
Genetiska algoritmer Ett litet exempel Utveckla en sträng av tecken tills de bildar en given fras, t.ex. my name is warwick tucker Frasen består av 25 tecken, inklusive blanka. 18-b
Genetiska algoritmer Ett litet exempel Utveckla en sträng av tecken tills de bildar en given fras, t.ex. my name is warwick tucker Frasen består av 25 tecken, inklusive blanka. Genalfabetet består av 26 gemener och en blank: 27 olika tecken. 18-c
Genetiska algoritmer Ett litet exempel Utveckla en sträng av tecken tills de bildar en given fras, t.ex. my name is warwick tucker Frasen består av 25 tecken, inklusive blanka. Genalfabetet består av 26 gemener och en blank: 27 olika tecken. Antalet olika kromosomer med längd 25 är således: 18-d
Naturvetardagarna, Uppsala, 021129 Genetiska algoritmer Ett litet exempel Utveckla en sträng av tecken tills de bildar en given fras, t.ex. my name is warwick tucker Frasen består av 25 tecken, inklusive blanka. Genalfabetet består av 26 gemener och en blank: 27 olika tecken. Antalet olika kromosomer med längd 25 är således: 18-e
Naturvetardagarna, Uppsala, 021129 Genetiska algoritmer Ett litet exempel Utveckla en sträng av tecken tills de bildar en given fras, t.ex. my name is warwick tucker Frasen består av 25 tecken, inklusive blanka. Genalfabetet består av 26 gemener och en blank: 27 olika tecken. Antalet olika kromosomer med längd 25 är således: Slumpmässig sökning utesluten! 18-f
Genetiska algoritmer Konstruktionen av vår genetiska algoritm: 19
Genetiska algoritmer Konstruktionen av vår genetiska algoritm: 1. Skapa initialpopulationen genom att skapa slumpkombinationer av gener från alfabetet Samtliga kromosomer skall ha längd 25. 19-a
Genetiska algoritmer Konstruktionen av vår genetiska algoritm: 1. Skapa initialpopulationen genom att skapa slumpkombinationer av gener från alfabetet Samtliga kromosomer skall ha längd 25. 2. Definiera hälsan hos en kromosom genom Om har en mer korrekt gen än så är dess hälsa dubbelt så god. 19-b
Genetiska algoritmer Konstruktionen av vår genetiska algoritm: 1. Skapa initialpopulationen genom att skapa slumpkombinationer av gener från alfabetet Samtliga kromosomer skall ha längd 25. 2. Definiera hälsan hos en kromosom genom Om har en mer korrekt gen än så är dess hälsa dubbelt så god. 3. Utse kromosomer för rekombination via ruletthjulsmetoden. 19-c
Genetiska algoritmer 4. Nya kromosomer skapas genom mutation samt korsning: ag replacements phutetrgdj_uht ti_ernufhdnsir korsning phutetufhdnsir ti_ernrgdj_uht 20
Genetiska algoritmer 4. Nya kromosomer skapas genom mutation samt korsning: ag replacements phutetrgdj_uht ti_ernufhdnsir korsning phutetufhdnsir ti_ernrgdj_uht Mutationen är en slumpmässig substitution: Sfrag replacements oeuryg_fyhrbe mutation oeuwyg_fyhrbe 20-a
Genetiska algoritmer 4. Nya kromosomer skapas genom mutation samt korsning: ag replacements phutetrgdj_uht ti_ernufhdnsir korsning phutetufhdnsir ti_ernrgdj_uht Mutationen är en slumpmässig substitution: Sfrag replacements oeuryg_fyhrbe mutation oeuwyg_fyhrbe 5. Producera tillräckligt med avkomma för att fylla hela nästa generation. 20-b
Genetiska algoritmer 4. Nya kromosomer skapas genom mutation samt korsning: ag replacements phutetrgdj_uht ti_ernufhdnsir korsning phutetufhdnsir ti_ernrgdj_uht Mutationen är en slumpmässig substitution: Sfrag replacements oeuryg_fyhrbe mutation oeuwyg_fyhrbe 5. Producera tillräckligt med avkomma för att fylla hela nästa generation. 6. Stoppkriterium: avsluta programmet så fort en helt korrekt kromosom har skapats. 20-c
Genetiska algoritmer Ansats: storlek hos populationen : 500 korsningskvot : 75% mutationskvot : 1,0% 21
Genetiska algoritmer time = 0 - average % genes correct : 3.552 best % genes correct : 20.00 best chromosome : ngzabbyztu aaywicmr bbpfx Ansats: storlek hos populationen : 500 korsningskvot : 75% mutationskvot : 1,0% time = 1 - average % genes correct : 6.072 best % genes correct : 20.00 best chromosome : ngzabbyztu aaywicmr g qqi time = 35 - average % genes correct : 90.184 best % genes correct : 96.00 best chromosome : my name is waywick tucker time = 36 - average % genes correct : 90.488 best % genes correct : 100.00 best chromosome : my name is warwick tucker 21-a
Genetiska algoritmer time = 0 - average % genes correct : 3.552 best % genes correct : 20.00 best chromosome : ngzabbyztu aaywicmr bbpfx Ansats: storlek hos populationen : 500 korsningskvot : 75% mutationskvot : 1,0% Vi behövde endast kontrollera hälsan hos 500 36 = 18.000 kromosomer! time = 1 - average % genes correct : 6.072 best % genes correct : 20.00 best chromosome : ngzabbyztu aaywicmr g qqi time = 35 - average % genes correct : 90.184 best % genes correct : 96.00 best chromosome : my name is waywick tucker time = 36 - average % genes correct : 90.488 best % genes correct : 100.00 best chromosome : my name is warwick tucker 21-b
Evolutionära algoritmer Andra evolutionära metoder 22
Naturvetardagarna, Uppsala, 021129 Evolutionära algoritmer Andra evolutionära metoder Evolutionär programmering Kromosomrepresentation nära förknippat med problemformuleringen (t.ex. flyttal). Ingen korsning; Mutation med avtagande sannolikhet. 22-a
Naturvetardagarna, Uppsala, 021129 Evolutionära algoritmer Andra evolutionära metoder Evolutionär programmering Kromosomrepresentation nära förknippat med problemformuleringen (t.ex. flyttal). Ingen korsning; Mutation med avtagande sannolikhet Genetisk programmering Utvecklar hela program (vanligtvis skrivna i programmeringsspråket Lisp).. 22-b
Naturvetardagarna, Uppsala, 021129 Evolutionära algoritmer Andra evolutionära metoder Evolutionär programmering Kromosomrepresentation nära förknippat med problemformuleringen (t.ex. flyttal). Ingen korsning; Mutation med avtagande sannolikhet Genetisk programmering Utvecklar hela program (vanligtvis skrivna i programmeringsspråket Lisp). Klassifikationssystem Använder många olika adaptiva metoder för att skapa inlärning och evolution (t.ex. neurala nät, expertsystem).. 22-c
Slutsatser Slutsatser 23
Slutsatser Slutsatser Många problem saknar effektiva algoritmer. 23-a
Slutsatser Slutsatser Många problem saknar effektiva algoritmer. Approximativa algoritmer kan vara till stor hjälp. 23-b
Slutsatser Slutsatser Många problem saknar effektiva algoritmer. Approximativa algoritmer kan vara till stor hjälp. Genetiska algoritmer fungerar på en stor klass av svåra problem. 23-c
Naturvetardagarna, Uppsala, 021129 Referenser Referenser 1. Biermann, A. W. Great Ideas in Computer Science, 2nd Ed., MIT Press, 1998. 2. Flake, G. W. The Computational Beauty of Nature, MIT Press, 1999. 3. Harel, D. Computers Ltd. - What they really can t do, Oxford University Press, 2000. 4. Holland, J. H. Adaptation in Natural and Artificial Systems, University of Michigan Press, 1975. 5. Lagarias, J. C. The (1985), 3-23. problem and its generalizations, Amer. Math. Monthly 92:1 6. Michalewicz, Z. Genetic Algorithms + Data Structures = Evolution Programs, 3rd Ed., Springer-Verlag, 1999. 7. Mitchell, M. An Introduction to Genetic Algorithms, MIT Press, 1996. 24
Optimering 2 Yr.1 2 Yr.2 2 Yr.3 2 Yr.4 1 1 1 1 0 0 0 0 1 2 Yr.5 0 2 2 1 2 Yr.6 0 2 2 1 2 Yr.7 0 2 2 1 2 Yr.8 0 2 2 1 1 1 1 0 0 0 0 1 2 Yr.9 0 2 2 1 2 Yr.10 0 2 2 1 2 Yr.11 0 2 2 1 2 Yr.12 0 2 2 1 1 1 1 0 0 0 0 1 2 Yr.13 0 2 2 1 2 Yr.14 0 2 2 1 2 Yr.15 0 2 2 1 2 (0.295, 00.859) 2 2 1 1 1 1 0 0 0 0 1 2 0 2 1 2 0 2 1 2 0 2 1 2 0 2 25