Artificiell intelligens i en virtuell värld

Storlek: px
Starta visningen från sidan:

Download "Artificiell intelligens i en virtuell värld"

Transkript

1 LINKÖPINGS UNIVERSITET Artificiell intelligens i en virtuell värld Ett fördjupningsarbete om artificiell intelligens inom spelbranschen Victor Sjölin, vicsj486@student.liu.se

2 Table of Contents 1. Förord Beteende Finite-State Machine Genetiska algoritmer Artificiella neruala nätverk Diskussion Referenser Böcker: Internetartiklar: Spelreferenser:... 16

3 1. Förord Oavsett vad du sysslar med i dagens moderna samhälle så har du med största sannolikhet någon gång kommit i kontakt med artificiell intelligens, kanske utan att ens vara medveten om det. AI (som artificiell intelligens förkortas) får en allt större roll i vårt dagliga liv, och oavsett om du shoppar på nätet, beställer tågbiljetter via telefon eller använder en GPS så kommer du att stöta på det i någon form. En industri som blir mer och mer beroende av framstegen inom AI-fältet är spelindustrin. Oavsett om vi talar om relativt enkla spel som luffarschack, där datorn hela tiden har full koll på vad som händer på spelplanen, eller betydligt mer avancerade moderna spel där datorn styr flera olika agenter som simulerar mänskligt beteende och är helt oberoende av varandra så spelar AI en oerhört stor roll. Det är viktigt att klargöra att många saker som kallas för AI inom spelvärlden inte alls skulle kallas för AI inom den akademiska världen. Inom spelvärlden är målet att underhålla, och hur man uppnår detta mål är inte alltid av största intresse. En oinsatt spelare är ofta precis lika glad om en agent i spelet följer ett antal förscriptade händelser (det vill säga ett strikt manus som talar om för agenten exakt vad den ska göra vid en viss tidpunkt), som om den faktiskt besitter någon form av riktigt AI och istället agerar på egen hand utifrån vad den utsätts för och/eller de förutsättningar den har för tillfället. Dessa strikt scriptade spel och deras metoder är dock inte av lika stort intresse när man studerar artificiell intelligens i ordet rätta bemärkelse, och artikeln kommer därför inte lägga någon större vikt vid dessa. Målet med AI i spel är att skapa en värld som känns levande, med invånare som uppträder intelligent på ett trovärdigt sätt. Det finns vanligtvis tre kategorier som världens invånare faller inom; allierade, neutrala eller fientliga. Agenter som tillhör någon av de två förstnämnda kategorierna benämns vanligtvis som NPC s, vilket betyder Non-Playable Characters. Även om AI inte per definition måste vara i from av en människo/djurliknande-varelse så är det väldigt ofta just om dessa NPC s intelligens man talar om när man diskuterar AI inom spel, och det är främst dessa som kommer att diskuteras i artikeln.

4 2. Beteende En stor del av utmaningen med att skapa artificiell intelligens i ett spel är att få agenterna att göra intelligenta val. En utvecklare skulle teoretiskt sett kunna definera en samling handlingar som en viss agent kan utföra och sedan låta den slumpa fram en handling och hoppas att det blir rätt, men det skulle med allra största sannolikhet leda till att agenten gör dåliga val och därmed bryter spelarens illusion av att agenterna faktiskt är tänkande individer. Istället strävar utvecklarna efter att programmera agenten på ett sådant sätt att den gör rationella val givet situationen den befinner sig i. För att uppnå detta finns det två huvudsakliga sätt att programmera agenternas beteende på som man använder sig av, fördefinerat-beteende och målorienterat-beteende (Funge, 2010). Om en agents beteende anses vara fördefinerat eller målorienterat avgörs av om agenten är deterministisk i sitt val av handlingar. Att en agent är deterministisk i sina val av handlingar innebär att den inte minns vilka andra alternativ den hade att välja på. En icke-deterministisk agent, däremot, minns vilka alternativ som fanns och vilket av dem den valde, och kan därför välja att gå tillbaka ett steg i sitt beslutsfattande och överväga de andra alternaven för att se om något av dem hade tagit den närmare målet. Båda metoderna har sina fördelar och sina nackdelar, och en utvecklare måste därför se till att välja den metod som bäst passar det syfte agenten är tänkt att fylla. (Funge, 2010) Agenter som gör deterministiska val är strikt regelbundna och utför handlingar baserat på den inputdata deras sensoriska system fångar upp. Detta gör att de är väldigt förutsägbara och därmed lätta att implementera och felsöka. Då de enbart agerar utifrån den samling regler de har tillgängliga så har de även väldigt kort responstid, vilket i många fall är väldigt viktigt och därmed en stor fördel. Det faktum att de är så regelstyrda gör dock att de agenter som följer denna princip lätt blir förutsägbara, de har ofta bara en respons till en viss händelse, oavsett andra omständigheter, vilket gör att utvecklare måste göra en avvägning när de bestämmer sig för på vilket sätt de ska koda en viss agent. Ett klassiskt exempel på hur deterministiska agenter funerar är Namco s Pac Man. Spelet går ut på att man som spelare åker runt i en labyrint-liknande bana och äter piller för att plocka poäng. På banan finns det spöken som planlöst åker runt, men som fort de får syn på spelaren inleder en jakt för att äta upp honom. Utplacerat på banan finns dock några få blå piller, så kallade power pills, som ger spelaren möjligheten att själv äta spöken om man får tag i dem. Så fort spelaren lyckas äta upp en av dessa piller så skiftar spökenas prioritet, från att aktivt jaga spelaren när den är inom synhåll till att helt plötsligt fly för att undvika att bli uppätna. När det blå pillrets effekt efter några sekunder har avtagit återgår spökena till att jaga spelaren, som inte längre är ett hot mot dem. Som tur är så finns det då icke-deterministiska agenter som har andra egenskaper än de deterministiska. En icke-deterministisk agent har förmågan att lära sig av erfarenhet vilket gör att den blir mycket mer dynamisk än sin deterministiska motsvarighet. Detta leder även till att de har en viss grad av osäkerhet, en utvecklare kan aldrig veta säkert vad agenten kommer att lära sig och hur det kommer att påverka spelupplevelsen. Det gör även att det blir mycket svårare att felsöka i en sådan agent, eftersom den kan teoretiskt sett kan uppföra sig helt annorlunda varje genomspelning. Den här sortens AI är både betydligt mer avancerad och resurskrävande än den deterministiska vilket gör att många utvecklare väljer att använda sig av enklare metoder, men de som verkligen har lagt ner tid på att implementera den här sorts AI har visat mycket imponerande resultat, till exempel Lionhead Studios Black & White.

5 2.1 Finite-State Machine Finite State-Machine (FSM) är ett väldigt vanligt och effektivt deterministiskt sätt att programmera enklare agenter. En FSM är uppbygd av ett antal states, en uppsättning inputs och en uppsättning outputs (Funge, 2010). Metoden bygger på att agenten har flera olika states som den kan befinna sig i. Metoden är sekventiell, vilket innebär att agenten bara kan befinna sig i ett state i taget, och FSMen definerar under vilka omständigheter (det vill säga input från omvärlden) agenten ska byta state (Champandard, AIGameDev). Bild 1 nedan är ett exempel på hur en fientlig agents FSM skulle kunna se ut. De vita rutorna representerar här möjliga states som innehåller olika handlingar. De vita pilarna representerar de input-villkor som tvingar agenten att byta state när de uppfylls. Bild 1. Som framgår av bilden så startar den här agenten med search for player som state. Den har sedan två möjliga villkor som kan få den att ändra state, antingen om den ser spelaren eller på något sätt får information om var spelaren befinner sig. Om något av dessa villkor uppfylls så kommer agenten att övergå till det state som pilen som representerar villkoret pekar på. På så sätt fortsätter agenten att ändra states och handlingar beroende på den input den får, vilket gör att den känns mycket mer levande än agenter baserade på scripts, vilket är en mer primitiv metod för att definera en agents beteende, vilket också gör att den inte är särskilt intressant ur ett AI-perspektiv och kommer därför inte att läggas någon större vikt vid i den här uppsatsen.

6 Metoden har både för och nackdelar. Till fördelarna hör att agenter som använder sig av FSMs är mycket lätta att implementera och felsöka i (Seamann och Bourg, 2004). Den kräver även väldigt lite prestanda då den är uppbyggd på if then -premisser, vilket även innebär att den har mycket kort responstid, något som är väldigt viktigt inom spelvärlden för att allt ska flyta på utan att illusionen av intelligens bryts. Förutsatt att de regler som FSMen är uppbyggd av är väl genomtänkta så framstår ofta agenten beteende som naturligt. Det faktum att en FSM så enkelt kan målas ut som i Bild 1 gör också att det är mycket enkelt att få en överblick på hur dess regler se ut och man kan på så sätt enkelt undvika logiska snedsteg. Metoden har dock som sagt sina nackdelar. Ett exempel på detta är att en agent som använder sig av FSMs kan göra stundtals korkade val. Om vi till exempel har en agent som börjar i ett passivt state, vars reaktion på att den blir attackerad är att själv attackera. Detta är i många fall en rimlig reaktion, men säg att vår agent föreställer en höna, och agenten/spelaren som attackerar den är en räv. Helt plötsligt känns det inte som att en motattack vore den mest logiska reaktionen längre, här skulle det kännas betydligt mer realistiskt om hönan istället försökte fly. Den här sortens situationer kan inte FSMs hantera, förutsatt att det inte finns en specifik regel som säger att om en den som attackerar är en räv så bör hönan fly. Den har även en tendens att lätt bli förutsägbar, då den endast har en reaktion på en viss sorts input, vilket gör att det till slut blir väldigt lätt att förutspå hur den kommer reagera på en viss handling, till skillnad från en människa i riktiga världen där en mängd andra förutsättningar spelar in och har en avgörande roll. En annan nackdel är att det är väldigt svårt att ge agenten någon sorts känsla av individualism då alla states ligger på samma nivå (Eventhelix, Hierarchal State Machine Design Pattern), det finns ingen högre state som ligger över de andra som kan fungera som en personlighet. Som tur är finns det dock vad man skulle kunna kalla en uppgradering av FSM, nämligen HFSM. HFSM står i det här fallet för Hierarchical Finite-state Machines. Detta innebär att en HFSM består av flera olika hierarkiskt ordnade FSMs, det vill säga, varje nod i en HFSM kan i sig själv vara en HFSM. Att HFSMs states är hierarkiskt ordnade och tillåter oss att ge agenterna en internal state (Funge, 2010, Reactive Behavious Rules) möjliggjör skapandet av mycket mer avancerade och sofistikerade beteendemönster hos en agent vilket har bidragit till att den har blivit en av de överlägset mest poplära metoderna för att programmera beteende i dagens läge.

7 2.2 Genetiska algoritmer I naturen utvecklas arter, om än väldigt sakta, ständigt för att bättre anpassa sig efter den omgivning de lever i. Detta sker genom naturligt urval, eller survival of the fittest (Darwin, 1859), vilket helt enkelt går ut på att de exemplar av en art som är bäst anpassad för miljön överlever och får föra sina gener vidare, medan de sämre anpassade dör ut. På så sätt så främjas de egenskaper hos djuren som de har nytta av, medan de som de inte behöver dör ut, och på så sätt ökar chansen för artens överlevnad. Principen illustreras i Bild 2 nedan, där kromosomerna hos föräldrarna (här i form av blommor) representeras av slumpmässiga bokstäver Bild 2. Genetiska algoritmer bygger på just den här principen, där målet alltid är att producera avkomma som är bättre anpassade än sina föräldrar. Processen för att hitta nya bättre lösningar delas ofta upp i fyra steg. Den första, kallad First Generation, går helt enkelt ut på att man skapar en population fylld av individuals (Russel and Norvig, 2010), eller individer, som alla har olika egenskaper. Dessa individer representerar de olika lösningar som finns till det problem som vi försöker lösa. I många fall inom AI så är dessa individers egenskaper helt slumpmässiga, men eftersom en spelutvecklare ofta har en relativt god uppfattning om vilka egenskaper som kommer att producera en lämplig individ så kan de ibland ha ett finger med i spelet, utan att för den sortens skull helt skräddarsy dem då det skulle göra utgallringsprocessen vi vill ska ta plats mindre effektiv. Därefter måste man göra något som kallas för encoding ( Seamann och Bourg, 2004, 424), vilket innebär att man sparar kromosomerna som varje individ bär på på ett sätt så att datorn kan arbeta med dem, vilket vanligtvis innebär strängar, listor eller träd.

8 Bild 3. Eftersom alla individers egenskaper kommer att vara olika väl anpassade för problemet som vi vill lösa måste vi skapa någon sorts system tillåter oss att gradera individerna och deras egenskaper. Det är det andra steget och kallas här för Evaluating Fitness (Hsiung and Matthews, 2000). Varje individ tilldelas här ett värde vars storlek avgörs av hur lämpad individen är för att agera i världen den befinner sig i och om de har de egenskaper som vi vill föra vidare till nästa generation. Bild 4. Därefter kommer vi till Selection där de individer som fick högst värde i Evaluating Fitnessfasen väljs ut för att senare få föröka sig. Värt att nämna är att trots att genetiska algoritmer har väldigt mycket gemensamt med naturlig evolution så är de inte bundna till samma begränsningar, vilket innebär att vi kan kombinera kromosomer från fler än två individer, om vi skulle känna att det gynnade ändamålet (Seamann och Bourg, 2004).

9 Bild 5. Till sist har vi nått själva evolutionen, Evolution, där skapandet av nya individer sker. I det här steget tar vi de individer som bedömts lämpliga i Selection-steget och utför på dem en crossover. En crossover innebär att vi tar kromosomerna från de individer som valts ut i och slår ihop dem för att skapa en ny individ, något som illustreras i Bild 2. Här introducerar vi även slumpmässiga mutationer, något som är en mycket viktig del inom evolutionen. Mutationer innebär att i varje ny individ införs, förutom de från föräldrarna nedärvda kromosomerna, ett fåtal nya kromosomer. Detta görs för att evolutionen inte ska stanna upp utan fortsätta att utveckla nya förmågor som kommer att nedärvas till framtida generationer om de skulle visa sig vara användbara, och i annat fall dö ut. När allt detta sedan skett så skickas den nya individen iväg till Evaluating Fitness-steget för att tillsammans med andra nya individer utvärderas för att se om de har de egenskaper som krävs för att föröka sig, och på så sätt börjar hela processen om tills en lösning har nåtts. Det kretsloppet som uppstår illstrureras i Bild 6 nedan och avslutar de fyra steg som beskrivits. Bild 6.

10 Genetiska algoritmer är icke-deterministiska och klarar därför av en hel del saker som deterministiska metoder såsom FSM inte klarar av, till exempel när ett problems struktur är mer eller mindre oförutsägbar, men lider även av andra brister. Eftersom agenter som använder sig av genetiska algortimer inte är förkodade, det vill säga har en förbestämd respons på en viss input, på samma sätt som deterministiska agenter så har de möjligheten att göra val som är bättre anpassade efter förutsättningarna. En stor del av de problem spelutvecklare har är att det är svårt att förutse hur en spelare kommer att agera i ett visst läge, vilket kan vara väldigt problematiskt för en deterministisk agent, något som genetiska algoritmer är väldigt bra på att hantera, då de anpassar sig efter spelaren. Om vi återvänder till exemplet med hönan och räven så hade en höna vars beteende bestäms av genetiska algoritmer mest troligt valt att fly fältet om den skulle bli attackerad av en räv men attackera om den anfölls av en daggmask, till skillnad från en höna var beteende bestäms av skript som skulle kunna gå till motattack oavsett vem som attackerade, om det var dess respons på en attack. På så sätt är en agent som använder sig av genetiska algoritmer bättre anpassad till sin omgivning, vilket enligt författaren bidrar något enormt till inlevelsen för spelaren. Avancerade strategispel, till exempel, kan dra stor nytta av genetiska algoritmer. De kan i många fall spara information från tidigare spelomgångar och lära sig spelarens strategier. Säg, till exempel, att en spelare alltid attackerar datorns bas med hjälp av pilbågsskyttar, som den sedan låter skjuta på basen tills datorn skickar ut en motattack, för att sedan snabbt backa tillbaka utom räckhåll för datorns enheter. En genetisk algoritm skulle till slut kunna lära sig att motarbeta den här sortens taktiker genom att, till exempel, träna ryttare, som rör sig snabbare än spelarens bågskyttar, och på så sätt kunna rida ikapp dem innan de hann retirera. Detta bidrar till ett mycket mer intelligent beteende från datorns sida, jämfört med om den gång på gång försökt skicka ut långsamma fotsoldater som aldrig hinner ikapp. Även genetiska algoritmer har dock sina nackdelar, oavsett hur överlägsna de kan verka enklare deterministiska metoder vid en första blick. Eftersom en utvecklare aldrig i förväg kan veta hur en agent kommer att utvecklas för varje enskild spelare finns det en stor risk att komplikationer kommer att uppstå. Bland dessa finns risken för så kallade buggar, oförutsedda felaktigheter i agenternas beteende som kan få dem att uppträda på ett oönskat sätt, vilka är svåra att testa och motverka då agenten som sagt kan bete sig helt olika till för varje speltillfälle. En annan faktor som försvårar deras användande är även en av deras största styrkor; nämligen de slumpmässiga mutationerna. Utan dessa hade metoden varit mycket mindre effektiv, men det faktum att slumpmässiga element införs gång på gång gör att slutresultatet av algoritmen kan bli något helt annat än det man eftersträvat. Lägg därtill att de är väldigt tids och-prestandakrävande, vilket kan vara ett stort problem då de datorer spelen är tänka att köras på ofta har väldigt begränsad prestanda, olikt de genetiska algoritmer som utförs i rent forskningssyfte inom den akademiska världen. Detta innebär att spelen kan bli sega och agenterna kan framstå som långsamma, vilket är något man som spelutvecklare vill undvika till varje pris.

11 Med dessa nackdelar i åtanke är det förståeligt att många utvecklare ännu drar sig för att använda genetiska algoritmer och iställer väljer att fokusera på enklare metoder som FSMs och scripts.en utvecklares mål är trots allt att sälja så många exemplar som möjligt, och om de kan få ett mer stabilt resultat genom att använda enklare metoder väljer många att göra det, hellre än att gräva ner sig i de mer instabila algoritmerna. Detta är dock mycket tråkigt enligt författaren, då de utvecklare som väljer att faktiskt lägga ner mycket tid och energi på att få en bra fungerande AI har visar upp mycket imponerande resultat, till exempel det tidigare nämnda Black & White och Black & White 2, som använde sig av genetiska algoritmer. Ett mer flitigt användande av metoden skulle även troligtvis leda till att utvecklare fick bättre förståelse för hur de bör implementeras och hur fel kan förebyggas, vilket skulle kunna leda till att de blev allt mer vanligt förekommande, vilket inte bara skulle vara roligt för oss som är intresserade utav AI utan i längden göra upplevelsen roligare för samtliga spelare.

12 2.3 Artificiella neruala nätverk Artificiella neural nätverk är även den en metod som har naturen som förebild, men den här gången är det inte naturlig evolution utan den mänskliga hjärnan som får stå modell. Vår modell, hjärnan, är uppbyggd av cirka 10^11 neuroner, där varje enskild neuron är kopplad till tusentals andra, som i sin tur är kopplade till tusentals andra, som bildar ett enormt nätverk. Neuronerna använder detta nätverk för att skicka information, i form av elektricitet, mellan sig med hjälp av så kallade axoner och dendriter, som är de kopplingar som leder från en neuron till en annan. Var och en av dessa dendriter har en voltage potential (Seamann och Bourg, 2004, 356) som går från en aktiverad neuron till de anslutna neuronerna. Varje neuron får via dessa input från cirka 10^4 andra neuroner, och det är när den samlade effekten från dessa neuroner blir tillräckligt stark som neuronen avfyrar och skickar vidare sin voltage potential till de andra och på så sätt sprids information. Artificiella neurala nätverk är en icke-deterministisk metod som fungerar på ungefär samma sätt, men som tur är så behöver våra de inte innehålla tillnärmelsevis lika många neuroner, på sin topp handlar det om cirka tusen neuroner, men oftast stannar siffran betydligt närmare tiotalet. Neurala nätverk har väldigt många användningsområden inom spelutveckling, beroende på vilken typ av nätverk man använder, och kan användas till att från att understödja komplexa state machines, då genom att låta specialtränade neurala nätverk sköta vissa specifika beslut, vilket ger dem en relativt liten roll, till att styra i princip allt i hela spelvärlden. Kort sagt, neurala nätverk kan, i rätt händer, programmeras att sköta i princip allt vi vill ska hända i spelvärlden, men att gå igenom alla användningsområden här skulle ta alldeles för lång tid, och den här artikeln kommer därför fokusera på den sorts nätverk som är mest användbar för det relevanta ämnet; nämligen multilayer, feedforward network(seamann och Bourg, 2004, 357). Dessa nätverk är mycket mångsidiga och kan därför hantera en mängd olika problem utan att för den sakens skull vara så komplicerade att de är omöjliga att implementera. Som exempel tar vi ett neuralt feed-forward nätverk med tre lager. Det är uppbyggt på så sätt att vi har tre lager av neuroner, ett för input, ett dolt och ett för output, där det kan finnas ett obegränsat antal neuroner i varje lager. Varje enskild neuron i input-lagret är kopplat till samtliga av neuronerna i det dolda lagret, och samma sak gäller för neuronerna i det dolda lagret när de leder till outputlagret. Den aktivitet som sker i input-lagret representerar som en följd av detta den data som matas in i nätverket, medan aktiviteten i det dolda-lagret avgörs av aktiviteten i inputen och vikterna som finns i kopplingarna mellan dem, och output-lagrets uppförande kommer sedan att bero på aktiviteten i det dolda-lagret och vikten på de kopplingar som går från det till output-lagret. Bild 7 på nästa sida illustrerar hur det skulle kunna se ut.

13 Bild 7. Det finns en hel del saker som måste tas i beaktning när man skapar ett neuralt nätverk i ett spel. Det första är hur man ska hantera inputen, vilket givetvis är väldigt viktigt då ett nätverk som inte får någon input inte kommer att ha någon information att arbeta med. Vilken input nätverket får är ofta väldigt beroende av vad det är vi vill upnå. Vi kan föreställa oss att vi har en båt vars rörelser styrs av ett neuralt nätverk. Båten är på väg att lägga till vid en hamn, och då finns det givetvis en hel del parametrar att ta i beaktning, till exempel båtens fart, dess massa och planetens dragningskraft. Om vi vill att dessa ska vara vår input så skulle vi kunna ge dem varsin neutron i nätverket, men då vi som sagt vill hålla nära antalet neutron så mycket som möjligt kan vi istället välja att lägga båtens massa och multiplicera den med båtens fart som tar gravitationen i beaktning, och lägga allt detta i en enda neuron. På så sätt har vi skapat ett mycket mer kompakt nätverk, och även om det givetvis finns andra parametrar som måste tas i beaktning och som behöver en egen neutron så kan vi på det här sättet minska antalet neuroner drastiskt (O Reilly, 2004). Oavsett vad det är vi tar som input, vilket kan vara allt från en agents ålder till dess hårfärg så måste den här informationen representeras i siffror, då är det som nätverken kommer att arbeta med. Medan det inte kommer att ha något problem med att arbeta med en siffra som reprsenterar en ålder så kan det vara svårare för den att arbeta med en hårfärg, vilket gör att vi bör skapa en fördefinerad vector, till exempel {0, 1, 0, 0, 0, 0, 0}, där ettans placering i listan indikerar att agenten har svart hår, och en annan placering hade indikerat en annan färg. En annan viktig del av ett neuralt nätverk är de vikter som finns i kopplingarna mellan neuronerna, det är nämligen vikterna som avgör hur ett nätverk kommer att bete sig. De har förmågan att reducera eller förstärka styrkan hos en inkommande input, vilket kan göra en väldigt stor skillnad i resten av nätverket. Vikterna mellan input-lagret och det dolda lagret avgör när de dolda neuronerna kommer att vara aktiva, och bestämmer på så sätt vad de kommer att representera. Ofta talar man om att ett neutralt nätverk måste tränas för att kunna utföra de uppgifter vi vill att den ska utföra, och det är under denna träning som vikterna justeras för att passa ändamålet. För varje neuron som har en koppling till en annan så finns det alltså en vikt som avgör vad som släpps igenom, och den input som når en neuron från en annan är då summan av vikten på den input den får från varje neuron multiplicerat med input-värdet plus en så kallad bias, vilket är ytterligare en sorts vikt som varje koppling har, men som inte kommer att beskrivas i någon större

14 detalj här, vi nöjer oss med att säga att den kan skifta mellan 1 och -1, och justeras på samma sätt som resten av vikterna. Vi har även ett dolt lager, som behandlar informationen som kommer från input-lagret. Som tidigare nämnt så kopplas varje enskild neuron i input-lagret till samtliga neuroner i det dolda lagret, och varje neuron i det dolda lagret är kopplad till samtliga neuroner i output-lagret. Detta lager är absolut nödvändigt för att ge nätverket möjligheten att bearbeta information från inputen. Som regel gäller att ju fler neuroner vi har i det här lagret desto mer information kan nätverket behandla, och desto mindre brus i datan behöver vi ta hänsyn till. Fler neuroner innebär dock att datorn kräver mer processorkraft, något man försöker hålla till ett minimum, så därför är målet alltid att ha tillräckligt många neuroner, men inte fler än nödvändigt, och att hitta den här balansen kan kräva en del arbete. Det är värt att nämna att man kan använda sig av flera dolda lager om det tros gynna ens syfte, men då det vanligaste inom spelutveckling är att man har ett så är det det vi utgår från här. Till sist återstår bara en viktig del av det neurala nätverket; nämligen output. Precis som för inputen försöker vi här hålla antalet neuroner till ett minimum i syfte att hålla tränings och beräkningstiden så låg som möjligt. Det fungerar på så sätt att vi har ett antal neuroner som markerar de olika alternativ som nätverket kan ge, vilket så klart är väldigt beroende av vilket storts problem det är vi försöker lösa. Om vi föreställer oss att vi har ett nätverk med en output-neuron som opererar i ett rollspel vars jobb är att avgöra om spelarens yrke är snickare, utifrån att vi berättar om några av de färdigheter spelaren besitter. Låt säga att nätverket får reda på att spelaren är ohändig, har benskörhet och ogillar fysiskt arbete. I det fallet skulle antagligen nätverket göra bedömningen att spelaren inte är en snickare, och den ensamma output-neuronen skulle därför inte aktiveras. Om vi istället föreställer oss att nätverket får inputen att spelaren är duktig med händerna, stark och gärna arbetar utomhus så skulle neuronen antagligen aktiveras, och på så sätt markera att den gjort bedömningen att spelaren faktiskt är en snickare. Det kan även hända att vi har en logistisk funktion som avgör när en output-neuron ska aktiveras. Nätverket kommer då att returnera en siffra mellan 1 och 0, där en siffra nära 1 skulle innbära att neuronen aktiveras, medan en siffra nära 0 innebär att den förblir inaktiv. I själva verket kommer siffrorna som returneras antagligen inte att vara så exakta, och vi måste därför sätta ett tröskelvärde som måste överstigas för att nätverket ska kunna avgöra om siffran är hög nog för att neuronen ska aktiveras. Ett annat möjligt scenario är att vi har flera alternativ som en input skulle kunna falla under, och då krävs det att vi har mer än en output-neuron. Om vi än en gång föreställer oss att nätverket operarar i ett rollspel, och dess uppgift är att avgöra vilken klass en fientlig agent utgör, där de tre alternativen är bågskytt, fotsoldat eller magiker så behöver var och en av dessa klasser en egen neuron. Här gäller att ett högt värde för en neuron implicerar att den bör aktiveras, medan ett lågt värde implicerar att den icke bör aktiveras. Nätverket kommer då att välja att aktivera den neuron med högst värde, och på så sätt göra bedömningen att den fientliga agenten tillhör den klassen och inte någon av de andra. Detta kallas ibland för winner take all-approach (O Reilly, 2004, 368). Som förhoppningsvis framgått av texten ovan så har neurala nätverk flera olika användningsområden inom spel-ai. Ett av dem är när vi vill att nätverket ska kontrollera hur ett datorstyrt fordon rör sig i världen. Låt säga att det i det här fallet handlar om ett flygplan. Nätverket skulle då kunna ha tre neuroner i input-lagret, en som kontrollerar ifall det finns något ett hiner framför planet, och en för

15 varje sida. Outputen skulle bestå av två neuroner, en för vilket håll planet bör svänga åt för att väja. De möjliga outputsen skulle då bli att antingen så aktiveras den ena neuronen i output-lagret, vilket betyder att planet bör svänga åt höger, eller den andra, vilket betyder att planet bör svänga vänster. Det kan även hända att ingen av dem aktiveras, och då fortsätter planet att färdas rakt fram. En simpel illustration av hur nätverket skulle se ut återfinns nedan. Bild 8. Ett annat användningsområde där neurala nätverk kan göra mycket bra ifrån sig är om det används för att avgöra om en NPC bör attackera eller fly när den ställs inför en främmande agent. Nätverket tar fyra neuroner som input; antalet agenter i närheten som är allierade med den främmande agenten, den främmande agentens hotbild (hur stort hot utgör den mot agenten, detta kan mätas i hälsopoäng eller attackpoäng), avstånd till den främmande agenten samt om den för tillfället befinner sig i strid med en annan agent. Om den främmande agenten beräknas utgöra ett hot mot agenten med det neurala nätverket samt har flera allierade agenter med sig så kommer nätverket göra bedömningen att den bör retirera, och därför aktiveras vår neuron i outputen som representerar just det valet, istället för någon av de två andra neuronerna som representerar valen flock (O Reilly, 2004, 387), vilket i det här fallet innebär att ansluta sig till sina allierade för att söka skydd, och attack, som visas i bilden nedan. Bild 9. Källa för kapitlet är Seamann och Bourg (2004) om inte annat anges

16 3. Diskussion Den här artikeln har till största del inriktat sig på hur spelutvecklare går till väga för att definera hur en intelligent agent ska uppföra sig i olika situationer och hur de bär sig åt för att komma fram till vilka val de bör göra givet situationen. Den har beskrivit tre popelära metoder för att göra detta: Finite State Machines (FSM), Genetiska Algoritmer och Neurala Nätverk. En av dessa är deterministisk, FSM, medan de två andra är icke-deterministiska. Det finns metoder som är både enklare och mer vanligt förekommande inom spel än de som diskuteras i den här artikeln, men författaren har valt att inrikta sig på dessa då de till skillnad från vissa andra är intressanta ur en synvinkel där vi ser till deras komplexitet och vad de kan åstadkomma rent teoretiskt, och inte bara till deras lättillgänglighet. På grund av deras låga prestandrakrav och enkla implementation så har FSM och andra deterministiska metoder såsom Scripting blivit mycket populära inom branschen och är bland de absolut vanligaste metoderna. Icke-deterministiska metoder såsom genetiska algoritmer och neurala nätverk är inte fullt lika vanliga, men de spel som använder dem tenderar att gå i det främsta ledet när det gäller standarden på den artificiella intelligensen inom spelbranschen. Det är därför författarens åsikt att det är mycket tråkigt att så många spelstudios väljer att fokusera på primitiva men presterande metoder såsom scripting. Om fler utvecklare skulle ta sig an utmaningen att skapa riktigt avancerad AI med icke-deterministiska metoder, till exempel de som tagits upp i den här artikeln, så skulle användandet snabbt sprida sig vilket skulle leda till att allt fler utvecklare blev kunniga inom ämnet och på så sätt skulle det till slut vara i princip lika enkelt att implementera dessa metoder som de mer primitiva, men resultaten skulle vara otroligt mycket mer givande, både ur spelarens och ur de som är intresserade av artificiell intelligens perspektiv. Författaren anser även att trots det faktum att AI inom spel ofta har begränsad prestanda att röra sig med och därför vanligtvis inte bidrar till utvecklingen av nya metoder för att skapa den sorts AI som det vanligtvis pratas om inom den akademiska världen så bidrar ändå industrin på ett positivt sätt till skolan om artificiell intelligens. Spelutvecklares vanligaste mål är att använda AI på ett sådant sätt att den ger ett intryck av intelligens, och behovet av detta är något som kommer bli allt vanligare i vår vardag, åtminstone om vi antar att världen kommer utvecklas på ett sätt som liknar det scenario som ofta målas upp i futuristiska böcker och filmer, där intelligenta robotar som uppför sig på ett mänskligt sätt och går att interagera med är en viktig del av ett fungerande samhälle. Med detta i åtanke är det inte otroligt att de akademiska och de underhållnings-inriktade grenarna inom artificiell intelligens kan komma att växa allt närmare varandra i framtiden, speciellt med tanke på att hemdatorerna hela tiden blir allt mer kraftfulla i relation till så kallade superdatorer, och kan därför köra allt mer avancerade program. För de har ju trots allt väldigt mycket att ge till varandra, den akademiska AIn med sin ständiga forskning och spel-ain med sitt sina nya användsningsområden och stora strävan att göra dem mer lättillgängliga.

17 4. Referenser Böcker: Bourg, David M. & Seeman, Glenn. (2004). AI for Game Developers O Reilly Internetartiklar: Funge, John. (2010). AI for Games and Animation: A Cognitive Modeling Approach : Nareyek, Alexander. (2004). AI in Computer Games : Champandard, A.J. (2007). On Finite State Machines and Reusability : EventHelix. Hierarchal State Machine Design Pattern: Hsiung, Sam och Matthews, James. (2000). An Introduction to Genetic Algorithms : Spelreferenser: Pac-Man (1980), Namco Black & White (2001), Lionhead Studios Black & White 2 (2004), Lionhead Studios

Symboler och abstrakta system

Symboler och abstrakta system Symboler och abstrakta system Warwick Tucker Matematiska institutionen Uppsala universitet warwick@math.uu.se Warwick Tucker, Matematiska institutionen, Uppsala universitet 1 Vad är ett komplext system?

Läs mer

Artificiell intelligens i spel

Artificiell intelligens i spel Artificiell intelligens i spel En redogörelse Björn Larsson 871210-4036 bjola054 729G11 Sammanfattning Under år 2007 omsatte den svenska tv- och datorspelsmarknaden 2,3 miljarder kronor (nyteknik.se).

Läs mer

Genetisk programmering i Othello

Genetisk programmering i Othello LINKÖPINGS UNIVERSITET Första versionen Fördjupningsuppgift i kursen 729G11 2009-10-09 Genetisk programmering i Othello Kerstin Johansson kerjo104@student.liu.se Innehållsförteckning 1. Inledning... 1

Läs mer

Genetiska algoritmer. Henrik Hansson (hhn00001@student.mdh.se) Rapport, CDT212 Mälardalens Högskola

Genetiska algoritmer. Henrik Hansson (hhn00001@student.mdh.se) Rapport, CDT212 Mälardalens Högskola Genetiska algoritmer Henrik Hansson (hhn00001@student.mdh.se) Rapport, CDT212 Mälardalens Högskola 1 Sammanfattning Genetiska algoritmer har rötter i 60-talet och efterliknar evolutionsteorin på så sätt

Läs mer

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

Artificiell Intelligens inom datorspel Är det ett seriöst ämne? Artificiell Intelligens inom datorspel Är det ett seriöst ämne? Tobias Andersson, tan10006@student.mdh.se Erik Johnasson, ejn11015@student.mdh.se Information kunskap vetenskap etik DVA223 SAMMANFATTNING

Läs mer

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

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05 1(15) Bilaga 1 2(15) Neuronnätslaboration Räknare Denna laboration riktar sig till gymnasieelever som går en teknisk utbildning och som helst har läst digitalteknik samt någon form av styrteknik eller

Läs mer

Tre misstag som äter upp din tid och hur kan göra någonting åt dem

Tre misstag som äter upp din tid och hur kan göra någonting åt dem Tre misstag som äter upp din tid och hur kan göra någonting åt dem En rapport från PersonligEffektivitet.com Innehåll Inledning... 3 Misstag #1: Önskelistan... 4 Misstag #2: Parkinsons lag... 7 Misstag

Läs mer

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann 729G43 Artificiell intelligens / 2015 Maskininlärning 3 Marco Kuhlmann Förra gången: Perceptroninlärning Beslutsregel predicerat y-värde Exempel: AND Välj parametrar θ 0, θ 1, θ 2 sådana att perceptronen

Läs mer

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

2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit. 2D1432 Artificiella Neuronnät och andra lärande system Lösningsförslag till Tentamen 2003-03-06 Inga hjälpmedel. Uppgift 1 Vilka av följande påståenden är sanna? Korrigera de som är fel. 1. Potentialen

Läs mer

Den Kreativa Nervositeten

Den Kreativa Nervositeten Den Kreativa Nervositeten Jan Alpsjö www.lentos.se tel: 0705-120206 1 DEN KREATIVA NERVOSITETEN Den Kreativa Nervositeten riktar sig till personer som skall förbereda en presentation. Syftet är att kunna

Läs mer

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

Regression med Genetiska Algoritmer

Regression med Genetiska Algoritmer Regression med Genetiska Algoritmer Projektarbete, Artificiell intelligens, 729G43 Jimmy Eriksson, jimer336 770529-5991 2014 Inledning Hur många kramar finns det i världen givet? Att kunna estimera givet

Läs mer

Kristian Almgren Artificiell Intelligens Linköpings Universitet 2011. Talstyrning

Kristian Almgren Artificiell Intelligens Linköpings Universitet 2011. Talstyrning Talstyrning Abstrakt Talstyrning är en teknik som gör det möjligt för oss människor att mer eller mindre verbalt kommunicera med en dator eller ett system. Det här är ett tillvägagångssätt inom AI och

Läs mer

Genetiska Algoritmer. 10 mars 2014

Genetiska Algoritmer. 10 mars 2014 Genetiska Algoritmer Johan Sandberg Jsg11008@student.mdh.se 10 mars 2014 Niklas Strömberg Nsg11001@student.mdh.se 1 SAMMANFATTNING Genetiska algoritmer är en sorts sökalgoritm som är till för att söka

Läs mer

DEN RUNDA TUNNELN EN UNDERSKATTAD FIENDE

DEN RUNDA TUNNELN EN UNDERSKATTAD FIENDE DEN RUNDA TUNNELN EN UNDERSKATTAD FIENDE Av Marie Hansson När man är nybörjare i agility, eller ser sporten utifrån, är det lätt att tro att just den runda tunneln är det allra lättaste hindret! Och det

Läs mer

Utförliga regler för TRAX

Utförliga regler för TRAX Utförliga regler för TRAX Innehållsförteckning Vad är TRAX? Sid 2 Grundregler för TRAX Sid 3 Vad är en tvingad yta? Sid 4 Vad är en vinnande ögla? Sid 6 Vad är en vinnande linje? Sid 7 Grundläggande strategiska

Läs mer

Kombinationer och banor i agilityträningen

Kombinationer och banor i agilityträningen Kombinationer och banor i agilityträningen av Emelie Johnson Vegh och Eva Bertilsson, publicerad i Canis 2012 En av de saker som gör agility så fantastiskt roligt är den ständiga variationen. Ingen tävlingsbana

Läs mer

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

Legorobot. Lär dig programmera en legorobot. Teknikåttan 2009. Ola Ringdahl Lena Kallin Westin Legorobot Lär dig programmera en legorobot. Teknikåttan 2009 Ola Ringdahl Lena Kallin Westin Legorobot Sid 2 (6) Legorobot Sid 3 (6) LEGOROBOT Syfte Syftet med denna praktiska uppgift är att man ska få

Läs mer

Roboten. Sida 1 av 11

Roboten. Sida 1 av 11 EV3 ipad Roboten Fyra output portar A,B,C och D(motorer) Fyra input portar 1,2,3 och 4 (sensorer) USB, Bluetooth, eller Wi-Fi koppling 16 MB flash minne 64 MB RAM SD Card Port: 32 GB Flera inbyggda verktyg

Läs mer

Spelutveckling - Gameplay. Design och produktion

Spelutveckling - Gameplay. Design och produktion Spelutveckling - Gameplay Design och produktion Vad är ett spel? Finns olika åsikter Några exempel som räcker på egen hand Coola features Akta er för feature creep För mycket features kan dränka gameplay

Läs mer

Coimisiún na Scrúduithe Stáit State Examinations Commission. Leaving Certificate Marking Scheme. Swedish. Higher Level

Coimisiún na Scrúduithe Stáit State Examinations Commission. Leaving Certificate Marking Scheme. Swedish. Higher Level Coimisiún na Scrúduithe Stáit State Examinations Commission Leaving Certificate 2012 Marking Scheme Swedish Higher Level RÄTTNINGSMALL SVENSKA Del I (Totalt 30 poäng) 1. Ersätt ordet med ett annat som

Läs mer

Din RelationsBlueprint - Källan till smärta eller framgång i din intima relation

Din RelationsBlueprint - Källan till smärta eller framgång i din intima relation Din RelationsBlueprint - Källan till smärta eller framgång i din intima relation Lyssna, jag känner mig enormt glad och hedrad att jag får spendera den här tiden med dig just nu och att du tar dig tid

Läs mer

Framsida På framsidan finns:

Framsida På framsidan finns: Framsida På framsidan finns: Rubriken på hela arbetet Namnet på den eller de som gjort arbetet Klass Någon form av datering, t.ex. datum för inlämning eller vilken termin och vilket år det är: HT 2010

Läs mer

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

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK. Moment 2: Klonspel Instruktioner för deltagare Idag ska du få lära dig om: Kloner - kopior av samma figur (sprajt) Variabler - ett värde, exempelvis antal poäng Slumptal - slå en tärning för att välja

Läs mer

Sammanfattning Arv och Evolution

Sammanfattning Arv och Evolution Sammanfattning Arv och Evolution Genetik Ärftlighetslära Gen Information om ärftliga egenskaper. Från föräldrar till av komma. Tillverkar proteiner. DNA (deoxiribonukleinsyra) - DNA kan liknas ett recept

Läs mer

Spel som interaktiva berättelser

Spel som interaktiva berättelser Spel som interaktiva berättelser Finns många typer av interaktivt berättande; ska titta närmare på spel eftersom de exemplifierar en rad aspekter av interaktivt berättande väldigt tydligt. Kan förstå spel

Läs mer

NeuroEvolving Robotic Operatives

NeuroEvolving Robotic Operatives 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

Läs mer

729G Artificiell jakt och flockbeteende inom datorspel

729G Artificiell jakt och flockbeteende inom datorspel Artificiell jakt och flockbeteende inom datorspel Abstrakt Chasing and Evading är ett begrepp som används för att beskriva hur agenter rör sig mot (jagar), eller undviker en spelare. Liksom i de flesta

Läs mer

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

Grundläggande Idéer Algoritmens komponenter Numerisk optimering Genetisk Programmering. Genetiska Algoritmer Genetiska Algoritmer 1 Grundläggande Idéer 2 3 4 Exempel Parallell optimering inspirerad av biologisk evolution Parallell optimering inspirerad av biologisk evolution Population av hypoteser Urvalprocess

Läs mer

Tre misstag som äter upp din tid och hur du enkelt gör någonting åt dem. Innehåll. Misstag #1: Önskelistan... 4. Misstag #2: Parkinsons lag...

Tre misstag som äter upp din tid och hur du enkelt gör någonting åt dem. Innehåll. Misstag #1: Önskelistan... 4. Misstag #2: Parkinsons lag... Innehåll Inledning... 3 Misstag #1: Önskelistan... 4 Misstag #2: Parkinsons lag... 7 Misstag #3: E-postfällan... 9 Avslutning... 11 2 Inledning Jag vill inte påstå att dålig tidshantering är en folksjukdom.

Läs mer

Rapport för Andrew Jones

Rapport för Andrew Jones Rapport för Andrew Jones Datum för ifyllande 0/0/0 RAPPORT FÖR Andrew Jones DATUM FÖR IFYLLANDE 0/0/0 PÅLITLIGHET - 99.% Svaren var mycket sannolikt noggranna och sanningsenliga ORGANISATION Harrison Assessments

Läs mer

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

Sub-symbolisk kognition & Konnektionism. Kognitionsvetenskaplig Introduktionskurs (729G01) Mats Andrén, Sub-symbolisk kognition & Konnektionism Kognitionsvetenskaplig Introduktionskurs (729G01) Mats Andrén, mats.andren@liu.se 1 Konnektionism Neutrala nät baseras på en (förenklad) modell av hur hjärnan fungerar.

Läs mer

Kan jag bara nå min bild av framtiden kommer allt blir bra.

Kan jag bara nå min bild av framtiden kommer allt blir bra. Guide: De vanligaste besluts- och tankefällorna Du är inte så rationell som du tror När vi till exempel ska göra ett viktigt vägval i yrkeslivet, agera på börsen eller bara är allmänt osäkra inför ett

Läs mer

Hur gör man ett trådlöst nätverk säkert?

Hur gör man ett trådlöst nätverk säkert? Hur gör man ett trådlöst nätverk säkert? http://www.omwlan.se/artiklar/sakerhet.aspx 2010 07 30 En av de första artiklarna jag skrev på omwlan.se för ett antal år sedan handlade om säkerheten. Säkerheten

Läs mer

Statistisk mönsterigenkänning

Statistisk mönsterigenkänning Statistisk mönsterigenkänning Jonas Sandström Artificiell intelligens II Linköpings universitet HT 2011 Innehållsförteckning 1. Innehållsförteckning sid 2 2. Inledning sid 3 3. Statistisk mönsterigenkänning

Läs mer

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis

Läs mer

h ä x folk et magisk a kr after Jo Salmson Illustrationer av Natalia Batista

h ä x folk et magisk a kr after Jo Salmson Illustrationer av Natalia Batista h ä x folk et magisk a kr after Jo Salmson Illustrationer av Natalia Batista Kapitel 1 I full galopp Sol Hästarna galopperade så snabbt att Sol fick tårar i ögonen. Hon hann knappt ducka för ett par lågt

Läs mer

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!

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! HUR MAN SPELAR ONLINE 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! 0. SKAPA DITT EGET PERSONLIGA EMBLEM OCH DINA

Läs mer

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

INNEHÅLLSFÖRTECKNING... 2 FÖRORD... 3 INLEDNING... 4 ATT ANVÄNDA MOTORERNA... 9 LOOP (UPPREPANDE) FUNKTIONEN... 10 SKAPA EN EGEN KLOSS... GRUNDKURS INNEHÅLLSFÖRTECKNING INNEHÅLLSFÖRTECKNING... 2 FÖRORD... 3 INLEDNING... 4 SKÄRMUPPBYGGNAD... 4 ROBOT EDUCATOR... 5 PROGRAMMERINGSRUTAN... 5 KNAPPARNA OCH KLOSSARNA... 6 UPPGIFTER... 8 ATT ANVÄNDA

Läs mer

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

de var svåra att implementera och var väldigt ineffektiva. OBS! För flervalsfrågorna gäller att flera alternativ eller inget alternativ kan vara korrekt. På flervalsfrågorna kan man bara ha rätt eller fel, dvs frågan måste vara helt korrekt besvarad. Totalt kan

Läs mer

Inledning Väcker intresse och introducerar ämnet

Inledning Väcker intresse och introducerar ämnet En muntlig informerande presentation presenterar något eller illustrerar hur något fungerar. Huvudsyftet är alltid att informera, till skillnad från en argumenterande presentation där huvudsyftet är att

Läs mer

LUFFARSCHACKETS GRUNDER

LUFFARSCHACKETS GRUNDER LUFFARSCHACKETS GRUNDER Många har frågat mig: Kan man träna luffarschack? Jodå, svarar jag. Det går alldeles utmärkt och det ger bevisligen resultat. Men lika väl som man inte blir fotbollsproffs efter

Läs mer

Linköpings universitet

Linköpings universitet Översikt Kognitionsvetenskaplig introduktionskurs Föreläsning 4 Informationsbearbetningsmodeller Vad är kognitionsvetenskap? Kort bakgrund/historik Representation och bearbetning av information Vetenskapliga

Läs mer

Neurala nätverk och språkigenkänning. Henrik Linnarsson. Linköping University

Neurala nätverk och språkigenkänning. Henrik Linnarsson. Linköping University Neurala nätverk och språk Henli807!1 Neurala nätverk och språkigenkänning Henrik Linnarsson Linköping University Neurala nätverk och språk Henli807!2 RNN, LSTM och språkigenkänning Inledning Idag är språkigenkänning

Läs mer

Reagera på WoW-event Att använda OnUpdate Introduktion Att kapa funktioner Automatisering och AI

Reagera på WoW-event Att använda OnUpdate Introduktion Att kapa funktioner Automatisering och AI Reagera på WoW-event Att använda OnUpdate Introduktion Att kapa funktioner Automatisering och AI Introduktion pptplex Section Divider The slides after this divider will be grouped into a section and given

Läs mer

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... OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervarlsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

Mångfald inom en art. Genotyp. Genpool. Olika populationer. Fig En art definieras som

Mångfald inom en art. Genotyp. Genpool. Olika populationer. Fig En art definieras som Mångfald inom en art Population och art. Vad är skillnaden? Vad är en art? Genetisk variation Genetiskt olika populationer Tillämpningar av genetisk variation Etiska problem En art En art definieras som

Läs mer

Föreläsning 3.1: Datastrukturer, en översikt

Föreläsning 3.1: Datastrukturer, en översikt Föreläsning.: Datastrukturer, en översikt Hittills har vi i kursen lagt mycket fokus på algoritmiskt tänkande. Vi har inte egentligen ägna så mycket uppmärksamhet åt det andra som datorprogram också består,

Läs mer

Neural bas för kognition

Neural bas för kognition Kommunikation Neural bas för kognition stimulerande, retande inhiberande, förhindrande depolarisation vid tillräckligt mycket retning blir hela neuronen för en stund positivt laddad, då har en SPIKE uppnåtts

Läs mer

Ha rätt sorts belöning. Åtta tips för bästa sätt hur du tränar din hund. Grunden till all träning:

Ha rätt sorts belöning. Åtta tips för bästa sätt hur du tränar din hund. Grunden till all träning: Åtta tips för bästa sätt hur du tränar din hund Grunden till all träning: Gör det lätt för hunden! Börja alltid på en nivå som är enkel för hunden och bygg på svårigheterna. På det sättet tycker hunden

Läs mer

Min syn på optimal kommunikation i en PU-process

Min syn på optimal kommunikation i en PU-process Min syn på optimal kommunikation i en PU-process KN3060 Produktutveckling med formgivning Mälardalens högskola Anders Lindin Inledning Denna essä beskriver min syn på optimal kommunikation i en produktutvecklingsprocess.

Läs mer

Kapitel 5. Scanlon bemöter delvis invändningen genom att hävda att kontraktualistiskt resonerande är holistiskt.

Kapitel 5. Scanlon bemöter delvis invändningen genom att hävda att kontraktualistiskt resonerande är holistiskt. Men stämmer det att man har skäl att förkasta en princip endast om det vore dåligt för en om den blev allmänt accepterad? En intressant tillämpning i sammanhanget är det som Scanlon kallar fairness. Han

Läs mer

25 knep för att hålla koll på din tid

25 knep för att hålla koll på din tid 25 knep för att hålla koll på din tid 25 knep för att hålla koll på din tid 1 Gör dina sysslor realistiska och genomförbara Planera dina sysslor, projekt och uppgifter efter din kapacitet att genomföra

Läs mer

KUNGLIGA TEKNISKA HÖGSKOLAN KISTA. Lego Linefollower. Få en robot att följa linjen på golvet!

KUNGLIGA TEKNISKA HÖGSKOLAN KISTA. Lego Linefollower. Få en robot att följa linjen på golvet! KUNGLIGA TEKNISKA HÖGSKOLAN KISTA Lego Linefollower Få en robot att följa linjen på golvet! Felix Ringberg 2012-08-09 felixri@kth.se Introduktionskurs i datateknik II1310 Sammanfattning I den här laborationen

Läs mer

Process- och metodreflektion. Grupp 3; Ida Gustafsson, Mikael Karlsson, Jonas Lind, Hanne Sundin, Maria Törnkvist

Process- och metodreflektion. Grupp 3; Ida Gustafsson, Mikael Karlsson, Jonas Lind, Hanne Sundin, Maria Törnkvist Process- och metodreflektion Grupp 3; Ida Gustafsson, Mikael Karlsson, Jonas Lind, Hanne Sundin, Maria Törnkvist Planeringen Redan från början av projektet bestämde vi oss i gruppen för att planera utförande

Läs mer

Studiestrategier för dig som är visuell

Studiestrategier för dig som är visuell Studiestrategier för dig som är visuell Om du har en visuell (V) lärstil är synen din starkaste kanal för att ta in ny kunskap. Prova att använda en del eller alla av följande metoder: Stryk under och

Läs mer

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... OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervarlsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

Och så skulle det vara en liten

Och så skulle det vara en liten Och så skulle det vara en liten bild Av Lars Melin Vi har just skrivit en artikel. Se sist i denna artikel. Vi känner oss ganska stolta över innehållet, och vi har gjort vårt allra bästa att i Word skapa

Läs mer

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

Läs mer

pedagogerna möta dig i olika situationer/uppgifter så att olika lärstilar får utrymme.

pedagogerna möta dig i olika situationer/uppgifter så att olika lärstilar får utrymme. Om lärstilstestet et syftar till att hjälpa dig att få insikt om de olika lärstilar som finns och dina egna styrkor och svagheter när gäller lärandet. Genom att medvetet arbeta med olika lärstilar kan

Läs mer

1. En oreglerad marknad involverar frihet. 2. Frihet är ett fundamentalt värde. 3. Därav att en fri marknad är moraliskt nödvändigt 1

1. En oreglerad marknad involverar frihet. 2. Frihet är ett fundamentalt värde. 3. Därav att en fri marknad är moraliskt nödvändigt 1 Linköpings Universitet Gabriella Degerfält Hygrell Politisk Teori 2 930427-7982 733G36 Frihet är ett stort och komplext begrepp. Vad är frihet? Hur förenligt är libertarianismens frihetsdefinition med

Läs mer

Mångfald inom en art. Genotyp. Genpool. Olika populationer. Fig En art definieras som

Mångfald inom en art. Genotyp. Genpool. Olika populationer. Fig En art definieras som Mångfald inom en art Population och art. Vad är skillnaden? Vad är en art? Genetisk variation Genetiskt olika populationer Tillämpningar av genetisk variation Etiska problem En art En art definieras som

Läs mer

Varför vi är onödigt besatta av vad andra människor tycker om oss.

Varför vi är onödigt besatta av vad andra människor tycker om oss. Varför vi är onödigt besatta av vad andra människor tycker om oss. För att kunna förstå varför vi alla går runt med den här galna fixeringen om att hela tiden bry oss om, och oroa oss över vad andra tycker

Läs mer

Uppdelning av ett artificiellt neuralt nätverk

Uppdelning av ett artificiellt neuralt nätverk Uppdelning av ett artificiellt neuralt nätverk Kandidatarbete utfört av: Björn Eklund Spelprogrammering årskurs 2009 Blekinge Tekniska Högskolan bjorneklund86@gmail.com Handledare: Stefan Johansson Blekinge

Läs mer

Vad är Artificiell Intelligens (AI) Olika typer av AI och deras användningsområden Innovation med hjälp av AI Framtiden och etiska frågeställningar

Vad är Artificiell Intelligens (AI) Olika typer av AI och deras användningsområden Innovation med hjälp av AI Framtiden och etiska frågeställningar 1 Agenda Vad är Artificiell Intelligens (AI) Olika typer av AI och deras användningsområden Innovation med hjälp av AI Framtiden och etiska frågeställningar 2 Nuvarande AI Funktioner en grov Analogi Rekommendation,

Läs mer

Pottstorleksfilosofin ett exempel

Pottstorleksfilosofin ett exempel Kapitel fem Pottstorleksfilosofin ett exempel Säg att du spelar ett no limit-spel med mörkar på $2-$5 och $500 stora stackar. Du sitter i stora mörken med Någon inleder satsandet ur mittenposition med

Läs mer

Bahati. En simulering att använda i undervisningen om internationella frågor

Bahati. En simulering att använda i undervisningen om internationella frågor En simulering att använda i undervisningen om internationella frågor Sida 2 Inledning Bahati är en simulering där deltagarna får pröva på att leva i två olika kulturer; Fabel och Abel. Människorna i Fabel

Läs mer

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI NG STRESS LUNDS TEKNISKA HÖGSKOLA - 2013-05-22 Projektmedlemmar: Emil Apelgren adi10eap@student.lu.se Fredrik Helander gda10fhe@student.lu.se Jonathan Klingberg

Läs mer

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

Artificiell intelligens, eller Kommer din dator att bli klokare än dig? (eller kanske är den redan det?) Artificiell intelligens, eller Kommer din dator att bli klokare än dig? (eller kanske är den redan det?) 1.a November 2011 Innan vi börjar R.I.P. John McCarthy (1924 2011) Grundare av ämnet artificiell

Läs mer

Tentamen: Programutveckling ht 2015

Tentamen: Programutveckling ht 2015 Tentamen: Programutveckling ht 2015 Datum: 2015-11-04 Tid: 09:00-13:00 Sal: Ansvarig: Resultat: Hjälpmedel: Maxpoäng: Betygsgränser: Anslås inom 3 veckor. Inga 40 p 20 p för G, 32 p för VG. Iakttag följande:

Läs mer

Fuzzy Logic: Den oskarpa skarpheten

Fuzzy Logic: Den oskarpa skarpheten Fuzzy Logic: Den oskarpa skarpheten Av: 1 Innehåll Inledning... 3 Vad är Fuzzy Logic?... 4 Fuzzy sets... 4 Medlemsskapsfunktion... 5 Operatorer... 7 Union... 7 Snitt... 8 Komplement... 8 Exempel med de

Läs mer

ca 8 m Gatans bredd är ca 7 m. Om gatan är smalare ökas avståndet mellan lådorna. Om gatan är bredare kan avståndet minskas.

ca 8 m Gatans bredd är ca 7 m. Om gatan är smalare ökas avståndet mellan lådorna. Om gatan är bredare kan avståndet minskas. 2005 Till Er som vill ställa ut blomlådor för en bättre trafiksäkerhet Blomlådor för ökad trafiksäkerhet startade som ett projekt i Luleå 1992. Då det visat sig ha en mycket god effekt har modellen spritt

Läs mer

Icebreaker. v Redundancy

Icebreaker. v Redundancy Icebreaker Icebreaker är ett minispel som handlar om att försöka knäcka försvarade IT- system att göra cyberkrigföring, cracking med mera till ett spelbart och förhoppningsvis underhållande moment vid

Läs mer

MinMax Algoritmen Implementation och optimering. Joakim Östlund 15 juni 2004

MinMax Algoritmen Implementation och optimering. Joakim Östlund 15 juni 2004 MinMax Algoritmen Implementation och optimering Joakim Östlund 15 juni 2004 1 Samanfattning MinMax är en algoritm som kan användas i turbaserade spel för att skapa en virituell motståndare. Algoritmen

Läs mer

Antalet deltagare Vill man ha ett högt tempo så är 5 spelare idealiskt. Det är bättre att öka på antalet än att minska det.

Antalet deltagare Vill man ha ett högt tempo så är 5 spelare idealiskt. Det är bättre att öka på antalet än att minska det. Första gången ni spelar Idéspelet Här är en kortfattad vägledning för dig som ansvarar för den allra första spelomgången med idéspelet i er organisation. Börja med att läsa Quickstarten och därefter denna.

Läs mer

Spelutveckling Spelbalans. Design och produktion

Spelutveckling Spelbalans. Design och produktion Spelutveckling Spelbalans Design och produktion Tre balanser Spelare spelare Rättvist multiplayer (inkluderar AI-spelare) Spelare gameplay Balansera utmaningar och stöd gentemot belöningar och straff Gameplay

Läs mer

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

NEUROEVOLUTION MED TÄVLINGSINRIKTAD SAMEVOLUTION I FLERA MILJÖER MED ÖKANDE KOMPLEXITET M a l sk ap a d a v H e nr ik NEUROEVOLUTION MED TÄVLINGSINRIKTAD SAMEVOLUTION I FLERA MILJÖER MED ÖKANDE KOMPLEXITET NEUROEVOLUTION WITH COMPETITIVE COEVOLUTION IN MULTIPLE SCENES OF INCREASING COMPLEXITY

Läs mer

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

1. Jag har bra självkänsla och tycker om mig själv som jag är oavsett vad jag presterar. Balanshäftet, arbetsblad Nedanstående påståenden hjälper dig att hitta balans eller obalans i dig själv och din tillvaro just nu. Läs varje påstående lugnt och noggrant och försök att svara med det du

Läs mer

Anton Brunberg,

Anton Brunberg, INSTITUTIONEN FÖR DATAVETENSKAP, LINKÖPINGS UNIVERSITET AI som är emot dig Ett arbete om AI i spel Anton Brunberg, antbr036@student.liu.se 2010-09-13 Innehåll Inledning... 3 Scripts... 4 Finite State Machine...

Läs mer

ELEMENTÄR - SVÅRARE FÄRGGENETIK. Del 5

ELEMENTÄR - SVÅRARE FÄRGGENETIK. Del 5 ELEMENTÄR - SVÅRARE FÄRGGENETIK Del 5 av Maria Grönkvist Det har blivit dags för den sista delen av min artikelserie. Denna gång tänkte jag delge er läsare mina funderingar angående en del färger, ge ett

Läs mer

Gameplay. Föreläsning 6. Logiska, inferens och latterala. Olika typer av utmaningar

Gameplay. Föreläsning 6. Logiska, inferens och latterala. Olika typer av utmaningar Föreläsning 6 Schema, nästa föreläsning handlar om genre sedan AI+grafik och sist etik Gameplay Olika typer av Spelbalans Sätt att skapa balans Verktyg för balans Gameplay Svårt att sätta fingret på det

Läs mer

TVILLING. Lärarhandledning MIN HEMLIGA. Kerstin Lundberg Hahn. Min hemliga tvilling. Kerstin Lundberg Hahn. Illustratör: Elisabeth Widmark

TVILLING. Lärarhandledning MIN HEMLIGA. Kerstin Lundberg Hahn. Min hemliga tvilling. Kerstin Lundberg Hahn. Illustratör: Elisabeth Widmark Lärarhandledning Kerstin Lundberg Hahn Min hemliga tvilling Kerstin Lundberg Hahn Illustratör: Elisabeth Widmark Rekommenderas för årskurs 3 7 MIN HEMLIGA TVILLING Introduktion En dag upptäcker Leia av

Läs mer

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

Kognitionsvetenskapliga Programmet LiU. AI i spelet Magicka. Gruppbeteende/Grupprörelser. Jonathan Nilsson Kognitionsvetenskapliga Programmet LiU AI i spelet Magicka Gruppbeteende/Grupprörelser Jonathan Nilsson jonni544@student.liu.se 2011-09-01 2 Sammanfattning Den här fördjupningsuppgiften kommer handla om

Läs mer

Programmering = modellering

Programmering = modellering Programmering = modellering Ett datorprogram är en modell av en verklig eller tänkt värld. Ofta är det komplexa system som skall modelleras I objektorienterad programmering består denna värld av ett antal

Läs mer

Handmatning och beröm!

Handmatning och beröm! Handmatning och beröm! Det finns vissa saker som vi människor gärna gör dagligen med våra hästar för att vara visa hästarna att vi är vänliga och vill dem väl, eller visa vår uppskattning och kärlek. Ibland

Läs mer

Sänka schackskepp. Författare: Martin Borg. Examinatorer: Jesper Hall Lars Holmstrand Pesach Laksman. Lärande och samhälle

Sänka schackskepp. Författare: Martin Borg. Examinatorer: Jesper Hall Lars Holmstrand Pesach Laksman. Lärande och samhälle Lärande och samhälle Schack som pedagogiskt verktyg Sänka schackskepp Författare: Martin Borg Examinatorer: Jesper Hall Lars Holmstrand Pesach Laksman Inledning. Jag har valt att testa och utveckla det

Läs mer

Positiv Ridning Systemet Negativ eller positiv? Av Henrik Johansen

Positiv Ridning Systemet Negativ eller positiv? Av Henrik Johansen Positiv Ridning Systemet Negativ eller positiv? Av Henrik Johansen Man ska vara positiv för att skapa något gott. Ryttare är mycket känslosamma med hänsyn till resultatet. Går ridningen inte bra, faller

Läs mer

Programmering på papper. Datorer, programmering och instruktioner

Programmering på papper. Datorer, programmering och instruktioner Programmering på papper Lektion 1 av Valentina Chapovalova, valentina.chapovalova@gmail.com Datorer, programmering och instruktioner Uppskattningen är att lektionen kommer ta 40-50 minuter, men det beror

Läs mer

Programmeringsuppgift Game of Life

Programmeringsuppgift Game of Life CTH/GU STUDIO TMV06a - 0/0 Matematiska vetenskaper Programmeringsuppgift Game of Life Analys och Linär Algebra, del A, K/Kf/Bt Inledning En cellulär automat är en dynamisk metod som beskriver hur komplicerade

Läs mer

Dependensregler - Lathund

Dependensregler - Lathund Dependensregler - Lathund INTRODUKTION I textprogrammet TeCST är det möjligt för en skribent att skriva, redigera och klistra in text för att få ut läsbarhetsmått och få förslag på hur texten kan skrivas

Läs mer

Kort Sammanfattning av Schack MAS

Kort Sammanfattning av Schack MAS Kort Sammanfattning av Schack MAS Krister Ljung kljung@kth.se 6th April 2003 1 Bamse 1.1 Agenter 1.1.1 Bamse Bestämmer vilket drag som skall skickas till spelplanen. Har även nio öppningar att spela dom

Läs mer

VARFÖR FINNS DET INGA RIKTIGA

VARFÖR FINNS DET INGA RIKTIGA VARFÖR FINNS DET INGA RIKTIGA ROBOTAR? Peter Gärdenfors och Christian Balkenius Kognitionsforskning, Lunds Universitet, S 223 50 Lund e-mail: peter.gardenfors@fil.lu.se christian.balkenius@fil.lu.se Här

Läs mer

EV3 Roboten. Sida 1 av 13

EV3 Roboten. Sida 1 av 13 EV3 Roboten Fyra output portar A,B,C och D(motorer) Fyra input portar 1,2,3 och 4 (sensorer) USB, Bluetooth, eller Wi-Fi koppling 16 MB flash minne 64 MB RAM SD Card Port: 32 GB Flera inbyggda verktyg

Läs mer

Några små tips om att träna på utsatt fågel

Några små tips om att träna på utsatt fågel Några små tips om att träna på utsatt fågel Att träna sin fågelhund på utsatt fågel, vanligen rapphöns eller fasan, har blivit rätt populärt. Gör man rätt kan det vara en effektiv och förhållandevis enkel

Läs mer

Hur kan en fallskärm flyga?

Hur kan en fallskärm flyga? Umeå Universitet Institutionen för fysik Hur kan en fallskärm flyga? Vardagsmysterier förklarade 5p Sommarkurs 2006 Elin Bergström Inledning En fallskärm finns till för att rädda livet på den som kastar

Läs mer

Vad innebär en uppskjutandeproblematik?

Vad innebär en uppskjutandeproblematik? Vad innebär en uppskjutandeproblematik? På kyrkogården i Ravlunda i det skånska Österlen, ligger författaren Fritiof Nilsson Piraten begravd. På sin gravsten lät han inrista: Här under är askan av en man

Läs mer

Hare Del II (Metod) kunskap om hur det skulle vara för mig att befinna mig i deras. "reflektionsprincipen" (dock ej av H). Den säger följande: för att

Hare Del II (Metod) kunskap om hur det skulle vara för mig att befinna mig i deras. reflektionsprincipen (dock ej av H). Den säger följande: för att Syftet med denna del är att utveckla och försvara en form av preferensutilitarism, vilken kan identifieras med kritiskt tänkande. Den huvudsakliga framställningen är i kap. 5-6. En senare kort sammanfattning

Läs mer

Instruktion Finta/dribbla

Instruktion Finta/dribbla Instruktion Du kan skilja på att finta och att dribbla Finta gör du före dribblingen Du kan finta utan att dribbla efteråt T.ex. en inläggsfint då du vänder och slår inlägget med andra foten istället Du

Läs mer

LEKTION 2 Användbarhet

LEKTION 2 Användbarhet LEKTION Användbarhet Uppmärksamma det positiva Fundera och skriv ner olika situationer där barnet gör något positivt och du kan ge ditt barn uppmärksamhet och beröm. Fundera och skriv ner på vilket sätt

Läs mer

Moraliskt praktiskt förnuft

Moraliskt praktiskt förnuft Moraliskt praktiskt förnuft Moralens imperativ är kategoriskt Det villkoras inte av att man vill ett visst mål Det föreskriver ett handlande som rätt och slätt gott eller gott i sig inte som gott som medel

Läs mer