Självlärande brädspelare. EMRE BERGE ERGENEKON och ANTON JONSSON
|
|
- Solveig Sundström
- för 6 år sedan
- Visningar:
Transkript
1 Självlärande brädspelare EMRE BERGE ERGENEKON och ANTON JONSSON Examensarbete Stockholm, Sverige 2010
2 Självlärande brädspelare EMRE BERGE ERGENEKON och ANTON JONSSON Examensarbete i datalogi om 15 högskolepoäng vid Programmet för datateknik Kungliga Tekniska Högskolan år 2010 Handledare på CSC var Mads Dam Examinator var Mads Dam URL: berge_ergenekon_emre_och_jonsson_anton_k10043.pdf Kungliga tekniska högskolan Skolan för datavetenskap och kommunikation KTH CSC Stockholm URL:
3 Sammanfattning Belöningsbaserad inlärning eller BBI är en av flera maskininlärningsmetoder. BBI kan användas för att lära en dator att spela spelet tre-i-rad. Den lärande delen kallas för en agent, pjäsernas aktuella placering på brädet kallas för tillstånd och ett drag kallas för en handling kom en viktig implementation kallat Q-learning vilket är den algoritm som använts. Rapporten undersöker hur Q-learning algoritmen fungerar, implementerar den för att lära datorn att spela det enkla brädspelet tre-i-rad samt analyserar hur olika parametrar påverkar inlärningsprocessen. Rapporten inleds med en kortare sammanfattning av bakgrunden till BBI och Q-learning för att sedan gå vidare till att beskriva underbyggande teori för Q-learning algoritmen. Efter detta kommer avsnitt som beskriver implementation, analys samt slutsatser. Vår implementation använder tre parametrar, alfa, gamma och epsilon. Vi har kommit fram till att för vår implementation av tre-i-rad leder följande värden till stabil inlärning:, och. Abstract Reinforcement learning, RL, is one of many machine learning techniques used today. RL can be implemented to teach a computer to play a game of tic-tac-toe. The learning game player is called the agent, the appearance of a specific game play is called the state and a move is called an action. In 1992 an algorithm called Q-learning was created, the same algorithm is used in this document. This document contains research on how Q-learning works, an implementation of the algorithm and analysis on how different parameters affect the result. The beginning of this document contains background information on RL and Q-learning. Later on the Q-learning algorithm is described in more detail. The final chapter contains an analysis, conclusion and discussion regarding the results obtained with different parameter values. Our implementation uses three parameters, alpha, gamma and epsilon. Our results lead to the conclusion that the following parameter values lead to stable learning:, and. 2
4 Förord Denna kandidatuppsats har lästs vårterminen 2010 under namnet DD143x vid CSC/KTH. Först skulle vi vilja tacka vår handledare Mads Dam för stöttning och vägledning igenom detta arbete. Ett tack ges också till Johan Boye som hjälpte oss utveckla vårt resonemang och föra arbetet vidare. Vi började med att dela upp arbete så lika som möjligt men riktade senare in oss på lite olika saker. Emre har varit mer inriktad på programmeringen och den java implementation som gjorts för att analysera Q-learing algoritmen och Anton har jobbat mer med rapportens olika delar och dess struktur. 3
5 Innehållsförteckning Sammanfattning... 2 Abstract... 2 Förord... 3 Beteckningar... 6 Inledning... 6 Syfte / Problemformulering... 6 Bakgrund... 6 Inledning... 6 Uppkomst och Bakgrund... 7 Trial-and-error... 7 Optimal kontroll... 7 Temporal-difference... 8 Uppkomsten av Q-learning... 8 Q-learning... 9 Grundläggande BBI... 9 Markoviansk beslutsprocess Värde funktioner Q-learning algoritmen Tre-i-rad Metod Spelplanen Eftertillstånd Val av policy under inlärningsfasen Implementation Primitiv spelare Smart spelare Slumpande spelare Q-learning spelare Representation av spelplanen samt lagring av Q-värden Uppdatering av Q-värden Analys Inlärning Alfa,
6 Gamma, Epsilon, Resultat och diskussion Alfa, Gamma, Epsilon, Referenser Bilagor Kod tictactoe tictactoe.statestat tictactoe.statistics tictactoe.players
7 Beteckningar Belöningsbaserad inlärning (BBI), eng. Reinforcement learning (RL). Inledning När man tänker på den mänskliga inlärningsprocessen är det nog många som menar att vi människor lär oss via interaktion med vår omgivning. Detta är tydligt när man tänker sig små barn som utforskar sin omgivning. Genom direkt respons av smak, lukt eller känsel skaffas information som sedan kan användas för att göra bättre val. Responsen från omgivningen leder till förståelse om orsak och verkan, om konsekvenser av handlingar. Ofta är vi medvetna om hur vår omgivning reagerar på det vi gör och försöker påverka vad som händer genom vårt beteende. Lärande via interaktion med vår omgivning är en fundamental idé för många teorier om intelligens och lärande. Inom datorsammanhang kallas själva inlärningsprocessen för maskininlärning och är ett stort och som all forskning ständigt växande område. Brädspel är ett typiskt implementationsområde för maskininlärning. Några exempel är det simpla tre-i-rad (eng. Tic-Tac-Toe), schack, Gammon (Gerald Tesauro, 1995) med flera. Många maskininlärningsmetoder har utvecklats, undersökts och diskuterats då forskare arbetat med dessa problem. Under 1990-talet blev en maskininlärnings metod som kallas belöningsbaserad inlärning mycket populär (Barto, 1998). Senare föreslogs en viktig implementation kallad Q-learning, algoritmen bevisades konvergera vilket gör den klart kraftfull (Watkins & Dayan, 1992). Då Q-learning tillämpas för ett brädspel behövs endast information om sluttillstånden, alltså tillstånden då en av spelarna vunnit, förlorat eller spelat lika. Denna rapport har för avsikt att beskriva vår analys och implementation av Q-learning för brädspelet tre-i-rad. Syfte / Problemformulering Att undersöka hur Q-learning algoritmen fungerar, implementera den för att lära datorn att spela ett enklare brädspel (tre-i-rad, luffarschack eller liknande), samt analysera hur olika parametrar påverkar inlärningsprocessen. Bakgrund Avsnittet går kort igenom grundläggande historia bakom uppkomsten av belöningsbaserad inlärning och därmed bakgrunden till Q-learning. Inledning Till att börja med bör det nämnas att uppkomsten av belöningsbaserad inlärning (BBI) har varit en lång och till viss det snårig historia. Det har gjorts många publikationer av flera olika forskare relaterat till BBI. Däremot har flertalet inte konsekvent behandlat BBI utan, under en tid runt talet (Barto, 1998, s. kap: 1.6), även offentliggjort publikationer som per definition egentligen behandlat övervakad inlärning. Att beskriva bakgrunden till BBI är i sig ett mycket omfattande arbete och detta avsnitt kommer därför endas att lätt vägleda läsaren fram till state of the art för Q- learning. En exakt redogörelse för all bakomliggande forskning inom området BBI är utanför det här 6
8 arbetets omfattning men en mycket bra och relativt djupgående beskrivning av BBIs historia finns att läsa i kapitel 1.6 i (Barto, 1998). Uppkomst och Bakgrund BBIs uppkomst kan huvudsakligen delas in i två delområden som senare kom att sammanfalla till BBI som man definierar den idag. Den ena delen behandlar inlärning via trial-and-error. Den uppkom från början när man studerade djurs inlärningsprocess och har anknytningar till de tidigaste arbetena rörande artificiell intelligens. Den andra delen handlar om hur man med hjälp av värde funktioner (eng. value functions) och dynamisk programmering löser optimal Kontroll (eng. optimal control) problem. Trots att de två delområdena är klart olika finns det undantag som sammanfaller i ett tredje delområde kallat temporal-difference (TD) metoder. Dessa tre delområden sammanföll runt talet senare hälft till det som idag klassas som BBI. Trial-and-error Detta spår började inom psykologin där belöningsteorier är vanliga. Grundidén kan sammanfattas av att om positiv respektive negativ respons (välbehag resp. lidande) är resultatet av en viss, av flera möjliga, handlingar i samma situation ökar respektive minskar sannolikheten för att samma handling utförs nästa gång samma situation uppstår. Barto och Sutton menar att Edward Thorndike förmodligen var den första att framlägga detta och han kallade teorin för Law of Effect (fritt översatt, handling och verkan ) (Barto, 1998). Man kan beskriva Law of Effect som ett sätt att kombinera sökning och memorering. Sökning sker genom att för en viss situation välja bland olika möjliga handlingar och memorering sker sedan genom att komma ihåg vilken eller vilka handlingar som fungerade bäst. Handling och konsekvens associeras därmed till den situation där de gav bäst resultat. Att kombinera sökning och memorering till en viss situation är centralt inom BBI. Ordet belöning och belöningsbaserad inlärning användes för första gången i ingenjörsmässig litteratur på 1960-talen publicerade Minsky en uppsats som till mångt och mycket diskuterade flertalet relevanta frågeställningar relaterade till BBI, även vad han kallade the credit assignment problem. Hur fördelar man belöning över många handlingar som kan ha varit upphov till belöningen? De metoder som förknippas med BBI försöker till stor del ge svaret på denna fråga och 1963 beskrev Donald Michie ett simpelt trial-and-error system för hur tre-i-rad spelas, det kallades för MENACE beskrev Michie och Chambers en annan tre-i-rad spelare kallad GLEE och även en polbalanserande vagn kallad BOXES. Som det nämndes tidigare producerades det under en tid runt talet flera publikationer som inte direkt behandlade BBI utan snarare övervakad inlärning. Harry Klopf (1972, 1975, 1982) upptäckte detta och lade grunden för uppdelningen av övervakad inlärning och BBI vilket senare vidare preciserades av Barto, Sutton, Brouwer och Anandan i en serie publikationer (Barto, 1998). Optimal kontroll Ordet optimal kontroll myntades under sent 1950-tal och behandlar problem där man vill hitta en metod som i ett givet system optimerar något kriterium, en kostnadsfunktion. För att ge ett kort exempel. En man cyklar längs en slingrig väg, hur ska han cykla för att minimera resetiden? Systemet är cykeln och vägen som den färdas på. Metoden är helt enkelt hur och när mannen växlar, ökar och minskar sin hastighet, det vill säga bromsar respektive trampar på. Kriteriet 7
9 som ska minimeras är resetiden. Kontroll problem, även detta, begränsas vanligen av restriktioner. Till exempel cyklistens uthållighet, maxhastighet med mera. Problemets kostnadsfunktion är ett matematiskt uttryck för resetiden som funktion av hastigheten, vägens utformning och systemets starttillstånd. Så är ofta fallet att restriktioner och kostnadsfunktionen är överensstämmande. Runt mitten av 1950-talen utvecklade Rickard Bellman, med flera, tillvägagångssätt för att lösa optimal kontroll problem. Metoden kan lättsamt beskrivas som en rekursionsekvation med syfte att dela upp och lösa delproblem av ett större optimeringsproblem, ekvationen kallas idag för Bellman ekvationen. Den typ av metod som med hjälp av Bellman ekvationen löser optimal kontroll problem kom att kännas till som dynamisk programmering (Barto, 1998). Bellman introducerade också en diskret stokastisk version av optimal kontroll problemet kallat en Markoviansk beslutsprocess (eng. Markovian decision process, MDP) som 1960 vidareutvecklades av Ron Howard (Barto, 1998). MDPs innefattar en agent som interagerar med sin omgivning (ett system) för att maximera den ackumulerade belöningen som fås med tiden. Agenten uppfattar omgivningens tillstånd och väljer handlingar därefter. Agenten kan approximera en värde funktion och använda den för att med tiden konstruera bättre och bättre policys. En värde funktion returnerar ett värde för hur bra ett visst tillstånd eller utförandet av en handling är och policys kan ses som regler eller metoder för vilken handling som ska väljas vid specifika tillstånd. Bellman ekvationen, Optimal kontroll, dynamisk programmering, värde funktioner och MDPs är alla viktiga inslag som underbygger teori och algoritmer inom området BBI. Temporal-difference Det tredje området TD handlar om metoder som tar hänsyn till det faktum att påföljande beräkningar/förutsägelser ofta är korrelaterade i någon mening. Till exempel sannolikheten för att vinna tre-i-rad föreslog och implementerade Arthur Samuel en inlärningsmetod som inkluderade TD idéer som en del i hans kända checkers-spelare. Som tidigare nämnt finns här ett glapp då lite jobb dedikerades trial-and-error och ingenting publicerades då heller beträffande TD. Det var först med Klopf, 1972, som åter satte TD på kartan genom att till viss del sammanföra det med trial-and-error men framförallt kopplade han samman trial-and-error med omfattande psykologiforskning relaterat djurs inlärning. Framförallt Sutton och Barto utvecklade idéerna vidare speciellt länkarna till teorier om djurs inlärning var de både Sutton och Barto fullt inlästa på tidigare TD relaterat arbete och utvecklade då en TD-metod som kallas actor-critic. Den tidigaste publikationen av en TD-metod publicerades 1977 av Ian Written och kom att kallas tabular TD(0) av Sutton och Barto (Barto, 1998). Uppkomsten av Q-learning Angående uppkomsten av Q-learning algoritmen, var det just 1989 som Chris Watkins sammanförde de två delområdena temporal-difference och optimal kontroll. Hans arbete utvecklade och integrerade tidigare forskning från alla de tre delområdena. Watkins och Dayan bevisade 1992 Q- learning algoritmens konvergens(watkins & Dayan, 1992), det vill säga att algoritmen för givna problem hittar en optimal policy publicerade Sutton och Barto Reinforcement Learning: An Introduction som ingående beskriver området BBI och är rätt plats att börja på om man finner AI och framförallt BBI intressant. 8
10 Q-learning Avsnittet går igenom de grundläggande metoderna och idéerna kring BBI eftersom dessa ligger till grund för Q-learning. En snabb uppfattning om algoritmen kan fås genom att läsa underkategorierna Grundläggande BBI samt Q-learning algoritmen. Resterande underkategorier ger en mer djupgående genomgång av begrepp. Grundläggande BBI BBI är helt enkelt inlärning via interaktion för att uppnå ett mål. Delen som lär sig och fattar beslut kallas för agenten. En agent interagerar med sin omgivning. En komplett beskrivning av omgivningen brukar kallas för en uppgift, en instans av BBI problemet. En uppgift kan till exempel vara att spela spelet tre-i-rad. Mer specifikt interagerar agenten med omgivningen vid varje av ett diskret antal tidssteg, t = 0, 1, 2, 3, Vid varje tidssteg t, får agenten en representation av den aktuella omgivningen, ett tillstånd,, där är mängden av alla möjliga tillstånd. Vid varje tillstånd kan en handling,, utföras där är antalet möjliga handlingar i tillståndet. Den valda handlingen leder, ett tidssteg senare, till att agenten får en numerisk belöning, samt nu befinner sig i ett nytt tillstånd,. Nedanstående figur visar hur agenten interagerar med sin omgivning. tillstånd belöning handling Figur 1: Interaktionen mellan agent och omgivning. Vid varje tidssteg implementerar agenten en mappning mellan tillstånd och sannolikheten att utföra, för tillståndet, möjliga handlingar. Mappningen kallas för agentens policy och skrivs som vilket är sannolikheten för att om. Olika BBI metoder specificerar hur agenten ska ändra sin policy medan agentens mål är att maximera den totala belöningen, alltså att maximera den långsiktiga belöningen (Barto, 1998). Mer precist vill man generellt sett maximera den förväntade belöningen,, som definieras som någon funktion för returvärdes sekvensen. I sin simplaste form skulle funktionen kunna vara: där är det sista tidssteget. Detta angreppssätt är vanligt när man kan dela upp agent-omgivnings interaktionerna i delsekvenser, även kallat episoder, ett exempel är uppdelning i spelomgångar. Ett tillägg är användning av reducerade belöningar som gör att agenten väljer handlingar som långsiktigt sett maximerar belöningen. Detta skrivs som (1) 9
11 där och och gäller för episodiska uppgifter, till exempel för brädspel som tre-i-rad där varje spelomgång avslutas inom ändlig tid (Barto, 1998). För att notationen i formel (2) skall fungera måste man införa ett såkallat absorberande sluttillstånd sluttillstånd som leder till sig självt som returnerar en belöning av värde noll. Bilden nedan visar sluttillståndet som en fyrkant med belöningen noll, där en summering av de första T belöningarna stämmer med definitionen av Formel (2). (2) Figur 2: Visar att belöningen i sluttillståndet är noll. Användning av belöningar för att uppnå ett mål är ett av BBIs mest särskiljande drag. Viktigt att påpeka är att belöningen styr vilket mål som ska uppnås och inte hur målet ska uppnås. Markoviansk beslutsprocess Om en omgivning på ett kompakt sätt summerar tidigare händelser utan att minska möjligheten att förutsäga framtida handlingar kallas omgivningen för en Markoviansk beslutsprocess (Markovian decision process, MDP). Ett exempel är pjäsernas position vid något tillstånd under en spelomgång i ett brädspel som visar vilka tidigare drag som har gjorts samt möjliga framtida drag. Att man inte vet den exakta sekvensen av gjorda drag påverkar inte vilka framtida handlingar som blir möjliga och brädspel kan därför typiskt beskrivas som MDPs. Det är vanligt med MDPs där antalet tillstånd och handlingar är finit vilket typiskt är fallet för brädspel där varje spelomgång har ett ändligt antal pjäspositioner (tillstånd) och varje tillstånd har ett finit antal möjliga drag (handlingar). MDPs beskriver inte BBIs huvudsakliga syfte, vilket är hur inlärning via belöning skall ske, men de är ändå ett sätt att beskriva vilka modeller/problem som BBI kan appliceras på. (Barto, 1998) Värde funktioner Medan belöning indikerar hur bra ett visst tillstånd är i direkt mening säger värde funktionen hur bra tillståndet är i det långa loppet. Löst skrivet är värde funktionen ett värde för hur stor belöningen i framtida tillstånd förvändas bli, eller mer exakt den förväntade belöningen. Belöningar är i en mening primära och värden sekundära då dessa baseras på belöningar. Enda meningen med att uppskatta värde funktioner är att uppnå mera belöning. Belöningarna som agenten förväntas få baseras på vilka handlingar som den väljer. Värde funktioner beror därmed på valda policys. Värdet i tillstånd när man följer policy skrivs därför som och definieras för MDPs av formeln (3) 10
12 symboliserar det förväntade värdet då agenten följer policy och är något tidssteg. kallas för tillstånd-värde funktionen för policy. Tillika definieras värdet av utförandet av handling vid tillstånd med policy som, där kallas för handling-värde funktionen för policy. För att lösa en BBI instans gäller det att finna en policy som uppnår mycket belöning över lång tid. För finita MDPs kan man definiera en optimal policy. Värde funktioner definierar en ordningsföljt av policy. Att policy är bättre än policy beror på deras förväntade belöningar, med andra ord är omm för alla. Om detta gäller för en av alla andra policys är denna en optimal policy och skrivs som. Optimala policys delar samma tillstånd-värde funktion som kallas för den optimala tillstånd-värde funktionen,, och definieras som (4) för alla. Optimala policys delar också samma optimala handling-värde funktion,, och definieras som (5) för alla och. För tillstånd-handlings paret ger den förväntade belöningen av handling vid tillstånd med fortsatt följande av en optimal policy. Därför kan skrivas som (6) Ovanstående enligt (Barto, 1998). Så länge mängden handlingar och tillstånd är relativt små kan värde funktioner och policys approximeras via ovanstående metoder men ju mer mängderna ökar desto mer minnes- och beräkningskrävande blir de. Till slut kommer metoderna inte längre att fungera och man måste då använda andra lösningsmetoder så som funktions approximationer vilket inte innefattas i detta arbete. Q-learning algoritmen I Q-learnings fall approximerar handling-värde funktionen,, direkt som alltså är den optimala handling-värde funktionen. Det optimala handling-värde funktionen approximeras korrekt oberoende av vilken policy som följs. Detta leder till att analysen av algoritmen drastiskt förenklas samt möjliggjorde tidiga bevis för dess konvergens (Barto, 1998). Allt som krävs för korrekt konvergens är att alla tillstånd-handling par besöks och uppdateras kontinuerligt (Barto, 1998). Q- värdena för tillstånd-handlings paren uppdateras enligt (7) 11
13 där är aktuellt tillstånd, är handlingen som gjords i, är resulterande tillståndet av, är en möjlig handling i tillstånd och är maximala Q-värdet för för alla. är belöningen (eller bestraffningen) av att komma till tillståndet. Parametern är inlärningsvärdet och anger hur mycket det gamla Q-värdet påverkas av handling-värde funktionen. Parametern bestämmer hur mycket framtida Q-värden påverkar det aktuella Q-värdet. Ett lägre värde innebär att man tar mer hänsyn till nära belöningar än långtgående. och kan båda anta värden mellan 0 till och med 1. Q-learning algoritmen beskrivs enligt följande pseudokod. (8) Initiera matrisen med godtyckliga värden. För varje inlärnings session: Initiera Kör medans aktuelltillstånd inte är ett sluttillstånd: Välj en möjlig handling från med policy härled ifrån. Utför handling och observera och. Formel 9: Visa uppbyggnaden av Q-learning algoritmen Tre-i-rad Metod Spelplanen Spelplanen ser ut som följer X X X O X O X X X X O O Figur 3: Visar två olika spelomgångar där spelare X har vunnit. Spelplanen, se Figur 3, innehåller nio rutor som vid olika tillstånd antingen kan vara spelbar, X eller O. Detta ger maximalt tillstånd. Alla dessa tillstånd är dock inte möjliga då X alltid börjar och O följer är antalet X alltid lika med eller en mer än antalet O. Dessutom fortsätter man inte en spelomgång när någon spelare vunnit. Genom numeriska beräkningar finner man att det totala antalet tillstånd är 5478 stycken. Detta antal tar hänsyn till eftertillstånd (se nedan) men inte till spelplanens symmetriska egenskaper som speglingar och rotationer (Se Figur 3). 12
14 Eftertillstånd För att på bästa sätt representera tillstånd och handlingar tillämpar vi något som heter eftertillstånd (eng. afterstates). Eftertillstånd används då två olika tillstånd, se bilden nedan, och handlingar kan leda till samma eftertillstånd vilket utan tillämpning leder till redundanta tillstånd-handlings par (Barto, 1998). X 0 X X X Figur 4: Visar två olika tillstånd där en handling leder till samma eftertillstånd. X Användning av eftertillstånd påverkar inte inlärningsresultatet men påverkar självklart inlärningstiden vilket gör applicering obestridligt. (Barto, 1998) 0 Val av policy under inlärningsfasen För att Q-learning algoritmen både ska utforska nya handlingar och utvidga redan funna handlingskedjor använder oss av parametern epsilon,, där. anger sannolikheten för att slumpvis vald handling skall utföras i ett visst tillstånd. Ett större värde medför att en slumpmässig handling väljs oftare än en optimal handling, alltså leder till att alla handlingar väljs slumpmässigt. Implementation Avsnittet beskriver hur tre-i-rad implementerats, både inlärning och möjlighet till testspel mot Q- learning spelaren. Vidare beskrivs tre olika strategibaserade spelare som använder naiv, optimerad respektive slumpvisa val av drag. Sist beskrivs spelplan och hur lagring av Q-värden sker. X Tre-i-rad programmet består av en egen implementation gjord i java (Se bilaga KOD). Programmet är i stora drag indelat i två delar, en inlärningsdel och en spelfas. Under inlärningsprocessen låter man två spelare spela mot varandra ett visst antal spelomgångar, hädanefter en inlärningssession. De två spelarna symboliseras av pjäserna X och O och det är alltid X som gör första draget. Vår implementation har fyra olika typer av spelare där en av dessa implementerar Q-learning. De andra tre använder sig av bestämda taktiker och används för att vid olika inlärningssessioner träna Q- learning spelaren. Under varje inlärningssession samlas data in som sedan används för att analysera inlärningen samt påverkan av alfa, gamma och epsilon parametrarna. Efter en inlärningssession erbjuds möjlighet att spela mot Q-learning spelaren. Vid varje drag ritas spelpositionerna och även Q- 13
15 värdet för handlingarna i det aktuella tillståndet ut. Under inlärningsdelen visas även allmän statistik. Analysen är inte baserad på dessa resultat utan på en mer detaljerad datainsamling som sker i bakgrunden. 0% Learning Stat: Stats of last 0 games. X wins: 0, 0% O wins: 0, 0% Draw: 0, 0% Optimal Stat: Stats of last 1000 games. X wins: 1000, 100% O wins: 0, 0% Draw: 0, 0% Antalet avklarade spelomgångar I procent. learningstat sker under inlärningsfasen och anger utfallet av de tusen senaste körningarna. optimal stat pausar inlärningen och kör tusen spel där handlingarna väljs efter bästa aktuella Q-värde. 100% totaltime: sec Learning Stat: Stats of last 1000 games. X wins: 992, 99% O wins: 0, 0% Draw: 8, 1% Optimal Stat: Stats of last 1000 games. X wins: 0, 0% O wins: 0, 0% Draw: 1000, 100% _ _ _ _ _ Still playing! Your turn type the location you want to play. q w e a s d z x c s _ _ X _ _ Still playing! Qvalues for cpt player: 0, , , , , , , ,00000 _ _ X _ O Still playing! Your turn type the location you want to play. q w e a _ d z x _ Tabell 1: En utskrift ifrån tre-i-rad programmet. Q-värdena som datorspelaren grundar sina drag på visas på skärmen. Spelaren väljer den handling med högst Q-värde. Tomma rutor symboliserar handlingar som inte är möjliga. Primitiv spelare Strategin som denna spelare använder är att placera sin pjäs på första lediga plats från position noll till åtta enligt figuren nedan. Inlärnings- och spelningsfas påverkar inte hur handlingar väljs Figur 5: Den primitiva spelarens handlingsprioriteringar
16 Smart spelare Strategin är att placera pjäsen på den position där flest blockeringar av motspelaren samt flest egna vinstmöjligheter är utförbara. En mer detaljerad beskrivning finns på (EDais :: Tutorials :: Tic tac toe A.I., 2002). En modifikation är att X alltid börjar i mitten vilket gör att Q-learning spelaren i bästa fall spelar lika annars förlorar. För att Q-learning spelaren skall ha en chans att spela lika krävs att dennes första drag är i ett hörn. Om första draget är på en kant leder det alltid till förlust mot den smarta spelaren. Förklaringen till detta är trivial och omfattas inte av detta projekt. Inlärnings- och spelningsfas påverkar inte hur handlingar väljs. Slumpande spelare Denna spelare väljer helt slumpmässigt bland alla möjliga lediga positioner för det aktuella brädtillståndet och följer helt enkelt ingen strategi alls. Inlärnings- och spelningsfas påverkar inte hur handlingar väljs. Q-learning spelare Av de fyra spelarna är denna den enda som använder sina Q-värden. Vid inlärning kan en handling väljas på två olika sätt som avgörs av parametern. Antingen väljs en slumpmässig handling eller så utforskas den av de för tillståndet möjliga handlingarna med maximalt Q-värde. Q-värdena uppdateras därefter. Vid spelningsfasen väljs endas den handlingen med högst Q-värde och ingen inlärning sker. Representation av spelplanen samt lagring av Q-värden Spelplanens nio rutor beskrivs av en heltalsvektor av längden nio. Varje index har ett av värdena 0,1 eller 2 som representerar en tom plats, X respektive O. Tillståndet i Figur 6 beskrivs till exempel av vektorn. X X O O X X O Figur 6: Ett speltillstånd där O har nästa drag Varje tillstånd kan maximalt ha nio olika handlingar (positioner att placera nästa drag). Det enda tillståndet då alla handlingar är möjliga är starttillståndet, alltså den tomma spelplanen. Varje tillstånds Q-värden lagras i en flyttalsvektor av längden nio. Icke tillgängliga handlingar får det speciella värdet NaN (eng. not a number). Figur 6s Q-värden blir som innebär en förlust för O om nästa drag är i nedre vänstra hörnet ( ) och oavgjort spel för högre nedre hörnet ( ). En Q-värdesvektor behövs för varje tillstånd och lagras i en niodimensionell vektor,, där varje dimension har storleken tre. N:e dimensionens index fås av n:e värdet i tillståndsvektorn. Till exempel uppslagning returnerar, observera att är samma som tidigare nämnt tillstånd. Uppdatering av Q-värden Uppdatering av Q-värden sker alltid efter spelomgång. Handlingarna, dragen, som spelarna gör under en spelomgång sparas i en logg som sedan gås igenom baklänges för att uppdatera Q-värdena för respektive spelare. Som tidigare nämnt behövs det tre värden för att uppdatera ett tillstånds Q- värde. 15
17 Tur: X O X O X Figur 7: Visar hur loggen används för att uppdatera Q-värdena för spelare X respektive O. Enligt figuren ovan har X vunnit på tre drag medan O gjort två drag. Q-värdena uppdateras i följande ordning: 1. Q-värde för X: 2. Q-värde för O: 3. Q-värde för X: 4. Q-värde för O: 5. Q-värde för X: De nya Q-värdena beräknas enligt algoritmen beskriven i avsnitt Q-learning algoritmen. Belöningen för vinnst har satts till 1, bestraffning vid förlust till -1 och vid oavgjort till 0. Analys Detta avsnitt är uppdelat i fyra underkategorier en som argumenterar för att inlärningen är korrekt och tre som analyserar hur enskilda parametrarnas påverkar inlärningsförmågan. Inlärning För att visa att implementationen fungerar har vi valt att träna O mot den Smarta spelaren som spelar X. Då X börjar och alltid sätter sin pjäs i mitten har O endast möjlighet att spela lika eller förlora. Parametrarna har satts till följande värden:, och. X-axeln är antalet inlärningssessioner och Y-axeln anger stoleken på Q-värdet. I det aktuella tillståndet i figuren nedan har X gjort sin första placering i mittenpositionen och det är nu O:s tur. De fyra gröna linjerna representerar Q-värdet för respektive hörn och de fyra röda Q-värdet för respektive kant. Se Figur 8 och Figur 9. O O O O X O O O O Figur 8: De möjliga dragen för O 16
18 Figur 9:, och. Grönt representerar hörnen som konvergerar mot 0 och rött kanterna som konvergerar mot -1. Alfa, För att kunna analysera alfa låter vi och. Figuren nedan befinner sig i samma tillstånd som i inlärningsexemplet ovan, alltså då X redan gjort sitt första drag i mitten och O nu ska göra sitt drag. Två olika inlärningssessioner på spelomgångar har gjorts. I figuren nedan symboliserar grönt Q-värdena för hörnen och rött Q-värdena i kanterna. De ljusare färgerna symboliserar den ena sessionen med och de mörkare färgerna då Figur 10: och. Två olika sessioner med (ljusa färger) och (mörka färger). Vi har valt dessa värden för att observera hur höga respektive låga alfavärden påverkar konvergensen. 17 X O O O O O O O O Gamma, Vid detta exempel har vi valt att använda oss av den primitiva spelaren. Detta är för att denna spelares taktik leder till att vid första tillståndet O får spela (se Figur 11) leder alla positioner, utom två, till vinst på lika många drag. Om första draget är på en av de två röda (mörka) platserna krävs det i bästa fall ytterligare tre drag för att vinna. Jämförelsevis kvävs det endas två ytterligare drag om man börjar på en grön Figur 11: Gammas påverkan
19 (ljus) plats. De ljusa linjerna, i Figur 12, representerar och de mörkare. Parametrarna, och de två sessionerna visas enligt Figur 11 och Figur 12. Figur 12: och. Två olika sessioner med (ljusa färger) och (mörka färger). Epsilon, I det här fallet har vi valt att låta O spela mot den slumpande spelaren. X-axeln representerar antalet spelomgångar. Efter var trehundrade spelomgång pausas inlärningen och tusen spel körs med dåvarande optimala handlingar. Y-axeln representerar den procentuella fördelningen av vinst (rött), förlust (blått) samt oavgjort (grönt). I grafen visas två inlärnings sessioner som båda följer samma färgschema. De mörkare färgerna har körts med och de ljusare med. och under de båda spel sessionerna. 18
20 Figur 13: Hur epsilon påverkar inlärningsprocessen med och (mörk färg) respektive (ljus färg). Resultat och diskussion I detta avsnitt presenterar vi våra resultat för hur parametervärdena påverkar spelarens inlärning samt vilka värden som vi anser som bra för en tre-i-rad-spelare. Alfa, Det framgår av Figur 10 att påverkar Q-värdesförändringen radikalt. Högre värden leder till att Q- värdena snabbare får sina slutvärden men samtidigt fluktuerar. Detta medför att en sällsynt handling påverkar ett Q-värde mer direkt än när är lägre. För att på ett mer stabilt sätt få acceptabla Q- värden anser vi att bör hållas lågt runt. Därmed krävs det flera körningar med samma utfall för att ett Q-värde noterbart skall påverkas. Detta leder i sin tur till att händelser med väldigt låg sannolikhet inte märkbart påverkar spelarens besluttagning som därmed blir mer strategisk. Gamma, I Figur 12 framgår det hur Q-värdet påverkas av två olika -värden. När spelar det ingen roll hur lång tid det tar för att komma till ett belönande tillstånd. Spelaren skulle lika gärna kunna välja en längre följd av drag framför ett med färre antal. När man sänker -värdet proportionerar man Q- värdena för de olika handlingarna, vid ett visst tillstånd, efter hur nära de är ett belöningsgivande tillstånd. Detta ses tydligt i Figur 12 där de gröna handlingarna har högre Q-värde än de röda när. Eftersom vi vill att vår spelare ska vinna på snabbaste möjliga sätt föreslår vi att. Detta medför att handlingar som snabbare leder till ett belönande tillstånd får högre Q-värden än de 19
21 som tar längre tid. Samtidigt är det inte allt för stor skillnad på Q-värderna för de handlingar som med bara få stegs skillnad leder till ett belönande tillstånd. Epsilon, innebär att spelaren alltid väljer slumpmässiga drag vid inlärning. Därmed är sannolikheten för att utföra ett tillstånds olika handlingar lika stor. Detta medför att optimala handlingar, som egentligen skulle kunna leda till hög belöning, lika ofta kan leda till tillstånd med dåliga Q-värden och därmed tolkas som en sämre handling. Detta kan man observera i Figur 13. Vinstprocenten för de olika -värdena konvergerar mot samma värde men förlustprocenten är högre för spelaren med än för spelaren med. Detta är ett resultat av att bra handlingar inte exploateras tillräckligt mycket. Därför är det i detta fall bättre att ha ett lågt -värde då detta gör att optimala handlingar exploateras till sin fulla potential. 20
22 Referenser Barto, R. S. (1998). Reinforcement learning: An Introduction. Cambridge, Massachusetts, London, England: The MIT Press. EDais :: Tutorials :: Tic tac toe A.I. (februari 2002). Hämtat från Edais.org: den 28 april 2010 Gerald Tesauro. (1995). Temporal difference learning and TD-Gammon. Hämtat från research.ibm.com: den 8 mars 2010 Teknomo, K. (2005). Q-Learning by Examples. Hämtat från Watkins, C., & Dayan, P. (1992). Q-learning. Machine Learning. 21
23 Bilagor Kod Beskriver de java klasser som skapats för att utföra projektet. Varje underkategori delar in klasserna i olika paket (eng. packages) för att lättare gruppera klasser med liknande funktioner. tictactoe Game: Denna klass representerar ett spel och innehåller metoder för att uppdatera spelplanen, skriva ut samt ge information om vilket tillstånd spelet befinner sig i. Learner: Denna klass innehåller metoder för att köra en eller flera inlärningsomgångar med givna X och O spelare. Klassen innehåller även metoder för att köra optimala spelomgångar av de tränade spelarna. Main: Innehåller main-metoden för att köra en inlärningsomgång som följs av en spelomgång mot den nyinlärda spelaren. PlayingUI: Innehåller metoder för att låta en användare spela mot en given datorspelare. Test: Innehåller main-metoden samt hjälpmetoder för att samla statistik under inlärningsprocessen. tictactoe.statestat BetterHashSet: En implementation av en HashSet. GameState: Innehåller hjälpmetoder för klassen StateStats och används för att representera ett unikt speltillstånd. StateStats: Innehåller main-metoden för att ta reda på antalet speltillstånd. Eftertillstånd tas hänsyn till men inte speglingar eller vridningar av spelplanen. RandomPlayResults: Innehåller main-metoden för att ta reda sannolikheten av XWin, OWin och Draw när två spelare spelar mot varandra med endast slumpade drag. tictactoe.statistics CsvMaker: Innehåller metoder för att lagra information i csvfiler. LoopProcessWatch: Innehåller hjälpmetoder för att skriva ut hur lång tid det är kvar av en loop. Används under inlärningen för att ge feedback till användaren vid långa körtider. Statistics: Innehåller metoder för att spara ett spels sluttillstånd och ge genomsnittsvärden för de n senaste körningarna. tictactoe.players DumbPlayer: En spelare som alltid börjar i övre vänstra hörnet och gör ett drag på första lediga plats från vänster till höger, uppifrån och neråt. RandomPlayer: En spelare som slumpar varje drag. SmartPlayer: En spelare som alltid som följer en bestämd algoritm för att alltid göra det mest optimala draget. Om SmartPlayer spelar som X börjar den dessutom alltid i mitten. Player: Implementerar Q-learning och är den enda spelaren som lär sig samt gör drag därefter. 22
24
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 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
Förstärkande inlärning med fokus på Q-learning
LINKÖPINGS UNIVERSITET 12 januari 2017 Förstärkande inlärning med fokus på Q-learning Artificiell Intelligens, 729G43 Sammanfattning Förstärkande inlärning innebär att vi människor lär oss genom att interagera
GRIDWORLD OCH MDP PROJEKTRAPPORT 729G43 MICHAEL JONASSON
2018 GRIDWORLD OCH MDP PROJEKTRAPPORT 729G43 MICHAEL JONASSON Innehåll Inledning & Bakgrund... 2 Förstärkt inlärning... 2 MDP... 2 Gridworld... 3 Nytta och policy... 4 Värdefunktion och Bellmanekvationer...
Q-learning för fyra i rad. OLLE HASSEL och PETTER JANSE
Q-learning för fyra i rad OLLE HASSEL och PETTER JANSE Examensarbete Stockholm, Sverige 2011 Q-learning för fyra i rad OLLE HASSEL och PETTER JANSE Examensarbete i datalogi om 15 högskolepoäng vid Programmet
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
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
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
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
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
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
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ärande genom interaktion
Lärande genom interaktion Förstärk inlärning, specifikt Q-learning Ebba Algvere 729G43 Artificiell Intelligens Linköpings Universitet 2017 Abstract This report will provide the reader with an understanding
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ösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl
Matematiska Institutionen KTH Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL och Media, SF60 och 5B8, onsdagen den 7 augusti 0, kl 4.00-9.00. Examinator: Olof Heden Hjälpmedel: Inga
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
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ö
TAIU07 Matematiska beräkningar med Matlab
TAIU07 Matematiska beräkningar med Matlab Laboration 3. Linjär algebra Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion 2 En Komet Kometer rör sig enligt ellipsformade
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
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
med hjälp av Deep Reinforcement Learning
Agent som kan spela Atarispel bättre än människor med hjälp av Deep Reinforcement Learning Sofie Adolfsson, sofad117@student.liu.se Artificiell Intelligens Linköpings Universitet 2017-01-12 SofieAdolfsson
TANA17 Matematiska beräkningar med Matlab
TANA17 Matematiska beräkningar med Matlab Laboration 1. Linjär Algebra och Avbildningar Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion I denna övning skall
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
1 Mätdata och statistik
Matematikcentrum Matematik NF Mätdata och statistik Betrakta frågeställningen Hur mycket väger en nyfödd bebis?. Frågan verkar naturlig, men samtidigt mycket svår att besvara. För att ge ett fullständigt
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
Nu lär vi oss tre i rad
Nu lär vi oss tre i rad Hanna Johansson HT 2016 729G43 Sammanfattning Tre i rad är ett enkelt spel som de flesta förstår sig på och är ett väldigt vanligt problem att försöka lösa just maskinellt. I den
Datastrukturer och Algoritmer D0041D
Luleå Tekniska Universitet 19 mars 2014 Laborationsrapport Laboration 3 Datastrukturer och Algoritmer D0041D Primms Algoritm Namn E-mail Magnus Björk magbjr-3@ltu.student.se Handledare Felix Hansson Primms
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
STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. Matematisk statistik Anders Björkström
STOCKHOLMS UNIVERSITET 2001-10-22 MATEMATISKA INSTITUTIONEN Avd. Matematisk statistik Anders Björkström GRUNDLÄGGANDE MATLAB-TRÄNING för den som aldrig har arbetat med Matlab förut A. Matlabs allmänna
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
FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum
Johan Helsing, 11 oktober 2018 FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum Inlämningsuppgift 3 Sista dag för inlämning: onsdag den 5 december. Syfte: att träna på att hitta lösningar
Optimering och simulering: Hur fungerar det och vad är skillnaden?
Optimering och simulering: Hur fungerar det och vad är skillnaden? Anders Peterson, Linköpings universitet Andreas Tapani, VTI med inspel från Sara Gestrelius, RIS-SIS n titt i KAJTs verktygslåda Agenda
Stokastiska processer
Stokastiska processer Fredrik Olsson, fredrik.olsson@iml.lth.se Avdelningen för produktionsekonomi Lunds tekniska högskola, Lunds universitet Dessa förläsningsanteckningar kommer att behandla diskreta
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
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
Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering!
Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering! Samlingar Vi kommer att behöva hantera samlingar av objekt - Har oftast använd Array (fält) - Bra om
Detaljbeskrivning av Player
Detaljbeskrivning av Player Syftet med Playerklassen är att representera det skepp som spelaren styr. Spelarens skepp styrs till skillnad från övriga skepp av spelaren både när det kommer till vilken riktning
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
Optimering av en Yatzytur genom utvärdering av alla inom turen nåbara tillstånd
Optimering av en Yatzytur genom utvärdering av alla inom turen nåbara tillstånd Arvid Fahlström Myrman 30 april 2014 1 Sammanfattning I denna rapport beskrivs en metod för att kunna optimera
Föreläsning 5: Grafer Del 1
2D1458, Problemlösning och programmering under press Föreläsning 5: Grafer Del 1 Datum: 2006-10-02 Skribent(er): Henrik Sjögren, Patrik Glas Föreläsare: Gunnar Kreitz Den här föreläsningen var den första
Föreläsning 5: Dynamisk programmering
Föreläsning 5: Dynamisk programmering Vi betraktar en typ av problem vi tidigare sett: Indata: En uppsättning intervall [s i,f i ] med vikt w i. Mål: Att hitta en uppsättning icke överlappande intervall
Numerisk lösning till den tidsberoende Schrödingerekvationen.
Numerisk lösning till den tidsberoende Schrödingerekvationen. Det är enbart i de enklaste fallen t ex när potentialen är sträckvis konstant som vi kan lösa Schrödingerekvationen analytiskt. I andra fall
Tekniska beräkningar. Vad är tekn beräkningar? Vad är beräkningsvetenskap? Informationsteknologi. Informationsteknologi
Tekniska beräkningar stefan@it.uu.se Vad är tekn beräkningar? Finns några olika namn för ungefär samma sak Numerisk analys (NA) Klassisk NA ligger nära matematiken: sats bevis, sats bevis, mer teori Tekniska
HI1024 Programmering, grundkurs TEN
HI1024 Programmering, grundkurs TEN2 2016-12-22 KTH STH Flemingsberg 8.15-13.00 Tillåtna hjälpmedel: Kursboken C PROGRAMMING A Modern Approach K. N. King helt utan anteckningar Alternativt C från början
Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.
Föreläsning 9: Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står
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
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
7E Ma Planering v45-51: Algebra
7E Ma Planering v45-51: Algebra Arbetsform under en vecka: Måndagar (40 min): Genomgång av gemensamma svårigheter i begrepp och metoder. Arbete i grupp med begrepp och metoder. Läxa: Läsa på anteckningar
Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration
10 februari 2017 Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration Syfte med övningen: Introduktion till ett par numeriska metoder för lösning av ekvationer respektive
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
Ma7-Per: Algebra. Det andra arbetsområdet handlar om algebra och samband.
Ma7-Per: Algebra Det andra arbetsområdet handlar om algebra och samband. Syftet med undervisningen är att du ska utveckla din förmåga att: - formulera och lösa problem med hjälp av matematik samt värdera
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?
4 Diskret stokastisk variabel
4 Diskret stokastisk variabel En stokastisk variabel är en variabel vars värde bestäms av utfallet av ett slumpmässigt försök. En stokastisk variabel betecknas ofta med X, Y eller Z (i läroboken används
Gränssnitt för FakeGranska. Lars Mattsson
Gränssnitt för FakeGranska av Lars Mattsson (larsmatt@kth.se) Innehållsförteckning 1 Introduktion...3 2 Genomförande:...3 3 Användning...5 4 Kända buggar:...6 5 Källförteckning...6 2 1 Introduktion Taken
Tentamen: Datordel Programmeringsteknik
Tentamen: Datordel Programmeringsteknik Datum: 2012-02-28 Tid: 12:00-16:00 Sal: Ansvarig: Resultat: Hjälpmedel: Betygsgränser: Ulf Johansson Anslås inom 3 veckor. Inga Sammanlagt 30 p för G, 45 p för VG.
Tentamen: Datordel Programmeringsteknik
Tentamen: Datordel Programmeringsteknik Datum: 2013-01-16 Tid: 9:00-14:00 Sal: Ansvarig: Resultat: Hjälpmedel: Betygsgränser: Ulf Johansson Anslås inom 3 veckor. Inga Sammanlagt 30 p för G, 45 p för VG.
1 Duala problem vid linjär optimering
Krister Svanberg, april 2012 1 Duala problem vid linjär optimering Detta kapitel handlar om två centrala teoretiska resultat för LP, nämligen dualitetssatsen och komplementaritetssatsen. Först måste vi
Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 14 augusti, 2002
Institutionen för matematik, KTH Mats Boij och Niklas Eriksen Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 14 augusti, 2002 1. Använd induktion för att visa att 8 delar (2n + 1 2 1 för alla
Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens 2 2010-10-03 Erik Claesson 880816-1692
Beräkning med ord -hur en dator hanterar perception 2010-10-03 Erik Claesson 880816-1692 Innehåll Inledning... 3 Syfte... 3 Kan datorer hantera perception?... 4 Naturligt språk... 4 Fuzzy Granulation...
Stokastiska processer och simulering I 24 maj
STOCKHOLMS UNIVERSITET LÖSNINGAR MATEMATISKA INSTITUTIONEN Stokastiska processer och simulering I Avd. Matematisk statistik 24 maj 2016 Lösningar Stokastiska processer och simulering I 24 maj 2016 9 14
Algoritmer, datastrukturer och komplexitet
Algoritmer, datastrukturer och komplexitet Övning 10 Anton Grensjö grensjo@csc.kth.se 9 november 2017 1 Idag En konstruktionsreduktion Fler bevis av NP-fullständighet 2 Teori Repetition Ett problem tillhör
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2017-10-23 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
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
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,
8F Ma Planering v45-51: Algebra
8F Ma Planering v45-51: Algebra Arbetsform under en vecka: Tisdagar (50 min): Genomgång av gemensamma svårigheter i begrepp och metoder. Arbete i grupp med begrepp och metoder. Läxa: Läsa på anteckningar
TAIU07 Matematiska beräkningar med Matlab
TAIU07 Matematiska beräkningar med Matlab Laboration 1. Vektorberäkningar Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion I denna övning skall vi träna på
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.......................................
DEL I. Matematiska Institutionen KTH
1 Matematiska Institutionen KTH Lösning till tentamensskrivning på kursen Diskret Matematik, moment A, för D2 och F, SF1631 och SF1630, den 25 mars 2008. DEL I 1. (3p Bestäm antalet binära ord av längd
Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp
Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp Dag Wedelin, bitr professor, och K V S Prasad, docent Institutionen för data- och
Exempel ode45 parametrar Miniprojekt 1 Rapport. Problemlösning. Anastasia Kruchinina. Uppsala Universitet. Januari 2016
Problemlösning Anastasia Kruchinina Uppsala Universitet Januari 2016 Anastasia Kruchinina Problemlösning 1 / 16 Exempel ode45 parametrar Miniprojekt 1 Rapport Anastasia Kruchinina Problemlösning 2 / 16
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.......................................
Flervariabel Analys för Civilingenjörsutbildning i datateknik
Flervariabel Analys för Civilingenjörsutbildning i datateknik Henrik Shahgholian KTH Royal Inst. of Tech. 2 / 9 Utbildningens mål Gällande matematik: Visa grundliga kunskaper i matematik. Härmed förstås
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.
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
Föreläsning 11. Giriga algoritmer
Föreläsning 11 Giriga algoritmer Föreläsning 11 Giriga algoritmer Användning Växelproblemet Kappsäcksproblemet Schemaläggning Färgläggning Handelsresandeproblemet Giriga algoritmer (Greedy algorithms)
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
Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen
Faktorisering med hjälp av kvantberäkningar Lars Engebretsen 003-11-18 Bakgrund Vanliga datorer styrs av klassiska fysikens lagar. Vanliga datorer kan simuleras av turingmaskiner i polynomisk tid. Kanske
Lutande torn och kluriga konster!
Lutande torn och kluriga konster! Aktiviteter för barn under Vetenskapsfestivalens skolprogram 2001 Innehåll 1 Bygga lutande torn som inte faller 2 2 Om konsten att vinna betingat godis i spel 5 3 Den
5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3
1 Revision 4 2006-12-16 2. SIDFÖRTECKNING 5B1146 med Matlab Laborationsr Laborationsgrupp: Sebastian Johnson, Ann-Sofi Åhn ( endst tal1-3 Titel Sida 1. Uppgift 1.8.1....3 2. Uppgift 1.8.2....6 3. Uppgift
Miniprojekt: Vattenledningsnäten i Lutorp och Vingby 1
11 oktober 215 Miniprojekt 1 (5) Beräkningsvetenskap I/KF Institutionen för informationsteknologi Teknisk databehandling Besöksadress: MIC hus 2, Polacksbacken Lägerhyddsvägen 2 Postadress: Box 337 751
Inledning. Kapitel 1. 1.1 Bakgrund. 1.2 Syfte
Sammanfattning Vi har i kursen Modelleringsprojekt TNM085 valt att simulera ett geléobjekt i form av en kub. Denna består av masspunkter som är sammankopplade med tre olika typer av fjädrar med olika parametrar.
Beräkningsvetenskap. Vad är beräkningsvetenskap? Vad är beräkningsvetenskap? stefan@it.uu.se. Informationsteknologi. Informationsteknologi
Beräkningsvetenskap stefan@it.uu.se Finns några olika namn för ungefär samma sak Numerisk analys (NA) Klassisk NA ligger nära matematiken: sats bevis, sats bevis, mer teori Tekniska beräkningar Mer ingenjörsmässigt,
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
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4
Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa
Resurscentrums matematikleksaker
Resurscentrums matematikleksaker Aktiviteter för barn och vuxna Innehåll 1 Bygga lutande torn som inte faller 2 2 Om konsten att vinna betingat godis i spel 5 3 Den snåle grosshandlarens våg 6 4 Tornen
Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00
1 ( 7) Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker/kompendier
Laboration i datateknik
KUNGLIGA TEKNISKA HÖGSKOLAN Laboration i datateknik Programmering av LEGO-robot Rickard Eriksson 2012-09-06 rieri@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Denna rapport är till följd
Föreläsning 9 Innehåll. Söndra och härska. Fibonaccitalen. Söndra och härska. Divide and conquer teknik för att konstruera rekursiva algoritmer.
Föreläsning 9 Innehåll Mer om rekursion söndra-och-härska-algoritmer dynamisk programmering backtracking Orientering om versionshantering med git Söndra och härska Divide and conquer teknik för att konstruera
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
Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen
Datastrukturer och algoritmer Föreläsning 15 Inför tentamen 1 Innehåll Kursvärdering Vi behöver granskare! Repetition Genomgång av gammal tenta 2 Första föreläsningen: målsättningar Alla ska höja sig ett
Tor Sterner-Johansson Thomas Johansson Daniel Henriksson
Lab 4: Anti Tower Defence Oskar Mothander Alan Mendez Larsson dit06omr dit06mln Lärare: Handledare: Johan Eliasson Johan Granberg Tor Sterner-Johansson Thomas Johansson Daniel Henriksson Innehåll 1. Problemspecifikation...
Bose-Einsteinkondensation. Lars Gislén, Malin Sjödahl, Patrik Sahlin
Bose-Einsteinkondensation Lars Gislén, Malin Sjödahl, Patrik Sahlin 3 mars, 009 Inledning Denna laboration går ut på att studera Bose-Einsteinkondensation för bosoner i en tredimensionell harmonisk-oscillatorpotential.
TDIU 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
PROJEKT- PRESENTATION
Projekt: Drabbning Projekthemsida: www.nada.kth.se/projects/prom03/drabbning Kurskod: 2D1362 Kursnamn: Programutvecklingsprojekt med mjukvarukonstruktion Uppdragsgivare: Pelle Mårtenson (pelle@kreativatankar.nu)
Robotarm och algebra
Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson 2010-12-07 Robotarm och algebra I denna laboration skall du lära dig lite mer om möjlighetera att rita ut mer avancerade
Laser Maze Art nr: TF1004
Laser Maze Art nr: TF1004 Beam-Bending Logic Game Belysning och speglar kan göra att det känns som magi, men det är verkligen vetenskap och en god dos av hjärnkapacitet som behövs för att rikta laserstrålen
SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2
Matematisk Statistik SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2 1 Introduktion Denna laboration är inte poänggivande utan är till för den som vill bekanta sig med MATLAB. Fokusera
Tentamen TEN1 HI
Tentamen TEN1 HI1029 2014-03-14 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha