Q-learning för fyra i rad. OLLE HASSEL och PETTER JANSE
|
|
- Roger Jansson
- för 8 år sedan
- Visningar:
Transkript
1 Q-learning för fyra i rad OLLE HASSEL och PETTER JANSE Examensarbete Stockholm, Sverige 2011
2 Q-learning för fyra i rad OLLE HASSEL och PETTER JANSE Examensarbete i datalogi om 15 högskolepoäng vid Programmet för datateknik Kungliga Tekniska Högskolan år 2011 Handledare på CSC var Johan Boye Examinator var Mads Dam URL: hassel_olle_och_janse_petter_k11049.pdf Kungliga tekniska högskolan Skolan för datavetenskap och kommunikation KTH CSC Stockholm URL:
3 iii Abstract Q-learning is an algorithm for self-learning where the the learner is rewarded for encouraged behaviour and punished for unwanted behaviour. The report investigates how many matches of connect-four for a self-learned player through Q-learning is needed to win on average 90 % of all matches against a random player, a pattern matchin player and against a calculating player. It will also be investigated wherever the Q-learning player can be combined with other algorithms to create an improved player. Within realistic time on a personal computer the Q-learner beats the pattern matching and calculating player. The random player cannot be beaten in reasonable time, and would also require an unreasonable ammount of memory. The improved Q-learning player that combines Q-learning with pattern matching and calculated start values can be created and this one beats all the three players after a very short learning period.
4 iv Sammanfattning Q-learning är ett inlärningsalgoritm där den lärande får belöning vid positiva beteenden och bestraffning vid negativa. Rapporten avser undersöka hur många matcher i fyra i rad som krävs innan en självlärd spelare som använder Q-learning vinner i snitt 90 % av alla matcher mot en slumpande spelare, en mönstermatchande samt en beräknande spelare. Det undersöks även om Q- learning kan kombineras med andra algoritmer för att skapa en bättre spelare. Q-spelaren slår inom rimlig tid de mönstermatchande och beräknande spelarna men får problem att inom rimlig tid och minnesanvänding slå den slumpande spelaren. Den förbättrade Q-learning-spelaren som kombinerar Q-learning med mönstermatchning och beräknade startvärden slår däremot alla tre spelare inom mycket kort inlärningstid.
5 Innehåll Innehåll v 1 Förord 1 2 Introduktion Bakgrund Maskininlärning Belöningsbaserad inlärning Teori Spelet fyra i rad Q-learning Den mönstermatchande datorspelaren Den beräknande datorspelaren Q-spelaren Den kombinerade Q-spelaren Implementation Kärna/klient Datastruktur Resultat Q-spelaren mot den mönstermatchande datorspelaren Q-spelaren mot den beräknande datorspelaren Q-spelaren mot en slumpmässig spelare Q-spelaren mot den kombinerade Q-spelaren Analys Diskussion Q-spelaren mot den mönstermatchande datorspelaren Q-spelaren mot den beräknande datorspelaren Den kombinerade Q-spelaren Slutsats Källförteckning 23 v
6 vi INNEHÅLL 6 Bilagor 25
7 Kapitel 1 Förord Detta är en kandidatexamensrapport för kursen DD143X genomförd vårterminen 2011 på KTH, Stockholm. Större delen av arbetet har utförts sittandes ihop. Endast mindre delar har delats upp och utförts på egen hand, men i dessa fall har de gåtts igenom tillsammans vid nästa möte. Vi delade dock upp ansvaret så att Olle hade det yttersta ansvaret för programmeringsdelen medan Petter hade ansvaret för den skriva rapporten. 1
8
9 Kapitel 2 Introduktion Denna rapport är skriven för projektet Q-learning för fyra i rad vilket är ett kandidatexamensarbete för datavetenskap- och kommunikation (CSC) vid KTH. Målet med projektet är att låta en Q-lärande spelare med hjälp av Q-learning lära sig att spela 4 i rad mot icke lärande datorspelare samt en förbättrad version av sig själv. Termer Den Q-lärande spelaren benämns som Q-spelaren. En spelare benämns ha slagit en annan spelare om den vinner i snitt 90 % av alla framtida matcher. Problemformulering Målet är att undersöka hur många spelade matcher det tar för Q-spelaren att bli tillräckligt bra för att slå tre olika icke-lärande datorspelare. Den första är en mönstermatchande spelare, den andra en beräknande spelare och den tredje en slumpande spelare. Det ska även undersökas om Q-spelaren kan lära sig att slå dessa inom rimlig tid och minnesanvändning, så pass att det på en persondator 1 kan passera denna brytpunkt. Det ska även undersökas om Q-spelaren kan förbättras genom att kombineras med den mönstermatchande och den beräknande spelaren och därmed lära sig slå de tre andra spelarna efter färre spelade matcher än den vanliga Q-spelaren. Hypotes Hypotesen innan projektet startade var att de mönstermatchande och beräknande datorspelarna kommer att vinna så gott som alla matcher till en början, men att Q-spelaren efter tillräckligt många spelade matcher till slut kommer att ha lärt sig tillräckligt bra för att slå dem. Frågan blir då om det är möjligt i praktiken att spela tillräckligt många matcher för att Q-spelaren ska lära sig att vinna, eller om spelets komplexitet gör att 1 I detta fall en Intel Q9550 CPU, 4 GB RAM. 3
10 4 KAPITEL 2. INTRODUKTION det krävs alltför många matcher. Hypotesen här är att tid och minne kommer att begränsa i sådan grad att den vanliga Q-spelaren aldrig kommer kunna slå någon av spelarna. När Q-spelaren däremot kombineras med mönstermatchning och startvärdeberäkning kommer komplexiteten att minska. Denna kombinerade spelare förväntas att inom rimlig tid och minnesanvändning kunna lära sig att slå de andra spelarna i sådan grad att det går utföra på en persondator. 2.1 Bakgrund Maskininlärning Maskininlärning är ett område inom artificiell intelligens. Det används inom datalogin för att med hjälp av olika algoritmer låta datorer själva lära sig och förbättra sig på en uppgift. En viktig del av maskininlärning är att låta datorn lära sig att känna igen mönster och ta beslut utifrån dessa. Om en uppgift är för komplex kan det uppstå problem eftersom det då kan ta orimligt lång tid att gå igenom alla möjliga indata och utforska alla möjliga utdata 2. Det finns flera grenar av maskininlärning, men den gren som kommer att användas i detta projekt är belöningsbaserad inlärning vilket förklaras närmare här nedan Belöningsbaserad inlärning Q-learning är en typ av belöningsbaserad inlärning 3,4 som innebär att du påverkas av miljön omkring dig. Den används ofta inom maskininlärning och datorvetenskap men är från början inspirerad av den pedagogiska psykologin. Ett enkelt exempel är en ko i en hage som går för nära ett el-stängsel, får en stöt, och lär sig att därefter hålla sig undan. På samma sätt låter man datorprogram få en belöning alternativt en bestraffning då olika händelser uppstår. Programmet upprepar beteende som leder till belöning och undviker det som leder till straff. Långsiktigt innebär detta att programmet lär sig vilka drag det ska göra för att vinna ett parti 4 i rad (vilket belönas) och vilka drag den ska undvika för att förlora (vilket bestraffas) 5. 2 Wikipedia, Machine Learning 3 Wikipedia, Reinforcement Learning 4 Michael Gasser. Introduction to Reinforcement Learning. 5 Richard S. Sutton & Andrew G. Barto. Reinforcement Learning: an Introduction.
11 2.2. TEORI Teori Spelet fyra i rad Spelet fyra i rad spelas mellan två spelare, en som placerar vita brickor och en som placerar svarta. Spelplanen består av ett rutnät av sex rader med längden sju rutor. Spelarna turas om att släppa ner brickor en i taget, som landar ovanpå brickor med samma position i raden, eller, om ingen bricka tidigare lagts på denna position, på botten av brädet. Brickor måste alltså staplas på varandra. Den spelare som först har fyra i rad antingen vertikalt, horisontellt eller diagonalt har vunnit spelet. Komplexiteten för fyra i rad är teoretiskt mycket stor, men i praktiken mycket mindre. Spelplanen består, som nämnts ovan, av 7x6 rutor. Varje ruta kan vara antingen vit, svart eller tom. Detta innebär att det finns 3 42 unika bräden vilket är, grovt avrundat, i storhetsordning Dock är det en mycket stor mängd av dessa bräden som inte är praktiskt möjliga. T.ex. så inkluderar detta omöjliga bräden, exempelvis de i figur 2.1 och bräden som är helt fyllda med vita brickor. Eftersom spelarna turas om att lägga var sin bricka är det givet att det måste finnas lika många brickor av varje färg, alternativt en extra vit, eftersom det är den spelaren som börjar. Även andra omöjliga bräden, t.ex. översta raden är fylld men inte de undre raderna, är inkluderade. Figur 2.1. Två omöjliga bräden. En närmare uppskattning har gjorts av Victor Allis, som med hjälp av ett eget skrivet program beräknat den övre gränsen av alla praktiskt möjliga bräden till 7, Samma Victor Allis har även slagit spelet och bevisat att om man är vit och alltså börjar, så kan man forcera vinst. En vit spelare som spelar perfekt vinner alltså 100 % av matcherna. 6 Victor Allis, A Knowledge-based Approach of Connect-Four.
12 6 KAPITEL 2. INTRODUKTION Q-learning Något som lär sig igenom Q-learning brukar ofta kallas för agent och det är den term som kommer att användas i följande stycke. Q-learning är en belöningsbaserad inlärningsteknik som går ut på att agenten belönas vid positiva resultat och bestraffas vid negativa resultat. Agenten eftersträvar att få belöning och att undvika bestraffning. Den är inte medveten om vad den gör rätt eller fel, men då den kommer ihåg sina drag arbetar den efter principen att det som tidigare ledde till belöning borde kunna leda till belöning även denna gång, och på samma sätt undviker den att upprepa det som tidigare lett till bestraffning För att kunna värdesätta olika drags potential att leda till belöning eller bestraffning finns en tabell av tillstånd med tilldelat värde, en så kallad Q-tabell. Agenten har även en lista med de drag som den gjorde under matchen för att kunna uppdatera alla tillstånd med dess nya värde efter ett avslutat parti. Agenten har som mål att vinna. Därför belönas vinst, medan förlorade och oavgjorda partier bestraffas. Algoritmen När agenten ska göra ett drag, tittar den på alla möjliga drag den kan göra, och slår upp dessa drag och dess värden i Q-tabellen. Om ett av de potentiella tillstånden inte är besökt tidigare används ett startvärde som bestäms av en konstant. Om inget av dessa drag har ett mycket högre värde än de andra, slumpas istället ett av dragen som ligger nära det bästa värdet. Om flera drag är ungefär lika bra, vill vi nämligen utforska även dessa drag. Det finns en konstant som bestämmer hur mycket större ett värde måste vara än de andra för att detta värde ska bli valt utan slumpning. När Agenten sedan valt ett drag sparas detta längst bak i listan med de drag som gjorts under matchen. Tilldelning av belöning eller bestraffning Vid avslutat parti tilldelas en belöning eller bestraffning till Agenten. Detta sker genom att ett värde adderas till samtliga valda drag, dvs. de tillstånd som sparats i listan av besökta tillstånd under matchen. Detta värde bestäms genom en funktion som beror på dragets avstånd från partiets sista drag. Anledningen till detta är att det är större sannolikhet att det var något av de senare dragen som orsakade förlusten eller vinsten och som därmed bör få en högre värdeförändring än tidigare drag. Den funktion vi valt innebär att alla värden multipliceras med konstanten 0,85 upphöjt i antal drag från det sista draget. Konstanter och variabler: p = poängkonstant, som är positiv vid belöning, och negativ vid bestraf f ning k = konstant mellan 0 och 1, vi använder 0, 85
13 2.2. TEORI 7 n = avståndet till sista draget i antal steg Formel för poängräkning: Nytt värde = gammalt värde p k n Exempel, agenten har vunnit: V innande dragets värde = gammalt värde p k 0 Draget innan det vinnande dragets värde = gammalt värde p k 1 Q-tabellen behålls mellan partier medan listan med gjorda drag rensas efter matchens slut Den mönstermatchande datorspelaren Den mönstermatchande klienten är en datorspelare som inte tänker alls på framtida drag. Det finns ett antal fördefinierade mönster som klienten kan känna igen på brädet. När det är denna spelares tur söker den igenom alla dessa mönster och väljer ett drag efter en prioritetskö. Den börjar med att söka igenom brädet för att se om den själv har tre i rad någonstans och lägger i sådana fall den fjärde brickan för att vinna. Om detta mönster inte finns så kollar den om motspelaren har tre i rad och blockerar i sådana fall denna rad. Därefter letar den på samma sätt efter mönster av två brickor och slutligen om inget sådant finns så lägger den en bricka bredvid en annan av sina brickor för att skapa en rad av två Den beräknande datorspelaren Den beräknande datorspelaren börjar med att undersöka alla möjliga drag som kan göras och sparar dessa koordinater i en lista. Därefter beräknas värdet för alla dessa drag med hjälp av algoritmen som beskrivs nedan. Om värdet för ett av dessa drag är mycket högre än de andra så väljs det draget. Om flera drag ligger runt samma värde så slumpas istället ett av dessa. Det finns en konstant som bestämmer hur stor procentuell skillnad det ska vara mellan de bästa värdena för att det bästa ska väljas direkt. Algoritmen Algoritmen utgår från det nuvarande brädet samt x- och y-koordinaterna för det drag som ska göras. För det aktuella draget beräknas antalet potentiella vinster som kan inträffa som innehåller den koordinaten. Värdet tillsätts sedan beroende på om dessa potentiella vinstrader redan är partiellt fyllda, där en nästan fylld rad tilldelas ett högre värde än en som är tom. Algoritmen beräknar värdet utifrån båda spelarnas perspektiv, där motståndarens värde minskas marginellt genom att multipliceras med konstanten 0,9. Detta
14 8 KAPITEL 2. INTRODUKTION för att en vinstmöjlighet för agenten ska prioriteras framför att stoppa ett hot från motståndaren med lika många fyllda positioner. Om motståndaren t.ex. kan vinna på ett visst drag är det intressant att lägga sin bricka där för att blockera, förutsatt att agenten inte i stället kan vinna med ett annat drag. Givet brädet i figur 2.2 ska värdet för den röda brickan beräknas genom att antalet potentiella vinster hittas och poäng tilldelas efter hur ifyllda de är. Figur 2.2. Ett bräde med ett potentiellt drag med röd bricka. Figur 2.3. Bräden med vits potentiella vinster markerade i färg. Bild för bild: fyra tomma potentiella vinster. Två potentiella vinster med en bricka. En potentiell vinst med två brickor. Inga potentiella vinster med tre brickor. Figur 2.4. Bräden med svarts potentiella vinster markerade i färg. Bild för bild: fyra tomma potentiella vinster. En potentiell vinst med en bricka. En potentiell vinst med två brickor. En potentiell vinst med tre brickor. k 0 = tom, inga brickor i den potentiella vinsten k 1 = en bricka k 2 = två brickor k 3 = tre brickor
15 2.3. IMPLEMENTATION 9 Först beräknas värdet ur vits perspektiv, se figur k 0 + 2k 1 + 1k 2 + 0k 3 Sedan beräknas värdet ur svarts perspektiv, se figur k 0 + 1k 1 + 1k 2 + 1k 3 Slutgiltiga värdet = värdet ur vits perspektiv + (värdet ur svarts perspektiv)*0, Q-spelaren Q-spelaren använder sig av Q-learning för att lära sig spela. Den har ingen som helst förkunskap om hur spelet fungerar. Det enda sättet den lär sig på är de belöningar och bestraffningar som ges för drag, beroende på om de leder till vinst eller förlust. Ju fler matcher den får spela desto fler drag poängsätts och uppdateras med korrekt poäng. Den fortsätter att välja det drag som ger störst belöning Den kombinerade Q-spelaren Den kombinerade Q-spelaren fungerar på samma sätt som Q-spelaren förutom att den även använder sig av mönstermatchning och beräknade startvärden. Många av valen som Q-spelaren ställs inför är triviala med endast ett bra val. Detta förstår inte Q-spelaren från början utan måste testa sig fram innan den börjar lära sig. När t.ex. motståndaren har tre brickor i rad och därmed kan vinna, så förstår inte Q-spelaren detta under sina första matcher. Den kombinerade Q-spelaren får här hjälp av den mönstermatchande datorspelaren för att stoppa dessa drag. Samtidigt använder den sig fortfarande av Q- learning och kommer i längden att själv märka att detta är ett bra drag och lära sig att känna igen dessa mönster. Detta gör att antalet drag som Q-spelaren ursprungligen måste testa minskar och då komplexiteten minskar så ökar inlärningshastigheten. Den kombinerade Q-spelaren utnyttjar även den beräknande datorspelaren. Medan den vanliga Q-spelaren använder en konstant för alla startvärden i Q-tabellen så använder den kombinerade Q-spelaren de värden som beräknats av algoritmen som den beräknande datorspelaren använder. 2.3 Implementation Kärna/klient Programmet är logiskt uppdelat i två delar, kärna och klient. Kärnan är själva spelet, som kopplar ihop sig med två klienter, vilka implementerar interfacet Client. Client innehåller fyra metoder: win, loss, tie samt makemove. Metoden makemove
16 10 KAPITEL 2. INTRODUKTION anropas varje gång som en klient ska göra ett drag och får då en referens av den nuvarande spelplanen som indata. Kärnan innehåller även inversen av spelplanen, och efter varje drag byts pekarna som skickas vidare på så sätt att båda klienterna tror att de är vita. Detta för att undvika duplicerad kod inuti klienterna Datastruktur Q-tabellen ska, givet en spelplan, kunna spara ett Q-värde. Det totala antalet tillstånd går att beskrivas på 2 63 bitar, se förklaring nedan, och därför används en Long som nyckel och en Double som värde i HashMapen. För att optimera med hjälp av pekarreferenser skapas ett containerobjekt för Q- tabellens värde DoubleContainer och Q-tabellen sparas därmed som en HashMap<Long,DoubleContainer> Antalet möjliga bräden är, som nämnts tidigare i teoridelen, 3 42 vilket blir alldeles för stort för att sparas i en variabel av typen long. Eftersom brädet endast kan byggas på höjden så finns det dock ett bättre sätt att spara det på. Brädet delas in i kolumner som vardera sparas som nio bitar. De tre första bitarna sparar kolumnhöjden och de följande sex bitarna sparar om det är en vit (etta) eller svart (nolla) bricka. Index på dessa bitar avser vilken höjd brickan är placerad på, den första biten avser därmed den nedersta brickan. Av de sex bitarna som sparar brickfärgen används därmed bara så många som höjden på kolumnen är och resterande sätts till 0 och ignoreras. Kolumnerna sparas på följande sätt: [ 9 bitar (kolumn) ] = [ 3 bitar (kolumnhöjd) ] [ 6 bitar (brickfärg) ] Figur 2.5. Kolumn med höjden tre, de två nedersta brickorna är vita och den tredje svart och sparas därmed på följande sätt: [011] [110000] Kolumnerna sätts sedan ihop så att det slutgiltiga brädet sparas på följande sätt: [ bit 1-9 ] [ bit ] [ bit ] [ bit ] [ bit ] [ bit ] [ bit ] Totalt krävs därmed 63 bitar för att representera ett möjligt bräde.
17 2.3. IMPLEMENTATION 11 Figur 2.6. Kolumn med höjden sex, de tre nedersta brickorna är svarta och de tre översta vita och sparas därmed på följande sätt: [110] [000111]
18
19 Kapitel 3 Resultat Figur 3.1. Spelet är ojämnt, vit (som börjar) har en fördel. Vinstprocent när identiska spelare tävlar mot varandra, vit avser vinstprocent för spelaren som är vit och börjar, svart avser vinstprocent för spelaren som är svart och som inte börjar. Som nämnts i teorin så kan en spelare som börjar, och spelar rätt, forcera vinst. Men även för spelare som inte spelar perfekt märks det att det är en fördel att vara vit. Figur 3.1 visar de fem klienterna som har spelat mot kopior sig själva, för att visa vilken fördel var och en har då de spelar vit. Att respektive staplar inte summeras till 100 % beror på att resten utgörs av oavgjorda matcher. För att inte överskatta Q-spelarens skicklighet, och även för att vara konsekvent då de olika klienternas spelar mot Q-spelaren, har vi valt att alltid låta Q-spelaren spela som svart. 3.1 Q-spelaren mot den mönstermatchande datorspelaren Q-spelaren börjar som väntat svagt och vinner endast 5 % av matcherna från början. Men redan innan matcher spelats ser man en rejäl ökning och strax därefter 13
20 14 KAPITEL 3. RESULTAT Figur 3.2. Q-spelaren mot mönstermatchande spelaren. är Q-spelaren uppe i 40 % vinster. Efter matcher vinner den över 50 % av matcherna och efter matcher så vinner den runt 90 % av matcherna. 3.2 Q-spelaren mot den beräknande datorspelaren Den beräknande datorspelaren klarar att försvara sig mot Q-spelaren mycket längre innan den börjar förlora. Fortfarande efter matcher så vinner datorspelaren i princip alla matcher. Man ser dock en stor skillnad mot den mönstermatchande datorspelaren. Eftersom den beräknande datorspelaren är näst intill deterministisk så kommer den, givet samma bräde, alltid att göra liknande drag. Det betyder att om Q-spelaren till slut lär sig att slå den beräknande spelaren, så kommer den strategin få högre poäng och börja upprepa dessa drag igen. Det slutar med att båda spelarna börjar upprepa samma drag och de går in i ett dödläge där samma parti upprepas oändligt. Detta innebär att Q-spelaren, i det här fallet efter matcher, har listat ut hur den ska slå den beräknande spelaren, och de hamnar i ett dödläge där samma parti upprepas. Därefter vinner Q-spelaren alltså 100 % av matcherna. Detta läge inträffar inte alltid efter matcher utan beror helt och hållet på hur snabbt Q-spelaren har turen att börja slå den beräknande spelaren. Läget kan uppstå efter matcher eller matcher, men någon gång händer det. Dödläget föregås alltid av en ökning som är lik den i grafen.
21 3.3. Q-SPELAREN MOT EN SLUMPMÄSSIG SPELARE 15 Figur 3.3. Q-spelaren mot beräknande spelaren. 3.3 Q-spelaren mot en slumpmässig spelare Figur 3.4. Q-spelaren mot slumpmässiga spelaren.
22 16 KAPITEL 3. RESULTAT Det visade sig under kodandet av de icke lärande datorspelarna att ju bättre de blev, desto snabbare lärde sig Q-spelaren att slå dem. Detta var fascinerande, så för att utforska det ytterligare skapades även en helt slumpmässig spelare. Då Q-spelaren möter den slumpmässiga spelaren får den stora problem. Eftersom även den till en början i princip slumpar sina drag, då den inte har någon data att gå på, är det till en början väldigt jämnt. Men fortfarande efter att ha spelat matcher så vinner den bara runt 70 % av matcherna. Under matcher ser man en tydlig ökning av vinstprocent, men mycket långsamt. Efter matcher är den fortfarande inte över 75 % vinster. Detta är inte i närheten av de resultat den får ( 95 % och 100 %) mot de två smartare datorspelarna efter endast matcher. Båda dessa datorspelare slår i sin tur den slumpmässiga spelaren konsekvent nära 100 % matcherna då de möts. 3.4 Q-spelaren mot den kombinerade Q-spelaren Figur 3.5. Q-spelaren mot den kombinerade Q-spelaren. Slutligen testas den kombinerade Q-spelaren mot den vanliga Q-spelaren. Vi ser att den kombinerade Q-spelaren från början vinner i princip 100 % av matcherna. Detta är inte särskilt oväntat eftersom den använder sig av datorspelarnas beräkningar och matchningar, som själva slår Q-spelaren i början. Den vanliga Q- spelaren kör helt slumpmässigt från början medan den kombinerade Q-spelaren använder beräknade startvärden och därför har en stor fördel.
23 3.4. Q-SPELAREN MOT DEN KOMBINERADE Q-SPELAREN 17 Man kan dock se att allt eftersom båda Q-spelarna lär sig, blir skillnaden något mindre. Den kombinerade Q-spelaren har hela tiden en stor fördel, men efter 1 miljon matcher så har dess vinstprocent gått ner från 100 % till ca 94 %. Båda spelarna blir bättre, men den vanliga Q-spelaren har gått från att vara helt slumpmässig i början till att ha lärt sig att spela någorlunda bra. Den inlärda förbättringen är större för den, så trots att båda har blivit bättre, har skillnaden mellan de två spelarna minskat något.
24
25 Kapitel 4 Analys 4.1 Diskussion Figur 4.1. Mängden av alla möjliga strategier. Mindre mängd medför mer konsekvent strategi. Den optimala strategin är liten, den innehåller endast de bästa dragen. Som det kort nämndes i resultatdelen ovan märks det tydligt att ju mer specialiserad en spelare är, desto lättare blir det för Q-spelaren att slå den i slutändan. Detta gäller oberoende av hur bra den specialiserade spelaren är. Detta eftersom det blir färre drag den måste lära sig. Majoriteten av alla möjliga drag är dåliga och en smart spelare utför därför aldrig dessa. Den mängd drag som Q-spelaren måste lära sig emot en bra spelare blir därför enormt mycket mindre än de drag den måste gå igenom för att lära sig att slå en slumpmässig spelare, som väljer drag från hela mängden av möjliga drag. Därmed kan vi förklara vårt resultat via figur 4.1: Slumpspelaren har en stor mängd potentiella drag och kräver därmed att Q-spelaren lär sig många drag. Den mönstermatchande är mer specialiserad, har mindre mängd potentiella drag och därmed kan Q-spelaren lära sig att slå den fortare. Den beräknande är ännu mer specialiserad, och kan därför slås fortast av alla trots att den slår både slumpspelaren och den mönstermatchande spelaren. 19
26 20 KAPITEL 4. ANALYS Komplexiteten för de n första dragen som Q-spelaren måste lära sig då den möter en slumpande spelare blir i värsta fallet 7 n. Antalet drag mot en spelare som alltid väljer det bästa draget blir endast n Q-spelaren mot den mönstermatchande datorspelaren När man analyserar matcherna som spelades mot den mönstermatchande datorspelaren, den som endast planerar sitt eget drag, ser man att Q-spelaren relativt fort lär sig att skapa situationer där den mönstermatchande spelaren lägger en bricka, som leder till att Q-spelaren vinner. Den mönstermatchande tar ingen som helst hänsyn till den andra spelaren och dess fällor, utan bygger bara vidare på det som är bäst just detta drag Q-spelaren mot den beräknande datorspelaren Den beräknande datorspelaren förebygger däremot dessa fällor och klarar sig, som grafen visar, mycket längre. För att slå denna spelare måste mer avancerade fällor byggas vilket tar längre tid att lära sig. När den å andra sidan har lärt sig att bygga fällor som den vinner med, kommer den att upprepa dessa mot den beräknande spelaren, som alltid gör liknande drag, och därför hamnar i en loop där samma eller liknande matcher upprepas Den kombinerade Q-spelaren Figur 4.2. Kombinerad Q-spelare mot slumpande, matchande och beräknande.
27 4.2. SLUTSATS 21 Då den kombinerade Q-spelaren möter samma tre motståndare som den vanliga Q-spelaren, ser man tydligt dess storhet. Den slår alla tre datorspelare efter endast 300 matcher. Detta jämfört med den vanliga Q-spelaren som behövde tiotusentals matcher för samma resultat mot den beräknande och den mönstermatchande. För att slå den slumpande spelaren krävdes okörbart många matcher för Q-spelaren. Antalet vunna matcher blev endast 75 % efter matcher. Här är den kombinerade Q-spelaren överlägsen, eftersom den vinner i princip 100 % redan från start mot den slumpande spelaren. Den kombinerade Q-spelaren använder även avsevärt mycket mindre minne än Q-spelaren. Minnesökningen i proportion till antalet spelade matcher spelade är en bråkdel av vad som krävs av Q-spelaren. Detta därför att den kombinerade Q- spelaren ignorerar de flesta dåliga dragen, som därmed aldrig behöver sparas. 4.2 Slutsats Slutsatser om Q-learning Vi blev förvånade över hur snabbt Q-learning faktiskt lär sig att slå datorspelarna. Som vi nämnde i vår projektspecifikation, var vi rädda att det skulle krävas så pass många matcher, att vi aldrig ens skulle få se Q-spelaren slå vare sig den mönstermatchande eller den beräknande, för att det skulle ta för lång tid eller för att minnet skulle överbelastas. Men som vi kunnat se så tog det inte ens matcher och mindre än 10 sekunder innan de båda datorspelarna fick se sig slagna. Det var även förvånande hur snabbt den kombinerade Q-spelaren vann över datorspelarna. Vi insåg att den skulle lära sig snabbare men så få som 300 matcher var mindre än förväntat antal. Vi har också insett att en spelare som endast bygger på Q-learning är långt ifrån perfekt. Den får endast rimligt bra resultat om det går att simulera processen via datorer, då det krävs stora mängder av iterationer innan systemet är inlärt. Om det som ska läras exempelvis är ett krock-avvärjningssystem för bilar och det inte går att simulera är det inte praktiskt möjligt att krocka bilar tills dess att systemet fungerar. Däremot fungerar det att istället använda en icke-lärande algoritm som bas, då det krävs förvånansvärt få fall för att få en anmärkningsvärd förbättring. Framtida undersökningsmöjligheter Något intressant vi funderade på, men som låg utanför vårt eget projekt, är att låta Q-spelaren träna mot en speciell typ av spelare, men att sedan möta en annan. Hur skulle Q-spelaren prestera om den tränade mot en slumpmässig spelare och sedan mötte en mänsklig spelare?. Alternativt att träna mot en av våra smarta spelare för att sedan möta en slumpmässig spelare. Något annat vi skulle velat göra, men som låg utanför vårt kompetensområde, är att testa Q-learning mot en spelare som använder sig av ett neuralt nätverk. Vi ville inledningsvis testa detta, men eftersom vi inte är tillräckligt insatta i neurala
28 22 KAPITEL 4. ANALYS nätverk, ansåg vi att vi inte kunde garantera ett resultat, och att det därmed inte skulle varit ett realistiskt projekt inom den tidsram vi hade. Slutord Vi testade slutligen att själva möta Q-spelaren efter att ha låtit den träna matcher. Att vi faktiskt blev slagna tio matcher i rad säger väl förvisso mer om oss än om Q-spelaren, men samtidigt är det utan tvekan fascinerande att bli slagen av sin egen skapelse.
29 Kapitel 5 Källförteckning 2 Wikipedia, Machine Learning (hämtad: 4 mars 2011). URL: 3 Wikipedia, Reinforcement Learning (hämtad: 2 mars 2011). URL: 4 Michael Gasser (hämtad: 2 mars 2011). Introduction to Reinforcement Learning. URL: gasser/salsa/rl.html 5 Richard S. Sutton & Andrew G. Barto (hämtad: 3 mars 2011). Reinforcement Learning: an Introduction. 6 Victor Allis, A Knowledge-based Approach of Connect-Four. Department of Mathematics and Computer Science, Amsterdam, URL : Edvin Ekblad & Oskar Werkelin Ahlin. Implementation av Q-learning för fyrai-rad. School of Computer Science and Communication, Stockholm, URL: /ekblad_edvin_och_werkelin_ahlin_oskar_k10055.pdf 23
30
31 Kapitel 6 Bilagor Källkod URL: 25
32
Implementation av Q-learning för fyra-i-rad. E DVIN EKBLAD och OSKAR WERKELIN AHLIN
Implementation av Q-learning för fyra-i-rad E DVIN EKBLAD och OSKAR WERKELIN AHLIN Examensarbete Stockholm, Sverige 2010 Implementation av Q-learning för fyra-i-rad E DVIN EKBLAD och OSKAR WERKELIN AHLIN
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
Självlärande Dots & Boxes-spelare
Självlärande Dots & Boxes-spelare ANDREAS PETTERSSON Kandidatexamensarbete inom datalogi, grundnivå Kurs 143X Handledare: Johan Boye Examinator: Mads Dam andrepet@kth.se Vintrosagatan 5 124 73 Bandhagen
Självlärande Hare and Hounds-spelare med Q-learning. HARALD HARTWIG och MAX WESTERMARK
Självlärande Hare and Hounds-spelare med Q-learning HARALD HARTWIG och MAX WESTERMARK Examensarbete Stockholm, Sverige 2011 Självlärande Hare and Hounds-spelare med Q-learning HARALD HARTWIG och MAX WESTERMARK
Självlärande Othello-spelare
Självlärande Othello-spelare Kan en dator lära sig att spela Othello? KLAS BJÖRKQVIST och JOHAN WESTER Examensarbete Stockholm, Sverige 2010 Självlärande Othello-spelare Kan en dator lära sig att spela
UPPGIFT 1 V75 FIGUR 1.
UPPGIFT 1 V75 FIGUR 1. Varje lördag året om spelar tusentals svenskar på travspelet V75. Spelet går ut på att finna sju vinnande hästar i lika många lopp. Lopp 1: 5 7 Lopp 2: 1 3 5 7 8 11 Lopp 3: 2 9 Lopp
Fyra-i-rad med förstärkt inlärning
Fyra-i-rad med förstärkt inlärning En implementation av Q-learning CHRISTOFFER JANSON och CARL LANDEFJORD Examensarbete Stockholm, Sverige 2011 Fyra-i-rad med förstärkt inlärning En implementation av Q-learning
Projektdokumentation för Othello
Projektdokumentation för Gustav Fransson Nyvell gusfr229@student.liu.se Tomas Franzén tomfr819@student.liu.se 1. Inledning Vi har gjort ett -spel som går ut på att man turas om att lägga brickor på en
Sagaforms spelregler SCHACK, FIA MED KNUFF, BACKGAMMON, DOMINO
Sagaforms spelregler SCHACK, FIA MED KNUFF, BACKGAMMON, DOMINO SCHACK Schack matt När en av motståndarens pjäser hotar kungen säger man att den står i schack. Schack matt - I schack vinner den som först
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
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
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
Three Monkeys Trading. Tärningar och risk-reward
Three Monkeys Trading Tärningar och risk-reward I en bok vid namn A random walk down Wall Street tar Burton Malkiel upp det omtalade exemplet på hur en apa som kastar pil på en tavla genererar lika bra
Självlärande Hare and Hounds spelare med Q-learning
Självlärande Hare and Hounds spelare med Q-learning Examensarbete inom datalogi - DD143X HARALD HARTWIG RINDÖGATAN 27, 11558 STOCKHOLM TEL.NR: 0737264340 MAX WESTERMARK
Kravspecifikation. Sammanfattning. Fyra i rad Javaprojekt inom TDDC32. Version 2.0. Datum Dokumentnummer
Kravspecifikation Fyra i rad Javaprojekt inom TDDC32 Version 2.0 Datum 2008-05-19 Dokumentnummer 20080215 Sammanfattning Detta är en kravspecifikation över det klassiska spelet Fyra-i-rad programmerat
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
AGA-regler. goforbundet.se/ Referens: AGA 1991
AGA-regler Referens: AGA 1991 Varje formulering av dessa regler vars innehåll är identiskt, är godtagbar som ett uttryck för AGAs goregler, så länge de hänvisar till de mer kompletta regler som ges i AGAs
Spelregler för bräde. 1 Inledning
Vasamuseets Brädspelsvänner Spelregler för bräde Bräde ibland även kallat svenskt brädspel spelas med ett flertal olika regelvarianter. Följande spelregler har antagits av Vasamuseets Brädspelsvänner vid
Regler för bräde. av Sten Helmfrid
Regler för bräde av Sten Helmfrid Inledning Den traditionella svenska formen av bräde som i litteraturen ofta kallas svenskt brädspel kom till Sverige senast på 1600-talet. Under årens lopp har det utvecklats
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
Programmering II (ID1019) :00-11:00
ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren
Kungar och Skatter. 2. Ta sedan de fyra essen och blanda dem och lägg sedan slumpvis ut ett ess uppvänt i varje hörn (se fig 2).
Introduktion Spelare: 2-4 Speltid:15min Svårighet:Lätt att lära, svårt att bemästra Komponenter: 52 kort + 1 Joker Kungar och Skatter I Kungar och Skatter spelar varje spelare en kung som beger sig ut
Handledare: Mikael Goldmann
2012-02- 23 Jacob Rydh Robert Hedin Sudoku Solver Projektspecifikation Handledare: Mikael Goldmann Introduktion Vi ska studera och utforma olika algoritmer för att lösa Sudoku puzzel. Vi kommer testa olika
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel
732G11 Linköpings universitet 2011-02-15 1 2 3 4 Extrapass Extrapass håller på att bokas. Blir 3-4 st. och öppet för alla. Mer info på kursmailen när bokningen är klar. i Java En funktion i Java... public
Fyra i rad Javaprojekt inom TDDC32
Fyra i rad Javaprojekt inom TDDC32 Analys och design-dokument Version 2.0 Datum 2008-05-19 Dokumentnummer 20080303 Sammanfattning Detta är analys och design-dokumentet för programmet Fyra i rad. Fyra i
Handbok Othello. Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll
Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Hur man spelar 6 3 Spelets regler, strategi och tips 7 3.1 Spelets grunder.......................................
läromedel JVM-mani mani läromedel
läromedel JVM-mani www.manilaromedel.se Manual Vad är JVM-mani? JVM-mani är ett ämnesövergripande läromedel, med tyngdpunkten på matematik, där eleverna får skapa sin egen idrottsperson, för att sedan
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
Beskrivning av Gesällprov. Fia Med Knuff. Mikael Rydmark.
Beskrivning av Gesällprov Fia Med Knuff Mikael Rydmark rydmark@kth.se Mikael Rydmark 1(11) 10-05-05 Innehållsförteckning Inledning...3 Nytt spel...4 Regler... 6 Om Spelet... 7 Brädet... 7 Tärningen...8
Värmedistribution i plåt
Sid 1 (6) Värmedistribution i plåt Introduktion Om vi med konstant temperatur värmer kanterna på en jämntjock plåt så kommer värmen att sprida sig och temperaturen i plåten så småningom stabilisera sig.
Programmeringsolympiaden 2018
Programmeringsolympiaden 2018 TÄVLINGSREGLER FÖR SKOLKVALET Tävlingen äger rum på av skolan bestämt datum under fyra timmar. Ingen förlängning ges för lunch eller raster. Eleven ska i förväg komma överens
Den räta linjens ekvation
Den räta linjens ekvation Här följer en dialog mellan studenten Tor-Björn (hädanefter kallad TB) och hans lärare i matematik Karl-Ture Hansson (nedan kallad KTH). När vi möter dem för första gången är
Handbok Officersskat. Martin Heni Eugene Trounev Granskare: Mike McBride Översättare: Stefan Asserhäll
Martin Heni Eugene Trounev Granskare: Mike McBride Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Hur man spelar 6 3 Spelets regler, strategi och tips 7 3.1 Spelbordet..........................................
Regler för: getsmart Grön
-6 Regler för: getsmart Grön 8 Hele tall 3 4 Hele tall -6-6 3-6 3 Hele tall 8 Hele tall 3 4 Det rekommenderas att man börjar med att se på powerpoint-reglerna när man ska lära sig olika spel med kortleken!
Den räta linjens ekvation
Den räta linjens ekvation Här följer en dialog mellan studenten Tor-Björn (hädanefter kallad TB) och hans lärare i matematik Karl-Ture Hansson (nedan kallad KTH). När vi möter dem för första gången är
Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1
Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4
Programmeringsolympiaden 2012 Kvalificering
Programmeringsolympiaden 2012 Kvalificering TÄVLINGSREGLER Tävlingen äger rum på ett av skolan bestämt datum under sex timmar effektiv tid. Tävlingen består av sex uppgifter som samtliga ska lösas genom
UPPGIFT 1 TVÅPOTENSER. UPPGIFT 2 HISSEN I LUSTIGA HUSET.
UPPGIFT 1 TVÅPOTENSER. 2 ½ ¾ = 5575186299632655785383929568162090376495104 n = 142 är det minsta värde på n för vilket 2 Ò inleds med siffrorna 55. Uppgiften består i att skriva ett program som tar emot
HI1024 Programmering, grundkurs TEN
HI1024 Programmering, grundkurs TEN2 2014-10-27 KTH STH Haninge 13.15-18.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King
HI1024 Programmering, grundkurs TEN2 2014-03-13
HI1024 Programmering, grundkurs TEN2 2014-03-13 KTH STH Haninge 13.15-18.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King
läromedel VM-mani mani läromedel
läromedel VM-mani www.manilaromedel.se Manual Vad är VM-mani? VM-mani är ett ämnesövergripande läromedel, med tyngdpunkten på matematik, där eleverna får skapa sin egen idrottsperson, för att sedan tävla
Sannolikheten att vinna ett spel med upprepade myntkast
Matematik Gymnasieskola Modul: Matematikundervisning med digitala verktyg Del 7: Matematiska undersökningar med kalkylprogram Sannolikheten att vinna ett spel med upprepade myntkast Håkan Sollervall, Malmö
DD1321, Tentamen i tillämpad programmering och datalogi Lördagen den 18 dexember 2010 kl 13 18
KTH, Nada, Alexander Baltatzis DD1321, Tentamen i tillämpad programmering och datalogi Lördagen den 18 dexember 2010 kl 13 18 Maxpoäng 100p, godkänt 50p. Bonus max 10p adderas. Resultatet anslås på mina
Nätverksprogrammering, EDA095
Nätverksprogrammering, EDA095 Projekt: Chess game, 2013-05-21 Handledare: Roger Henriksson Axel Hildingsson, a.hildingson@gmail.com Hoang Huyuh Truong, artiq90@yahoo.se Lisa Lindberg, rys07lli@student.lu.se
Nonogram
Nonogram. Vad är nonogram? Nonogram är små enkla men fascinerande pyssel som ursprungligen kommer från Japan. De har också givits ut i söndagsbilagan i engelska dagstidningar under flera år. Idén bakom
Memory Det kombinatoriska spelet
Institutionen för naturvetenskap och teknik Memory Det kombinatoriska spelet Simon Sjölund & Erik Åstrand Örebro universitet Institutionen för naturvetenskap och teknik Matematik C, 76 90 högskolepoäng
16. VOLLEY Volley är tillåtet dock inte på serven.
Spelregler 1. PLACERING AV SPELARNA Spelet spelas i par Spelarna står i områden som är belägna på varsin sida av nätet. Servaren sätter bollen i spel och mottagaren returnerar bollen. Mottagaren kan stå
Familjen Behrens Helmfrids
Familjen Behrens Helmfrids regler för bräde uppsamlade och dokumenterade av Sten Helmfrid Kista, den 24 april 2005 Inledning Föregångaren till den traditionella svenska formen av bräde hette verkeer eller
Sivu 1/6 Innehåll 2 kartor (spelplaner), 2 ark plastfilm (som används ovanpå spelplanen), Checkometer, 28 checkometerkort, 18 utrustningskort, 210 terrängbrickor, 2 whiteboardpennor Spelets mål I Discovery
Fredag 10 juni 2016 kl 8 12
KTH CSC, Alexander Baltatzis DD1320/1321 Lösningsförslag Fredag 10 juni 2016 kl 8 12 Hjälpmedel: En algoritmbok (ej pythonkramaren) och ditt eget formelblad. För betyg E krävs att alla E-uppgifter är godkända,
Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6
Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6? DAGENS AGENDA Komplexitet Ordobegreppet Komplexitetsklasser Loopar Datastrukturer Några nyttiga regler OBS! Idag jobbar
Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1
Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens
Stefan Kloß Ett spännande minnes- och tärningsspel för 2 4 barn från 8 år.
Stefan Kloß Ett spännande minnes- och tärningsspel för 2 4 barn från 8 år. Ä ni modiga? Självklart är ni modiga! Det kommer ni att behöva vara om ni ska klara modighetstestet tillsammans med de fyra vännerna
Handbok Othello. Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll
Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Hur man spelar 6 3 Spelets regler, strategi och tips 7 3.1 Spelets grunder.......................................
Funktioner. Räta linjen
Sidor i boken 14-143, 145-147 Funktioner. Räta linjen Här följer en dialog mellan studenten Tor-Björn (hädanefter kallad TB) och hans lärare i matematik Karl-Ture Hansson (nedan kallad KTH). När vi möter
Schackledarens blad Lektion 1
Schackledarens blad Lektion 1 Inledning Det är viktigt med en tydlig rutin för när schacklektionen börjar och slutar. Genom att samlas kring runda bordet när lektionen ska börja respektive avslutas uppnås
MMA132: Laboration 2 Matriser i MATLAB
MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen
Tentamen Datastrukturer D DAT 035/INN960
Tentamen Datastrukturer D DAT 035/INN960 22 december 2006 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.) Betygsgränser,
Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad
1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen
Författaren själv har skapat sin stil genom att kopiera andra på följande sätt:
3.4 PEDAGOGISKA TIPS Bakgrund När arbetet med MiniBridge startade var tanken från början att det skulle vända sig till främst yngre spelare. Redan nu innan det startat på allvar verkar det som att det
Rektangelpussel 1. Använd tre bitar vilka som helst och gör en 3 5-rektangel.
PEDER CLAESSON I Nämnarens geometrinummer, nr 3 81/82, presenterar Andrejs Dunkels pentominobrickorna. Under rubriken Kvadratpussel finns de beskrivna i Martin Gardners bok, Rolig matematik, som kom ut
Frågan om P=NP? Är P=NP? Bakgrund. "Snabb lösning"?!
Frågan om P=NP? Är P=NP? Institutionen för system- och rymdteknik Luleå tekniska universitet Luleå, Sverige Kan varje [beräknings-] problem vars lösning kan verifieras snabbt av en dator även lösas snabbt
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
Classes och Interfaces, Objects och References, Initialization
Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class
Innehåll. Vad är go? Hur spelet spelas Att fånga stenar Förbjudna drag Att ta poäng Kända partier...
Innehåll Del 1: En introduktion... 9 Vad är go?... 11 Hur spelet spelas... 13 Att fånga stenar... 14 Förbjudna drag... 17 Att ta poäng... 24 Kända partier... 27 Levande och döda grupper... 31 Ranking och
TDP Regler
Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt
Självinlärning av fyra-i-rad. JOHAN DALENIUS och BJÖRN LÖFROTH
Självinlärning av fyra-i-rad JOHAN DALENIUS och BJÖRN LÖFROTH Examensarbete Stockholm, Sverige 2011 Självinlärning av fyra-i-rad JOHAN DALENIUS och BJÖRN LÖFROTH Examensarbete i datalogi om 15 högskolepoäng
Vad är det där? STEG 1: Få olika saker att visas på svarta tavlan
Nivå 3 Vad är det där? All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduktion
54 kort: 10 plockarkort 10 trädgårdsmästarkort 10 extra arbetarkort 24 fruktträdskort
[page 1] Fruktmarknaden Plocka frukt och vinn fina priser på fruktmarknaden! Skicka dina plockare och trädgårdsmästare till fruktträdgården. Men se upp för tvättbjörnen - han vill stjäla din frukt! Det
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".
Spel (! = även lämplig för nybörjare) 1. Spel som tvingar till val av snabba utvägar (minst 8 spelare). Med extra antenner två meter in från sidantennerna d v s man använder 4 antenner. 5 mot 5 (eller
Handbok Knights. Översättare: Stefan Asserhäll
Miha Čančula Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 6 2 Hur man spelar 7 2.1 Syfte............................................. 7 2.2 Starta spelet.........................................
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:
C++ Slumptalsfunktioner + switch-satsen
C++ Slumptalsfunktioner + switch-satsen Veckans avsnitt består av ett antal lite udda funktioner man kan ha nytta av när man skriver program. Det är en slumptalsgenerator och lite annat smått och gott.
Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder
Block 2 Algebra och Diskret Matematik A BLOCK INNEHÅLL Referenser Inledning 1. Följder 2. Rekursiva definitioner 3. Sigmanotation för summor 4. Strängar 5. Tal 6. Övningsuppgifter Referenser Följder, strängar
Handbok Fyra i rad. Martin Heni Eugene Trounev Benjamin Meyer Johann Ollivier Lapeyre Anton Brondz Översättare: Stefan Asserhäll
Martin Heni Eugene Trounev Benjamin Meyer Johann Ollivier Lapeyre Anton Brondz Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Hur man spelar 6 3 Spelets regler, strategier och tips 7 3.1 Fjärranslutningar......................................
Det ska endast finnas två bilder av samma typ på spelplanen.
Laboration 3 Laboration 3, Memory Observera För att bli godkänd på laborationen ska din källkod följa den standard vad det gäller kommentering, val av variabelnamn m.m. som gåtts igenom på föreläsning.
[][] Arrayer med två index
[][] Arrayer med två index Exempel på saker med två index: En digital bild: bilden har rader (y) och kolumner (x) Mätdata i en tabell med rader och kolumner Spel: o Schack o Sudoku o Luffarschack Arrayer
1. Starta om din Mac. 2. Kontrollera din Internetuppkoppling
1. Starta om din Mac En av de enklaste sakerna du kan göra är också en av de mest effektiva. En omstart kan göra susen eftersom det sätter stopp för bakgrundsprocesser och frigör arbetsminne. Förhoppningsvis
Optimering av depåpositioner för den minimala bensinförbrukningen i öknen
Optimering av depåpositioner för den minimala bensinförbrukningen i öknen Frågeställning: En jeep kan sammanlagt ha 200 liter bensin i tanken samt i lösa dunkar. Jeepen kommer 2,5 km på 1 liter bensin.
allt.cl Page 1 of 17 Date: torsdag 7 december 2006
allt.cl Page 1 of 17 Slumpspelaren Väljer slumpvis en flytt ur möjliga flyttar. (defun skapa-slump-spelare (namn bricktyp) "lisp-sträng x bricka -> spelare" (skapa-spelare #'slump-gör-flytt namn bricktyp))
Protokoll MiniBridge
Protokoll MiniBridge Mer om Bridge Det du nu lärt dig är en enkel form av Bridge. Spelet är dock mer komplicerat än så här och kräver en mycket längre utbildning. Vill du lära dig mer om Bridge? Kontakta
Steg-för-steg. Hur vinner du i Bridge? Budgivningen. Grundförutsättningar. 1. Räkna poäng. 2. Budgivning - del 1. Vilket par har flest poäng?
MiniBridge Det beräknas finnas drygt en miljon kortspelare i världen som tävlingsspelar i Bridge, varav drygt 27 500 är svenskar. Alla spelar efter samma regelbok. Här ska du på några minuter få en inblick
Bridge. på 10 minuter
Bridge på 10 minuter STEG FÖR STEG Det bästa sättet att lära sig spela bridge på är att börja med en förenklad form av spelet. Varje giv består av två moment, efter det att man delat ut korten: budgivning
DD1350 Logik för dataloger. Vad är logik?
DD1350 Logik för dataloger Fö 1 - Introduktion Vad är logik? Vetenskapen som studerar hur man bör resoneraoch dra slutsatser utifrån givna påståenden (=utsagor, satser). 1 Aristoteles (384-322 f.kr) Logik
Själv-inlärning av fyra-i-rad
Kungl. Tekniska Högskolan CSC Själv-inlärning av fyra-i-rad (Self-learning of the Connect 4 game) Författare: Björn Löfroth (bjorn.lofroth@gmail.com) 073-813 42 85 Forskarbacken 21 lgh 1201, 114 15 Stockholm
Sökning och sortering
Sökning och sortering Programmering för språkteknologer 2 Sara Stymne 2013-09-16 Idag Sökning Analys av algoritmer komplexitet Sortering Vad är sökning? Sökning innebär att hitta ett värde i en samling
Allmänt om Pidro. Spelets uppbyggnad
Allmänt om Pidro Pidro är ett kortspel för fyra personer där ett par spelar mot ett annat par. Lagmedlemmarna sitter mittemot varandra. Pidro liknar t.ex. Bridge i det avseendet att spelet är uppdelat
Simulering av ett Multi-skill callcenter Med varierande genomsnittlig betjäningstid beroende på agenters kunskapsnivå
Simulering av ett Multi-skill callcenter Med varierande genomsnittlig betjäningstid beroende på agenters kunskapsnivå Handledare: Johan Boye Filip Gaun Klippgatan 12c 171 47 Solna 076-650 76 33 lipgau@kth.se
TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET
UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt
Huvudräkningsspelet Plump
INGVAR PERSSON Detta spel har jag låtit såväl lärare, lärarkandidater som elever utföra skriver Ingvar Persson, Skärholmen, om spelet Plump. Det brukar vara populärt. Uppslaget denna gång handlar om två
Uppgift 1 ( Betyg 3 uppgift )
Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program, Draw_Hexagones, som ritar ut en bikupa enligt körexemplen nedan. Exempel 1: Mata in storlek på bikupan: 1 + / \ + + + + \ / + Exempel 3: Mata in storlek
Programmering. Den första datorn hette ENIAC.
Programmering Datorn är bara en burk. Den kan inget själv. Hur får man den att göra saker? Man programmerar den. Människor som funderar ut program som fungerar. Datorn förstår bara ettor och nollor och
Sannolikhetslära till pdf.notebook. May 04, 2012. Sannolikhetslära. Kristina.Wallin@kau.se
May 0, 0 Sannolikhetslära Kristina.Wallin@kau.se May 0, 0 Centralt innehåll Sannolikhet Åk Slumpmässiga händelser i experiment och spel. Åk 6 Sannolikhet, chans och risk grundat på observationer, experiment
Exempelprov. Matematik Del A, muntlig del. 1abc
Exempelprov Matematik Del A, muntlig del 1abc 2 DEL A, EXEMPELPROV MATEMATIK 1ABC Innehållsförteckning 1. Instruktioner för att genomföra del A... 5 2. Uppgifter för del A... 6 Version 1 Sten, sax och
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,
KALLE ANKA CUP Matchskola
KALLE ANKA CUP Matchskola Kalle Anka Cup matchskola är uppdelad i fem avsnitt Sida Så ser tennisbanan ut 2 Så räknar du 4 Så spelar du singel 5 Så spelar du dubbel 7 Första matchen 8 Sida 1 av 10 Så ser
! "# # # $ # " % & # # '(") " " )## (")"#*+*(, ( - " ' # (") #. % % /
! "# # # $ # " % & # # '(") " " )## (")"#*+*(, ( - " ' # (") #. % % / Hageltal Problem ID: hageltal Tänk dig att du skriver upp alla positiva heltal på ett oändligt stort papper. Från varje tal n>1 ritar
Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige
Är varje påstående som kan formuleras matematiskt*) alltid antingen sant eller falskt? *) Inom Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige Exempel: 12 = 13 nej, falskt n! >
getsmart Lila Regler för:
3 2 Regler för: getsmart Lila 9 Graf y 4 7 3 2 2 3 Funksjon 1-4 4-3 -2-1 -1 1 2 3-2 x f(x)= f(x)= 3 2 2 3 3 2 2 3-3 -4 Graf 9 3 2 2 3 Funksjon 7 Det rekommenderas att man börjar med att se på powerpoint-reglerna
Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00
1 ( 7) Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker/kompendier (ej anteckningar,