Simulering af Poker Gruppe 8

Størrelse: px
Starte visningen fra side:

Download "Simulering af Poker Gruppe 8"

Transkript

1 Simulering af Poker Gruppe 8 Kasper Emil Dueholm Freiman Roy Bergholdt Christian Arentsen Morten Egedal Allan Laursen Johan Følsgaard Rasmus Kristoffer Pedersen Under vejledning af: Maja Tønnesen Roskilde Universitet - Naturvidenskabelig Bacheloruddannelse

2 I

3 Abstract The game of poker has simple rules that are quite easy to understand, yet a certain diversity in the outcome of the game, making it a reasonable game for creating anything revolving around automatised decision making. Numerous projects based on simulations have been exploring the options of automatised poker players. They are different in a variety of ways based on focus, poker type - primarily Texas Hold Em and 7-card-stud. It seems to be an area characterized by non-cut conclusions and different approaches. However, they have all contributed by painting a partial picture of how poker can be examined in a scientific way. This report has been written with the purpose of exploring a specific mathematical method using an automatised poker player and letting said player play against a human-like opponent focusing exclusively on the poker type Texas Hold em. The two different approaches to decision-making were tested against each other by simulations. The mathematical player used a Monte Carlo algorithm, which calculates the actual probability of winning, with a uncertainty of less than 1%, through 1000 stochastically chosen scenarios. The human player bases it s actions on the decision-making rules of professional poker players. We show that the decision-making based on the human rules will mostly win against it s mathematically calculating counterpart. The win rate is about in favor of the humane agent. This, however, does not necessarily mean, that an automated player cannot be succesfully designed. Instead it goes to show that with the delimitations for this project it is not possible. II

4 Resumé Kortspillet Poker har let-forståelige regler samt en usikkerhed omkring spillets udfald, og er derfor et yndet spil i litteraturen til udarbejdelse af automatiseret ræsonnement. Der er flere eksempler på projekter, som ved hjælp af simuleringer har udforsket automatiske poker spillere. De varierer både i fokus og i pokervarianter, heriblandt både varianterne Texas Hold em og 7-card-stud. Det er tilsyneladende et område, som præges af ikkeentydige konklusioner og forskellige tilgange. De har dog hver især været med til at male et billede af, hvordan poker kan undersøges med en datalogisk tilgang. Denne rapport er udarbejdet med det formål at udforske en konkret matematisk metode, hvorved en pokerspiller kan automatiseres og at lade denne spille imod en mere menneskelig modstander, med fokus i pokervarianten Texas Hold em. Ved simuleringer blev de to forskellige tilgange til at tage beslutninger på stillet op imod hinanden. Den matematiske spiller benytter en Monte Carlo algoritme der, baseret på 1000 stokastisk udvalgte scenarier, udregner den faktiske sandsynlighed for at vinde indenfor 1 % sikkerhed. Den menneskelige spiller baserer sig på beslutnings-regler brugt af professionelle menneskelige pokerspillere. Vi viser at den beslutningsmetode, der er baseret på den menneskelige udregninger, oftere vinder mod den simulerede sandsynlighed. Sejrs-raten er cirka i den menneskelige agents fordel. Det er dog ikke tydeligt bevis på, at en automatiseret spiller ikke kan designes således, at denne vil vinde over en menneskelig spiller med rimelig succes. Det viser i stedet, at under de afgrænsninger vores simulering arbejder under, vil det ikke være muligt. III

5 Forord Vi vil i forbindelse med dette projekt gerne rette en stor tak til vores vejleder Maja Tønnesen for gennemgående hjælp med projektet. Uden hendes hjælp ville projektet formentligt ikke være blevet en succes. Desuden vil vi gerne takke hende for lån af en stor samling pokerbøger fra hendes private samling. I løbet af projektet har vi takket være vores opponentgruppe og deres vejleder Kristine Niss fået uvurderlig feedback til både midtvejsevaluering samt også til slutevaluering, og vi vil derfor også takke dem. Igennem rapporten er indsat billeder af kort for at forbedre forståelse for læseren. Disse billeder er taget fra https://code.google.com/p/vectorized-playing-cards/. IV

6 Rapportstruktur og læsevejledning Denne rapport lægger ud med en beskrivelse af reglerne for poker samt hvilke beslutninger, der tages af spilleren i spillet. Herefter beskrives den matematiske teori, der ligger til grund for forståelsen af poker som spil. Heriblandt kommer vi ind på en række forskellige matematiske aspekter omkring spillet. Dernæst følger den datalogiske teori for opbygningen af vores program samt vigtige forhold i selve koden, vi har fundet nødvendige at udspecificere. Det beskrives efterfølgende hvordan den matematiske og den datalogiske teori rent faktisk er blevet implementeret i koden. En beskrivelse af resultaterne fra vores simulering følger herefter, og en analyse af disse vil hernæst også være at finde. Ud fra dette vil vi grundigt overveje resultaterne og her vurdere det læringsmæssige udbytte af disse. Afslutningsvis drages paralleller mellem vore resultater og vores problemformulering i form af en diskussion, og hele rapporten opsummeres i et konklusions afsnit. En perspektivering ud fra rapporten vil også være at finde til sidst i rapporten. For at lette læsningen er udvalgte fagudtryk brugt igennem rapporten placeret i en ordliste til sidst i rapporten. Her kan læseren slå op for at læse forklaringer på ord, hvis dette findes nødvendigt. Ord placeret i ordlisten er skrevet med kursiv første gang de optræder i rapporten. Sidst i rapporten findes en referenceliste med en liste over bøger og rapporter benyttet i forbindelse med projektet. Denne er opstillet efter Harvardstandarden for referencelister. Igennem rapporten er konkrete referencer markeret med forfatter navn(e) og årstal, således at referencen nemt kan findes i referencelisten. Til sidst indeholder rapporten et appendiks hvori tabeller benyttet i rapporten vil være at finde, men som er besluttet ikke at blive placeret inde i rapporten grundet deres størrelse. Desuden vil der, som bilag, være selve programmet, vi har brugt i vores simuleringer. V

7 Indhold Abstract Resumé Forord Rapportstruktur og læsevejledning Indholdsfortegnelse II III IV V VI 1 Indledning Problemformulering Afgrænsning Målgruppe Semesterbinding Metode for rapportarbejde Teori Introduktion til poker Pokerregler samt spilforløb Medfølgende krav til framework og agenter Definitionen af en god pokerspiller Medfølgende krav til framework og agenter Matematisk teori samt Poker teori Kombinatorik Håndens styrke Outs Pot Odds Equity Bluff Slowplay Krav og Specifikationer VI

8 3 Overordnede programovervejelser og afgrænsninger Test strategi for korrekthed Test af framework og AI Teststrategi for data Objektorienteret Programmering Framework beskrivelse UML Monte Carlo Algoritme Metode Beskrivelse af agenter Pot Odds og Equity i praksis Beslutningstræ Menneskelig agent Afgrænsning af menneskelig agent Matematisk agent Afgrænsning af matematisk agent Hypotese for forsøg Resultater og Analyse Menneskelig imod Menneskelig Ens afgrænsninger Forskellige afgrænsning Matematisk imod Matematisk Menneskelig imod Matematisk - Enkelt sample χ 2 test Menneskelig imod Matematisk - Flere samples Students t-test Diskussion 47 7 Konklusion 51 8 Perspektivering 52 VII

9 9 Ordliste Litteraturliste 59 A Appendiks - Pre-flop tabeller B Appendiks - χ og Students t A C VIII

10 Gruppe 8 1 Indledning 1 Indledning Spilteoretiker, økonom og nobelprisvinder John Forbes Nash beskriver i sin ph.d.-afhandling fra 1950 hvordan spil, strategi, beslutninger, handlinger og udfald alt sammen kan betragtes matematisk og forudbestemmes, hvis blot du kender de rigtige parametre (Nash 1950). Selv i situationer, hvor tilfældighed virker som en bærende faktor, og enkelte udfald kan ændre resultater kraftigt, kan der i længden ses en tendens som respons på en (eller flere) strategi(er). Poker har vundet indpas i dagligdagen i mange hjem - i form af online spil, og private tourneringer - verden over og er blevet en levevej for nogen, livskrise for andre og grundlag for et stort online forum af pokerspillere. I Danmark er poker betegnet som hasardspil og spil om penge er, blandt andet af denne grund, ulovliggjort. (Zemanova 2009) Der er derfor nærliggende at sætte spørgsmålstegn ved grundstenen i poker: Hvad er sandsynlighederne, hvor meget er menneskelig ræsonnement, og hvor meget er ren matematik, og i hvilke tilfælde dominerer den ene frem for den anden? Det er aktuelt at diskutere, hvorvidt hasard afhænger af pengebeløb, held eller noget helt tredje, da det viser sig at tilfældigheden ikke nødvendigvis kan forudsiges, men generelt kan udregnes. Casinoer åbner rundt omkring i landet, bl.a. København og Vejle, hvor man kan spille lovligt om penge, hvorfor statistik og sandsynlighed kan betyde meget for beslutningstagningen. Dette danner grundlag for fokus på forskellige strategier og forskellige måder at udregne sandsynlighederne for udfald i et given pokerscenarie. Programmering er et velfungerende værktøj til at simulere og gentage et forsøg; man kan opnå en tilpas stor mængde prøver, at tilfældigheden med tiden vil betyde mindre og mindre. Tilfældighed er kaotisk, men i længden generelt retfærdig (Myra Samuels 2012), hvorfor en agentbaseret simulation kan bruges til at udvaske tilfældigheden i prøverne. Ved at simulere poker, giver vi et bud på en aktuel debat, og en vurdering af de præmisser, der opstilles omkring scenariet. Målet er at få skrevet velfungerende, veldefinerede agenter, der kan handle på egen hånd Nat-Bach 14.1 og af 60

11 1 Indledning Simulering af poker på platformen, der er dedikeret til formålet - her et pokerspil. 1.1 Problemformulering Kan en pokeragent designes og programmeres, så den tager beslutninger rent matematisk, og hvilke tendenser ses ved sammenligning med en mere menneskelig modstander? 1.2 Afgrænsning Det kræver en stor mængde data at analysere resultaterne. Dataen opnår vi ved at simulere i alt pokerspil af varianten Texas Hold em. Da dette projekt kun varer fire måneder, er der ikke tid til at gennemføre disse spil med faktiske menneskelige spillere som modstandere til en pokeragent. Derfor vælger vi i stedet at implementere en pokeragent mere, der baserer sine spil på overvejelser, der almindeligvis foretages af mennesker. Af denne grund, afgrænser vi derfor projektet til kun at tage stilling til denne menneskelige agent, frem for et rigtigt menneske. Vi implementerer et pokerspil, vores framework, som vi kan bruge til at simulere pokerspil med agenterne. Både dette og agenterne bliver kodet i programmeringssproget Java, da dette er det programmeringssprog gruppens medlemmer har størst erfaring med, og fordi det vil tage for lang tid at sætte sig ind i et nyt sprog. Da reglerne i poker, og de vigtige forhold spillet indeholder, vil blive beskrevet, indeholder rapporten også en afgrænsning af hvilke forhold, der implementeres i vores framework og i agenterne. Disse afgrænsninger og valg vil blive forklaret i afsnit 2.3 Konsekvenserne af afgrænsninger beskrevet her, bliver behandlet i diskussionen i afsnit 6. Yderligere afgrænsninger af agenterne findes i slutningen af deres respektive afsnit og Afgrænsningen af vores framework findes i afsnit 3.4 Afsnittene gennemgår den generelle forskel i de to agenters regnemetoder. Det er vigtigt at understrege, at der ikke er tale om forskellige strategier, men primært forskelligt beregnede beslutningsgrundlag. 1.3 Målgruppe Rapporten er skrevet til personer med et grundlæggende kendskab til sandsynlighedsregning og programmering og en interesse inden for emnet. Desuden forventes det, at læseren 2 af 60 RUC - Roskilde Universitet

12 Gruppe 8 1 Indledning også har forståelse for statistik, nærmere præcist kendskab til χ 2 tests og students t tests, da disse vil blive benyttet. Et større kendskab til disse områder er en fordel, men bør ikke være et krav for forståelse. 1.4 Semesterbinding Dette projekt er skrevet under semesterbindingen Samspil mellem teori, model, eksperiment og simulering i naturvidenskab, og vi opfylder den ved at sammenholde spilteori, pokerstrategi og simulering. Det har været vores intention at danne grundlag for en række simuleringer af pokerspil for at tilvejebringe nogle resultater, der kan besvare vores problemformulering. Grundlaget dannes ud fra matematisk teori samt teori om poker. 1.5 Metode for rapportarbejde Metoden til at belyse problemstillingen bliver delvist metaanalyse i form af agentbaseret simulering. Tanken bag denne metode er at kunne påvise en sammenhæng i anvendte variable. Fordelen ved agentbaseret simulering er, at vi kan gentage samme spil et ubegrænset antal gange med samme eller udskiftelige variable og kortlægge de erfaringer, vi gør os med den teoretiske betragtning. For at sikre fuld kontrol over spillet og for at sikre at agenterne er i stand til at spille spillet som vi ønsker det, har vi besluttet selv at designe det framework spillet foregår i. Den menneskelige agent er udviklet ud fra metoder, der udspringer af flere pokerteoribøger. Der tages udgangspunkt i sandsynlighed samt muligheder for at ramme stærke kombinationer af kort, hvilket vil blive beskrevet i afsnit 2.2.3, værdien af denne hånd, der bliver beskrevet i afsnit og senere en beskrivelse af, hvordan disse bruges, hvilket bliver beskrevet i afsnit Den matematiske agent tager udgangspunkt i Monte Carlo Algoritmen, der bliver beskrevet i afsnit 3.6 Nat-Bach 14.1 og af 60

13 2 Teori Simulering af poker 2 Teori I denne sektion vil den teori, der er benyttet i forbindelse med udarbejdelsen af rapporten, poker framework og agenter blive gennemgået. Ved læsning kan læseren få en forståelse for ukendte aspekter ved rapportens indhold. Hvert afsnit indeholder til sidst en beskrivelse af, hvilke vigtige forhold det pågældende afsnit har beskrevet, som har indflydelse på udarbejdelsen af framework og agenter. Disse forhold vil desuden blive opsummeret til sidst i sektionen, i afsnit Introduktion til poker Da rapporten benytter poker, er det fundamentalt for rapporten at beskrive præcis, hvilke regler der vil blive arbejdet efter, derfor følgende afsnit Pokerregler samt spilforløb I denne rapport tages der udgangspunkt i pokervarianten "Texas Hold Em". I følgende afsnit vil reglerne blive forklaret og spillets forløb vil blive beskrevet. Poker er et nul-sums spil (von Neumann & Morgenstern 1944), hvilket som grundprincip vil sige, at man kun kan vinde noget ved at andre spillere mister det samme. Altså vil der aldrig komme mere ind i spillet, end der har været fra start. Texas Hold Em er en pokervariant, hvor der benyttes en kombination af individuelle og fælles kort. Spillet omfatter typisk 2-10 spillere, som forsøger at samle den stærkeste hånd af de to kort, hver spiller har på hånden, og de fem kort, der er på bordet. Spillet starter ved, at en spiller bliver tildelt en dealerbutton, og denne spiller har så første træk. Denne dealerbutton roterer med uret efter hver hånd, der er spillet. De efterfølgende to spillere er henholdsvis small- og big blindposition. Det kræves, at personerne i disse positioner lægger et forudbestemt indskud, der vil vokse med tiden. Før der er givet kort, er blinds det eneste, der er i potten (med mindre man spiller med ante). Big blind er dobbelt så stor som small blind. De to udvalgte spillere skal så betale blinds før floppet, med mindre at en spiller (grundet lav saldo) bliver tvunget all in af blind, hvor denne så 4 af 60 RUC - Roskilde Universitet

14 Gruppe 8 2 Teori kun skal betale, hvad spilleren har tilbage. Først og fremmest modtager alle spillere to kort - eller hånden - hvor disse er spillerens personlige kort. Det er kun spilleren, der har viden om, hvilke kort der er modtaget, og ud fra disse gælder det om at skabe den bedst mulige kombination. Når alle spillere har modtaget kort, begynder den første betting-runde, blinds betales, og spilleren efter small blind tager første valg. Denne spiller kan tage forskellige valg, alt efter hvor gode kort spilleren synes at sidde med. Man kan nu vælge at: Folde: Ved at folde viser du, at du ikke længere ønsker at spille hånden. Kortene smides væk, og du er ikke længere med i runden. Dette forekommer primært, når en spiller ikke længere vurderer, at hånden er værd at spille, enten i forhold til modstanders styrke eller fordi spilleren ikke ønsker at lægge den krævede mængde til potten. Calle: Ved at calle lægges samme beløb som højeste bud. Hvis ingen har raised, svarer dette til big blind. Raise: Når man raiser, vælger man at smide flere penge i potten. Dette kan bevirke, at du har en chance for at vinde flere penge og kan samtidig skræmme andre spillere, som ikke tror på deres hånd, til at folde. Dette er også en vigtig del af at bluff e. Alle får på skift disse valgmuligheder for at folde, calle eller raise. Da spillerne i smallog big blindposition allerede har lagt et beløb ind, skal de kun dække forskellen. Hvis der ikke er raised, behøver big blind ikke at lægge flere penge i potten for at se: Floppet: Når den første bettingrunde er afsluttet, vendes tre kort med billedsiden opad på bordet. Efter floppet vil den anden bettingrunde begynde med den første tilbageværende spiller siddende til venstre for dealerbutton. Det går igen på tur, og spillerne nu har valgmulighederne: Folde, calle, raise og bette. Bette: At bette vil sige, at man smider et beløb i potten, de andre spillere skal matche. Det svarer til at raise bortset fra, at når man raiser, vil man hæve det nuværende bet, der jo i første runde som udgangspunkt er big blind. Nat-Bach 14.1 og af 60

15 2 Teori Simulering af poker Checke: At checke vil sige, at man ikke ønsker at bette flere penge, end spilleren allerede har gjort. Hvis alle spillere checker, er en bettingrunde overstået. Hvis blot en enkelt spiller raiser, bliver checking ikke længere en mulighed, og det er så igen kun muligt at folde, calle eller raise. Efter anden bettingrunde er afsluttet afsløres: Turnkortet. Turnkortet er det fjerde kort på bordet, der kommer i forlængelse af floppet. Den tredje bettingrunde begynder med den første tilbageværende spiller, der sidder til venstre for dealeren. Når den tredje bettingrunde er afsluttet, vendes et femte fælleskort på bordet. Det kaldes riverkortet. Den fjerde bettingrunde begynder med den første tilbageværende spiller der sidder til venstre for dealeren. Runden er nu afsluttet, og dealerbutton roterer en plads i urets retning. Medfølgende krav til framework og agenter I forbindelse med udarbejdelsen af vores kode, er der en række af de forhold, der er synlige i et almindeligt spil poker, som vil være interessant for vores agenter at tage hensyn til. Forhold som er tilgængelige for en menneskelig spiller og derfor også skal være tilgængelige for frameworket at kommunikere videre til agenterne, der derigennem kan benytte det til at tage beslutninger fra det samme grundlag som en almindelig spiller. Disse forhold er her beskrevet: Kort på bordet Da kort på bordet forklarer spilleren hvilke kombinationer han allerede har, og hvilke der er mulige at få inden spillet er færdigt, er det naturligvis en nødvendighed. Kort på spillerens hånd Uden ens egne kort kan det ikke vurderes, hvilke kombinationer man har eller kan få. Penge i puljen Ved at vide hvor mange penge der er i puljen, kan der tages hensyn til hvor meget der teoretisk kan vindes, hvis spilleren ender med den bedste hånd. Call cost Spilleren skal vide hvor meget, der skal betales for at være med i spillet for at være i stand til at betale det krævede beløb. 6 af 60 RUC - Roskilde Universitet

16 Gruppe 8 2 Teori Spillerens egne penge Spillerens skal vide hvor mange penge der kan benyttes til at bette med. Desuden skal der holdes øje med, at spilleren ikke better mere end denne har, og om hvorvidt spilleren er all-in i en situation. Modspilleres penge Ved at holde øje med modspillerens penge kan der tages hensyn, til om modspilleren ville være eller mindre villig til at være med, da det ikke betyder lige så meget for en rig spiller at miste penge, som det ville gøre for en fattig Definitionen af en god pokerspiller En dygtig pokerspiller er ham, der laver færrest fejl og udnytter dette til at vinde penge. I poker er det let at være bagklog, men svært at være alvidende, hvilket giver rum til fejl fra alle spillere - selv de bedste. En måde at analysere et spil er efterfølgende at betragte spillets forløb og analysere om, man tog det rigtige valg. Sklansky omtaler netop dette med sit poker teorem: "Every time you play a hand differently from the way you would have played it if you could see all your opponents cards, they gain; and every time you play your hand the same way you would have played it if you could see all their cards, they lose."(sklansky 2007) Dette giver anledning til spekulation om, hvorledes bagklogskab vil vinde mere, men som det i afsnit forklares, er det muligt, at det rigtige valg ikke altid er et vindende. Der skelnes derfor på flere kanter imellem, hvorledes den gode spiller er en, der tager de rigtige valg, vinder hænder eller vinder penge. Kriteriet, der bruges til at vurdere en pokerspiller, er evnen til at vinde penge, da det primære mål med poker er at vinde penge (Sklansky 2007). Medfølgende krav til framework og agenter Der er, som god pokerspiller, en række ting man kan holde øje med i spillet, som ikke direkte er en del af poker eller reglerne i spillet. Dog er det konkrete forhold, som det vil være vigtigt for en automatiseret pokerspiller at holde øje med i spillet, og de vil derfor blive beskrevet her. Andres spillestil En god poker spiller vil være i stand til fastslå en forventning om, hvordan modspillere tidligere har taget beslutninger og på den måde forudse, hvordan denne vil tage beslutninger fremadrettet. Nat-Bach 14.1 og af 60

17 2 Teori Simulering af poker Antal af spillere og deres position Hvis der er flere modstandere i et spil er sandsynligheden for at man har den bedste hånd lavere end ved et spil med færre spillere. Derudover kan det vides, at hvis spilleren sidder med en god hånd, er det ikke muligt for nogle af de andre spillere at have de bestemte kort. Det er også muligt at benytte bluff og slowplay på spillere, der tager beslutninger efter en selv, og derfor er en position tættere på dealer nemmere at være aggressiv fra. Udregning baseret på en samling af de andre krav Dygtige pokerspillere laver udregninger ud fra de informationer der er direkte tilgængelige i fra spillet. Derfor er det nødvendigt at en automatiseret spiller kan foretage udregning ud fra den erhvervede information. Disse udregninger er blandt andre Pot odds og Equity, der vil blive beskrevet herunder. 2.2 Matematisk teori samt Poker teori Dette afsnit har til formål at beskrive den matematiske viden, der er blevet brugt. Det inkluderer en kort beskrivelse af den kombinatorik, der er krævet for udregning af forskellige udfald i poker. Desuden bliver en række metoder, benyttet af menneskelige spillere til at udregne forskellige forhold i igennem et spil poker, beskrevet Kombinatorik En fundamental del af poker er kombinationer. Som beskrevet i afsnit 2.1 betyder forskellige spilleres kombinationer af kort udfaldet af, hvem der vinder et spil poker. Matematisk kan kombinatorik benyttes til at beskrive, hvor mange muligheder, der er for at få bestemte kombinationer ud af et antal kort trukket fra et tilfældigt blandet deck. Det vil her blive beskrevet, hvordan disse udregninger foretages på baggrund af (Rosen 2007). Når en mængde af elementer, der kommer fra en større mængde, skal tælles, gøres dette ved enten permutationer eller kombinationer. Forskellen på disse to er, hvorvidt rækkefølgen har betydning. Kombinationer har betydning i tilfældige rækkefølger af mængder, hvorimod rækkefølgen har betydning i permutationer. I poker betyder rækkefølgen, kortene bliver trukket i, intet for deres indbyrdes værdi, og det er derfor ikke interessant at se på permutationer. I stedet vil blot kombinationer blive beskrevet. 8 af 60 RUC - Roskilde Universitet

18 Gruppe 8 2 Teori Kombinationen af r forskellige elementer fra en mængde n skrives C(n, r), eller mere almindeligt som en binomialkoefficient som n. Antallet af kombinationer er givet ved: r n = r n! r!(n r)! hvor n! er fakultetfunktionen af n. Det udregnede antal kan forstås som det antal kombinationer der fås hvis man af en mængde på n vælger r elementer. Et eksempel kan benyttes til bedre forståelse: Givet en mængde på 52 kort kan antallet af forskellige måder, hvorved 2 kort kan vælges, udregnes ved: n = 52 = 52! r 2 2! 50! = (2 1) ( ) = = 1326 Der er altså 1326 forskellige kombinationer af en hånd, svarende til 2 kort, der kan vælges fra et almindelig sæt kort. Det passer derfor med antallet af mulige starthænder i poker. Det skal dog nævnes, at ved selve pre-flop situationen i poker er der flere ens typer af hænder, så der reelt set kun er 169 forskellige værdier før floppet Håndens styrke Hvis alle fire bettingrunder afsluttes med aktive spillere, bliver vinderen fundet ved at vise hænder, hvorefter den stærkeste hånd bliver fundet. Hænders styrke findes i forhold til sandsynligheden for, at de optræder, hvilket ses i Tabel 1. Udover sandsynligheden for at ramme en hånd, vil der sekundært blive vurderet på størrelsen på kortene, hvis der er sammenfald. Det vil sige, at der i en given situation vil være to spillere, der begge sidder med en hånd, der rangerer lige stærkt for eksempel to spillere, der begge sidder med et par, vil spilleren med det højeste par vinde. Kombinationen vægter altid tungest. Kun i tilfælde af sammenfald i styrker, gælder de enkelte korts styrke. Nat-Bach 14.1 og af 60

19 2 Teori Simulering af poker Tabel 1: Tabel over de 9 forskellige typer hænder i Texas Hold em Poker og sandsynligheden for at få hver type. Tabellen er sorteret efter styrke, dvs. hænder højere på listen slår hænder lavere på listen. Lavet på baggrund af (Alspach 2000) Navn på hånd Matematisk udtryk Frekvens Sandsynlighed Odds (eksempel) Straight Flush (10)(4) 40 0, : 1 ( ) Fire Ens (13)(12)(4) 624 0, : 1 ( A A A A 7) Fuldt Hus (13) (12) , : 1 ( ) Flush (4) (10)(4) , : 1 ( K) Straight (10)(4) 5 (10)(4) , : 1 ( ) Tre Ens 13 (4) , , 32 : 1 ( K) 2 To par , , 04 : 1 ( K K A A 4) Et par , , 37 : 1 ( A A Q 7 3) Højest kort 10 (4 5 4) , , 995 : 1 ( K J 7 5 2) 10 af 60 RUC - Roskilde Universitet

20 Gruppe 8 2 Teori Outs Når floppet er på bordet, kan en given spiller tage stilling til styrken af sin hånd og lave en vurdering af et eventuel potentiale. Håndens potentiale afhænger af kombinationen af kort samt hvilke kort der mangler, før denne kombination er opnået. Disse kort kaldes outs. Outs er alle usete kort, der vil forbedre din hånd og er derfor ikke nødvendigvis bundet til en enkelt kombination (Braids 2003). I fasen før flop er der så mange muligheder for at ramme en brugbar hånd, agenten vurderer derfor ud fra tabel A.1 og A.2. Et eksempel kunne være, at du sidder med Suited Connectors, og på hånden. Floppet viser Du har i dette øjeblik par 7. Det vil ofte ikke resultere i en vindende hånd, så styrken er ikke særligt stor. Dog har din hånd et stort potentiale for at ramme, hvad kan antages at være en vindende hånd. Dine outs for at ramme forskellige kombinationer er: Flush: alle usete rudere, altså: Straight: alle usete 4 ere og 9 ere, altså: 3 ens: alle usete 7 ere, altså: Vi observerer, at både og er outs for både straight og flush, men tæller dem naturligvis kun een gang. Nat-Bach 14.1 og af 60

21 2 Teori Simulering af poker Derfor har vi nu 9 (flush) + 8 (straight) + 2 (3 ens) - 2 (dubletter) = 17 outs. Vi forholder os til alle ukendte kort fremfor de faktiske kort tilbage i decket, da vi ikke har nogle forudsætninger for at vide, hvilke kort de andre spillere har modtaget. Det vil sige, at uanset hvor mange spillere, der sidder ved bordet, vil vi altid kunne opstille sandsynligheden 1 47 Ω 47 for at ramme et kort fra flop til turn, hvor Ω er antallet af outs og 47 altid er antallet af ukendte kort. På samme måde er sandsynligheden fra turn til river (Myra Samuels 2012) 1 46 Ω 46 I vores eksempel, hvor du blot mangler et kort ud af 17, der vil forbedre det, vil sandsynligheden for at ramme en out være 1 47 Ω Ω 46 (Myra Samuels 2012), og indsættes vores outs, får vi en sandsynlighed på = 0, 5976 eller 59,76% for at ramme en af dine outs. Denne sandsynlighed kan danne grundlag for din videre beslutningstagen. (David W. Frye 2005) Pot Odds Pot odds er en måde at udregne, hvorvidt du skal blive i spillet eller ej, ved at udregne en ratio for andelen af den nuværende total pot, spilleren skal dække, og styrken af spillerens hånd. Som grundregel kan pot odds tilskrives tankegangen at: Sandsynligheden < Sandsynligheden > Nødvendigt inskud Samlet pot Nødvendigt inskud Samlet pot Fold Call/Raise 12 af 60 RUC - Roskilde Universitet

22 Gruppe 8 2 Teori Et eksempel vil være at have en pot på $ 50 og det afsluttende bet værende $ 10, har du 1:5 odds for om du bør følge(call) eller ej. Hvis du derimod er overbevist om, at dine chancer for at vinde er værre end 1:5, anbefales det her at folde. (Sklansky 2007) Der er forskellige steder at calle et bet: Når alle kort er ude og før alle kort er ude, hvor sidstnævnte er den langt mere komplicerede. Et eksempel på pot odds, tolkning og manipulation kunne være, at en spiller efter floppet sidder med: Floppet viser Spilleren er gået med på par 7, men sidder nu i sitationen, at andre spillere, der har ramt noget sidder med højere par eller en straight draw. Spilleren bør altså kun gå med, hvis ingen modstandere har ramt et højere par eller, at spilleren vurderer at chancen for at ramme et kort, der gør hånden til en vindende hånd, er bedre end det krævede indskud. Spilleren vurderer, at 3 ens er stærk nok. Chancen er derfor eller 4,3% = 0, 043 Der ligger $ 30 i potten og en spiller raiser med $ 1. Chancen for at ramme en 7 er, er 4,3%, hvilket er større end pot odds på 1:30 ( 3,22%) - og hånden er derfor værd at spille. Inden vores spiller får lov at calle re-raiser spilleren før dog til $ 10. Dette ændrer pot odds til 10:41, hvilket er væsentligt mere end sandsynligheden for at ramme en af de to 7 ere. Derfor er det ikke fornuftigt at spille med længere. At omregne procenter til odds er simpelt: 1 sandsynligheden = Odds Nat-Bach 14.1 og af 60

23 2 Teori Simulering af poker 1 Så kigger eksemplet fra før giver 0, 043 at spille hånden, der kræver 1:30. = 23,26 - altså odds 1:23,26, hvorfor det er korrekt Equity For at forstå equity er det vigtigt at forstå, hvordan potstørrelse og betting fungerer. Afhængig af antal spillere i en turnering vil beløb have relativt forskellige værdier fra tid til anden. Derfor bør du aldrig betragte en pots eller et bets værdi som et beløb, men snarere som en relativ størrelse (Flynn et al. 2007). Equity er groft sagt, hvor stol del af puljen, der tilhører dig. Dette bruges i høj grad til at bestemme, hvorvidt du bør spille en hånd eller ej. Når du har bestemt outs og fundet sandsynligheden for at ramme en vindende hånd kan dette symboliseres som en værdi. Benytter man equity som en del af sine overvejelser for at spille, bør du spille en hånd så længe denne værdi er højere end dit nødvendige indskud. Værdien udregnes som: Equity = Sandsynligheden for at vinde samlet pot (Flynn et al. 2007), hvortil det bør tilføjes, at hvis Call < Equity er hånden værd at spille og hvis Call > Equity, skal hånden smides. Et eksempel på, hvordan equity kan benyttes, kunne være i en situation, hvor du som spiller sidder til bord med 8 andre spillere med på hånden og på floppet. Du vurderer, du vil vinde i tilfælde af en flush. Du mangler altså en klør. Der er allerede gået fire klør, så der er 9 tilbage ud af de tilbageværende 47 kort. Ergo vurderer du din chance for at vinde er eller 35,0 %. De andre 8 spillere lægger hver $ Skal du nu spille med? Equity = 0,350 $ 800 = $ af 60 RUC - Roskilde Universitet

24 Gruppe 8 2 Teori Call = $ 100 Vi sidder altså i en situation, hvor equity > call, hvilket afgør, at det rigtige valg er et call. Faktisk kan et uhensigtsmæssigt fold i dette tilfælde betragtes som at smide $ 180 væk fremfor at redde de $ 100 (Flynn et al. 2007). Vi anerkender, hvordan man i bagklogskabens lys ofte kan se tilbage og bestemme om et valg var det rigtige eller ej og i nogle tilfælde ville det være bedre at folde, men dette vil primært være på baggrund af tilfældigheden i kort. Ser man tilbage på sine handlinger i løbet af hånden og beslutter, at man på baggrund af equity har taget det rigtige valg, men har ramt uheldige kort, har man stadig taget det rigtige valg. (Sklansky 2007) Dette vil samtidigt sige, at det også kan være rigtigt at smide en hånd, hvis equity-værdien ikke overstiger call-værdien, der potentielt kunne vise sig at være en vindende hånd. Vi kigger på et eksempel, hvor vi sidder med: på hånden og flopper Dette giver en open-ended straight draw, hvilket vil sige, at i tilfælde af alle 4 ere og 9 ere vil man have en straight. Equity er derfor total pot = 0,31 total pot Vi skal altså kun spille hånden, hvis et nødvendigt call er på 0,31 total pot eller mindre. Vælger en spiller at raise, så et call vil kræve et indskud på mere, er det rigtige valg at folde Bluff De følgende to underafsnit er ikke inkluderet i agenternes beslutningstræ, men vil blive medtaget i diskussionen og er derfor inkluderet, da det er en væsentlig faktor i poker, der bevidst er fravalgt at inkorporere i agenterne. Som udgangspunkt vil den stærkeste kombination af kort vinde hånden. Dog er det muligt at snyde modstanderen med et bluff. Et bluff er som udgangspunkt manipulation af pot odds og equity og vil fungere bedst på en spiller, der spiller sikkert (Harrington 2005). Nat-Bach 14.1 og af 60

25 2 Teori Simulering af poker Jo mere en spiller lader pot odds og equity beslutte sine handlinger des mere sårbar overfor bluff er han. Et bluff er, når du spiller på en kombination af, at din modstander ikke selv sidder med en stærk hånd og at han vurderer, at han fra hans synspunkt ikke har incitament til at spille hånden, hvorfor du kan stjæle potten og gå derfra med penge selvom du ikke havde en vindende hånd. At bluffe er risikofyldt og kan kræve, du lægger en stor mængde penge i en pulje, hvor du risikerer, at modstanderen caller eller endda reraiser. Derfor vil en sikker spiller sjældent bluffe. (Sklansky 2007) Et eksempel på bluff kan være: En spiller sidder med suited connectors og er gået med på: Hvorefter floppet viser: Der er intet galt i et raise, da sandsynligheden for en flush er stor. Turn og river bliver dog: Spilleren har ikke ramt sine outs. Spilleren erkender, at han ikke har en vindende hånd, men overvejer mulighederne for at bluffe. I potten ligger $ 35. Modstanderen kender ikke spillerens hånd, så han vurderer, et bet på $ 15 kan lokke modstanderen til at smide sin hånd. Modstanderens muligheder og udfald bliver altså: Fold: Bluffet er succesfuldt og spilleren har vundet potten Call: Bluffet er ikke succesfuldt, men har modstanderen ikke selv noget, har spilleren stadig en marginal chance for, at de har lige stærke hænder ved show-down. Højst 16 af 60 RUC - Roskilde Universitet

26 Gruppe 8 2 Teori sandsynligt går spilleren fra bordet ikke blot som taber af puljen, men også som taber af sit bluff. Reraise: Bluffet er ikke succesfuldt, og spilleren sidder nu i en situation, hvor der ingen chance er for at vinde puljen, hvorfor bluff-beløbet har været en dårlig investering. Det skal understreges, at for at manipulere pot-odds og equity skal et bluff have en signifikant størrelse i forhold til den totale pot, hvilket udgør den store risiko. Man kan længe betale blinds og små indskud og folde med relativt små tab, hvorimod et bluff hurtigt bliver et stort sats. Da bluff i højere grad kunne defineres som villigheden til at spille og investere i flere og dårligere - hænder, vil en mere aggressiv spiller også bluffe mere. Det er et stærkt værktøj imod sikre spillere, da det ofte ændrer equitybalancen så radikalt, at det ikke længere er forsvarligt at spille hånden. Derfor kan det ofte betale sig at bluffe ved et bord med sikre spillere - og omvendt bedst betale sig at spille sikkert ved et bord med mange aggresive spillere (Brunson 1979) En stor del af at bluffe involverer naturligvis evnen til at læse modstanderen. Der er meget psykologi, kropssprog, adfærd og lignende, der danner grundlag for en sub-genre, der kaldes tells. Dette er dog ikke relevant for dette forsøg, hvorfor det ikke vil blive dækket yderligere Slowplay Slowplay er modsætningen til bluff. Hvor et bluff vil bestå af en kombination af bets og ringe chancer for at vinde, vil et slowplay være passivt spil og gode chancer for at vinde. Generelt bør man altid spille sine kort efter de opstillede formler for equity og pot odds, men dette bliver meget forudsigeligt, hvorfor man også bliver lettere udspillet i længden. Her er slowplay et stærkt våben. Nat-Bach 14.1 og af 60

27 2 Teori Simulering af poker Når en spiller slowplayer, vil denne typisk kun checke og/eller calle, hvilket sender et signal til modstanderen om, at førstnævnte ikke har en stærk hånd, hvilket ofte vil udløse en reaktion fra modstanderen, der nu selv raiser. 2.3 Krav og Specifikationer Igennem teorien er en række forhold i poker som er vigtige, for at frameworket kan kommunikere videre til en automatiseret spiller, blevet beskrevet. Her vil vi opsummere og forklare, hvilke der er fundet til at have signifikans i vores projekt og hvilke der er blevet sorteret fra af forskellige årsager i forbindelse med afgrænsning af projektet. Dette skyldes at poker er at et så strategisk komplekst spil, som det er. (Billings et al. 2002) Tidligere i afsnittet blev det beskrevet hvorfor nedenstående punkter er vigtige for en spiller at vide, og det vil derfor kun blive beskrevet, hvorvidt vores program benytter sig af disse, og hvad grunden til eventuelle frasorteringer er. For udregning af ens egen hånds styrke er følgende punkter absolut nødvendige, og er derfor valgt til brug i vores program: Kort på bordet Kort på spillerens hånd For udregning af hvor meget der skal betales til puljen for at fortsætte med at være med i spillet, samt for udregning af hvor stor en del af spilleren penge der skal betales er følgende nødvendige: Penge i puljen Spillerens egne penge Call cost Af dette følger naturligt at også følgende punkt er vigtigt: Udregning baseret på en samling af de andre krav. Heriblandt kan Outs, Pot odds og Equity regnes direkte ud fra tidligere nævnte forhold. 18 af 60 RUC - Roskilde Universitet

28 Gruppe 8 2 Teori Derudover er følgende punkter også vigtige for en dygtig spiller, men vi har besluttet at frasortere disse med det formål at forsimple forsøget og for at formindske antallet af variable der har indvirkning på resultat. Modspilleres penge Andres spillestil Ovenstående punkter ville derudover også kræve at agenternes opførsel ændrede sig i løbet af en række spil, da modellering af modspilleres spillestil naturligvis skal benyttes til beslutningstagen hvis dette blev implementeret. Helt grundlæggende ønskes der at der ikke er forskel på hvorvidt der spilles ét eller flere spil i rækkefølge. Med andre ord, der skal ikke være forskel på det første og det sidste i en række af spil. Derfor afgrænses der fuldstændigt væk fra lærende systemer, og begge agenter skal altså således altid spille med en statisk forudbestemt strategi, hvilket vil sige at de altid spiller ens i en given situation. Desuden besluttes det at spillet kun skal spilles af to spillere, ligeledes for at minimere antallet af variable der har indvirkning på det endelige resultat. Dette vil senere blive diskuteret. En følge af det er at følgende punkt ikke vil være relevant for frameworket at kommunikere videre til agenterne: Antal af spillere og deres position Nat-Bach 14.1 og af 60

29 3 Overordnede programovervejelser og afgrænsninger Simulering af poker 3 Overordnede programovervejelser og afgrænsninger I denne sektion vil der blive beskrevet hvilke tests, der er blevet udført for at sikre, at vores program fungerer korrekt, og for at vores data er korrekt. Dernæst vil en række udtryk inden for datalogi blive klargjort. Dette gælder Objektorienteret programmering og Monte Carlo algoritmer, der bliver beskrevet her. En beskrivelse af vores framework vil være at finde derefter. Desuden vil UML diagrammer blive forklaret, da disse er blevet benyttet i udarbejdelsen af poker framework. 3.1 Test strategi for korrekthed Dette afsnit er skrevet på baggrund af (Horstmann 2010). For at minimere mængden af kodefejl testes koden for at se, om den gør som forventet. Dette gøres ved at opstille nogle situationer, hvor man kender udfaldet, og dernæst tjekke at resultatet bliver det samme som forventet, eller om programmet laver fejl. Der er forskellige typer af fejl, man kan støde ind i, når man skriver et program, og de skal håndteres forskelligt. Selvom der er lidt forskellige idéer om hvorledes man skal kategorisere disse fejl, så er de stadig lige relevante at håndtere. Følgende er den inddeling Horstmann (2010) laver. Compile-time fejl er fejl i syntaksen, som gør at programmet slet ikke kan dannes ud fra koden. De er derfor nemme at opdage og må udredes, førend programmet kan køre. Eksempelvis kan en enkelt parentes betyde forskel på, om programmet fungerer, som det skal, eller om det fejler, inden det overhovedet er blevet compilet. Run-time fejl er fejl i logikken i sproget. Det handler om at syntaksen er korrekt, men man beder programmet om at håndtere en kommando, det ikke er programmeret til at kunne håndtere. Som eksempel kan dette være, hvis en metode i programmet kommer til at dividere med 0 ved et uheld. Dette vil forsage, at programmet kaster en såkaldt exception, som crasher programmet, hvis den ikke håndteres. Det kan nemlig lade sig gøre at håndtere forudsigelige problemer, uden at programmet nødvendigvis behøver at 20 af 60 RUC - Roskilde Universitet

30 Gruppe 8 3 Overordnede programovervejelser og afgrænsninger bryde sammen. Den sidste type fejl, Intent fejl, kan også godt beskrives som en run-time fejl, men adskiller sig ved ikke at få programmet til at crashe. En intent fejl er langt sværere at have med at gøre, for en sådan fejl betyder, at programmet virker, men ikke giver de ønskede resultater. For eksempel kunne man forstille sig et program til et kasseapparat, der summerede priserne for de indkøbte varer. Hvis dette program rundede priserne af, inden de blev summeret, kunne prisen blive en anden, end den man egentlig bør betale. Sådanne fejl har rigtig stor betydning for brugbarheden af et program, og især i et videnskabeligt program bør man være sikker på, at sådanne fejl ikke forekommer. Compile-time fejlene blev håndteret under kodningen, alt imens run-time og intent fejlene blev håndteret vha. test klasser. De fleste klasser i vores program har fået en designeret test klasse, som skal teste metoderne så bredt, at man kan stå inde for at programmet virker, som det skal. I princippet bør alle mulige argumenter til metoderne testes, men i mange tilfælde kan man nøjes med stikprøver og specialtilfælde. Hvis en metode tager et heltal som argument behøves alle heltal ikke testes, men blot grænsetilfælde og eventuelle specialtilfælde som f.eks. 0. En anden væsentlig faktor, for at dette kan være et videnskabeligt forsøg, er, at enhver tilfældighed er uniform. I dette program er det kortblandingsmetoden, som kræves at være uniform. Dette har vi ikke testet, da de pre-definerede metoder vi benytter os af, er dokumenteret som værende uniforme. Det er dog noget, vi har været meget opmærksomme på under kodningen Test af framework og AI Klasserne Action, AI og Card har ikke nogen metoder, der behøves testes, og er derfor ikke blevet testet. Game, Player og Table er alle tre blevet testet grundigt, og fungerer, som de skal. Blandt andet blev Game klassens rounddone() metode testet på 3 forskellige måder. Den blev dog testet som var der flere end 2 spillere med, men det har ikke noget at skulle have sagt for rounddone(). rounddone() har til opgave at tjekke om en runde er færdig og returnerer sand hvis det er tilfældet. Forklaringen af hvordan denne er testet Nat-Bach 14.1 og af 60

31 3 Overordnede programovervejelser og afgrænsninger Simulering af poker vil her blive beskrevet som eksempel på en test foretaget. Først oprettedes nogle standard Playere som har nogle bestemte informationer. Der blev lavet en bettingplayer, en nullplayer og en callingplayer som ses i tabel 2 Tabel 2: Standard spillere til tests Spiller Kort Balance Bet Foldstatus Sidste Action BettingPlayer ingen Falsk Bet 123 CallingPlayer ingen 0 0 Falsk Bet 0 nullplayer ingen 0 0 Falsk ingen Da der for rounddone() ikke tjekkes, om en spiller har kort, var det ikke nødvendigt, at spillerne havde det. Det samme gjaldt deres balance. Dernæst oprettedes tre forskellige Game tilfælde med forskellige spillere i. I første spil var der 3 bettingplayere og 1 nullplayer. Da nullplayeren ikke har nogen sidste action, ville runden ikke kunne være færdig, og derfor burde game.rounddone() returnere falsk. Der blev kørt kommandoen Assert.assertEquals(false,game.roundDone()), som sammenlignede, om game.rounddone() faktisk returnerede falsk. Andet spil bestod af 4 bettingplayere, og da alle 4 havde en betværdi på 123 burde runden være færdig. Denne gang kørtes kommandoen Assert.assertEquals(true,game.roundDone()), som nu sammenlignede, om game.rounddone() returnerede true. I tredje og sidste testtilfælde bestod spillet af 3 callingplayere og 1 bettingplayer. Da ikke alle havde bettet det samme, burde runden ikke være slut, og Assert.assertEquals(false,game.roun viste, hvorvidt game.rounddone() returnerede falsk. I alle 3 tilfælde viste testene af programmet fungerede som forventet, og det kan derfor antages, at rounddone() virker, som den skal. SmartAI og BetterAI blev ikke testet explicit, da det ville være for tidskrævende i forhold til arbejdsprocessen at teste dem sådan. Samtidig har vi gennemlæst deres kode så mange 22 af 60 RUC - Roskilde Universitet

32 Gruppe 8 3 Overordnede programovervejelser og afgrænsninger gange i løbet af arbejdsprocessen, at vi er overbevist om, at de begge er korrekte. 3.2 Teststrategi for data For at teste om agenterne og frameworket fungerer efter hensigten, vil de blive testet i forskellige scenarier. Frameworket er inkluderet i alle forsøgene og bliver derfor evalueret igennem tests, der udføres for agenterne. Agenterne bliver sat til at spille imod hinanden, men for at bruge det resultat til noget, må vi først teste agenterne individuelt, hvorfor der vil blive afprøvet simuleringer af henholdsvis menneskelig- mod menneskelig agent og tilsvarende for den matematiske. Da agenterne forventes at spille konsekvent, bør de imod sig selv have en vinderchance på 50%, hvilket også vil give et billede af, hvorvidt frameworket virker tilfredsstillende og retfærdigt for begge spillere. Når simulationerne er gennemført benyttes statistiske virkemidler til at anskue, hvorvidt udfaldene skyldes tilfældigheder eller andre faktorer, der så kan analyseres og diskuteres. Fungerer framework, menneskelig- og matematisk agent tilfredsstillende i de opstillede tests, anser vi resultaterne som værende repræsentativt korrekte for, hvad vi tester. Derudover vil der blive udført χ 2 test på vores resultat data for at sikre, at resultatet ikke er opnået ved ren tilfældighed. Desuden foretages der på forskellige samples Students t tests for at sikre, at disse forskellige samples rent faktisk har signifikante statistiske forskelle. 3.3 Objektorienteret Programmering Alle programmeringssprog som bruger objekter, hvilket inkluderer Java, understøtter Objektorienteret Programmering, ofte forkortet OOP. Objekterne bliver genereret, når programmet eksekveres. Samme kode kan godt generere flere objekter samtidig. Et eksempel på objekter er de computeranimere orker i filmen "Ringenes Herre". Man kan se hver ork som et selvstændigt objekt, der er genereret af en ork-klasse. Hvert objekt indeholder alle metoder, som klassen og eventuelle underklasser Nat-Bach 14.1 og af 60

33 3 Overordnede programovervejelser og afgrænsninger Simulering af poker har givet det, ligesom hver ork kan de samme ting som udgangspunkt. Idéen med objektorienteret programmering ligger i konceptet om, at forskellige programmører kan arbejde på hver sin klasse samtidig. Med andre ord kan ethvert delmodul tages ud og modificeres nemt, uden at hele koden skal redigeres i. Det gør kodeskrivningen mere struktureret og overskuelig, ved at hver klasse håndterer et specifikt aspekt af programmet. 3.4 Framework beskrivelse I vores program ligger klasserne Game, Action, Set, Table, AI, Player, Card og Main, som hver især står for specifikke dele af programmet. Main klassen er, den der startes op, når man starter programmet. Den fortæller hvilke klasser, der skal køres som det første. Herefter håndterer klassen Game spillets gang, imens Table og Player håndterer spillere og bordet. Spillerne og bordet er objekter, som sammen med Game-objektet holder spillets tilstand det vil sige hvilke kort der ligger hvor, hvis tur det er, hvor mange penge de forskellige spillere har og lignende. Card er en klasse, som beskriver et kort og Set håndterer kombinationer af kort. Til sidst er der AI klassen, som implementerer specielle typer af AI (agenter), og Action som håndterer agenternes beslutninger samt bets. AI klassen er således et interface hvilket vil sige, hvis en klasse skal implementere AI klassen, skal det opfylde de krav der stilles fra AI klassen. I dette tilfælde skal en sådan klasse blot kunne afgive en Action, hvis den får et spil at kigge på. Hvad der ellers er af metoder i den specifikke AI, er underordnet. SmartAI og BetterAI er eksempler på implementerede AI er. SmartAI benytter Monte Carlo algoritmen og er således den matematiske agent. Se afsnit 3.6 og for videre forklaring om den matematiske agent. BetterAI benytter outs og equity til at tage beslutninger på en menneskelig facon, og denne er således den menneskelige agent. Se afsnit for videre forklaring om den menneskelige agent. For at matche vores agenter imod hinanden blev et framework designet. Dette framework ville håndterer selve spillet, dvs. alle alt andet end aktive beslutninger og udregninger af sandsynligheder og equity. Med andre ord; et pokerspil. Af ovennævnte klasser består 24 af 60 RUC - Roskilde Universitet

34 Gruppe 8 3 Overordnede programovervejelser og afgrænsninger selve frameworket af alle klasser på nær AI, SmartAI og BetterAI. Da frameworket skulle designes, skulle der tages stilling til dets opbygning. Førsteprioriteten var selvfølgelig, at det skulle kunne håndtere et pokerspil og leve op til de krav, som blev fundet i forbindelsen med teorien i afsnit 2.3. Det skal derfra være muligt at aflæse spillets situation inden for det beskrevne forhold, når det var relevant. Begrænsning af de forskellige klassers scope (dvs. begrænse deres råderum) blev nedprioriteret til fordel for funktionalitet. Ligeledes mente vi ikke en brugergrænseflade var nødvendig, når vi blot kunne printe simuleringsresultaterne i tekst-filer. Klassernes opdeling (inkl. AI-klasserne) bunder i idéen om at have klasser, der holder på informationer om spillets tilstand (f.eks. Table og Player), klasser der modificerer spillets tilstand (f.eks. Main og Game), og klasser der håndterer hvorledes, der skal modificeres (f.eks. SmartAI og BetterAI). Da hele vores framework er baseret på en tanke om funktionalitet frem for "æstetik", er nogle funktionaliteter lagt over på agenterne, udelukkende fordi, det var lettere tilgængeligt i kodningsprocessen - f.eks. er det agenterne der sørger for at lægge korrekte blinds selvom det havde været smartere at lade Game håndtere dette, set fra en programmørs synsvinkel. Det gøres i dennes getaction metode, som er den metode, der fortæller, hvad agenten skal foretage sig ud fra spillets aktuelle tilstand. Her ses et pseudokodeeksempel: BetterAI: Pay Blinds getaction(game) if (Current_Round == Pre-Flop and Current_Pot < Big_Blind_Size) if (Current_Pot == 0) return action(bet, Math.min(Small_Blind_Size, All-In) else return action(bet, Math.min(Big_Blind_Size, All-In) else... //Use normal decisions Her ses det, hvorledes agenten først tjekker, om spillet er i pre-flop fasen, og så, hvorvidt Nat-Bach 14.1 og af 60

35 3 Overordnede programovervejelser og afgrænsninger Simulering af poker der er lagt big blind. Hvis dette er tilfældet, vil den finde ud af hvilken blind, der skal betales. Logikken er, at hvis der ikke er lagt en big blind endnu, vil potten enten være 0, på størrelse med small blind, eller også er der en spiller, som er all in med et beløb, som er mindre end big blind. Så hvis potten er tom, vil agenten betale small blind og ellers big blind. I fald agenten ikke kan betale, vil den gå all in i stedet. Der er et enkelt problem i denne logik, hvis spillet har mere end 2 spillere med, da 2 spillere så vil kunne have gået all in, så der sammenlagt stadig vil være mindre end big blind i potten. Dette vil resultere i, at den næste spiller stadig vil tro, at der skal betales blinds, selvom det står denne spiller frit for at folde. Vi kommer dog uden om dette med vores afgrænsning til udelukkende at fokusere på to spillere. 3.5 UML Følgende er skrevet på baggrund af (Scott 2001) og (Horstmann 2010) UML som står for Unified Modeling Language - er en notation til analyse og design af et objektorienteret program.ved at anvende et UML diagram kan programmøren formå at forklare programmet nemt og overskueligt ved at visualisere relationer som eksempelvis afhængighed af klasser. Med afhængighed menes at en given klasse A er afhængig af klassen B hvis A ikke kan fungere uden B. Når der er tale om et UML diagram skal der her skelnes mellem klassediagram og andre typer diagrammer, som alle går under betegnelsen UML. I klassediagrammet som er den bedst kendte type diagram viser strukturen mellem udvalgte klasser, som eksempelvis afhængighed og arv. Med arv menes en situation hvor en klasse benytter en anden klasse som "skabelon", lidt ligesom et interface. Forskellen er bare at et interface udelukkende er en skabelon og ikke kan stå alene. I denne diagramtype vises klassens navn, variable og metoder. I dette projekt anvendes klassediagrammet som ses på figur 3.1. Som supplerende information skal det siges at Game holder informationen om hvilken AI de forskellige spillere 26 af 60 RUC - Roskilde Universitet

36 Gruppe 8 3 Overordnede programovervejelser og afgrænsninger benytter. De forskellige AI bestemmer ud fra Game-objektet hvilken Action som skal benyttes og giver informationen til Game som igen giver den til Player. Desuden skal det nævnes at Player benytter Set klassen til at sammenligne kort hvilket benyttes af AI erne. Figur 3.1: Diagram over hvordan selve programmet i vores projekt er opbygget. Nat-Bach 14.1 og af 60

37 3 Overordnede programovervejelser og afgrænsninger Simulering af poker 3.6 Monte Carlo Algoritme For at definere et beslutningsgrundlag i en given situation i poker skal der foretages en vurdering af den hånd, man sidder med, kontra den hånd modstanderen sidder med. I en forsimplet, givent scenarie er det en enkelt modstander. Den mest nøjagtige metode vil være at beregne alle tænkelige hænder i alle tænkelige kombinationer med alle tænkelige muligheder på bordet og herved sammenligne alle tænkelige muligheder, en såkaldt "brute force"metode. Når et stort antal udregninger skal foretages for en ordnet mængde data, er det til tider ikke muligt at foretage udregningerne i forhold til hvert enkelt datapunkt. Dette kan skyldes tidsmæssige restriktioner på udregningerne. Det er for eksempel ikke interessant at få et præcist svar på, hvor sandsynlig en bestemt poker hånd er for at vinde, hvis udregningen tager flere timer og man skal bruge svaret midt i et spil. Eksemplet på kombinatorikken ved pre-flop i poker er med to kort på hånden, fem på bordet og 52 kort i et spil, kan de mulige kombinationer på bordet beregnes: antal kombinationer bord = 50 = 5 50! 5!(50 5)! = Modstanderen har derfor de resterende kort til rådighed, dvs. to ud af 45 kort, med følgende kombinationsmuligheder: antal kombinationer modstanders hånd = 45 = 2 45! 2!(45 2)! = 990 Det samlede antal kombinationer er kombinationerne på modstanderens hånd gange de mulige kombinationer på bordet som illustreret i tabel 3 28 af 60 RUC - Roskilde Universitet

38 Gruppe 8 3 Overordnede programovervejelser og afgrænsninger Tabel 3: Liste over forskellige mulige kombinationer ved forskellige stadier. Modificeret fra (Sylvestro 06) Stadie Antal kort set Borde Modstander hænder Kombinationer Pre-Flop ,097,572,400 Flop ,070,190 Turn ,540 River En løsning på problemet med de mange beregninger er en såkaldt Monte Carlo algoritme. En Monte Carlo algoritme benytter sig af et tilfældigt udvalg af de data punkter, der ønskes at blive lavet udregninger på. Simplificeret tager den ikke alle scenarier som ovenfor, men et udvalg af vilkårlige scenarier og tegner tendensen som sandsynligheden for, at den pågældende hånd vinder. Denne sandsynlighed ses at være meget tæt på den faktiske sandsynlighed for at vinde hvis antal af simulerede scenarier når over en hvis værdi. Tidligere i litteraturen er netop Monte Carlo algoritme benyttet til at simulere poker, for eksempel i (Sylvestro 06). I (Sylvestro 06) forsøges det at præcisere, hvor præcist en Monte Carlo algoritme kan benyttes til at simulere sandsynligheden for at vinde i de forskellige stadier i poker. Det findes at ved simuleringer over 1000 vilkårlige spil, er der generelt en sandsynlighed, der ligger med mindre end 1% afvigelse fra den faktiske sandsynlighed. Et eksempel på hvordan præcisionen nærmer sig den faktiske sandsynlighed kan ses i 3.2. Nat-Bach 14.1 og af 60

39 3 Overordnede programovervejelser og afgrænsninger Simulering af poker Figur 3.2: En simulering over sandsynligheden for at vinde ved en hånd - her 2-7 offsuit, hvor man kan se sandsynligheden nærme sig et givent område, der afspejler sandsynligheden for at vinde, der kan bruges til at udregne equity. Den grønne linje markerer den faktiske sandsynlighed, og de blå og lilla linjer viser 1 % afvigelse. 30 af 60 RUC - Roskilde Universitet

40 Gruppe 8 4 Metode 4 Metode I dette afsnit vil vi beskrive de overvejelser og afgrænsninger, der er foretaget i forbindelse med udarbejdelsen af programmet og agenter. Opbygningen af programmet vil også blive beskrevet. Desuden vil det beslutningstræ agenterne følger også blive beskrevet. 4.1 Beskrivelse af agenter I henhold til vores teori ses to fundamentalt forskellige måder at udregne, hvilken beslutning en pokerspiller skal tage i en given situation. Den ene gør brug af overvejelser og udregninger, som en menneskelig spiller ville være i stand til at udregne under spillet uden brug af nogen form for computer. Disse udregninger er blandt andet outs, pot odds og equity. Den anden type udregninger er baseret på en Monte Carlo algoritme som beskrevet i afsnit 3.6. Herunder vil det blive gennemgået sprogligt, hvordan disse to typer er blevet implementeret. Af de to agenter er det den matematiske, der er i fokus for projektet, da det er denne, som det antages, vil spille bedre end et almindeligt menneske. Den menneskelige skal selvfølgelig også være programmeret tilfredsstillende, men da den skal simulere et menneskes beslutninger, vil den i mindre grad være interessant at konkludere ud fra Pot Odds og Equity i praksis Vi nævnte i afsnit og 2.2.5, hvordan pot odds og equity fungerer. Dette er på grundlag af forskellige lærebøger, hvor de redegører for disse værktøjer. Det viser sig dog at da; Pot Odds = Sandsynligheden for at vinde > Nødvendigt indskud Total pot Call/Raise og Equity = Sandsynligheden for at vinde Total pot > Nødvendigt indskud Call Raise Nat-Bach 14.1 og af 60

41 4 Metode Simulering af poker kan det derfor udledes at: Pot odds og equity danner grundlag for præcis samme beslutningstagen, hvor der er ganget igennem med "total pot"på begge sider, hvorfor vi kun implementerer equity i agenterne: Beslutningstræ Et beslutningstræ er et værktøj, der bruges til at overskue en række muligheder, hvor de efterfølgende beslutninger kommer an på de foregående. Dette har vi brug for til at overskue de statistiske beregninger, vores agenter skal fungere ud fra. Vi har konstrueret et beslutningstræ, som vores agenter benytter sig af igennem spillene til at træffe deres beslutninger. Et normalt beslutningstræ er oftest opbygget nogenlunde som et vandret stamtræ med to eller flere forgreninger i hvert led. Der er dog ingen faste regler for, hvordan beslutningstræer skal se ud. Vores er farvekodede, således at grøn tekst er spørgsmål, rød tekst er endelige beslutninger og lilla er overgange til en anden tabel. Først ser den menneskelige agent på, hvor i spillet den befinder sig. Der er fire muligheder: Pre-flop Flop Turn River. Derefter ser den, alt efter situationen, på call cost, equity, agentens balance, håndens styrke og/eller blind-størrelsen for at beslutte, hvordan den skal reagere. Pre-flop, flop og turn sender beslutningen over i den fælles del af beslutningstræet. I pre-floppet vil den dog først hente en tabelværdi fra tabel A.1 eller A.2 som findes i appendiks A. Ved ethvert call eller raise vil agenten først kontrollere, om det givne bet vil bringe agenten ned under halvdelen af den aktuelle balance, og i så fald vil den gå all in i stedet. Til sidst sender den sin "beslutning"videre i programmet. 32 af 60 RUC - Roskilde Universitet

42 Gruppe 8 4 Metode Den matematiske agent bruger et mindre udsnit af beslutningstræet, da den er i stand til at udregne sandsynligheden for at vinde lige fra pre-flop til river, hvor den menneskelige agent bruger tabellerne A.1 og A.2 fra appendiks A til at finde sin sandsynlighed pre-flop. Her følger en gennemgang af beslutningstræet fra figur 4.1 med det samme eksempel som i Situation er at spilleren sidder med kortene det koster $ 100 at calle, der er $ 800 i potten, og kortene på bordet er Da spillet er ved floppet, vælger den menneskelige agent midterste forgrening og tager efterfølgende nederste forgrening på det fælles træ, da call cost er større end 0. Fra har vi, at sandsynligheden for at få en vindende hånd er 35 %. Derefter beregnes equity til at være $800 0, 35 = $280, hvilket vil sige, at equityen er mere end 1,5 call cost, men mindre end 10 call cost, og derfor benyttes anden forgrening fra toppen. Altså vil agenten i denne situation raise med 3 call cost, med mindre det er mere end halvdelen af agentens aktuelle balance. I det tilfælde vil agenten gå all in. Den matematiske agent vil beregne sandsynligheden for at vinde, ved hjælp af Monte Carlo-algoritmen, og ud fra denne vælge sine træk i det fælles træ. Nat-Bach 14.1 og af 60

43 4 Metode Simulering af poker (a) En oversigt over beslutningstagningen i den menneskelige agent. (b) Den matematiske agents beslutningstræ. (c) Fælles beslutningstræ. Begge agenter benytter dette træ, og det står derfor adskilt fra de andre. Figur 4.1: Grønne felter er spørgsmål, røde er handlinger og lilla er overgangen til/fra det fælles træ. Sandsynligheden pre-flop varierer i de to agenter; Den menneskelige agent benytter tabellen der ses i apppendiks A og den matematiske regner sandsynligheden på samme i alle situationer. Træerne er roteret 90 grader for at kunne passe på en A4-side. 34 af 60 RUC - Roskilde Universitet

44 Gruppe 8 4 Metode Menneskelig agent Den menneskelige agent er en spiller, der baserer sine træk på en sandsynlighedstabel, equity og outs. Se henholdsvis Appendiks A, afsnit og afsnit for en beskrivelse af disse. Tabelværdierne, som bruges til at bestemme sandsynligheden for at vinde i pre-floppet, kan, med lidt god vilje, memoreres, og equity og outs er baseret på simple matematiske udregninger, som mennesker kan lave løbende, mens de spiller, for at træffe bedre beslutninger under et pokerspil. Derfor er denne spiller mere menneskelig i sine valg end den anden. Det betyder dog også, at der er en større usikkerhed i dens beregninger, da den som før nævnt er simplere end den anden spiller. En fordel ved denne måde at træffe beslutninger er, at de, fordi den er så simpel, ikke kræver særligt meget processorkraft, og derfor kan agenten reagere på næsten ingen tid. Det første, den menneskelige agent gør, er at beregne sandsynligheden for at vinde. Det gør den på 3 forskellige måder. I pre-floppet benytter den som sagt en tabelværdi, der ses i appendiks A, som er lavet ud fra en beregning af i hvor mange spil den givne hånd vil vinde. Måden, tabellen er konstrueret på, er ved, at for hver kombination af 2 kort (opdelt i tabellen i kategorierne: par, 2 suitede, 2 unsuitede) er den blevet sammenlignet med alle mulige kombinationer af kort på bordet og i én anden spillers hånd. Ved floppet og turnet gør den det på en anden måde. Helt konkret udregner agenten sandsynligheden for at vinde, ved at tælle outs, på de kort den har, og beregner ud fra dem sandsynligheden for at få en vindende hånd. Da man ikke kan vide, hvad modstanderen har, vil det være nødvendigt at beslutte en arbitrær værdi for hvor stærk en hånd, der kan forventes at være en vindende hånd. Vi har i forbindelse med udformningen af agenten besluttet, at tre ens eller derover er et acceptabelt niveau for, hvornår det kan forventes, at kunne vinde, da tre ens ligger inden for de 3 % bedste mulige kombinationer jvf. tabel 1. På baggrund af antallet af outs udregnes dernæst sandsynligheden for at vinde. Det skal dog stadig huskes, at det antages, at hvis de ønskede kort bliver trukket, medfører Nat-Bach 14.1 og af 60

45 4 Metode Simulering af poker det, at spilleren vinder. Ved river har agenten enten en kombination på 3 ens eller over, eller også har den ikke. Hvis den har, så mener den at den vinder, og ellers mener den at den taber. Sandsynligheden for at vinde sættes altså til enten 100 % eller 0 %. Dette betyder, at equityen er lig call cost eller 0. Når agenten har fundet sandsynligheden for at vinde ser den på equity som beskrevet i Den vurderer, hvordan der skal reageres i den givne situation ud fra størrelsesforholdet mellem equity og call cost. Hvis der ikke er nogen call cost, vurderes der i nogle tilfælde i forhold størrelsen af big blind i stedet for størrelsen af call cost. Et beslutningstræ kan ses i afsnit Vohl et al. (2012) har stået til inspiration for rammen for hvordan vi udviklede agentens beslutningstræ, men i meget begrænset omfang. Deres agent skelner i mellem at modstanderen har raiset eller re-raiset, hvor den menneskelige her ser begge som en call cost større end 0. Desuden er deres agent meget mere konkurrenceorienteret og har færre afgrænsninger end vores. Afgrænsning af menneskelig agent Der er begrænsninger og forholdsregler, der er taget, under udarbejdelsen af agenten. De primære afgrænsninger omhandler: Spillestilen. pre-flop er fastlagt efter hvilke kort, der indgår i hånden. Dette kan ses i figur 4.1 og kombinationsgrupperne, der danner grundlag for pre-flop handlinger findes i Appendiks A. Placering. Agenten forholder sig ikke til sin placering ved bordet. Dette spiller i større turneringer en større rolle, men da denne agent er specifikt designet til at spille en-mod-en, har vi nedprioriteret dette. Styrken af hånden. Agenten forholder sig efter floppet til outs og kombinationer. Der er foretaget et valg, der beslutter, at alle kombinationer med tre ens eller bedre vil blive betrægtet som vindende hænder. Derfor forholder agenten sig ikke kritisk til, hvad modstanderen kan have. 36 af 60 RUC - Roskilde Universitet

46 Gruppe 8 4 Metode Spillelyst og aggressivitet. Agenten vil kun spille med, hvis regler omspillet for equityen er tilfredsstillet. Disse er, at: Hvis equity < call cost, vil agenten folde. Hvis equity call cost, vil agenten calle. Hvis equity > 1,5 call cost, vil agenten raise. Hvis equity > 10 call cost, vil agenten gå all in. Da equity er en anslået værdi for din hånd, ønsker man generelt, at en stærk hånd også får et godt afkast, hvorfor man raiser eller i tilfælde af meget stærke hænder går all in. Alle disse numre har vi selv valgt på baggrund af ræsonnement af teorien og kilderne. Vi har desuden valgt, at den menneskelige agent for det første ikke tæller outs til straight flush, da alle disse outs vil gå igen i enten outs for straight eller outs for flush. Der er simpelthen intet grundlag for at have det med to gange i koden. For det andet tæller agenten kun outs for hænder, som den mangler ét kort til at få. Med det menes, at hvis agenten sidder med og på bordet ligger så vil agenten ikke tælle outs for en flush. Dette valg er taget på baggrund af besværligheden af at kode det anderledes, og på grund af den i forvejen lave chance for at det sker (4.16%) Matematisk agent Den matematiske agent benytter sig af Monte Carlo algoritmen, som er beskrevet i 3.6, til at bestemme sandsynligheden for at den givne hånd vil vinde. Som det ser ud nu, er Nat-Bach 14.1 og af 60

47 4 Metode Simulering af poker der uhensigtsmæssigheder i beslutningstræet for denne agent så denne defineres senere. Hovedtanken er dog, at den skal benytte equity i alle runder med samme udregning. Afgrænsning af matematisk agent Der er begrænsninger og forholdsregler, der er taget, under udarbejdelsen af agenten. De primære afgrænsninger omhandler: Placering. Lige som den menneskelige agent tager den matematiske heller ikke hensyn til dens placering ved bordet og udregner blot sandsynligheden for at vinde over én modstanders hånd. Spillelyst og aggressivitet. Den matematiske agents hovedbeslutningstræ er nøjagtigt magen til den menneskeliges for at sikre at ens spillelyst og spillestil og for at undgå for mange variabler, der spiller ind på resultatet. 4.2 Hypotese for forsøg På baggrund af beskrivelsen af de to forskellige agenter er følgende hypoteser blevet udarbejdet. Delhypotese 1. Det forventes at ved spil mellem den samme agent, dvs. matematisk imod matematisk og menneskelig imod menneskelig, vil være en minimal afvigelse, imellem hvem vinderen er. Ved et stort antal simuleringer vil der være en så lille afvigelse, at denne kan tildeles tilfældigheden ved poker. Delhypotese 2. Da der er forskel på de to agenter, forventes det, at de ikke vil vinde lige mange gange. Afvigelsen fra et resultat, hvor de begge vinder lige meget, forventes altså at være statistisk signifikant. Hovedhypotese. Da den matematiske agent burde udregne equity langt mere præcist end den menneskelige, forventer vi, at den matematiske agent vil vinde oftere end den menneskelige. 38 af 60 RUC - Roskilde Universitet

48 Gruppe 8 5 Resultater og Analyse 5 Resultater og Analyse Resultaterne af vores simuleringer vil her blive præsenteret. Da selve analysen af vores data grundet forsøgets natur er meget simpel, vil denne blive foretaget samtidig. 5.1 Menneskelig imod Menneskelig Ens afgrænsninger Som grundlæggende test for frameworket, den menneskelige agent og for at se udfaldet af tilfældighed lod vi den menneskelige agent spille imod sig selv med udfaldet: Tabel 4: Test af menneskelig agent imod sig selv i simulerede spil Menneskelig agent Menneskelig agent vundne spil vundne spil Tabel 4 viser, hvor tæt agenten spiller imod sig selv. En så lille afvigelse skyldes kun tilfældighed Forskellige afgrænsning Vi lod også den menneskelige spille imod sig selv med forskellige indstillinger. Den ene antog 2 par eller højere ville være en vindende hånd, hvorimod den anden satte grænsen ved 3 ens eller højere. Tabel 5: Test af menneskelig agent imod sig selv i simulerede spil, med forskellige afgrænsninger Menneskelig agent med 2 par vundne spil (45 %) Menneskelig agent med 3 ens vundne spil (55 %) Tabel 5 viser at der er en ikke ubetydelig forskel på den menneskelige agents præstation i mod sig selv med forskellige afgrænsninger. Nat-Bach 14.1 og af 60

49 5 Resultater og Analyse Simulering af poker 5.2 Matematisk imod Matematisk På samme måde testede vi den matematiske agent imod sig selv, med følgende udfald: Tabel 6: Test af matematisk agent imod sig selv i 9000 simulerede spil Matematisk agent Matematisk agent 4470 vundne spil 4530 vundne spil Her benyttedes nøjagtigt samme forudsætninger, og der var altså således ingen forskel i agenternes beslutningstagen. Der ses i tabel 6 at der er blot en afvigelse på 30 spil ud af 5000, hvilket er inden for en acceptabel grænse til at kunne tildeles spillets tilfældige natur som årsag. 5.3 Menneskelig imod Matematisk - Enkelt sample Ved simulering af spil mellem den menneskelige agent og matematiske agent ses resultatet i tabel 7 herunder. Tabel 7: Antal vundne spil ud af en simulering af spil. Menneskelige Agent Matematiske Agent vundne spil vundne spil χ 2 test Tabel 8: Antal vundne spil ud af spil. Nul hypotesen antager, begge spillere har samme sandsynlighed for at vinde. Observeret Nul hypotese Menneskelige Agent vundne spil vundne spil Matematiske Agent vundne spil vundne spil Hvorvidt resultaterne skyldes tilfældigheder, eller om der faktisk er tendens bliver besluttet ved hjælp af χ 2 -test. Vi antager tilfældigheden er givet ved, at begge har 50% sandsynlighed for at vinde. 40 af 60 RUC - Roskilde Universitet

50 Gruppe 8 5 Resultater og Analyse Vi udregner derfor χ 2 for disse værdier og finder: χ 2 ( )2 ( )2 = + = 1289, Denne værdi findes ikke i opslagstabellen (Myra Samuels 2012, p.627), men tabellen løber eksponentielt, så vi har udregnet, hvordan tabellen fortsætter, hvorfor vi kan beslutte sandsynligheden. Dette har vi gjort ud fra B.1 i appendikset. Figur 5.1: Udviklingen for χ 2 brugt til at finde formlen for hvilken en given χ-værdi kan indsættes på x s plads, hvorefter en sandsynlighed findes. Dette for 1 frihedsgrad Nat-Bach 14.1 og af 60

51 5 Resultater og Analyse Simulering af poker Med 1 frihedsgrad findes derfor ud fra 5.1, at sandsynligheden for at agenterne med 50% sandsynligheden for at vinde har ramt dette resultat er: 0, 4443e 0, ,613 = 1, Hvilket er så usandsynligt, at det ikke er praktisk muligt at ramme dette resultat. Dette betyder, at der er betydelig forskel i sandsynlighederne for at vinde, hvilket vil blive diskuteret i afsnit 6. Figur 5.2: Graf over den gennemsnitlige balance imellem de to spiller i løbet af 1000 vilkårlige spil. Positiv balance tilhører den matematiske agent og negativ balance tilhører den menneskelige agent. Begge agenter har startet med en balance på 100, og hvis et spil har varet færre antal hænder end 64, er den endelige stilling brugt til at beregne gennemsnittet ved den givne hånd. 42 af 60 RUC - Roskilde Universitet

52 Gruppe 8 5 Resultater og Analyse Ud fra figur 5.2 ses, at den matematiske agent vinder størstedelen af de korte spil (de negative værdier), og den menneskelige agent generelt vinder spil længere end 38 hænder (de positive værdier). Der ses flere udsving på grafen, hvoraf nogle overskrider nul-linjen. Disse kan skyldes tendenser eller tilfældigheder. Figur 5.3: Graf over den gennemsnitlige balance imellem de to spillere i løbet af 1000 vilkårlige spil. Positiv balance tilhører den matematiske agent og negativ balance tilhører den menneskelige agent. Begge agenter har startet med en balance på 100, og hvis et spil har varet færre end 64 hænder, er den endelige stilling brugt til at beregne gennemsnittet ved den givne hånd. Nat-Bach 14.1 og af 60

53 5 Resultater og Analyse Simulering af poker Figur 5.3 viser, at den menneskelige agent (de negative værdier) gennemsnitligt vinder støt hele spillet igennem. Udsvingene på denne graf er dog ikke nok til, at den overskrider nul-linjen. 5.4 Menneskelig imod Matematisk - Flere samples Ved at foretage 7 ens simulering, 4 med 3000 spil og 3 med 6000 spil, er der foretaget tilsammen flere simulerede spil med den menneskelige agent imod den matematiske agent. Resultatet af disse spil kan ses i tabel 9. Tabel 9: Test af menneskelig agent (2 par) imod matematisk agent simulerede spil. Dette resultat er sammensat af 7 simuleringer. Antal vundne spil Menneskelig agent Matematisk agent Total: Students t-test For at benytte de to agenter statistisk bruges også students t-test. Dette er gjort på syv samples af varierende størrelse, hvorfor der regnes på vinderchances i procent - og ikke de faktisk tal. B.2 som findes i appendikset er benyttet til udregningerne. Tabel 10 viser statistik for syv samples af simuleringer, hvortil der er udregninger af gennemsnit, standardafvigelser og den faktiske sandsynlighed for, at den menneskeligeog den matematiske agent har samme vinderchancer. 44 af 60 RUC - Roskilde Universitet

54 Gruppe 8 5 Resultater og Analyse I dette tilfælde kigger den menneskelige agent efter outs for 2 par eller bedre: Tabel 10: Viser oversigt over udfald af syv forskellige simuleringer med i alt spil. Menneskelig agent kigger efter 2 par eller bedre. Antal sejre Win Menneskelig Matematisk Menneskelig Matematisk Afvigelse (Afvigelse) ,633 38,367 0,679 0, ,533 38,467 0,579 0, ,817 38,183 0,862 0, ,267 38,733 0,312 0, ,433 38,567 0,479 0, ,800 41,200-2,155 4, ,200 39,800-0,755 0,570 Hvilket giver: Gennemsnitlig vinderchance for den menneskelige agent: 60, 955% Gennemsnitlig vinderchance for den matematiske agent: 39, 045% Standardafvigelse: 1, 086% Standard Error: 0, 410% T-score: 26, 687 Degrees of freedom: 6 Sandsynligheden at de to agenter har samme forudsætninger for at vinde: 8, Figur 5.4 viser, at - ligesom med χ 2 -testen - det kan konkluderes, at det er så usandsynligt, at dette udfald er fremkommet tilfældigt, at det kan konkluderes, at der er synlig forskel på kriterierne, der beslutter udfaldet for de to agenter. Hvad der forårsager disse resultater vil blive diskuteret yderligere i afsnit 6. Nat-Bach 14.1 og af 60

55 5 Resultater og Analyse Simulering af poker Figur 5.4: Udviklingen for Students t-distribution - her med 6 frihedsgrader. 46 af 60 RUC - Roskilde Universitet

56 Gruppe 8 6 Diskussion 6 Diskussion Resultaterne er ikke, hvad vi forventede, da vi antog, at fordi den matematiske agents Monte Carlo-algoritme kunne udregne præcise sandsynligheder, ville den være bedre, end outs og equity er for den menneskelige agent. Der er tydeligt præg af, at aggressivitet spiller en stor rolle, hvorfor den forudbestemte strategi spiller en større rolle end metoden, der benyttes til at udregne, hvorvidt en hånd er værd at spille eller ej. De to grafer (figur 5.2 og figur 5.3) blev lavet for at give indsigt i spillets forløb, men graferne er så forskellige, at de ikke kan bruges til at spotte en tendens. Det, de dog kan antyde, er, at vores simuleringer ikke er så homogene, at et tilfældig udsnit vil vise nogenlunde samme kurve som for alle simuleringerne. Det havde selvfølgelig været bedst, hvis vi kunne lave grafen over alle simuleringerne, men det lod sig af praktiske årsager ikke gøre. Grafernes markante forskellighed tyder dog på, at det faktisk er ret tilfældigt, hvilken agent der vinder hvilken hånd, og hvis det forholder sig sådan, ville en graf over alle simuleringerne ikke være særlig nyttig. Afgrænsningerne, der er foretaget i udarbejdelsen af de to agenter, har naturligvis konsekvenser. Selvom en fuldstændig matematisk udregning af grundlag for beslutningstagning med baggrund i sandsynligheder er en fundamental del af automatiseret pokerspil, vil begge vores agenter være grundlæggende begrænset af ikke at genkende mønstre i modspilleres spil. Der er i modspilleres spillestil, en hel del information som gode poker spillere almindeligvis tager hensyn til (Nicholson et al. 2006, s. 3). Det skal nævnes, at frameworket og agenterne kun spiller i et system, hvor der kun er to spillere. Det er nærtliggende at diskutere, hvorvidt andre resultater havde været fundet, hvis der havde været rum til flere spillere. Derfor skal det også understreges, at dette forsøgs primære mål er at betragte den ene agents måde at håndtere sandsynlighed i forhold til den anden agents i et så direkte opgør som muligt. Agenterne agerer tilfredsstillende udfra beslutningstræet og de parametre, dette inkluderer. Dog er man nødt til at bringe bluff og slowplay op, da et menneske hurtigt ville kunne Nat-Bach 14.1 og af 60

57 6 Diskussion Simulering af poker aflæse agenternes opførsel, der er baseret primært på equity. Dette betyder, at man ville kunne bluffe meget, hvilket ville tvinge agenterne til at folde deres hånd, hvorimod den kun caller/raiser, hvis den vurderer, den har en hånd, som er stærk nok til at retfærdiggøre dette kald, hvortil den menneskelige spiller kan forholde sig til dette og spille/folde hånden afhængigt af den konkrete situation. Med andre ord spiller den fuldstændig efter dens hånds kvalitet - better den meget, har den en god hånd, og det vil derfor være smart at folde, hvis man ikke har en god hånd selv. Desuden ville det også være smart af agenterne at kigge på modstanderens balance. Hvis man har en højere balance end sin modstander, har man en åbenlys fordel, da man kan tåle at tabe flere penge end modstanderen. Dette ville være en naturlig styrke at udnytte for en god pokerspiller. Dette er dog ikke en fejl i programmeringen, tværtimod, da agenterne er programmeret til at være rationelle, ligger bluff og slowplay ikke i deres opførsel. At agenterne ikke beskæftiger sig med modstanderens balance eller beslutninger har også andre konsekvenser. Først og fremmest går agenterne ikke ud fra, at modstanderen kan aflæses, og lærer derved ikke hvordan de bedst kan overvinde modstanderen. Dette er beskrevet før. Omvendt antager agenterne heller ikke, at modstanderen kan aflæse dem. Dette er også årsagen til, at de ville fungere dårligt imod en menneskelig modspiller. Afgrænsningen, der involverer kun at have to spillere, betyder, at de to agenter er lette at sammenligne i en direkte en-mod-en, men vil også give andre resultater i et spil med flere spillere, hvor de begge f.eks. ville ignorere placering i forhold til hvem der har udspillet. Dette er ret væsentligt for en god pokerspillers spillestil. Derudover ville de også overvurdere deres chancer for at vinde. Altså siger vores resultater kun noget om deres evner i en-mod-en opgør. Som det ses, varierer resultatet i tabel 7 side 40 og tabel 9 side 44 ikke meget. Forskellen på de to simulationsgrupper er, som nævnt, at den menneskelige agent i første spil antager, at 3 ens eller højere er en vindende hånd, imens den i andet spil også antager at 2 par er en vindende hånd. Ved de første simuleringer ses en klar tildens til, at den menneskelige vinder mest (ca. 60 % ), og ved de næste simuleringer ser man 48 af 60 RUC - Roskilde Universitet

58 Gruppe 8 6 Diskussion samme tendens til, at den menneskelige agent vinder mest (ca. 61%). Det antyder, at det ikke betyder det store, om den menneskelige agent også går efter 2 par, når den spiller mod den matematiske. Det bekræftes i afsnit 5.3.1, at det ikke er en tilfældighed, der er tale om, når begge de to grupper af simuleringer havner ved %. Det kan dog virke overraskende, at den menneskeliges afgrænsning (2 par eller 3 ens) øjensynligt ikke har den store betydning, når nu afsnit 5 viser, at den menneskelige klarer sig bedre imod sig selv, hvis den ikke accepterer 2 par i forhold til, hvis den gør. Der er altså god grund til at tro, at den menneskelige har en større sandsynlighed for at vinde, uanset hvilken version af outs afgrænsningen den benytter. Dette kan antyde, at den menneskelige i langt højere grad vinder i pre-floppet, hvor de to versioner af den menneskelige ikke varierer. Det kan også bunde i en tendens til, at den matematiske folder meget, imens den menneskelige er meget aggressiv uanset afgrænsning. Den menneskelige vil benytte samme tabelværdier uanset afgrænsning. Da der er 20, 04 : 1 odds for at få 2 par svarende til 4,75 %-point (jvf. tabel 1), vil der ikke være stor forskel på de to versioner af den menneskelige i forhold til den matematiske. Havde vores simuleringer også talt sammen, hvordan agenterne vinder, og hvilken der havde udspillet hvornår, ville vi muligvis kunne have spottet en tendens i, hvad der gjorde, at den matematiske taber mest. At den menneskelige vinder mest, skyldes derfor nok den relative aggression, den har i forhold til den matematiske. Resultaterne er tydeligt præget af, at den menneskelige agent er villig til at gå mere all-in, hvilket ofte får den matematiske agent til at folde. Det er ikke per se et bluff, da den menneskelige er kodet til at antage, at den sidder med gode hænder i situationer, hvor den måske ikke gør. I praksis kan man dog godt se det som et bluff, hvor den bare også "snyder"sig selv. På baggrund af resultaterne er det også naturligt at bringe emnet op om, hvorvidt outs, pot odds og equity er et forsvarligt grundlag for beslutninger i en given pokersituation. Nat-Bach 14.1 og af 60

59 6 Diskussion Simulering af poker Siden den gennemsnitlige pokerspiller ikke er i stand til at overskue sandsynligheder på samme måde som Monte Carlo-algoritmen, men dog stadig formår at vinde en betragtelig andel af spillene, vurderes det, at det umiddelbart er en velfungerende handlingsplan at tælle outs og udregne pot odds eller equity. Det er i hvert fald, den tendens som vores resultater giver, med de afgrænsninger vi har. 50 af 60 RUC - Roskilde Universitet

60 Gruppe 8 7 Konklusion 7 Konklusion Som svar på problemformuleringen fra afsnit 1.1 må det konkluderes, at det er muligt at designe et program med tilhørende agenter, der kan spille poker på et tilfredsstillende niveau. Den matematiske agent, som var i fokus i dette projekt, spiller dog ikke lige så godt som forventet. Der er tendenser, som det kan ses i resultatafsnittet, 5, der giver indtryk af, at aggressivitet i dette tilfælde præger udfaldene meget. Den matematiske agents beslutningstagen er meget præget af forsigtighed, så der kan argumenteres for, at den i dette tilfælde ikke ville spille optimalt imod menneskelige spillere. Nat-Bach 14.1 og af 60

61 8 Perspektivering Simulering af poker 8 Perspektivering I forbindelsen med rapportens udarbejdelse har vi gjort os en række overvejelser omkring hvilke yderligere perspektiver, der kan tages, og hvordan projektet kunne udvides udover vores afgrænsning for at opnå andre interessante resultater. Disse vil her blive diskuteret. Hvorvidt poker er held eller evner er meget relevant, da det i år 2009 blev dømt ved højesteretten til at være hasardspil (Zemanova 2009), hvor artiklen siger, at poker er hasardspil og at: "Definitionen på hasard er, at udfaldet næsten kun beror på tilfældigheder, og at der spilles om betydelige beløb". Der er i denne rapport stillet spørgsmåltegn ved netop denne definition. Der ses tydelig sammenhæng imellem strategi og udfald. Dette giver et tydeligt billede på, at i modsætning til rettens ord bærer udfaldet af poker i højere grad præg af strategi, evner og sandsynlighed end tilfældighed. Dette kan bringe tankerne på andre hasardspil, hvor tilfældighed er den centrale kernekomponent. Der kan argumenteres for, at spil i større eller mindre grad har mulighed for at få reduceret effekt af tilfældighed, hvis man blot spiller tilpas mange spil. Herefter vil den bedre spiller - eller spilleren med den bedre strategi vinde flere spil. Uanset om et spil er afhængige af kort, terninger eller andre ukontrollerbare faktorer, vil en lignende test på tilsvarende spil kunne afspejle, hvorvidt en strategi vil kunne vinde spil. Andre eksempler på spil kunne være: Backgammon Matador Bridge Whist Alle disse spil har en rang af tilfældighed, da de inkluderer terningslag eller kort, der er tilfældigt givet. Dog er det op til den enkelte spiller at vurdere, hvordan man agerer på udfaldet af tilfældighed. Der kan argumenteres for, at des mere magt - altså evne til at 52 af 60 RUC - Roskilde Universitet

62 Gruppe 8 8 Perspektivering kontrollere udfald af spillet - der ligger hos spilleren, des mere vil en bedre spiller - altså en overlegen strategi - vinde. Tidligere vinder af World Series of Poker argumenterer da også for, at tilfældigheden i længden betyder mindre og mindre, og udfald i længden afhænger af spilleren: Over a long period of time, the worst player in the world is going to catch just as many good cards as the best player in the world. (Brunson 1979) Dermed ikke sagt at alle valgmuligheder i alle spil fjerner tilfældighed. Det skal understreges, at det afhænger af magten til at påvirke spillet. Man kan ikke påvirke et terningkast eller en lottotrækning, selvom man har mulighed for selv at vælge, hvilke tal der skal spilles på. Derfor vil mange spil havne i en gråzone, hvor tilfældighed let kan have større betydning end strategien - dog bærer poker ikke præg af dette. En mulig udvidelse af dette projekt ville være at tilføje noget tilfældighed i måden, hvorved agenterne tager deres beslutninger. (Nicholson et al. 2006) skriver om en måde, hvorved de har opnået dette med deres program. Ved at ændre på aggresiviteten i en agents spillestil i en hel hånd på en tilfældig måde, åbnes der op for muligheden for at have en varierende spillestil i ens situationer. Ved at modificere, hvor meget der kan varieres, kan det stadig være muligt at holde agenten inden for et område af beslutninger, der stadig er rationelle. (Nicholson et al. 2006) viser altså, at det ikke nødvendigvis er et krav, at agenten tager forkerte beslutninger i løbet af et spil for at sikre, at agentens spillestil ikke kan gennemskues og udnyttes af modspillere. En lignende uforudselighed benyttes også i (Billings et al. 2002). Der udregnes i (Billings et al. 2002) nogle sandsynligheder for, at deres agent tager ét bestemt valg ud af tre forskellige mulige. Her genereres så en tilfældig værdi, der modificerer sandsynlighederne på en tilfældig måde i større eller mindre grad for at sikre, at deres agents beslutning ikke vil være fuldstændigt forudsigeligt, et problem der, som tidligere diskuteret i denne rapport, ville være yderst tilstedeværende, hvis vores agent skulle udvides til at spille mod modstandere, der er i stand til at modellere dens spillestil. I afsnit 2.3 blev det fravalgt at holde øje med modspilleres spillestil og balance. Netop denne del af spillet er en af de fundamentale dele af pokerspil på højt niveau, og noget professionelle poker spillere er eksperter i (Billings et al. 2002). Det ville derfor klart være et område af pokersimulering, hvor dette projekt ville kunne udvides, for at forbedre Nat-Bach 14.1 og af 60

63 8 Perspektivering Simulering af poker agenters spillestil. En mulig måde at lave den modellering af modspillere er ved hjælp af bayesianske netværk og udformninger af disse. Netop den type modellering af modspillere er fokusområdet for (Nicholson et al. 2006), og en mulig udbygning af dette projekt til at inkludere modellering af modspillere, ville kunne søge stor inspiration i netop (Nicholson et al. 2006) 54 af 60 RUC - Roskilde Universitet

64 Gruppe 8 9 Ordliste 9 Ordliste Agent En computerstyret spiller som følger et internt regelsæt og reagerer på sine omgivelser.først set i afsnit 1 All in At satse hele sin beholdning af penge. Se afsnit Ante Et beløb alle spillere indskyder i puljen fra start. Det er meget forskelligt, hvor meget ante er - og om det overhovedet er inkluderet i spillet eller ej. Dette afhænger af den enkelte turnering. Se afsnit Bet At lægge de første penge i en betting-runde. Først set i afsnit Binomialkoeffecient Se afsnit Blind Findes i Big og Small. Small blind er første spiller efter dealerbutton og lægger første, prædefinerede, indskud til Pot en. Big blind lægger det dobbelte af Small blind, med mindre en eller begge ikke har nok penge. I dette tilfælde går spilleren all in. Se afsnit Bluff At spille som om man har bedre kort, end man har. Se afsnit Call At gå med på den foregående (stadig aktive) spillers indsats. Se afsnit Check At sende turen videre. Kan kun foregå hvis der ikke er blevet raise t forinden. Se afsnit Connectors To på hinanden følgende kort. Se afsnit Eksempel: Dealer Spillets kortholder og fordeler af puljen efter en afsluttet runde. Se afsnit Dealerbutton Markør som viser hvor runden starter. Når den har været hele vejen rundt hæves small(og dermed også big) blind. Se afsnit Deck Kortspillet eller bunken af ukendte kort hos dealer. Se afsnit Nat-Bach 14.1 og af 60

65 9 Ordliste Simulering af poker Draw Når spillet ender med at stå lige. Hvis spillet ender her, deles gevinsten mellem vinderne. Se afsnit Equity Værdien af en hånd. Lægger grund for vurdering af om en hånd bør spilles. Er håndens værdi højere end det krævne beløb for at calle, bør man spille hånden. Se afsnit Udregnes: (total pot vinderchance) Fold At give op for den nuværende runde. Man mister sit indskud og afleverer sine kort. Se afsnit Flop Stadiet i spillet, hvor der ligger tre kort på bordet. Se afsnit Flush Fem kort med samme suit. Se afsnit Eksempel: Framework Pokerspillet som agenterne spiller i. Se afsnit 3.4 Fuldt hus Et par og tre ens. Eksempel: Hånd En hånd er defineret som perioden fra spilleren får kort, til spilleren får nye kort. Se afsnit Kombinationer Par, straight, flush osv. Kort I poker spilles med et normalt sæt spillekort, med es til konge i fire kulører. Jokere er ikke med. Metode I programmering er en metode en handling, som en klasse er udstyret med, og som andre klasser kan kalde ved eksekvering af programmet. Monte Carlo Algoritme Se afsnit af 60 RUC - Roskilde Universitet

66 Gruppe 8 9 Ordliste Open-ended straight draw Fire på hinanden følgende kort, så et kort i starten eller enden af rækken vil fyldestgøre en straight. Se afsnit Eksempel:, hvor for eksempel ville fuldende straight en. Outs Antal kort der kan give dig den hånd du leder efter. Se afsnit Par To kort med samme værdi. Eksempel: Pot Rundens pulje. Pot Odds Vurdering om hvorvidt man skal calle i en given situation. Hvis puljens størrelse/vinderchancen er større end det beløb man skal indskyde, vil man gå med. Se afsnit Pre-flop Perioden før der kommer kort på bordet. Pulje Egne penge. Også kendt som balance. Raise At hæve sin indsats over alle andres. Se afsnit Reraise Når man raiser efter, men i samme runde som en anden. Se afsnit River Perioden hvor alle fem kort er på bordet. Runde En runde er når spilleren der har dealerbutton, efter en række hænder, modtager dealerbutton igen. Se afsnit Show down Alle kort vises, og en vinder udpeges. Straight Fem på hinanden følgende kort. Eksempel: Nat-Bach 14.1 og af 60

67 9 Ordliste Simulering af poker Suited Kort med samme kulør/suit. Eksempel: og. Suited Connectors Kort med både samme kulør og på hinanden følgende. Eksempel: Turn Den del af spillet, hvor fjerde kort kommer/er kommet på bordet. 58 af 60 RUC - Roskilde Universitet

68 Gruppe 8 10 Litteraturliste Alspach, B. (2000), 5-card poker hands, Hjemmeside. alspach/comp18/. Billings, D., Davidson, A., Schaeffer, J. & Szafron, D. (2002), The challenge of poker, Artificial Intelligence 134(1 2), Braids, S. (2003), The Intelligent Guide to Texas Hold Em, Intelligent Games Publisher. Brunson, D. (1979), Super System, Cardoza Publishing. David W. Frye, C. D. F. (2005), Winning Secrets of Online Poker, Thomson Course Technology. Flynn, M., Mehta, S. & Miller, E. (2007), Professional No-Limit Hold em: Volume I, 1. edn, Two Plus Two Publishing LLC. Harrington, D. (2005), Harrington on Hold Em: Volume 2: The Endgame, Two Plus Two Publishing. Horstmann, C. S. (2010), Java Concepts, John Wiley & Sons, Inc. Myra Samuels, Jeffrey A. Witmer, A. A. S. (2012), Statistics for the Life Sciences, Pearson Education Inc. Nash, J. F. (1950), Non-Cooperative Games, PhD thesis, Princeton University. Nicholson, A. E., Korb, K. B. & Boulton, D. (2006), Using bayesian decision networks to play texas hold em pkoer, ICGA journal. Rosen, K. H. (2007), Discrete Mathematics and Its Applications, 6. edn, McGraw-Hill. Scott, K. (2001), UML Explained, Addison-Wesley. Sklansky, D. (2007), The Theory of Poker, 4. edn, Two Plus Two Publishing LLC. Nat-Bach 14.1 og af 60

69 Simulering af poker Sylvestro, T. (06), Determining hand strength in texas holdem poker, Master s thesis, MIT. Vohl, G., Boskovic, B. & Brest, J. (2012), A rembrandt poker bot program, Elektrotehni ski Vestnik 79(1-2), von Neumann, J. & Morgenstern, O. (1944), Theory of Games and Economic Behavior, Princeton University Press. WizardOfOdds (2004), Texas hold em initial hold em hands in rank order - 2 player game. tilgået 06/ URL: Zemanova, C. (2009), Højesteret: Poker er ulovligt, Politiken. 60 af 60 RUC - Roskilde Universitet

70 A Appendiks - Pre-flop tabeller Følgende tabeller stammer fra (WizardOfOdds 2004). Tabellerne er skabt ved udregning af samtlige mulige udfald, et topersoners poker spil kan ende i, efter spilleren har fået uddelt en bestemt hånd. Det præcise antal vundne og tabte spil kan findes i (WizardOfOdds 2004) Tabel A.1: Procent vundne spil for par. (WizardOfOdds 2004) Hånd Procent vundet AA 84,93% KK 82,12% QQ 79,63% JJ 77,15% TT 74,66% 99 71,67% 88 68,72% 77 65,73% 66 62,70% 55 59,64% 44 56,26% 33 52,84% 22 49,39% A

71 Tabel A.2: Procent vundne spil for ikke-par. (WizardOfOdds 2004) Hånd Procent vundet Procent vundet Procent vundet Hånd Hånd Suited Ikke Suited Suited Ikke Suited Suited Ikke Suited AK 66.22% 64.47% Q % 51.93% % 42.10% AQ 65.31% 63.51% Q % 49.90% % 40.14% AJ 64.40% 62.54% Q % 49.00% % 38.09% AT 63.49% 61.57% Q % 47.96% % 37.43% A % 59.45% Q % 46.92% % 36.52% A % 58.37% Q % 46.02% % 42.69% A % 57.17% Q % 45.11% % 40.70% A % 55.87% JT 56.15% 53.83% % 38.74% A % 55.74% J % 51.64% % 36.71% A % 54.73% J % 49.71% % 34.75% A % 53.86% J % 47.73% % 34.09% A % 52.95% J % 45.71% % 39.65% KQ 62.41% 60.43% J % 44.90% % 37.67% KJ 61.48% 59.44% J % 43.87% % 35.66% KT 60.59% 58.49% J % 42.97% % 33.72% K % 56.41% J % 42.05% % 31.71% K % 54.43% T % 49.82% % 37.01% K % 53.42% T % 47.82% % 35.00% K % 52.30% T % 45.83% % 33.07% K % 51.25% T % 43.85% % 31.08% K % 50.23% T % 41.86% % 35.07% K % 49.33% T % 41.06% % 33.16% K % 48.42% T % 40.16% % 31.19% QJ 59.07% 56.91% T % 39.24% % 32.07% QT 58.17% 55.95% % 46.07% % 30.12% Q % 53.86% % 44.07% % 29.24% B

72 B Appendiks - χ og Students t I forbindelse med den statistiske analyse af vores resultater, i afsnit 5, er følgende tabeller benyttet. Tabel B.1: Tabel over de kritiske værdier for en χ 2 distribution. (Myra Samuels 2012) C

73 Tabel B.2: Tabel over de kritiske værdier for en Students t distribution. (Myra Samuels 2012) D

POKER. Information. Åbent alle dage fra 14.00-04.00 (Lukket d. 24. december, 25. december åbnes kl. 20.00)

POKER. Information. Åbent alle dage fra 14.00-04.00 (Lukket d. 24. december, 25. december åbnes kl. 20.00) Information Åbent alle dage fra 14.00-04.00 (Lukket d. 24. december, 25. december åbnes kl. 20.00) POKER Entré: 90 kr. Garderobe: 15 kr. Påklædning: Pænt tøj ingen sportstøj Mindstealder 18 år Billedlegitimation

Læs mere

HUSREGLER FOR POKER Royal Scandinavian Casino august 2013

HUSREGLER FOR POKER Royal Scandinavian Casino august 2013 HUSREGLER FOR POKER Royal Scandinavian Casino august 2013 Kapitel I: Spillet 1. Deltagelse i et Poker spil. Stk. 1. Bestemmelse omkring reserveringer og deltagelse ved Pokerbordet er udelukkende op til

Læs mere

Fagårsplan 10/11 Fag: Matematik Klasse: 7.ABC Lærer: Henrik Stillits. Fagområde/ emne

Fagårsplan 10/11 Fag: Matematik Klasse: 7.ABC Lærer: Henrik Stillits. Fagområde/ emne Fagårsplan 10/11 Fag: Matematik Klasse: 7.ABC Lærer: Henrik Stillits. Fagområde/ emne Matematiske færdigheder Grundlæggende færdigheder - plus, minus, gange, division (hele tal, decimaltal og brøker) Identificer

Læs mere

Fag- og indholdsplan 9. kl.:

Fag- og indholdsplan 9. kl.: Fag- og indholdsplan 9. kl.: Indholdsområder: Tal og algebra: Tal - regneregler og formler Størrelser måling, beregning og sammenligning. Matematiske udtryk Algebra - teoretiske sammenhænge absolut og

Læs mere

Bilag. Resume. Side 1 af 12

Bilag. Resume. Side 1 af 12 Bilag Resume I denne opgave, lægges der fokus på unge og ensomhed gennem sociale medier. Vi har i denne opgave valgt at benytte Facebook som det sociale medie vi ligger fokus på, da det er det største

Læs mere

Projekt - Visual Basic for Applications N på stribe

Projekt - Visual Basic for Applications N på stribe Projekt - Visual Basic for Applications N på stribe Mikkel Kaas og Troels Henriksen - 03x 3. november 2005 1 Introduktion Spillet tager udgangspunkt i det gamle kendte 4 på stribe, dog med den ændring,

Læs mere

Spil og ludomani - et studieretningsprojekt om poker (matematik A og andet fag, se nedenfor).

Spil og ludomani - et studieretningsprojekt om poker (matematik A og andet fag, se nedenfor). 7.4.07 Kristian Priisholm med tak til mine kolleger Annette og Katrine for bistand om psykologi. Spil og ludomani - et studieretningsprojekt om poker (matematik A og andet fag, se nedenfor). Introduktion

Læs mere

Simulering af stokastiske fænomener med Excel

Simulering af stokastiske fænomener med Excel Simulering af stokastiske fænomener med Excel John Andersen, Læreruddannelsen i Aarhus, VIA Det kan være en ret krævende læreproces at udvikle fornemmelse for mange begreber fra sandsynlighedsregningen

Læs mere

Selam Friskole Fagplan for Matematik

Selam Friskole Fagplan for Matematik Selam Friskole Fagplan for Matematik Formål Formålet med undervisningen er, at eleverne udvikler matematiske kompetencer og opnår viden og kunnen således, at de bliver i stand til at begå sig hensigtsmæssigt

Læs mere

Mathias Turac 01-12-2008

Mathias Turac 01-12-2008 ROSKILDE TEKNISKE GYMNASIUM Eksponentiel Tværfagligt tema Matematik og informationsteknologi Mathias Turac 01-12-2008 Indhold 1.Opgaveanalyse... 3 1.1.indledning... 3 1.2.De konkrete krav til opgaven...

Læs mere

Spilstrategier. 1 Vindermængde og tabermængde

Spilstrategier. 1 Vindermængde og tabermængde Spilstrategier De spiltyper vi skal se på her, er primært spil af følgende type: Spil der spilles af to spillere A og B som skiftes til at trække, A starter, og hvis man ikke kan trække har man tabt. Der

Læs mere

Hassansalem.dk/delpin User: admin Pass: admin INTERFACE DESIGN

Hassansalem.dk/delpin User: admin Pass: admin INTERFACE DESIGN Hassansalem.dk/delpin User: admin Pass: admin INTERFACE DESIGN 1/20 Indledning Dette projekt er den afsluttende del af webudvikling-studiet på Erhvervs Lillebælt 1. semester. Projektet er udarbejdet med

Læs mere

Roskilde Tekniske Gymnasium. Eksamensprojekt. Programmering C niveau

Roskilde Tekniske Gymnasium. Eksamensprojekt. Programmering C niveau Roskilde Tekniske Gymnasium Eksamensprojekt Programmering C niveau Andreas Sode 09-05-2014 Indhold Eksamensprojekt Programmering C niveau... 2 Forord... 2 Indledning... 2 Problemformulering... 2 Krav til

Læs mere

Årsplan 9. klasse matematik 2013-2014 Uge Emne Faglige mål Trinmål Materialer/ systemer 33 Årsprøven i matematik

Årsplan 9. klasse matematik 2013-2014 Uge Emne Faglige mål Trinmål Materialer/ systemer 33 Årsprøven i matematik Årsplan 9. klasse matematik 2013-2014 33 Årsprøven i matematik Årsprøve og rettevejledledning 34-35 36 og løbe nde Talmængder og regnemetoder Mundtlig matematik 37 Fordybelses uge 38-39 Procent - Gennemgå

Læs mere

Manual til regneark anvendt i bogen. René Vitting 2014

Manual til regneark anvendt i bogen. René Vitting 2014 Manual til regneark anvendt i bogen René Vitting 2014 Introduktion. Dette er en manual til de regneark, som du har downloadet sammen med bogen Ind i Gambling. Manualen beskriver, hvordan hvert regneark

Læs mere

Matematik i AT (til elever)

Matematik i AT (til elever) 1 Matematik i AT (til elever) Matematik i AT (til elever) INDHOLD 1. MATEMATIK I AT 2 2. METODER I MATEMATIK OG MATEMATIKKENS VIDENSKABSTEORI 2 3. AFSLUTTENDE AT-EKSAMEN 3 4. SYNOPSIS MED MATEMATIK 4 5.

Læs mere

Gennemsnit og normalfordeling illustreret med terningkast, simulering og SLUMP()

Gennemsnit og normalfordeling illustreret med terningkast, simulering og SLUMP() Gennemsnit og normalfordeling illustreret med terningkast, simulering og SLUMP() John Andersen, Læreruddannelsen i Aarhus, VIA Et kast med 10 terninger gav følgende udfald Fig. 1 Result of rolling 10 dices

Læs mere

Årsplan 8. klasse matematik 2013-2014 Uge Emne Faglige mål Trinmål Materialer/ systemer 33 og løbende

Årsplan 8. klasse matematik 2013-2014 Uge Emne Faglige mål Trinmål Materialer/ systemer 33 og løbende Årsplan 8. klasse matematik 2013-2014 33 løbende 33-34 løbende Løbende Problemregning ( faglig læsning) Mundtlig matematik (forberede oplæg til 6. klasse) - flere forskellige trinmål Ben, formelsamlingen,

Læs mere

Oprids over grundforløbet i matematik

Oprids over grundforløbet i matematik Oprids over grundforløbet i matematik Dette oprids er tænkt som en meget kort gennemgang af de vigtigste hovedpointer vi har gennemgået i grundforløbet i matematik. Det er en kombination af at repetere

Læs mere

Hvor er mine runde hjørner?

Hvor er mine runde hjørner? Hvor er mine runde hjørner? Ofte møder vi fortvivlelse blandt kunder, når de ser deres nye flotte site i deres browser og indser, at det ser anderledes ud, i forhold til det design, de godkendte i starten

Læs mere

Årsplan for 7. klasse, matematik

Årsplan for 7. klasse, matematik Årsplan for 7. klasse, matematik I matematik bruger vi bogsystemet Sigma som grundmateriale. I systemet er der, ud over grundbogen, også kopiark og tests tilknyttet de enkelte kapitler. Systemet er udarbejdet

Læs mere

Karrierekvinder og -mænd

Karrierekvinder og -mænd Rockwool Fondens Forskningsenhed Arbejdspapir 35 Karrierekvinder og -mænd Hvem er de? Og hvor travlt har de? Jens Bonke København 2015 Karrierekvinder og -mænd Hvem er de? Og hvor travlt har de? Arbejdspapir

Læs mere

Appendiks 6: Universet som en matematisk struktur

Appendiks 6: Universet som en matematisk struktur Appendiks 6: Universet som en matematisk struktur En matematisk struktur er et meget abstrakt dyr, der kan defineres på følgende måde: En mængde, S, af elementer {s 1, s 2,,s n }, mellem hvilke der findes

Læs mere

Hvad er meningen? Et forløb om opinionsundersøgelser

Hvad er meningen? Et forløb om opinionsundersøgelser Hvad er meningen? Et forløb om opinionsundersøgelser Jette Rygaard Poulsen, Frederikshavn Gymnasium og HF-kursus Hans Vestergaard, Frederikshavn Gymnasium og HF-kursus Søren Lundbye-Christensen, AAU 17-10-2004

Læs mere

ROSKILDE TEKNISK GYMNASIUM 6-10-2014. Matematik og IT projekt i klasse 3.4 af: Casper Lykke Larsen - Lars-Emil Jakobsen - Thomas Denckert Hernes

ROSKILDE TEKNISK GYMNASIUM 6-10-2014. Matematik og IT projekt i klasse 3.4 af: Casper Lykke Larsen - Lars-Emil Jakobsen - Thomas Denckert Hernes mmmatematiks RUMLIGE FIGURER 6-10-2014 ROSKILDE TEKNISK GYMNASIUM RUMLIGE FIGURER Matematik og IT projekt i klasse 3.4 af: Casper Lykke Larsen - Lars-Emil Jakobsen - Resume In the weeks from 11/09-2014

Læs mere

Projekt 1 Spørgeskemaanalyse af Bedst på Nettet

Projekt 1 Spørgeskemaanalyse af Bedst på Nettet Projekt 1 Spørgeskemaanalyse af Bedst på Nettet D.29/2 2012 Udarbejdet af: Katrine Ahle Warming Nielsen Jannie Jeppesen Schmøde Sara Lorenzen A) Kritik af spørgeskema Set ud fra en kritisk vinkel af spørgeskemaet

Læs mere

Læringsprogram. Talkonvertering. Benjamin Andreas Olander Christiansen Niclas Larsen Jens Werner Nielsen. Klasse 2.4. 1.

Læringsprogram. Talkonvertering. Benjamin Andreas Olander Christiansen Niclas Larsen Jens Werner Nielsen. Klasse 2.4. 1. Læringsprogram Talkonvertering Benjamin Andreas Olander Christiansen Niclas Larsen Jens Werner Nielsen Klasse 2.4 1. marts 2011 Fag: Vejleder: Skole: Informationsteknologi B Karl G. Bjarnason Roskilde

Læs mere

Matematik. Matematikundervisningen tager udgangspunkt i Folkeskolens Fælles Mål

Matematik. Matematikundervisningen tager udgangspunkt i Folkeskolens Fælles Mål Matematik Matematikundervisningen tager udgangspunkt i Folkeskolens Fælles Mål Formålet med undervisningen i matematik er, at eleverne bliver i stand til at forstå og anvende matematik i sammenhænge, der

Læs mere

Eleven kan handle med overblik i sammensatte situationer med matematik. Eleven kan anvende rationale tal og variable i beskrivelser og beregninger

Eleven kan handle med overblik i sammensatte situationer med matematik. Eleven kan anvende rationale tal og variable i beskrivelser og beregninger Kompetenceområde Efter klassetrin Efter 6. klassetrin Efter 9. klassetrin Matematiske kompetencer handle hensigtsmæssigt i situationer med handle med overblik i sammensatte situationer med handle med dømmekraft

Læs mere

Årsplan for matematik 2012-13

Årsplan for matematik 2012-13 Årsplan for matematik 2012-13 Uge Tema/emne Metode/mål 32 Matematiske arbejdsmåder(metode) 33 Intro 34 Tal + talforståelse 35 Brøker-procent 36 Potens+kvadrat-og kubikrod 37 Emneuge 38 Ligninger-uligheder

Læs mere

3. klasse 6. klasse 9. klasse

3. klasse 6. klasse 9. klasse Børne- og Undervisningsudvalget 2012-13 BUU Alm.del Bilag 326 Offentligt Elevplan 3. klasse 6. klasse 9. klasse Matematiske kompetencer Status tal og algebra sikker i, er usikker i de naturlige tals opbygning

Læs mere

Tips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF

Tips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF Tips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF Den afsluttende prøve i AT består af tre dele, synopsen, det mundtlige elevoplæg og dialogen med eksaminator og censor. De

Læs mere

Social Media Rapport for VIRKSOMHED A/S af Bach & McKenzie

Social Media Rapport for VIRKSOMHED A/S af Bach & McKenzie Social Media Rapport for VIRKSOMHED A/S af Bach & McKenzie Dato: 22-08-2014 Copyright af Bach & McKenzie 2014 Introduktion Indholdsfortegnelse 03 Hovedtal Kære VIRKSOMHED A/S Tillykke med jeres nye Social

Læs mere

Hypotesetest. Altså vores formodning eller påstand om tingens tilstand. Alternativ hypotese (hvis vores påstand er forkert) H a : 0

Hypotesetest. Altså vores formodning eller påstand om tingens tilstand. Alternativ hypotese (hvis vores påstand er forkert) H a : 0 Hypotesetest Hypotesetest generelt Ingredienserne i en hypotesetest: Statistisk model, f.eks. X 1,,X n uafhængige fra bestemt fordeling. Parameter med estimat. Nulhypotese, f.eks. at antager en bestemt

Læs mere

F I N N H. K R I S T I A N S E N KUGLE SIMULATIONER MÅLSCORE I HÅNDBOLD G Y L D E N D A L

F I N N H. K R I S T I A N S E N KUGLE SIMULATIONER MÅLSCORE I HÅNDBOLD G Y L D E N D A L RÆSONNEMENT & 1BE V I S F I N N H. K R I S T I A N S E N GNING 2 EGNEARK KUGLE 5 MÅLING SIMULATIONER 3 G Y L D E N D A L MÅLSCORE I HÅNDBOLD Faglige mål: Håndtere simple modeller til beskrivelse af sammenhænge

Læs mere

Lykken er så lunefuld Om måling af lykke og tilfredshed med livet, med fokus på sprogets betydning

Lykken er så lunefuld Om måling af lykke og tilfredshed med livet, med fokus på sprogets betydning Lykken er så lunefuld Om måling af lykke og tilfredshed med livet, med fokus på sprogets betydning Jørgen Goul Andersen (email: goul@ps.au.dk) & Henrik Lolle (email: lolle@dps.aau.dk) Måling af lykke eksploderer!

Læs mere

Læseplan for faget matematik. 1. 9. klassetrin

Læseplan for faget matematik. 1. 9. klassetrin Læseplan for faget matematik 1. 9. klassetrin Matematikundervisningen bygger på elevernes mange forudsætninger, som de har med når de starter i skolen. Der bygges videre på elevernes forskellige faglige

Læs mere

Brug af gamification til samarbejde og motivation af universitetsstuderende

Brug af gamification til samarbejde og motivation af universitetsstuderende Brug af gamification til samarbejde og motivation af universitetsstuderende David Lindholm, AAUE DUNk12 Hvem er jeg? PhD fellow ved Centre for Design, Learning & Innovation, Inst. for læring og filosofi,

Læs mere

Danske elevers udfordringer i matematik. Uffe Thomas Jankvist AU (DPU) & RUC

Danske elevers udfordringer i matematik. Uffe Thomas Jankvist AU (DPU) & RUC Danske elevers udfordringer i matematik Uffe Thomas Jankvist AU (DPU) & RUC Disposition for de næste 30 min. Matematikspecifikke udfordringer matematikvanskeligheder Hvad ved vi fra PISA set fra et fagdidaktisk

Læs mere

Års- og aktivitetsplan i matematik hold 4 2014/2015

Års- og aktivitetsplan i matematik hold 4 2014/2015 Års- og aktivitetsplan i matematik hold 4 2014/2015 Der arbejdes hen mod slutmålene i matematik efter 10. klassetrin. www.uvm.dk => Fælles Mål 2009 => Faghæfter alfabetisk => Matematik => Slutmål for faget

Læs mere

KEA The sky is the limit 20. November 2013

KEA The sky is the limit 20. November 2013 KEA The sky is the limit 20. November 2013 Agenda Kort om Dansk Standard og standarder Dansk Standard er den nationale standardiseringsorganisation i Danmark Omsætning DKK 194 mio.kr. 160 medarbejdere

Læs mere

Kombinatorik og Sandsynlighedsregning

Kombinatorik og Sandsynlighedsregning Kombinatorik Teori del 1 Kombinatorik er en metode til at tælle muligheder på. Man kan f.eks. inden for valg til en bestyrelse eller et fodboldhold, kodning af en lås, valg af pinkode eller telefonnummer,

Læs mere

Skriftligt samfundsfag

Skriftligt samfundsfag Skriftligt samfundsfag Taksonomiske niveauer og begreber Her kan du læse om de forskellige spørgeord, du kan møde i samfundsfag i skriftlige afleveringer, SRO, SRP osv. Redegørelse En redegørelse er en

Læs mere

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Programmering Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Oversigt Undervisningen Hvad er programmering Hvordan er et program organiseret? Programmering og fysik Nobelprisen

Læs mere

Skriftlig Eksamen Diskret Matematik (DM528)

Skriftlig Eksamen Diskret Matematik (DM528) Skriftlig Eksamen Diskret Matematik (DM528) Institut for Matematik & Datalogi Syddansk Universitet Tirsdag den 20 Januar 2009, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger, notater etc.) samt brug

Læs mere

Mini SRP. Afkøling. Klasse 2.4. Navn: Jacob Pihlkjær Hjortshøj, Jonatan Geysner Hvidberg og Kevin Høst Husted

Mini SRP. Afkøling. Klasse 2.4. Navn: Jacob Pihlkjær Hjortshøj, Jonatan Geysner Hvidberg og Kevin Høst Husted Mini SRP Afkøling Klasse 2.4 Navn: Jacob Pihlkjær Lærere: Jørn Christian Bendtsen og Karl G Bjarnason Roskilde Tekniske Gymnasium SO Matematik A og Informations teknologi B Dato 31/3/2014 Forord Under

Læs mere

Studieretningsprojekter i machine learning

Studieretningsprojekter i machine learning i machine learning 1 Introduktion Machine learning (ml) er et område indenfor kunstig intelligens, der beskæftiger sig med at konstruere programmer, der kan kan lære fra data. Tanken er at give en computer

Læs mere

Kapital- og rentesregning

Kapital- og rentesregning Rentesregning Rettet den 28-12-11 Kapital- og rentesregning Kapital- og rentesregning Navngivning ved rentesregning I eksempler som Niels Oles, hvor man indskyder en kapital i en bank (én gang), og banken

Læs mere

Temaopgave i statistik for

Temaopgave i statistik for Temaopgave i statistik for matematik B og A Indhold Opgave 1. Kast med 12 terninger 20 gange i praksis... 3 Opgave 2. Kast med 12 terninger teoretisk... 4 Opgave 3. Kast med 12 terninger 20 gange simulering...

Læs mere

Matematik og spil. Rolf Poulsen rolf@math.ku.dk Institut for Matematiske Fag, Kbh. Uni. Mød MATH på KU (måske sidste chance), november 2014

Matematik og spil. Rolf Poulsen rolf@math.ku.dk Institut for Matematiske Fag, Kbh. Uni. Mød MATH på KU (måske sidste chance), november 2014 Enhedens navn Matematik og spil Rolf Poulsen rolf@math.ku.dk Institut for Matematiske Fag, Kbh. Uni. Mød MATH på KU (måske sidste chance), november 2014 På disse slides skal spil læses som væddemål. Hvorfor

Læs mere

Forskning i socialpædagogik socialpædagogisk forskning?

Forskning i socialpædagogik socialpædagogisk forskning? Forskning i socialpædagogik socialpædagogisk forskning? eller knudramian.pbwiki.com www.regionmidtjylland.dkc Indhold Professionsforskning til problemløsning eller som slagvåben? Hvad er forskning? Hvad

Læs mere

Rejsekort A/S idekonkurence Glemt check ud

Rejsekort A/S idekonkurence Glemt check ud Rejsekort A/S idekonkurence Glemt check ud 9. marts 2015 1 Indhold 1 Introduktion 4 1.1 Problembeskrivelse........................ 4 1.2 Rapportens opbygning...................... 4 2 Ordliste 5 3 Løsning

Læs mere

Projektarbejde. Kombinatorik

Projektarbejde. Kombinatorik Projektarbejde Matematik A Teknisk Gymnasium Århus Side 1 Indledning: Besvarelsen bør indeholde følgende hovedafsnit: Opgaveanalyse: En kort beskrivelse af, hvad opgaven går ud på, samt hvilke oplysninger,

Læs mere

Kvantitative og kvalitative metoder. Søren R. Frimodt-Møller, 19. oktober 2012

Kvantitative og kvalitative metoder. Søren R. Frimodt-Møller, 19. oktober 2012 Kvantitative og kvalitative metoder Søren R. Frimodt-Møller, 19. oktober 2012 Program 1. Forskningsspørgsmål 2. Kvantitative vs. kvalitative metoder 3. Eksempler på konkrete forskningsmetoder 4. Sampling-begrebet

Læs mere

Virksomhedens salgspipeline. Business Danmark november 2009 BD272

Virksomhedens salgspipeline. Business Danmark november 2009 BD272 Virksomhedens salgspipeline Business Danmark november 2009 BD272 Indholdsfortegnelse Indledning... 2 Rapportens opbygning... 2 Hovedkonklusioner... 3 Metode og validitet... 3 Salgs- og marketingafdelingernes

Læs mere

Objektorienteret Analyse & Design

Objektorienteret Analyse & Design Objektorienteret Analyse & Design Lars Mathiassen, Andreas Munk-Madsen, Peter Axel Nielsen og Jan Stage ISBN: 87-7751-153-0 Udgave: 3. udgave Udgivelsesår: 2001 Antal sider: 452 Pris: Kr. 410,00 På de

Læs mere

Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang.

Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang. Den tekniske platform Af redaktionen Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang. Teknologisk udvikling går således hånd i hånd med videnskabelig udvikling.

Læs mere

Trolling Master Bornholm 2013

Trolling Master Bornholm 2013 Trolling Master Bornholm 2013 (English version further down) Tilmeldingen åbner om to uger Mandag den 3. december kl. 8.00 åbner tilmeldingen til Trolling Master Bornholm 2013. Vi har flere tilmeldinger

Læs mere

Matematik. Trinmål 2. Nordvestskolen 2006 Forord. Trinmål 2 (4. 6. klasse)

Matematik. Trinmål 2. Nordvestskolen 2006 Forord. Trinmål 2 (4. 6. klasse) Matematik Trinmål 2 Nordvestskolen 2006 Forord Forord For at sikre kvaliteten og fagligheden i folkeskolen har Undervisningsministeriet udarbejdet faghæfter til samtlige fag i folkeskolen med bindende

Læs mere

Øvelser til kurser med Adrie Noy September 2008

Øvelser til kurser med Adrie Noy September 2008 Opvarmning Øvelser til kurser med Adrie Noy September 2008 I alle nedenstående opvarmningsøvelser arbejdes sammen 2 og 2 Begge spillere har en uden bold, 1. Spillerne står over for hinanden med front mod

Læs mere

make connections share ideas be inspired

make connections share ideas be inspired make connections share ideas be inspired Integration af prædiktive analyser og operationelle forretningsregler med SAS Decision Manager Kristina Birch, chefkonsulent Professional Services, Banking & Mortgage

Læs mere

Elevmateriale. Forløb Statistik

Elevmateriale. Forløb Statistik Elevmateriale Forløb Statistik Første lektion: I første lektion skal eleverne reflektere over, hvordan man sammenligner datasæt. Hvordan afgør man, hvor høj man er i 5. klasse? I andre dele af matematikken

Læs mere

Målsætning. Se hovedmål for scenariet og hovedmål for færdighedslæring her. Økonomi

Målsætning. Se hovedmål for scenariet og hovedmål for færdighedslæring her. Økonomi Målsætning Økonomiske beregninger som baggrund for vurdering af konkrete problemstillinger. Målsætningen for temaet Hvordan får jeg råd? er, at eleverne gennem arbejde med scenariet udvikler matematiske

Læs mere

Dansk/historie-opgaven

Dansk/historie-opgaven Dansk/historie-opgaven - opbygning, formalia, ideer og gode råd Indhold 1.0 FORMELLE KRAV... 2 2.0 OPGAVENS OPBYGNING/STRUKTUR... 2 2.1 FORSIDE... 2 2.2 INDHOLDSFORTEGNELSE... 2 2.3 INDLEDNING... 2 2.4

Læs mere

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte

Læs mere

Solidaritet, risikovillighed og partnerskønhed

Solidaritet, risikovillighed og partnerskønhed Rockwool Fondens Forskningsenhed Arbejdspapir 36 Solidaritet, risikovillighed og partnerskønhed Jens Bonke København 1 Solidaritet, risikovillighed og partnerskønhed Arbejdspapir 36 Udgivet af: Rockwool

Læs mere

BACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015

BACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015 BACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015 SAS VISUAL ANALYTICS 7.1 ADMINISTRATOR Mulighed for at udføre handlinger på flere servere

Læs mere

3.g elevernes tidsplan for eksamensforløbet i AT 2015

3.g elevernes tidsplan for eksamensforløbet i AT 2015 Mandag d. 26.1.15 i 4. modul Mandag d. 2.2.15 i 1. og 2. modul 3.g elevernes tidsplan for eksamensforløbet i AT 2015 AT emnet offentliggøres kl.13.30. Klasserne er fordelt 4 steder se fordeling i Lectio:

Læs mere

Tip til 1. runde af Georg Mohr-Konkurrencen Kombinatorik

Tip til 1. runde af Georg Mohr-Konkurrencen Kombinatorik Tip til 1. runde af - Kombinatorik, Kirsten Rosenkilde. Tip til 1. runde af Kombinatorik Her er nogle centrale principper om og strategier for hvordan man tæller et antal kombinationer på en smart måde,

Læs mere

Aarhus Kommune. Samlet rapport vedrørende sagsbehandling og kontakt i Aarhus Kommune i perioden 2010-2012

Aarhus Kommune. Samlet rapport vedrørende sagsbehandling og kontakt i Aarhus Kommune i perioden 2010-2012 Aarhus Kommune Samlet rapport vedrørende sagsbehandling og kontakt i Aarhus Kommune i perioden 2010-2012 Denne rapport er en opsamlende, konkluderende sammenfatning baseret på fem undersøgelser gennemført

Læs mere

Numeriske metoder. Af: Alexander Bergendorff, Frederik Lundby Trebbien Rasmussen og Jonas Degn. Side 1 af 15

Numeriske metoder. Af: Alexander Bergendorff, Frederik Lundby Trebbien Rasmussen og Jonas Degn. Side 1 af 15 Numeriske metoder Af: Alexander Bergendorff, Frederik Lundby Trebbien Rasmussen og Jonas Degn Side 1 af 15 Indholdsfortegnelse Matematik forklaring... 3 Lineær regression... 3 Numerisk differentiation...

Læs mere

THE QUEST FOR OIL. Game Guide

THE QUEST FOR OIL. Game Guide Game Guide THE QUEST FOR OIL Et computerspil der har som generelt mål at give en detaljeret indføring i geografiske forhold og den globale olieindustri. Sådan vinder du i Quest for Oil Du kan både spille

Læs mere

Modtagelse af svært tilskadekomne.

Modtagelse af svært tilskadekomne. Modtagelse af svært tilskadekomne. Siden 1996 har vi på Odense Universitetshospital haft en særlig registrering af svært tilskadekomne, både fra trafikuheld og fra øvrige ulykker. Disse registreringer

Læs mere

15. oktober. Maskine Udlejning. Jacob Weng, Jeppe Boese og Mads Anthony. Udlejningsvirksomhed. Roskilde Tekniske Gymnasium 3.4

15. oktober. Maskine Udlejning. Jacob Weng, Jeppe Boese og Mads Anthony. Udlejningsvirksomhed. Roskilde Tekniske Gymnasium 3.4 Maskine Udlejning 15. oktober 2010 Jacob Weng, Jeppe Boese og Mads Anthony Roskilde Tekniske Gymnasium Udlejningsvirksomhed 3.4 Indholdsfortegnelse Problemformulering:... 2 Planlægning:... 2 Analyse af

Læs mere

Multiple Choice Prøver

Multiple Choice Prøver Teori og Praksis for Multiple Choice Prøver Michael I. Schwartzbach Multiple Choice ved Datalogi Anvendt i mange datalogikurser siden 2006: Oversættelse Databaser Webteknologi Programmingssprog Dynamiske

Læs mere

3. De to typer spil 3. 5. Meldingernes rækkefølge 4. 6. Oversigt over meldingernes rækkefølge og værdier 5

3. De to typer spil 3. 5. Meldingernes rækkefølge 4. 6. Oversigt over meldingernes rækkefølge og værdier 5 1 Indholdsfortegnelse Side 1. Indledning 1 2. Kortgivning 2 3. De to typer spil 3 4. Meldeforløbet 3 5. Meldingernes rækkefølge 4 6. Oversigt over meldingernes rækkefølge og værdier 5 7. De enkelte meldingers

Læs mere

Programmering 2. dprog2 E2012. http://www.cs.au.dk/dprog2/

Programmering 2. dprog2 E2012. http://www.cs.au.dk/dprog2/ Programmering 2 dprog2 E2012 http://www.cs.au.dk/dprog2/ Læringsmål Deltagerne skal ved afslutningen af kurset kunne: forklare og anvende både basale og videregående elementer af et moderne programmeringssprog,

Læs mere

Kapitel 9. Optimering i Microsoft Excel 97/2000

Kapitel 9. Optimering i Microsoft Excel 97/2000 Kapitel 9 Optimering i Microsoft Excel 97/2000 9.1 Indledning... 164 9.2 Numerisk løsning af ligninger... 164 9.3 Optimering under bibetingelser... 164 9.4 Modelformulering... 165 9.5 Gode råd ommodellering...

Læs mere

Orientering om det engelske abstract i studieretningsprojektet og den større skriftlige opgave

Orientering om det engelske abstract i studieretningsprojektet og den større skriftlige opgave Fra: http://www.emu.dk/gym/fag/en/uvm/sideomsrp.html (18/11 2009) November 2007, opdateret oktober 2009, lettere bearbejdet af JBR i november 2009 samt tilpasset til SSG s hjemmeside af MMI 2010 Orientering

Læs mere

Effektmålsmodifikation

Effektmålsmodifikation Effektmålsmodifikation Mads Kamper-Jørgensen, lektor, maka@sund.ku.dk Afdeling for Social Medicin, Institut for Folkesundhedsvidenskab It og sundhed l 21. april 2015 l Dias nummer 1 Sidste gang Vi snakkede

Læs mere

Matematik, der afgør spil

Matematik, der afgør spil Artikeltype 47 Matematik, der afgør spil Sandsynlighedsregning vinder ofte. Kombinatorisk spilteori sejrer hver gang Mads Thrane Hvis du er træt af at tabe opvasketjansen i Sten Saks Papir eller Terning,

Læs mere

Påstand: Et foster er ikke et menneske

Påstand: Et foster er ikke et menneske Påstand: Et foster er ikke et menneske Hvad svarer vi, når vi møder denne påstand? Af Agnete Maltha Winther, studerende på The Animation Workshop, Viborg Som abortmodstandere hører vi ofte dette udsagn.

Læs mere

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Computere er uvurderlige redskaber for personer der ønsker at arbejde med matematiske modeller

Læs mere

Matematiske kompetencer - hvad og hvorfor? DLF-Kursus Frederikshavn 24.-25.9 2015 Eva Rønn UCC

Matematiske kompetencer - hvad og hvorfor? DLF-Kursus Frederikshavn 24.-25.9 2015 Eva Rønn UCC Matematiske kompetencer - hvad og hvorfor? DLF-Kursus Frederikshavn 24.-25.9 2015 Eva Rønn UCC Komrapporten Kompetencer og matematiklæring. Ideer og inspiration til udvikling af matematikundervisningen

Læs mere

Statistik med TI-Nspire CAS version 3.2. Bjørn Felsager September 2012. [Fjerde udgave]

Statistik med TI-Nspire CAS version 3.2. Bjørn Felsager September 2012. [Fjerde udgave] Statistik med TI-Nspire CAS version 3.2 Bjørn Felsager September 2012 [Fjerde udgave] Indholdsfortegnelse Forord Beskrivende statistik 1 Grundlæggende TI-Nspire CAS-teknikker... 4 1.2 Lister og regneark...

Læs mere

Emne Tema Materiale r - - - - - aktiviteter

Emne Tema Materiale r - - - - - aktiviteter Fag: Matematik Hold: 24 Lærer: TON Undervisningsmål Læringsmål 9 klasse 32-34 Introforløb: række tests, som viser eleverne faglighed og læringsstil. Faglige aktiviteter Emne Tema Materiale r IT-inddragelse

Læs mere

Månedsmagasinet PokerNet. shorhanded limit hold em del II. den grundige fixed limit gennemgang fortsætter

Månedsmagasinet PokerNet. shorhanded limit hold em del II. den grundige fixed limit gennemgang fortsætter Månedsmagasinet Pokernet april 2007 _ nummer 03 gratis Månedsmagasinet PokerNet squeeze play kunsten at raise uden en hånd shorhanded limit hold em del II den grundige fixed limit gennemgang fortsætter

Læs mere

Lavet af Danni jensen og David Olsen

Lavet af Danni jensen og David Olsen Projekt Delfin Lavet af Danni jensen og David Olsen 19/5-2008 Indholdsfortegnelse. Side 1: Indholdsfortegnelse og forord. Side 2: Kravsliste. Side 3: Use Case Model. Side 4: Formandens aktørbeskrivelse

Læs mere

Byggeøkonomuddannelsen

Byggeøkonomuddannelsen Byggeøkonomuddannelsen Risikoanalyse Successiv kalkulation Ken L. Bechmann 18. november 2013 1 Dagens emner Risikoanalyse og introduktion hertil Kalkulation / successiv kalkulation Øvelser og småopgaver

Læs mere

Store IT-Innovationer TØ2

Store IT-Innovationer TØ2 Store IT-Innovationer TØ2 TØ2 Kontor One minute papers fra sidst Fremlæggelser Øvelse: Strip Sequence Tips og tricks til OO1 Næste gang Kontor Kontor Turing 123 - Rasmus og Kirstine Kontortid? - Evt fredag

Læs mere

En statistikstuderendes bekendelser Søren Wengel Mogensen

En statistikstuderendes bekendelser Søren Wengel Mogensen Oplysning 23 En statistikstuderendes bekendelser Søren Wengel Mogensen Om at skrive BSc-opgave i anvendt statistik. Der findes matematikere (i hvert fald matematikstuderende), der mener, at den rene matematik

Læs mere

Bilag H: Transskription af interview d. 14. december 2011

Bilag H: Transskription af interview d. 14. december 2011 : Transskription af interview d. 14. december 2011 Interviewer (I) 5 Respondent (R) Bemærk: de tre elever benævnes i interviewet som respondent 1 (R1), respondent 2 (R2) og respondent 3 (R3). I 1: jeg

Læs mere

Om brugen af matematiske tegn og objekter i en god matematisk fremstilling

Om brugen af matematiske tegn og objekter i en god matematisk fremstilling Om brugen af matematiske tegn og objekter i en god matematisk fremstilling af Petur Birgir Petersen Et særpræg ved matematik som videnskab er den udstrakte brug af symboler. Det er vigtigt at symbolerne

Læs mere

To be (in government) or not to be?

To be (in government) or not to be? To be (in government) or not to be? Undersøgelse af Dansk Folkepartis ageren under VK-regeringen i 00 erne Statvetenskapeliga Institutionen Statsvetenskap STVA 22: Hur stater styrs - uppsats Vejleder:

Læs mere

Børn, unge og alkohol 1997-2002

Børn, unge og alkohol 1997-2002 Børn, unge og alkohol 1997-22 Indledning 3 I. Alder for børn og unges alkoholdebut (kun 22) 4 II. Har man nogensinde været fuld? III. Drukket alkohol den seneste måned 6 IV. Drukket fem eller flere genstande

Læs mere

- Få mest muligt ud af opgaveskrivningen!

- Få mest muligt ud af opgaveskrivningen! - Få mest muligt ud af opgaveskrivningen! En eksamensopgave Forarbejdet Opgaveformuleringen Disposition og layout Dokumentation Selvstændighed Abstract Vurderingskriterier Alle regler står i pjecen om

Læs mere

kongen af monte carlo

kongen af monte carlo Månedsmagasinet Pokernet maj 2007 _ nummer 04 gratis Månedsmagasinet PokerNet OVERBETS Det er jo no limit holdem start hænder low stakes no limit holdem kongen af monte carlo kongsgaard er månedens pokerprofil

Læs mere

FÅ OVERSKUD PÅ DIT SPIL

FÅ OVERSKUD PÅ DIT SPIL FÅ OVERSKUD PÅ DIT SPIL Odds-Betting.dk Den sikre måde, hvorpå du kan få overskud. Jeg vil i denne E-bog komme ind på hvorpå du kan styrke dine chancer for netop at få et pænt overskud på diverse spil.

Læs mere

LÆRINGSMÅL PÅ NIF MATEMATIK 2014-15

LÆRINGSMÅL PÅ NIF MATEMATIK 2014-15 LÆRINGSMÅL PÅ NIF MATEMATIK 2014-15 Mål for undervisningen i Matematik på NIF Følgende er baseret på de grønlandske læringsmål, tilføjelser fra de danske læringsmål står med rød skrift. Læringsmål Yngstetrin

Læs mere

BESLUTNINGSBARRIEREN ER HØJERE

BESLUTNINGSBARRIEREN ER HØJERE At lave innovation og tænke nye forretningsområder kræver et velfunderet grundlag, der sikre kendskab til målgruppens behov og forretningens strategiske mål. Det er vigtigt at være sin position bevidst

Læs mere