NeuroEvolving Robotic Operatives

Relevanta dokument
NEUROEVOLUTION MED TÄVLINGSINRIKTAD SAMEVOLUTION I FLERA MILJÖER MED ÖKANDE KOMPLEXITET

Uppdelning av ett artificiellt neuralt nätverk

Kombinationer och banor i agilityträningen

Symboler och abstrakta system

Genetisk programmering i Othello

de var svåra att implementera och var väldigt ineffektiva.

En innebandyspelare består av två olika grundpelare. Den ena är fysik som består av styrka, snabbhet, kondition och balans.

Vad kan biologiskt plausibla modeller säga oss?

Artificiell Intelligens inom datorspel Är det ett seriöst ämne?

Ett spel skapat av Albin Wahlstrand

Grundläggande Idéer Algoritmens komponenter Numerisk optimering Genetisk Programmering. Genetiska Algoritmer

HKGBB0, Artificiell intelligens

2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit.

Genetiska Algoritmer. 10 mars 2014

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Utveckling av artificiell intelligens med hjälp av Genetiska tekniker och Artificiella neurala nätverk Philip Ruuska Boquist

Matcha rätt hjärta till rätt patient med AI. Dennis Medved

Tor Sterner-Johansson Thomas Johansson Daniel Henriksson

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK.

TDP005 Projekt: Objektorienterat system

Kort Sammanfattning av Schack MAS

Träningsbank. Uppvärmning Tåget 10 min (max 20 st) Tänka på. Uppvärmning Följa John 10 min (max 20 st) Fotbollsträning. Ålder: 8-10 Ange tid här

1. Jag har bra självkänsla och tycker om mig själv som jag är oavsett vad jag presterar.

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05

Curlinglaget. Alla spelare är lika viktiga och alla skall;

Genetiska algoritmer. Henrik Hansson Rapport, CDT212 Mälardalens Högskola

Pressrelease Artes Industriambassadör Mer realistiska skuggor i datorspel och virtual reality-applikationer

Modeller och simulering av språkprocessning

GenJam En musikalisk genetisk algoritm?

Inledning ARTIFICIELL INTELLIGENS 729G011 HT 2010

Slutrapport. Super Mario klon. Tomas Wallin tw222bv WP

Genom att följa dessa steg lär du dig snabbt att spela onlinematcher... och som du kan se är det mycket enkelt, roligt och spännande!

TBSK 03 Teknik för avancerade datorspel. Jens Ogniewski Information Coding Group Linköpings universitet

Legorobot. Lär dig programmera en legorobot. Teknikåttan Ola Ringdahl Lena Kallin Westin

Hierarchical Temporal Memory Maskininlärning

ARTIFICIELL INTELLIGENS

Instruktion Finta/dribbla

[ÖVNINGSBANK] Sollentuna FK. Träffa linjen

Artificiell intelligens i spel

AI-Tekniker. För domänspecifika problemområden i StarCraft 2. Mattias Tiger Fredrik Präntare

Roboten. Sida 1 av 11

Sub-symbolisk kognition & Konnektionism. Kognitionsvetenskaplig Introduktionskurs (729G01) Mats Andrén,

Skolbrottning i praktiken

Linköpings universitet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Användarmanual Wapspel

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Spel som interaktiva berättelser

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS

Totalt finns det alltså 20 individer i denna population. Hälften, dvs 50%, av dem är svarta.

Game of 40. Regler och om sidan är in princip samma sak. Det som skiljer dem åt är att de inte har samma text.

Hemuppgift #2 Enskede IK P-01:5 Spelarutveckling

Fotbollsövningar UPPVÄRMING:

Artificiell intelligens, eller Kommer din dator att bli klokare än dig? (eller kanske är den redan det?)

Regression med Genetiska Algoritmer

Var bör fokus i träningen ligga? Det är väldigt viktigt att inte bara träna på rätt saker utan också att spendera rätt mängd tid på olika saker.

FATTA BESLUT (håll fast vid det, lita på det) = DETTA SKAPAR VARAKTIG FÖRÄNDRING. Det här gäller all förändring! Mat, rökning, golf etc.

Ledarhäfte Enskede IK. - Tips, råd och riktlinjer för 5-mannaledare inom Enskede IK

Programmering F-3. -dansprogrammering. Del 1

DYNAMISK SVÅRIGHETSGRAD MED GENETISK ALGORITM. En jämförelse mellan två tekniker för att snabba upp processen

Hur får jag ut kraft och nytta av POWER?

Fyra i rad Javaprojekt inom TDDC32

Beskrivning av Gesällprov. Fia Med Knuff. Mikael Rydmark.

Handbok Granatier. Mathias Kraus Översättare: Stefan Asserhäll

INNEHÅLLSFÖRTECKNING... 2 FÖRORD... 3 INLEDNING... 4 ATT ANVÄNDA MOTORERNA... 9 LOOP (UPPREPANDE) FUNKTIONEN SKAPA EN EGEN KLOSS...

Fotbollsskolan. fintdribbling.indd

[ÖVNINGSBANK] Sollentuna FK. Expressbollen

Inlärning utan övervakning

Artificiell intelligens, eller Kommer din dator att bli klokare än dig? (eller kanske är den redan det?)

Vi är alla i gruppen väldigt intresserade av spel och vill lära oss mer om hur man skapar ett helt spel från idé till slutprodukt.

Genetisk variation är livsviktig för vitaliteten och ganska snabbt även en förutsättning för överlevnaden hos en art.

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Case-based resoning. och dess användning inom sjukvården. Linköpings universitet Artificiell intelligens II 729G11 HT 2011

TRÄNARUTBILDNING Solängens BK

Instruktion Finta/dribbla

16. VOLLEY Volley är tillåtet dock inte på serven.

EV3 Roboten. Sida 1 av 13

Kognitionsvetenskapliga Programmet LiU. AI i spelet Magicka. Gruppbeteende/Grupprörelser. Jonathan Nilsson

Fotbollsövningar 5-7 år. Lindsdals IF

SPELSYSTEM för åringar

FMCK Malmö Boris Magnusson. Markering av Endurobana

Digitalt lärande och programmering i klassrummet

Försvar. 1. Förberedande försvarsträinng (5 eller 6 spelare). 2. Försvar mot 1:a-tempo följt av 3:e-tempo (minst 6 spelare).

Spel. 1 mot 1 på en spelplan som omfattar ca 2 m². Endast fingerslag (eller bagger) är tillåtet. Alternativt kan man tillåta tre beröringar "per lag".

Handbok Svarta lådan. Nicolas Roffet Robert Cimrman Philip Rodrigues Lauri Watts Översättare: Stefan Asserhäll

BRIDGE MASTER 2000 SCANDINAVIA av Fred Gitelman

Innan nicken. Nickteknik

Att programmera en Beethoven

SV Förenade i mångfalden SV. Ändringsförslag. Beatrix von Storch för EFDD-gruppen

Teoretisk del. Facit Tentamen TDDC (6)

SKOLFS. beslutade den -- maj 2015.

Regler för fotboll i spelformen 9 mot 9

Utförliga regler för TRAX

Spel och träningsplan Knarrbackens ungdomslag. Inledning Detta dokument vänder sig till tränare och ledare för 5 och 7-mannalag i Knarrbackens FC.

Övningar. Utespelare

ARTIFICIELLA EKOSYSTEM SOM ARTIFICIELL INTELLIGENS I ACTIONROLLSPEL

KALLE ANKA CUP Matchskola

Kravspecifikation. Sammanfattning. Fyra i rad Javaprojekt inom TDDC32. Version 2.0. Datum Dokumentnummer

Transkript:

LINKÖPINGS UNIVERSITET NeuroEvolving Robotic Operatives Implementering av genetiska algoritmer i RTT-spel Johan Felixsson 10/3/2010 Spel i dag styrs till stor del utav förskrivna skript. NERO är ett spel som implementerar genetiska algoritmer med metoden reneat för att i realtid utveckla sina agenters agerande och göra dem mer flexibla och intressanta att spela mot

Innehåll 1. Inledning... 3 2. Skriptade agenter... 4 3. Neurala nätverk... 4 2.1 Neuroevolution... 5 2.2 NEAT... 5 2.2.1 Genetisk kodning... 5 2.2.2 Skydda nya genom... 6 2.2.3 Minimera sökdjup... 7 4. reneat... 7 5. NERO... 8 5.1 Robotic Operatives... 9 5.2 Kontroller... 9 5.3 Träning... 9 5.4 Battle mode... 10 6. Avslutning... 12 Litteraturförteckning... 13 Artiklar... 13 Internet... 13 2

1. Inledning Inom dataspel ställs man ofta upp mot olika fiender och motspelare, som utgörs av agenter i spelvärlden. Deras syfte är att försvåra för spelaren från att uppnå sina mål i spelet och är grunden för själva utmaningen i spelet. Dessa motståndares presenteras i många spel som utomjordingar, robotar eller människor och förväntas därför kunna agera på ett relativt rationellt vis. Det finns finns även vänligt inställda karaktärer som ska hjälpa spelaren. Ett samlingsnamn för dessa datastyrda karaktärer, både vänliga och fientliga, är NPCer (Non-player Character). Dessa styrs vanligtvis av skript, som är förhandsbestämda och kan ge karaktärerna ett ganska stelt beteende. Men genom att implementera genetiska algoritmer så spelen så kan man få karaktärer att agera mer dynamiskt. 3

2. Skriptade agenter I nuläget så är NPCers beteende bundna till skriptade sekvenser som aktiveras av olika ageranden från spelaren. Det kan exempelvis vara var i spelets värld spelaren befinner sig, var i förhållande till motståndaren spelaren står eller helt enkelt hur lång tid som spelet har pågått. Dessa skriptade sekvenser styr direkt agerandet hos NPCer, vilket varierar beroende på vad det är för spel. Exempelvis i ett förstapersonsskjutspel kan skripten bestämma att när motståndaren, i detta fall en fientlig utomjording, ser spelaren så ska den beskjuta spelaren. I ett strategispel så ska NPCn, som här kan representeras som en hel nation, hantera resurser, bygga byggnader och enheter samt anfalla eller alliera sig med spelaren. I ett sportspel så utgör NPCer alla spelare förutom spelaren, både på det egna och på motståndar laget. Alla dessa ageranden från NPCer har som syfte att simulera rationellt beteende. Dessa har med tiden blivit mer sofistikerade i takt med att spelen blivit mer avancerade. När grafik, ljud och andra mekanismer i spelen, som miljöer och gravitation, blir allt mer realistiska så ställer det större krav på de datastyrda agenterna, eller NPC. Dessa måste agera realistiskt för att inte förstöra illusionen av en realistisk artificiell värld. Detta är ett stort problem då de datorstyrda karaktärerna helt enkelt är för dumma. De flesta människor kan, med viss träning, överlista en datastyrd karaktär. De saknar innovation, kan inte lära sig av spelarens beteende eller lära sig av egna misstag. Detta har lett till att man i spel måste ta till lösningar som kan anses som fusk t ex att de datastyrda spelarna har fördelar i själva spelmekanismen för att få en överhand över spelaren. Exempelvis i vissa stratergispel så har den datastyrda motståndaren tillgång till större mängder med resurser och bygger enheter snabbare. I förstapersonsskjutspel så kan fienden ha tillgång till oändliga mängder soldater att skicka mot spelaren eller attackerar spelaren och ingen annan trots att de finns andra, datasryra mål de skulle kunna fokusera på. I racingspel så har den ökända gummibandseffekten implementerats, vilket innebär att om spelare kommer för långt före NPCerna i spelet så kan de helt enkelt bryta mot reglerna fullständigt och köra betydligt snabbare än de ska kunna göra. Dessa brister i de datastyrda karaktärerna och spelen överhuvudtaget kan vara en av anledningarna till att flerspelarläge nästan är ett krav i spel idag. Människor går kommunicera med, de anpassar sig bättre till situationern och har möjligheten att lära sig av sina misstag. Detta problem kan man lösa genom att låta NPCer uppdatera, eller evolvera, sig själv med hjälp av genetiska algoritmer. Problmet har varit att implementera dessa i en realtidmiljö. rtneat är ett försök att lösa neuroevolution i realtid. 3. Neurala nätverk Neutrala nätverk har sitt ursprung i den tidiga AI-forskningen och bygger på idéen att simulera den mänskliga hjärnan genom att bygga en datoriserad modell av neuronen i hjärnan och på detta vis kunna simulera hur olika processer i hjärnan fungerar. Detta har varit och är fortfarande en av de vanligare metoderna för att studera inlärning. 4

Nätverket är uppbyggt av noder som har en inputfunktion, en aktivieringsfunktion och ett output. Noderna är sammanlänkade och dessa länkar har olika vikter, som bestämmer styrkan på inputen en nod kräver för att aktiveras samt hur mycket styrka noden ger ut i outputen. Noderna ligger i olika lager där den mest simpla formen endast har ett lager där input är direkt kopplat till output. Strukturen på nätet gör att ett antal noder kan agera tillsammans för att ge en aktivering och output i en annan nod och möjligheten att lägga till dolda lager som påverkar signalerna ger möjlighet att konstruera mer avancerade simuleringar med fler noder som påverkar outputen. Mer komplexa nätverk kräver dock mer tid och resurer att söka igenom. 2.1 Neuroevolution Med hjälp av genetiska algoritmer så kan man låta det artificiella nätverket evolvera och förändras. Detta kan ske på olika sätt, där det enklaste har varit att förändra vikterna i kopplingarna mellan noderna, men låtit strukturen eller topologin på nätverket bibehållas. Metoder finns som evolvera både topologin och vikterna samtidigt. Dessa metoder kallas för Topology and Wight Evolving Artificial Nueral Networks och förkortas som TWEANN. Att förändra topologin gör sökningarna mer komplexa, men kan samtidigt ge möjlighet att ta bort onödiga sökningar genom att förenkla topologin på nätverken. 2.2 NEAT NEAT, eller NeuroEvolution of Augmenting Topologies är utvecklat av Kenneth O. Stanley och Risto Miikkulainen vid University of Texas i Austin USA. NEAT arbetar med att nyttja strukturen på ett sådant sätt att man minimerar sökningen av de olika viktade kopplingarna och stegvis bygger ut nätverket och på detta sätt öka prestandan hos systemet. Att förändra strukturen när man ska evolvera ett nätverk leder till ett antal olika problem. För det första så måste det finnas information i genomet för att kunna korsa två noder och få ut ett fungerande resultat. Genom är den informationen som styr hur noder som ska byggas ska se ut. Det andra problemet är hur man bibehåller gener, det vill säga förändringar i genomet, som behöver längre tid för att utvecklas och på så sätt ger dem en chans att förbättra nätverket. Det tredje problemet är hur man minimera komplexiteten i nätverket under evolutionen utan att direkt behöva mäta just komplexiteten. 2.2.1 Genetisk kodning Det första problemet har man löst genom att koda in en lista med kopplingsgener. Varje kopplingsgen innehåller information om vilka två kodgener som kopplas samman. Kopplingsgenen specificerar input, output och vikten av kopplingarna. Kopplingsgenen innehåller också en binär status huruvida koppingen i fråga används eller inte. Strukturen på nätverket kan förändras på två sätt; antingen så läggs en gen för att lägga till koppling som då kopplar samman två nodkopplingar där sammankoppling saknas. Den kan också lägga till en nod då en ny nod placeras istället för en koppling och två nya kopplingar läggs till i genomet. Detta gör det möjligt att direkt lägga till nya noder i nätverket. Denna möjlighet att utöka genomen med kopplingar och noder gör att olika genom kan skilja sig i storlek. Detta skulle kunna leda till problem när man ska korsa gener, och av denna anledning har man lagt till ett globalt innovationsnummer i varje ny gen. Varje gång en koppling eller ny nod skapas så får genen för förändringen ett nummer som är unikt i just det genomet. Detta ger skapar information om varje genoms historia och gör det möjligt att följa dess utveckling. Detta gäller för alla genom, så individer 5

med samma antal gener i sina genom kan matchas mot varandra. I genom som inte matchar varandra markeras gener som disjoint om de ligger innanför den det mindre genomets högsta innovationsnummer och som excess om det ligger utanför. Dessa gener saknas alltså och i dessa fall tas alltid genen från det genom som har genen. Om de olika genomen är matchade så tas dom slumpmässigt från det båda generna det vill säga föräldrarna. Avkomman kommer då ha antingen en mer komplett uppsättning gener i genomet eller bara en blandning av gener från föräldrarna. Denna metod gör gen matchning enkel och kräver ingen större analys. Då innovationsnumren tillförs vid varje förändring i alla genom så kommer förändringarna med samma nummer i olika genom påverka samma sak i individen. 2.2.2 Skydda nya genom Denna metod ger en stor variation i genomen hos individerna i populationen. Detta leder dock till ett problem då det försvårar innovation när spridning i genomen storlek förekommer. Nya gener gör ofta en individ mindre lämpad än den var innan genen tillfördes, eller gör att den har lägre fitness med ett annat ord. Den har helt enkelt inte fått en chans att anpassa sig än. Så gener som skulle kunna vara viktiga för populationens utveckling kan försvinna för att individer på låg fitness väljs bort. För att förhindra att detta händer så har man även artbildning i NEAT. Med hjälp av de globala innovationsnumren och antalet gener som är disjoint och excess kan man med nedanstående formel räkna ut hur lämpade två genom är att bilda en avkomma. Genom som ligger nära varandra har lättare att paras och på detta vis så har små genom en större chans att få utvecklas i en långsammare takt, och det finns också ett tröskelvärde som hindrar genom som skiljer sig för mycket att bildar en avkomma tillsammans. δ är skillnaden mellan de olika genomen, E är excess, D är disjoint, är den genomsnittliga vikten hos de matchade vikterna. c 1, c 2 och c 3 används för att justera de olika faktorernas vikt i uträkningen. N är storleken på det större genomet och används för att normalisera genomstorleken. δ t sätts som tröskelvärde för att avgöra om de olika genomen kan bilda en avkomma När NEAT avkommor bildas i NEAT så används explicit fitness sharing, vilket innebär att hela populationen av en art delar på fitness. Ju fler individer en viss art har desto lägre blir artens fitness. Detta förhindrar att en art med hög fitness slår ut alla andra arter och på så sätt försämrar möjligheterna till vidare utveckling av alla arter. När själva avkomman bildas så slås slumpmässiga genom från en viss procentsats av de mest lämpade individerna i en art ihop och ersätter hela artens population. Antalet individer som ska tillsättas i en art bestäms av följande formel: k är den genomsnittliga fitnessen hos den aktuella arten, tot är den genomsnittliga fitnessen hos hela populationen av alla arter och P är antalet individer i den totala mängden individer i hela 6

populationen av alla arter. På detta sätt får man ut en lämplig mängd individer för en vis art utan att den totala populations fitness faller för lågt. 2.2.3 Minimera sökdjup NEAT utgår alltid från enkla neurala nätverk där input direkt påverkar output utan några mellanliggande dolda noder. Nya noder tillkommer allt eftersom genomet utvecklas och sturkturerna utvärderas kontinuelligt och plockas bort om de är olämpliga. Detta till skillnad från andra TWEANN-metoder som börjar med ett slumpmässigt antal noder och därför kan få onödiga strukturer, utan möjlighet att på ett smidigt sätt kunna minska komplexiteten. NEAT har därför alltid enklare strukturer att arbeta med i jämförelse med andra metoder som förändrar topologi och vikter. 4. reneat reneat, som står för Real-Time Neuroevolution of Augumenting Topologies är vidareutvecklad version av NEAT som är gjord för att fungera i realtidsmiljöer. För detta så har vissa saker ändrats. I NEAT byts hela populationen ut vid varje ny generation och den nya generationen är baserad på de individer med bäst fitness i den tidigare generationen. I rtneat så sker generationsskiftet mindre dramtiskt, där den individ med sämst fitness plockas bort ur populationen och ersätts med en avkomma från de individer i populationen med bäst fitness. Livslängden för en generation eller, i rtneat, en individ bestäms av en klocka. När en viss tid gått så skapas en avkomma och den sämsta individen plockas bort. rtneat sköter detta med hjälp av en bestämd process och ett antal formler som presenteras nedanför. Steg 1: Avlägsna den sämsta avkomman För att kunna bibehålla möjligheterna för vidare utveckling av genomen så måste vissa regler följas när man väljer ut vilken individ som ska avlägsnas från populationen. Individernas nivå av fitness delas mellan alla i arten, så individen som ska tas bort måste ha den sämsta fitnessen efter att detta justrerats, då storleken på individens artpopulation spelar in. Detta är, som tidigare nämnt, för att förhindra att nya individer plockas bort för tidigt. rtneat tar också hänsyn till hur länge individen har levt, då unga individer annars skulle plockas bort utan att få en chans att visa hur lämpad den är. När dess krav är uppfyllda och den sämst lämpade individen är lokaliserad tas den bort. Steg 2: Räkna om artens fitnessmedelvärde Eftersom fitness delas mellan alla individer i en arts population så är det viktigt att uppdatera denna, då föräldrarna till den nya avkomma bestäms utifrån fitnessvärdet. Steg 3: Välja föräldrarnas art Formeln för att räkna ut en arts population som används i NEAT fungerar inte riktigt på samma sätt. Då hela populationen ersätts vid generationsskiftet i NEAT och endast en individ i taget fungerar inte formeln 7

Istället används formeln S k är i denna formel antalet individer i en viss art. Med denna kan man med hjälp av sannolikhet få fram från vilken art föräldrarna bör väljas. Detta för att ge den spridningen och möjligheten innovation och utveckling som NEAT ger, även i realtid. Steg 4: Dynamisk kompatibilitetströskel δ t som används som tröskelvärde i NEAT för att avgöra om två genom skiljer sig för mycket från varandra är i som en variabel. rtneat försöker att hålla antalet arter konstant, vilket det gör genom att justera δ t. Är det för många arter så öka tröskelvärdet för att låta individer ansluta sig till en art, medan om det är få arter så sjunker tröskelvärdet för att tvinga fram nya arter, då nya arter skapas om en individ inte passar in i någon av de existerande arterna. Den ändring av artstrukturen börjar inte verka förrän hela populationen går igenom denna beräkning. Steg 5: Ersätt den borttagna individen Individen som tog bort kan nu ersättas. Hur detta sker variera från miljö till miljö. Det nya genomet kan i ett spel aningen ersätta hjärnan i det gamla genomet kropp, eller helt enkel döda kroppen och återvända i en ny. I spelet NERO som ska beskrivas har nedanför så ersätt både hjärna och kropp samtidigt. Förutom dessa skillnader så måste även tiden mellan varje generationsbyte bestämmas då detta sker i realtid. Detta kan göras av spelaren. Det bör has i åtanke hur länge varje generation ska leva; har man för kort tid hinner inte nya individer utvecklas och har man för lång så tar utvecklingen av populationen för lång tid. Figur 1 Illustration av uppkomsten av en ny individ. Den sämsta i populationen tar bort och två av de bästa får bli föräldrar till en ny individ 5. NERO NeuroEvolving Robotic Operatives är ett RTT-spel baserat helt och hållet på maskininlärning. RTT står för Realtime Tactical och fokuserar på enheternas rörelse på slagfältet och saknar resurshantering som finns i mer traditionella Realtime Strategy-spel. I NERO tar spelaren rollen som tränare eller instruktör och ska träna en grupp med robotar att lära sig gå, skjuta och senare avancerade stridstaktiker. 8

5.1 Robotic Operatives Robotarna är spelet representation av agenter och varje robot innehåller ett genom som kan evolvera individuellt. Roboten har ett antal sinnen eller sensorer som ger dem information om omgivningen, det vill säga inputvärden. Totalt har de fyra sensorer: Radar som gör att det kan känna av var fienden är i 360 runt roboten. Radarn är uppdelad i sektorer och kan känna av avståndet till fienden. Ju närmare en fiende är desto starkare input ger sensorn, vilket kan påskynda aktiveringen av eventuell nod som den är kopplad till. Objektdetektor med avståndsmätare som skicka ut i ett antal strålar från roboten. Med hjälp av dessa kan roboten veta om det finns väggar eller andra hinder och navigerar i världen. Målangivare som berättar om de har en fiende i sin skottlinje. Figur 2. Ett exempel på ett nätverk I en av agenterna, med input från sensorerna near och de olika outputen uppe Sensorer för fiendens skottlinje och eld som används för att veta när de kan bli beskjutna. Den känner även vilken bana de närmaste fiendens kulor har, vilket kan vara vitalt för att undvika dessa. Utifrån dessa kan robotarnas agera på fem olika sätt; gå fram, bak, vänster, höger eller skjuta. Dessa är alltså agenternas outputs. 5.2 Kontroller Spelare kan inte direkt kontrollera sina robotar mer än att man kan sätta ut en flagga som i sig är ganska meningslös. Istället kontrollerar denne ett antal reglage som antingen belönar eller bestraffar agenterna för ett visst beteende. Beteende som kan belönas eller bestraffas är; undvikande av inkommande eld, eldgivning, rörelse, framryckning mot flaggan, sammanhållning med robotar på det egna laget samt framryckning mot fienden. Figur 3. Kontrollerna för NERO. De gröna reglagen kontrollerar hur olika beteenden från agenterna ska belönas eller bestraffas dvs få högre eller lägre fitness. Från vänster: undvikande av inkommande eld, eldgivning, rörelse, framryckning mot flaggan, sammanhållning med robotar på det egna laget samt framryckning mot fienden. 5.3 Träning Spelet delas in i två olika lägen, där det första är träningsläget. Här har spelaren ett öppet fält utan fiender eller hinder. Här kan han placera sin fabrik som är den punkten som hans robotar kommer dyka 9

upp. Antalet robotar bestämmer spelaren, då det beror på hur kraftig datorn denne har. Normalt brukar det ligga mellan 50 upp till 200. När robotarna anländer har det endast den enklaste formen av neurala nätverk, vilket visar sig genom att de springer runt fullständigt planlöst. Här måste spelaren träna sina robotar till att göra vissa basala handlingar där en lämplig att börja med är att få dem att gå till en bestämd punkt. Detta görs lättast genom att placera ut flaggan och höja reglaget som ger högre fitness för att avancera mot flaggan. Efter ett par minuter kommer det ha kommit nya generationer robotar ha anlänt till slagfältet som kommer vara avkommor utav de robotar som hade högst fitness, alltså de robotar som avancerade mot flaggan. Detta kommer leda att efter ett par generationer kommer alla robotar avancera mot flaggan. Här ifrån kan man fortsätta träna sina robotar. Till spelaren förfogande har han väggar han kan sätta upp för att träna dem att navigera kring hinder och även olika typer av fiender. Dessa fiender kan antingen vara stationära mål som inte gör något motstånd, eller mer avancerade som rör sig i bestämda mönster eller siktar in sig på spelaren robotar. Genom att konstruera mer och mer avancerade övningar kan spelare få sina robotar att agera på ett önskat vis. Robotarna kan belönas för att skjuta på fienden och hålla sig i rörelse vilket ger spelaren robotar som på avstånd beskjuter fienden samtidigt som de försöker undvika att bli beskjutna. Han kan också skapa robotar som avancerar rakt mot fienden utan tanke på självbevarelse. Möjligheten att både belöna och bestraffa robotarna ger en mängd möjligheter. Spelare kan till exempel träna robotar som får låg fitness av att avancera mot flaggan och får då möjligheten att markera farliga områden med flaggan för att robotarna inte ska gå dit. Spelaren har också möjlighet att själv döda en robot som uppvisar ett icke önskvärt beteende. Han kan även ersätta alla robotar samtidigt med genomet från en robot som presterar särskilt väl. Genom att göra detta så klonas robotens genom till samtliga robotar och ger en nu utgångspunkt i evolutionen. Spelet erbjuder även möjligheten till att använda milestoning method. Denna funktion gör att gener från gamla robotar kan sparas och blandas in i genomet för robotar flera generationer senare. En jämförelse skulle vara att en människa skulle gå tillbaka och ta gener från en grottmänniska för att bättre kunna hantera kallt klimat. Denna funktion gör det möjligt att på ett bra sätt kunna träna robotarna till att genomföra flera olika handlingar som annars skulle vara svåra att få fram, då robotarna tenderar till att glömma bort ett visst beteende när det ska lära sig ett annat. När spelaren har fått fram robotar han är nöjd med kan han spara dessa och gå vidare till Battle mode. 5.4 Battle mode Detta läge är själva spelet. Spelaren får här sätta ihop fyra grupper om fem robotar som ska forma en pluton, det vill säga 20 robotar totalt. Det kan antingen vara olika robotar som agerar olika eller kopior på samma robot om spelaren är särskilt nöjd med någon särskild. Med denna pluton med robotar kan han antingen kämpa mot de robotar som programmerarna skicka med i spelet eller mot en annan spelare via nätverk eller internet. Matcherna är ganska enkla och vinnaren bestäms av den som överlever eller, i scenariot att robotarna bekämpar varandra, den som har flest robotar kvar när matchen är slut. Under matcherna kan spelarna inte göra mer än placera ut deras enda flagga och hoppas robotarnas träning är tillräcklig. 10

11

6. Avslutning NERO är ett mycket intressant sätt att visa möjligheterna med genetiska algoritmer, samtidigt som det är ett mycket underhållande spel. Min personliga bedömning är att de fortfarande är en bit kvar innan metoder som rtneat kan slå på den vanliga marknaden mot de traditionella metoderna att skapa spel, men det öppnar upp nya möjligheter och intressanta tankar. 12

Litteraturförteckning Böcker Russell, S., & Norwig, P. (2003). Artificial Intelligence: A modern approach. New Jersey: Pearson Education, Inc. Artiklar D Silva, T., Janik, R., Chrien, M., Stanley, K. O., & Miikkulainen, R. (2005). Retaining Learn Behavior During Real-time Neuroevolution. Austin, Texas, USA. Stanley, K. O., & Miikkulainen, R. (2002). Effcient Reinforcement Learning through Evolving Neural Network Topologies. Austin, Texas, USA. Stanley, K. O., Miikkulainen, R., & Bryant, B. D. (2005). Evolving Neural Network Agents in the NERO Video Game. Austin, Texas, USA. Internet http://nn.cs.utexas.edu/index.php http://www.nerogame.org 13