Genetisk programmering
Den här artikeln eller avsnittet anses vara förvirrande. (utan datum) Hjälp gärna Wikipedia med att förtydliga texten och göra den mer lättläst. Se eventuellt diskussionssidan för mer information. Om artikeln inte åtgärdats inom tre år från det att den märkts upp kommer den att raderas. |
Genetisk programmering är ett sätt att få maskiner att programmera sig själva genom en form av trial and error metod. Det är vanligt att man använder denna metoden då man ska programmera AI i humanoider eller datorer.
Som utgångspunkt har man en population med programsnuttar, algoritmer som är tänkta att lösa ett specifikt problem. Det kan vara ett problem som att gå, tolka bilder eller känna igen olika ljud. Genetisk programmering härmar evolutionen genom att skapa nya individer, programsnuttar genom att korsa två gamla individer. Om den nya programsnutten är bättre än någon av de andra i populationen så ersätts de sämre ut med den nya bättre. På det viset blir populationen ständigt bättre på att lösa det specifika problemet.
Om vi tar som exempel att vi ska försöka få en robothund att lära sig själv att gå. Robothunden har en sensor som registrerar om robothunden rör sig i den tänkta färdriktningen. Den första generationerna av programsnuttar får i bästa fall hunden att sprattla okontrollerbart med benen. Några generationer senare så lyckas kanske en av programsnuttarna att få hunden att röra sig en obetydlig sträcka i den tänka färdriktningen trots att den inte har något direkt gångmönster ännu. Detta registreras av sensorn som något positivt, vilket leder till att den programsnutten som lyckades få hunden att flytta sig i rätt riktning kommer få fler avkommor eftersom den ersätter den programsnutten som var sämst på att förflytta sig i den tänkta färdriktningen. Såhär fortsätter generation efter generation de bästa programsnuttarna ersätter de sämsta och sedan avlas nya avkommor fram. Till slut så har roboten förhoppningsvis lärt sig själv att gå. Ett liknande experiment gjordes på Chalmers i Göteborg och då tog det 21 timmar för roboten att hitta ett effektivt rörelsemönster för att förflytta sig.
Genetisk algoritm
Genetisk algoritm är ett sätt lösa optimeringsproblem genom att efterhärma den biologiska evolutionen. Lösningar som till synes har god potential görs livskraftiga och kombineras med andra lovande lösningar. Lösningar som leder bort från det önskade resultatet kombineras inte med andra lösningar och gallras därför ur systemet efter hand.
Exempel
Ett exempel på lösning av ett mycket svårt kombinatoriskt problem visas under handelsresandeproblemet.
Källor
- Goldberg, D. E. Genetic Algorithms in Search, Optimization & Machine Learning. Addison-Wesley, New York, 1989.
- Peter Nordin och Johanna Wilde, Humanioder. Självlärande robotar och artificiell intelligens, 2003, ISBN 91-47-05191-4
- Poli, R., Langdon, W. B., McPhee, N. F. (2008), A Field Guide to Genetic Programming, freely available via Lulu.com.