game theory

53
Game Theory Impartial Games, Nim, Composite Games, Optimal Play in Impartial games Learning & Development Team http://academy.telerik.com Telerik Software Academy

Upload: admon

Post on 24-Feb-2016

81 views

Category:

Documents


0 download

DESCRIPTION

Game Theory. Impartial Games, Nim, Composite Games, Optimal Play in Impartial games. Learning & Development Team. http://academy.telerik.com. Telerik Software Academy. Table of Contents (1). What is Game Theory? Types of combinatorial games and plays Impartial, Partisan - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Game Theory

Game TheoryImpartial Games, Nim, Composite Games,

Optimal Play in Impartial games

Learning & Development Teamhttp://academy.telerik.com

Telerik Software Academy

Page 2: Game Theory

Table of Contents (1)1. What is Game Theory?2. Types of combinatorial games and

plays Impartial, Partisan Normal & misère play

3. Game States Turns; P, N positions Optimal play "Scoring" game example

2

Page 3: Game Theory

Table of Contents (2)3. The Game Nim

Gameplay, winning positions4. Composite games

Tweedledum & Tweedledee principle

Sprague-Grundy Theorem5. Calculating Grundy Numbers

Minimal excludant3

Page 4: Game Theory

WTF Game Theory?What are The Facts on Game Theory

Page 5: Game Theory

What is Game Theory? Study of decision making Mathematical models

Of conflict Of cooperation Between intelligent decision makers

Started with study of zero-sum games One player winning leads to other

player losing Evolved into "decision theory"

General decision making strategies

5

Page 6: Game Theory

Game Theory – Concepts

Players, Actions, Payoffs, Information (PAPI) Key concepts to describing a game Solution strategy is based on PAPI Solution strategy + PAPI =

predictable, deterministic outcomes to games

Game theory fields of application Politics, Economics Phycology, Biology, Logic All fields needing info on behavioral

relations

6

Page 7: Game Theory

Game Theory – Game Types

Notable general game classifications Perfect vs. imperfect information Cooperative vs. competitive Symmetric vs. asymmetric Combinatorial Infinitely long Discrete vs. continuous, differential,

population, stochastic, metagames… 7

Page 8: Game Theory

Combinatorial GamesImpartial, Partizan and Play Types

Page 9: Game Theory

Definition of a combinatorial game

Perfect information – players know at any time: Game state All possible player moves

No chance devices Actions are not random and do not

depend on random events

• Two players move alternatively• No chance devices• Perfect information• The game must eventually end• Winner depends on who moves last – no

draws

Combinatorial Games

Page 10: Game Theory

Examples of combinatorial games Chess (partly) Hex 7 Checkers Take-away & Subtraction games Silver-dollar game

Combinatorial Game Examples

Page 11: Game Theory

Partisan vs. Impartial Partisan games

Different moves available to different players

Chess, Checkers, Tic-Tac-Toe… are partisan

Impartial games Different players have the same moves Examples – Nim, Quarto

Impartial games can be generalized and analyzed Very strong base for studying other

games Many partisan games, but with similar

principles

Page 12: Game Theory

12

Combinatorial Games Play types – determine which player

wins Based on who moves last

Normal play Player which makes last possible

move wins E.g. player who takes the last coin

and wins Misère play

Player which makes last possible move loses

Aim to force the other player into the last move

Page 13: Game Theory

Game States & PositionsTurns, P and N Positions in Optimal

Play

Page 14: Game Theory

14

Game States – Chips Game “chips” (or “pieces”)

A chip is something a player controls

E.g. figures in chess, stack(s) of coins, numbers to operate on, etc.

Chips are always in some state (i.e. position) A position can be winning or losing Or, good for next or for previous

player

Page 15: Game Theory

Impartial games are played in turns Turns can be broken down like so:

Positions are usually the "thinks" stage

Impartial game states – positions & count of chips

Game States – Turns

Blue "thinks

"

Yellow"thinks

"

Blue"thinks

"

Yellow"thinks

"

Blue moves

Yellowmoves

Bluemoves

Page 16: Game Theory

16

Game States – Player Position

Position of a player Depends on the positions of all the

chips Considered in the "think" stage

Immediately after the other player moved

Immediately before the current player moves

Two types of positions Good for current player (i.e. next to

move) Good for previous player (i.e. who

just moved) Usually noted P (previous) and N

(next/current)

Page 17: Game Theory

17

Game States – Optimal Play

Impartial games are deterministic Optimal play always exists Player position – either winning or

losing Optimal play in impartial games

Best actions by player, in order to win

Optimal play + winning position = victory

So, N and P positions for the current player: N – Winning positions P – Losing position

Page 18: Game Theory

18

How to Play Optimally Which positions to choose to win?

Impartial games are zero-sum Positions are either winning or

losing Try to force other player into losing

position i.e. a P-position (good for previous

player -> us) If we are in a losing position, we

can’t win if other player plays optimally

Page 19: Game Theory

19

Game of Scoring Scoring is a game where a single chip

is moved Right to left, starting at a

numbered position Moves have maximal step – e.g. 3

positions Move chip by no less than 1 and no

more than 3 0 (zero) is the leftmost position

Can’t move from that position Player which cannot move is the

loser

Page 20: Game Theory

20

Game of Scoring – Demo

0 1 2 3 4 5 6 7 8 9

? ? ? ? ? ? ? ? ? ?

Let’s try to determine P and N positions Max step is 3

Page 21: Game Theory

21

Game of Scoring – Positions

0 – losing (P-position) 1, 2, 3 – winning positions (N-

positions) We can immediately move the chip

to 0 4 – losing position (P-position)

We place chip at 1, 2 or 3 and other player wins

5, 6, 7 – winning positions (N-positions) Can place other player in a losing

position (4) Scoring has a direct formula for P-

positions

Page 22: Game Theory

22

Generalization of Positions

For all impartial games A position is winning if it can lead

to at least one losing position A position is losing, if it leads only

to winning positions This regards single-chip games

P-position N-position

Every option leads to an N-position

There is always at least one option that leads to a P-

position

Page 23: Game Theory

Solving Scoring in C++

Live Demo

Page 24: Game Theory

The Game NimGameplay, Positions,

Nimbers and Nim-sum

Page 25: Game Theory

25

Nim Ancient, but fundamental game

Impartial, Many variations Nim theory developed early 20th

century Important related terms – nimbers,

Nim-sum Rules

Several heaps (piles) of stuff (coins/stones/...)

Player takes 1 or more elements from 1 pile

Normal play – player taking last element wins

Page 26: Game Theory

26

Nim – formal notation Nim state is easy to express formally

If the number of heaps is k Then (n0, n1, …, nk) is the state

n0 is the number of items in the first heap, etc.

State is often referred to as position If we have 3 heaps of sizes 3, 4 and

2 Then we are at

position (3, 4, 2) Position (0) is losing

In normal play

Page 27: Game Theory

27

Nim – Demo Let’s play Nim

index 0 1 2 3 4 5

Page 28: Game Theory

28

Nim – Observations What happens for Nim with 1-

element heaps?a) (1) – obviously, first player wins (N)b) (1, 1) – first player takes a heap,

second wins (P)c) (1, 1, 1) – first player forces second

player to case b), so second player will lose (N)

d) (1, 1, 1, 1) – first player goes into case c), so second player will win (P)

Nim with k 1-element heaps Winning position if k is odd

Page 29: Game Theory

29

Nim – More Observations

What happens for Nim with 1-element heaps mixed with 2-element heaps?a) (1, 2) – first player wins (winning

position) first player can reduce 2 to 1 player 2 forced into (1, 1), which is

losingb) (2, 2) – other player wins (losing

position) First player’s moves are to (1, 2) or

(0, 2) * First option leads second player to

case a) Second option – second player takes

the heap

*(0, 2) and (2, 1) are also possible, but with the same outcome, so we will not consider them

Page 30: Game Theory

30

Nim – General Observations

We could go on generating positions That would take too much

(exponential) time Another pattern can be noticed

a) Even same-sized heap count – bad position

b) Odd same-sized heap count – good position

c) b) + one larger heap – good position

can move to position a) by reducing larger heap

d) Other similar even-odd considerations

Can we easily filter through good/bad positions?

Page 31: Game Theory

31

Nim-sum Nim-sum (aka XOR, ^, addition

modulo two) The Nim-sum of a position (n0, …, nk)

isn0 ^ n1 ^ … ^ nk

Accredited to Charles L. Bouton as part of the solution of the game

Mathematical notation typically:n0 ⊕ n1 ⊕ … ⊕ nk

Heap sizes are usually called nimbers

A non-zero Nim-sum denotes a winning positionA zero Nim-sum denotes a losing position

Page 32: Game Theory

32

Nim-sum – Why it Works

Position (0) has a Nim-sum = 0 No moves can be made – position is

losing Position (k) has a Nim-sum > 0 (k

> 0) Player takes the entire heap – position

is winning Changes to a position with Nim-sum

= 0 Always lead to positions with Nim-sum

> 0 Changes to a position with Nim-sum

> 0 At least one change leading to Nim-

sum = 0 So, we can always force a losing

position From a winning position

Page 33: Game Theory

33

Nim-sum – Finding Positions

Considering we are in a winning position Need to search for positions with

Nim-sum zero Finding a zero Nim-sum position

Decrease numbers, which make the Nim-sum > 0 Achieve even number of 1’s in each

bit column

Calculate the current Nim-sumFinds its leftmost bit equal to 1

(denotes a column with an odd number of 1’s)Find any number N (heap size) having a 1 at that bitNullify that number NCalculate the Nim-sum againSet the nullified number N to the new Num-sum

Page 34: Game Theory

Solving Nim in C++Live Demo

Page 35: Game Theory

35

Nim Importance What’s the big deal with Nim?

The Sprague-Grundy theorem Who?

R. P. Sprague & P. M. Grundy in 1935 & 1939

Independently discovered the theorem

The Sprague-Grundy theorem states:

Layman’s terms: every impartial game is a Nim in disguise or some variant of it

Every impartial game, under normal play is equivalent to a nimber

Page 36: Game Theory

36

Nim Importance Consider the game Nimble

Several coins, at some positions Must move exactly one coin at least 1 position

Coins move only right to left (towards zero)

Player who moves the last coin to 0 wins

Seem familiar?

0 1 2 3 4 5 6 7 8 9

Page 37: Game Theory

37

Nim Importance How about now?

The solutions of Nimble and Nim are equivalent

After indices are turned into heap sizes

index 0 1 2 3 4 5

Page 38: Game Theory

Composite GamesDividing into Subgames,

Tweedledum & Tweedledee Principle, Sprague-Grundy

Page 39: Game Theory

39

Game of Scoring – Demo

0 1 2 3 4 5 6 7 8 9

P N N N P N N N P N

Let’s play Scoring again This time with 2 chips Max step is 3 Are the marked P/N (make them

win/lose if you want) positions correct in this case?

Page 40: Game Theory

40

Composite Games – 2 Chips

Tweedledum & Tweedledee Principle 2-chip game, the second player can

mimic moves If the two chips are in the same position Leading to victory for the second player In positions which would be winning for

the first player in a single-chip game Losing positions remain losing, problem

is with winning ones Similar cases occur in games with

more chips And more equivalent positions

Page 41: Game Theory

41

Composite Games – Solving

Composite impartial games Equivalent to nimbers (as other

impartial games) As per the Sprague-Grundy theorem

Yep, these guys again A game has k chips, each with a

position, Game position – set of k numbers (n0, …, nk)

Equivalent to a position in Nim, hence Nim-sum of the position = 0 -> position is

losing How do we get those

numbers/nimbers?

Page 42: Game Theory

Calculating the Sprague-Grundy

FunctionFollower positions,Minimal excludent

Page 43: Game Theory

43

Calculating SG function Sprague-Grundy function

Recursively generates "Grundy" values/numbers

Numbers correspond to heap sizes in Nim

Adapt to specific game through Follower function Mex function

Page 44: Game Theory

44

Calculating SG function Sprague-Grundy function – formal

description:

g – Sprague-Grundy function F – follower function Mex – minimal excludant p and q – two game positions

g(p) = Mex(g(q)); q ∈ F(p)

Page 45: Game Theory

45

Calculating SG function Follower function F(position)

Returns positions, reachable in 1 move from given position

i.e. "followers" of that position Minimal excludant Mex(numbers)

Returns the minimal non-negative number Not belonging to a given set

i.e. first number different than any of the given numbers

Page 46: Game Theory

46

Calculating SG function So, this

reads as follows: The Grundy value of position p Is the minimal non-negative integer Which is NOT a Grundy value of Any of the followers of position p

g(p) = Mex(g(q)); q ∈ F(p)

Page 47: Game Theory

47

Calculating SG – example

Grundy values with Scoring Losing

positions ina game haveg() = 0

Here, can’tmove from 0, so we lose there and g(0) = 0

g(0) = 0, by definition.

g(1) = 1 since F(1) = {0}.

g(2) = 2 since F(2) = {0, 1}.

g(3) = 3 since F(3) = {0, 1, 2}.

g(4) = 0 since F(4) = {1, 2, 3}. - The values of g on F(4) are {1, 2, 3} and the minimum that does not appear there is 0.

g(5) = 1 since F(5) = {2, 3, 4}. - The values of g on F(5) are {2, 3, 0} and the minimum that does not appear there is 1...Index 0 1 2 3 4 5 6 7 8 9SG value 0 1 2 3 0 1 2 3 0 1

Page 48: Game Theory

48

Calculating SG – pseudocode

Grundy values pseudocode Walk positions

recursively Generate set

of Grundy values for followers

Take the Mex of the Grundyvalues of the followers

int GrundyNumber(position pos) {

moves[] = Followers(pos);set s; for (all x in moves){

insert into s GrundyNumber(x);

}//Mex – return smallest non-

zero //integer, not in s; int mexCandidate=0; while

(s.contains(mexCandidate)) {

mexCandidate++; }return mexCandidate;

}

Page 49: Game Theory

49

Solving Composite Games Using SG & Nim

Determining a position as winning or losing We have the positions of the chips

in the game We have the Grundy values of those

positions Hence, we have the Nim position:

(g(p0), g(p1), … g(pk)) Where p0 … p1 are the chip positions

So, we can compute the Nim-sum If it is zero, we are in a losing

position If it is non-zero, we are in a winning

position

Page 50: Game Theory

Solving Multi-Chip Scoring

in C++Live Demo

Page 51: Game Theory

51

Conclusion What we covered

Impartial games Winning and losing positions (N and

P) Nim and representing impartial

games as Nim Sprague-Grundy theorem & function Solving composite games

Page 52: Game Theory

52

Conclusion What we haven’t covered

Misère play Partizan games Non-deterministic games

The above share some characteristics with impartial gamesMost games are describable by mathematical models, which are based on similar concepts to those in the lecture. Just take your time to unravel the model – here, programming is the easy part once you’ve understood the logical base of the problem.

Page 53: Game Theory

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки

уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop

уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC

безплатен курс "Разработка на софтуер в cloud среда"

BG Coder - онлайн състезателна система - online judge

курсове и уроци по програмиране, книги – безплатно от Наков

безплатен курс "Качествен програмен код"

алго академия – състезателно програмиране, състезанияASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NET

курсове и уроци по програмиране – Телерик академия

курс мобилни приложения с iPhone, Android, WP7, PhoneGapfree C# book, безплатна книга C#, книга Java, книга C# Дончо Минков - сайт за програмиране

Николай Костов - блог за програмиранеC# курс, програмиране, безплатно

?? ? ?

??? ?

?

? ?

??

?

?

? ?

Questions?

?

Game Theory

http://algoacademy.telerik.com