Escolar Documentos
Profissional Documentos
Cultura Documentos
Vikram Saralaya
(100928010)
Dept. of I&CT, MIT, Manipal
February 4, 2011
Informal Overview
Introduction
Game Theory
Finite Duration Games
Tower of Hanoi puzzle
Formalize Chess Game
Summary
References
Computer-Programmer Interaction
Tic-Tac-Toe, Checkers, Chess & Go.
Computer-Programmer Interaction
Tic-Tac-Toe, Checkers, Chess & Go.
Board Game be : G
2 set of Configurations : A & B
Winning Configurations
Position of Pieces
White or Black to move
Castling
Last Move
Number of moves after Last Pawn move or Capture
Algebraic Notation
Enumerate Positions
LEGAL
WIN ⊆ LEGAL
Player 1 wins : s ∈ A
Player 2 wins : s ∈
/A
Is there a winning strategy ?
Player 1 wins : s ∈ A
Player 2 wins : s ∈
/A
Is there a winning strategy ?
∃x0 ∀y0 ∃x1 ∀y1 ...∃xN−1 ∀yN−1 ([x0 , y0 , x1 , y1 , ...xN−1 , yN−1 ] ∈ A)
∀x0 ∃y0 ∀x1 ∃y1 ...∀xN−1 ∃yN−1 ([x0 , y0 , x1 , y1 , ...xN−1 , yN−1 ] ∈
/ A)
white
King
Rank
File
Queen
Rook
Bishop
Knight
Pawn[i]
black
King
.......
32 ∗ 2 + 32 ∗ 2 + 1
King Movement
M, s0 |= AG((white.king.rank - white.prev king.rank = 0 ∨
white.king.rank - white.prev king.rank = 1 ∨
white.king.rank - white.prev king.rank = -1)
∧
(white.king.file - white.prev king.file = 0 ∨
white.king.file - white.prev king.file = 1 ∨
white.king.file - white.prev king.file = -1))
Queen Movement
M, s0 |= AG(white.Queen.rank = white.prev Queen.rank
∨
white.Queen.file = white.prev Queen.file
∨
(white.Queen.rank - white.prev Queen.rank
= white.Queen.file - white.prev Queen.file ∨
white.Queen.rank - white.prev Queen.rank
= -1 * white.Queen.file - white.prev Queen.file) )
Knight Movement
M, s0 |= AG((white.knight.rank = white.prev knight.rank ∧
white.knight.file = white.prev knight.file)
∨
(white.knight.rank = white.prev knight.rank+1 ∧
(white.knight.file = white.prev knight.file + 2 ∨
white.knight.file = white.prev knight.file - 2))
∨
(white.knight.rank = white.prev knight.rank-1 ∧
(white.knight.file = white.prev knight.file + 2 ∨
white.knight.file = white.prev knight.file - 2))
∨
(white.knight.rank = white.prev knight.rank+2 ∧
(white.knight.file = white.prev knight.file + 1 ∨
white.knight.file = white.prev knight.file - 1))
∨
(white.knight.rank = white.prev knight.rank-2 ∧
(white.knight.file = white.prev knight.file + 1 ∨
white.knight.file = white.prev knight.file - 1)) )