Evolutionär beräkning
Del av en serie om |
Evolutionsbiologi |
---|
Inom datavetenskap är evolutionär beräkning en familj av algoritmer för global optimering inspirerad av biologisk evolution , och underområdet artificiell intelligens och soft computing som studerar dessa algoritmer. I tekniska termer är de en familj av populationsbaserade försök och felproblemlösare med en metaheuristisk eller stokastisk optimeringskaraktär .
I evolutionär beräkning genereras en första uppsättning av kandidatlösningar och uppdateras iterativt. Varje ny generation produceras genom att stokastiskt ta bort mindre önskade lösningar och införa små slumpmässiga förändringar. I biologisk terminologi utsätts en population av lösningar för naturligt urval (eller artificiellt urval ) och mutation . Som ett resultat kommer befolkningen gradvis att utvecklas för att öka i kondition , i detta fall den valda fitnessfunktionen för algoritmen.
Evolutionära beräkningstekniker kan producera mycket optimerade lösningar i ett brett spektrum av probleminställningar, vilket gör dem populära inom datavetenskap . Det finns många varianter och tillägg som passar mer specifika problemgrupper och datastrukturer. Evolutionära beräkningar används också ibland inom evolutionär biologi som en experimentell procedur i silico för att studera vanliga aspekter av allmänna evolutionära processer.
Historia
Konceptet att efterlikna evolutionära processer för att lösa problem har sitt ursprung före tillkomsten av datorer, som när Alan Turing föreslog en metod för genetisk sökning 1948. Turings u-maskiner av B-typ liknar primitiva neurala nätverk , och kopplingar mellan neuroner lärdes in via en sorts genetisk algoritm . Hans u-maskiner av P-typ liknar en metod för förstärkningsinlärning , där signaler om njutning och smärta styr maskinen att lära sig vissa beteenden. Men Turings tidning blev opublicerad fram till 1968, och han dog 1954, så detta tidiga arbete hade liten eller ingen effekt på området för evolutionära beräkningar som skulle utvecklas.
Evolutionär datoranvändning som ett område började på allvar på 1950- och 1960-talen. Det gjordes flera oberoende försök att använda evolutionsprocessen i datoranvändning vid denna tid, som utvecklades separat i ungefär 15 år. Tre grenar dök upp på olika platser för att uppnå detta mål: evolutionsstrategier , evolutionär programmering och genetiska algoritmer . En fjärde gren, genetisk programmering , uppstod så småningom i början av 1990-talet. Dessa tillvägagångssätt skiljer sig åt i urvalsmetoden, de tillåtna mutationerna och representationen av genetiska data. På 1990-talet hade skillnaderna mellan de historiska grenarna börjat suddas ut, och termen "evolutionär datoranvändning" myntades 1991 för att beteckna ett fält som existerar över alla fyra paradigm.
År 1962 initierade Lawrence J. Fogel forskningen om evolutionär programmering i USA, som ansågs vara en strävan efter artificiell intelligens . I detta system används finita tillståndsmaskiner för att lösa ett förutsägelseproblem: dessa maskiner skulle muteras (lägga till eller ta bort tillstånd, eller ändra reglerna för tillståndsövergång), och de bästa av dessa muterade maskiner skulle utvecklas ytterligare i kommande generationer . Den slutliga finita tillståndsmaskinen kan användas för att generera förutsägelser vid behov. Den evolutionära programmeringsmetoden tillämpades framgångsrikt på förutsägelseproblem, systemidentifiering och automatisk kontroll. Det utökades så småningom för att hantera tidsseriedata och modellera utvecklingen av spelstrategier.
1964 introducerade Ingo Rechenberg och Hans-Paul Schwefel paradigmet för evolutionsstrategier i Tyskland. Eftersom traditionella för gradientnedstigning ger resultat som kan fastna i lokala minima, föreslog Rechenberg och Schwefel att slumpmässiga mutationer (tillämpade på alla parametrar för någon lösningsvektor) kan användas för att undkomma dessa minima. Barnlösningar genererades från föräldralösningar, och den mer framgångsrika av de två behölls för framtida generationer. Denna teknik användes först av de två för att framgångsrikt lösa optimeringsproblem inom vätskedynamik . Inledningsvis utfördes denna optimeringsteknik utan datorer, istället förlitade sig på tärningar för att bestämma slumpmässiga mutationer. År 1965 utfördes beräkningarna helt maskinellt.
John Henry Holland introducerade genetiska algoritmer på 1960-talet, och den vidareutvecklades vid University of Michigan på 1970-talet. Medan de andra tillvägagångssätten var fokuserade på att lösa problem, syftade Holland främst till att använda genetiska algoritmer för att studera anpassning och bestämma hur den kan simuleras. Populationer av kromosomer, representerade som bitsträngar, transformerades genom en artificiell urvalsprocess, där specifika "allel"-bitar i bitsträngen valdes. Bland andra mutationsmetoder användes interaktioner mellan kromosomer för att simulera rekombinationen av DNA mellan olika organismer. Medan tidigare metoder bara spårade en enda optimal organism åt gången (att ha barn som konkurrerar med föräldrar), spårade Hollands genetiska algoritmer stora populationer (med många organismer som konkurrerar varje generation).
På 1990-talet uppstod ett nytt tillvägagångssätt för evolutionär beräkning som kom att kallas genetisk programmering , som bland annat förespråkades av John Koza . I denna klass av algoritmer var ämnet evolution i sig självt ett program skrivet i ett programmeringsspråk på hög nivå (det hade gjorts några tidigare försök så tidigt som 1958 att använda maskinkod, men de hade liten framgång). För Koza var programmen Lisp S-uttryck , som kan ses som träd av deluttryck. Denna representation tillåter program att byta underträd, vilket representerar en sorts genetisk blandning. Program poängsätts baserat på hur väl de utför en viss uppgift, och poängen används för artificiellt urval. Sekvensinduktion, mönsterigenkänning och planering var alla framgångsrika tillämpningar av det genetiska programmeringsparadigmet.
Många andra figurer spelade en roll i historien om evolutionär datoranvändning, även om deras arbete inte alltid passade in i en av de stora historiska grenarna av området. De tidigaste beräkningssimuleringarna av evolution med evolutionära algoritmer och artificiella livstekniker utfördes av Nils Aall Barricelli 1953, med de första resultaten publicerade 1954. En annan pionjär på 1950-talet var Alex Fraser , som publicerade en serie artiklar om simulering av artificiellt urval . När det akademiska intresset växte tillät dramatiska ökningar av datorernas kraft praktiska tillämpningar, inklusive den automatiska utvecklingen av datorprogram. Evolutionära algoritmer används nu för att lösa flerdimensionella problem mer effektivt än mjukvara producerad av mänskliga designers, och även för att optimera designen av system.
Tekniker
Evolutionära datortekniker involverar mestadels metaheuristiska optimeringsalgoritmer . I stort sett omfattar fältet:
- Agentbaserad modellering
- Myrkolonioptimering
- Artificiella immunsystem
- Artificiellt liv (se även digital organism )
- Kulturella algoritmer
- Differentiell evolution
- Dubbelfas evolution
- Uppskattning av distributionsalgoritmer
- Evolutionära algoritmer
- Evolutionär programmering
- Evolutionsstrategi
- Programmering av genuttryck
- Genetisk algoritm
- Genetisk programmering
- Grammatisk utveckling
- Lärbar evolutionsmodell
- Lära klassificeringssystem
- Memetiska algoritmer
- Neuroevolution
- Partikelsvärmoptimering
- Beetle Antennae Search
- Självorganisering såsom självorganiserande kartor , konkurrenskraftigt lärande
- Svärm intelligens
En genomgående katalog med många andra nyligen föreslagna algoritmer har publicerats i Evolutionary Computation Bestiary . Det är viktigt att notera att många nya algoritmer har dålig experimentell validering.
Evolutionära algoritmer
Evolutionära algoritmer utgör en delmängd av evolutionära beräkningar i det att de i allmänhet bara involverar tekniker som implementerar mekanismer inspirerade av biologisk evolution såsom reproduktion , mutation , rekombination , naturligt urval och survival of the fittest . Kandidatlösningar på optimeringsproblemet spelar rollen som individer i en population, och kostnadsfunktionen bestämmer i vilken miljö lösningarna "lever" (se även fitnessfunktion ). Utvecklingen av populationen sker sedan efter upprepad applicering av ovanstående operatorer.
I denna process finns det två huvudkrafter som ligger till grund för evolutionära system: Rekombinationsmutation och crossover skapar den nödvändiga mångfalden och underlättar därigenom nyhet, medan selektion fungerar som en krafthöjande kvalitet.
Många aspekter av en sådan evolutionär process är stokastiska . Ändrade delar av information på grund av rekombination och mutation väljs slumpmässigt. Å andra sidan kan urvalsoperatorer vara antingen deterministiska eller stokastiska. I det senare fallet har individer med högre kondition en högre chans att bli utvalda än individer med lägre kondition , men vanligtvis har även de svaga individerna en chans att bli förälder eller att överleva.
Evolutionära algoritmer och biologi
Genetiska algoritmer levererar metoder för att modellera biologiska system och systembiologi som är kopplade till teorin om dynamiska system , eftersom de används för att förutsäga systemets framtida tillstånd. Detta är bara ett levande (men kanske missvisande) sätt att uppmärksamma den ordnade, välkontrollerade och mycket strukturerade karaktären av utveckling inom biologi.
Men användningen av algoritmer och informatik, i synnerhet av beräkningsteori , utöver analogin till dynamiska system, är också relevant för att förstå själva evolutionen.
Denna uppfattning har förtjänsten att erkänna att det inte finns någon central kontroll över utvecklingen; organismer utvecklas som ett resultat av lokala interaktioner inom och mellan celler. De mest lovande idéerna om paralleller med programutveckling verkar för oss vara sådana som pekar på en till synes nära analogi mellan processer inom celler och lågnivådriften hos moderna datorer. Således är biologiska system som beräkningsmaskiner som bearbetar ingångsinformation för att beräkna nästa tillstånd, så att biologiska system är närmare en beräkning än klassiska dynamiska system.
Dessutom, efter begrepp från beräkningsteorin , är mikroprocesser i biologiska organismer i grunden ofullständiga och oavgjorda ( fullständighet (logik) ), vilket antyder att "det finns mer än en grov metafor bakom analogin mellan celler och datorer.
Analogin med beräkning sträcker sig också till förhållandet mellan arvssystem och biologisk struktur, vilket ofta anses avslöja ett av de mest pressande problemen när det gäller att förklara livets ursprung.
Evolutionära automater , en generalisering av evolutionära Turing-maskiner , har introducerats för att mer exakt undersöka egenskaperna hos biologiska och evolutionära beräkningar. I synnerhet tillåter de att erhålla nya resultat om uttrycksfullhet hos evolutionär beräkning. Detta bekräftar det initiala resultatet om oavgörbarheten hos naturlig evolution och evolutionära algoritmer och processer. Evolutionära ändliga automater , den enklaste underklassen av evolutionära automater som arbetar i terminalläge kan acceptera godtyckliga språk över ett givet alfabet, inklusive icke-rekursivt uppräknade (t.ex. diagonaliseringsspråk) och rekursivt uppräknade men inte rekursiva språk (t.ex. språket i den universella Turing-maskinen ).
Anmärkningsvärda utövare
Listan över aktiva forskare är naturligtvis dynamisk och inte uttömmande. En nätverksanalys av samhället publicerades 2007.
- Kalyanmoy Deb
- Kenneth A De Jong
- Peter J. Fleming
- David B. Fogel
- Stephanie Forrest
- David E. Goldberg
- John Henry Holland
- Theo Jansen
- John Koza
- Zbigniew Michalewicz
- Melanie Mitchell
- Peter Nordin
- Riccardo Poli
- Ingo Rechenberg
- Hans-Paul Schwefel
Konferenser
Huvudkonferenserna inom området evolutionära beräkningar inkluderar
- ACM Genetic and Evolutionary Computation Conference (GECCO),
- IEEE Congress on Evolutionary Computation (CEC),
- EvoStar , som omfattar fyra konferenser: EuroGP, EvoApplications, EvoCOP och EvoMUSART,
- Parallell problemlösning från naturen (PPSN).
Se även
- Adaptiv dimensionell sökning
- Konstgjord utveckling
- Autokonstruktiv
- Utvecklingsbiologi
- Digital organism
- Uppskattning av distributionsalgoritm
- Evolutionär robotik
- Utvecklad antenn
- Konditionsuppskattning
- Fitness funktion
- Fitness landskap
- Genetiska operatörer
- Grammatisk utveckling
- Människobaserad evolutionär beräkning
- Inferentiell programmering
- Interaktiv evolutionär beräkning
- Lista över digitala organismsimulatorer
- Mutationstestning
- Ingen gratis lunch i sök och optimering
- Programsyntes
- Testa funktioner för optimering
- Okonventionell datoranvändning
- Universell darwinism
externa länkar
Bibliografi
- Th. Bäck, DB Fogel och Z. Michalewicz (redaktörer), Handbook of Evolutionary Computation , 1997, ISBN 0750303921
- Th. Bäck och H.-P. Schwefel. En översikt över evolutionära algoritmer för parameteroptimering . Arkiverad 12 juli 2018, på Wayback Machine Evolutionary Computation, 1(1):1–23, 1993.
- W. Banzhaf, P. Nordin, RE Keller och FD Francone. Genetisk programmering — en introduktion. Morgan Kaufmann, 1998.
- S. Cagnoni, et al., Real-World Applications of Evolutionary Computing , Springer-Verlag Lecture Notes in Computer Science , Berlin, 2000.
- R. Chiong, Th. Weise, Z. Michalewicz (Redaktörer), Variants of Evolutionary Algorithms for Real-World Applications , Springer , 2012, ISBN 3642234232
- KA De Jong, Evolutionär beräkning: ett enhetligt tillvägagångssätt. MIT Press , Cambridge MA, 2006
- AE Eiben och JE Smith, From evolutionary computation to the evolution of things , Nature, 521:476-482, doi:10.1038/nature14544, 2015
- AE Eiben och JE Smith, Introduction to Evolutionary Computing, Springer, första upplagan , 2003; Andra upplagan , 2015
- DB Fogel. Evolutionär beräkning. Mot en ny filosofi om maskinintelligens . IEEE Press, Piscataway, NJ, 1995.
- LJ Fogel, AJ Owens och MJ Walsh. Artificiell intelligens genom simulerad evolution . New York: John Wiley, 1966.
- DE Goldberg. Genetiska algoritmer inom sökning, optimering och maskininlärning. Addison Wesley, 1989.
- JH Holland. Anpassning i naturliga och artificiella system. University of Michigan Press , Ann Arbor, 1975.
- P. Hingston, L. Barone och Z. Michalewicz (redaktörer), Design by Evolution, Natural Computing Series , 2008, Springer , ISBN 3540741097
- JR Koza. Genetisk programmering: Om programmering av datorer med hjälp av naturlig evolution. MIT Press, Massachusetts, 1992.
- FJ Lobo, CF Lima, Z. Michalewicz (redaktörer), Parameter Setting in Evolutionary Algorithms , Springer , 2010, ISBN 3642088929
- Z. Michalewicz , Genetic Algorithms + Data Structures – Evolution Programs , 1996, Springer , ISBN 3540606769
- Z. Michalewicz och DB Fogel, How to Solve It: Modern Heuristics , Springer , 2004, ISBN 978-3-540-22494-5
- I. Rechenberg. Evolutionsstrategi: Optimering Technischer Systeme nach Prinzipien des Biologischen Evolution. Fromman-Hozlboog Verlag, Stuttgart, 1973. (på tyska)
- H.-P. Schwefel. Numerisk optimering av datormodeller. John Wiley & Sons, New-York, 1981. 1995 – 2:a upplagan.
- D. Simon. Evolutionära optimeringsalgoritmer . Wiley, 2013.
-
M. Sipper, W. Fu, K. Ahuja och JH Moore (2018). "Undersöka parameterutrymmet för evolutionära algoritmer" . BioData Mining . 11 : 2. doi : 10.1186/s13040-018-0164-x . PMC 5816380 . PMID 29467825 .
{{ citera journal }}
: CS1 underhåll: använder författarens parameter ( länk ) -
Y. Zhang och S. Li. (2017). "PSA: En ny optimeringsalgoritm baserad på överlevnadsregler för porcelloscaber". arXiv : 1709.09840 [ cs.NE ].
{{ citera arxiv }}
: CS1 underhåll: använder författarens parameter ( länk )