game theory
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 PresentationTRANSCRIPT
Game TheoryImpartial Games, Nim, Composite Games,
Optimal Play in Impartial games
Learning & Development Teamhttp://academy.telerik.com
Telerik Software Academy
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
Table of Contents (2)3. The Game Nim
Gameplay, winning positions4. Composite games
Tweedledum & Tweedledee principle
Sprague-Grundy Theorem5. Calculating Grundy Numbers
Minimal excludant3
WTF Game Theory?What are The Facts on 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
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
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
Combinatorial GamesImpartial, Partizan and Play Types
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
Examples of combinatorial games Chess (partly) Hex 7 Checkers Take-away & Subtraction games Silver-dollar game
Combinatorial Game Examples
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
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
Game States & PositionsTurns, P and N Positions in Optimal
Play
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
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
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)
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
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
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
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
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
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
Solving Scoring in C++
Live Demo
The Game NimGameplay, Positions,
Nimbers and Nim-sum
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
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
27
Nim – Demo Let’s play Nim
index 0 1 2 3 4 5
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
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
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?
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
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
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
Solving Nim in C++Live Demo
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
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
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
Composite GamesDividing into Subgames,
Tweedledum & Tweedledee Principle, Sprague-Grundy
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?
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
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?
Calculating the Sprague-Grundy
FunctionFollower positions,Minimal excludent
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
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)
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
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)
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
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;
}
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
Solving Multi-Chip Scoring
in C++Live Demo
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
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.
форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно
програмиране за деца – безплатни курсове и уроцибезплатен 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