Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

Embed Size (px)

Citation preview

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    1/23

    1

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    2/23

    Index

    Preface 3

    Introduction 4

    History 5

    Levels of solving a game 6

    Solving checkers 8

    Implementation 14

    Demonstration 15

    Screen shots 19

    Conclusion 20

    References 21

    2

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    3/23

    PREFACE

    Checkers is a game played on an eight by eight squared board with twelve

    pieces on each side, each might only initially move and capture diagonally

    forwards, and it can move both backwards and forwards only when the piece

    is Kinged.

    As long as the checkers can be unbeatable game, Arthur Samuel thought

    about using the Lees guide to Checkers for creating a learning game that

    will adjust the criteria for choosing the moves, The program was able to learn

    from its errors and achieved an impressive playing strength. It was capable

    of beating the world champion of checkers at that time.

    As a hint from the book Checkers is Solved By Jonathan Schaeffer, Neil

    Burch, Yngvi Bjrnsson, Akihiro Kishimoto, Martin Mller, Robert Lake, Paul

    Lu, Steve Sutphen. Science (4 September 2007: Vol. 317. no. 5844, pp. 1518

    - 1522): "The game of checkers has roughly 500 billion billion possible

    positions (5 x 1020). The task of solving the game, determining the final

    result in a game with no mistakes made by either player, is daunting. Since

    1989, almost continuously, dozens of computers have been working on

    solving checkers, applying state-of-the-art artificial intelligence techniques to

    the proving process. This paper announces that checkers is now solved:

    Perfect play by both sides leads to a draw. This is the most challenging

    popular game to be solved to date, roughly one million times as complex as

    Connect Four. Artificial intelligence technology has been used to generate

    3

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    4/23

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    5/23

    Introduction

    Its not easy to solve a game, specially that the result to be shown in the

    final of the game has to be with no mistake depending on any move that can

    be done by the player, any thought should be considered in checkers

    specially that there are assumptions that have been made about any step a

    play can do with a piece, and these assumptions are not just about the next

    move but they are about every move that can be done during the whole

    game period from start point till the end point including when the piecebecomes a king and can move backwards and forwards.

    Many computers have been used to solve the game applying state-of-the-art

    artificial intelligence techniques to the proving process and many others

    have been participating in competitions against real human players, thats

    why it is always respected to know or make an assumption of what next

    move a player can have.

    This presentation describes the way of solving the game and it is a

    description of a start of designing an unbeatable game that can make all

    assumptions that have been mentioned,

    This game was already made by many researchers, even though it is good to

    study what have been made, to implement what have been created and to

    know what have been produced.

    5

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    6/23

    History

    It is a board game that in the UK they call it draughts which is one of the

    oldest games ever known to man in Europe, once tracing its history we can

    go back to the cradle of civilization where vestiges of the earliest form of

    the game was unearthed in an archeological dig in the ancient city of Ur in

    southern Mesopotamia, which is now modern day Iraq. no one is sure of the

    exact rules of the game which was carbon dated at 3000 B.C. A similar game

    using a 5x5 board, called Alquerque is known to have existed in ancientEgypt as far back as 1400 B.C.

    Checkers (known as draughts in the United Kingdom and some other

    countries), also called American checkers, straight checkers, or simply

    draught, is a form of draughts board game played on an eight by eight

    squared board (with sixty-four total squares) with twelve pieces on each

    side. These pieces may only initially move and capture diagonally forwards.

    Only when a piece is "crowned" or "kinged" may it move both backwards or

    forwards.

    As in all draughts variants, English draughts is played by two people, on

    opposite sides of a playing board, alternating moves. Traditionally the pieces

    are either black, white, or red, and the board alternates between red and

    white squares. The opponent's pieces are captured by jumping over them.

    6

    http://en.wikipedia.org/wiki/United_Kingdomhttp://en.wikipedia.org/wiki/Draughtshttp://en.wikipedia.org/wiki/Board_gamehttp://en.wikipedia.org/wiki/United_Kingdomhttp://en.wikipedia.org/wiki/Draughtshttp://en.wikipedia.org/wiki/Board_game
  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    7/23

    Levels of solving a game

    It is not easy solving a game, especially that there are many steps to be

    done during the playing period, each step might have hundreds of

    assumptions, each step the human player can think about should be put as

    an assumption and that is not easy since its kind of impossible to get into

    the human mind, even though its not impossible to think about what a

    human mind might think, except in order to solve a game there are levels of

    solving it , these levels can be put as following:

    Ultra-Weakly solving: The game-theoretic value for the initial

    position has been determined.

    Weakly solved: The game is ultra-weakly solved and a strategy exists

    for

    achieving the game-theoretic value from the opening position,

    assuming reasonable

    computer resources.

    Strongly solved : For all possible positions, a strategy is known for

    determining the game theoretic value for both players, assuming

    reasonable computing resources.

    Given the rules of any two-person game with a finite number of

    positions, one can always trivially construct a minimax algorithm that

    7

    http://en.wikipedia.org/wiki/Minimaxhttp://en.wikipedia.org/wiki/Minimax
  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    8/23

    would exhaustively traverse the game tree . However, since for many

    non-trivial games such an algorithm would require an infeasible

    amount of time to generate a move in a given position, a game is not

    considered to be solved weakly or strongly unless the algorithm can be

    run by existing hardware in a reasonable time. Many algorithms rely on

    a huge pre-generated database, and are effectively nothing more than

    that.

    As an example, the game of tic-tac-toe is solvable as a draw for both

    players with perfect play (a result even manually determinable by

    schoolchildren). Games like nim also admit of a rigorous analysis using

    combinatorial game theory .

    Whether a game is solved is not necessarily the same as whether it

    remains interesting for humans to play. Even a strongly solved game

    can still be interesting if the solution is too complex to be memorized;

    conversely, a weakly solved game may lose its attraction if the winning

    strategy is simple enough to remember (e.g. Maharajah and the

    Sepoys ). An ultra-weak solution (e.g. Chomp or Hex on a sufficiently

    large board) generally does not affect playability. By David Epstein.

    8

    http://en.wikipedia.org/wiki/Game_treehttp://en.wikipedia.org/wiki/Tic-tac-toehttp://en.wikipedia.org/wiki/Nimhttp://en.wikipedia.org/wiki/Combinatorial_game_theoryhttp://en.wikipedia.org/wiki/Maharajah_and_the_Sepoyshttp://en.wikipedia.org/wiki/Maharajah_and_the_Sepoyshttp://en.wikipedia.org/wiki/Chomphttp://en.wikipedia.org/wiki/Hex_(board_game)http://en.wikipedia.org/wiki/Game_treehttp://en.wikipedia.org/wiki/Tic-tac-toehttp://en.wikipedia.org/wiki/Nimhttp://en.wikipedia.org/wiki/Combinatorial_game_theoryhttp://en.wikipedia.org/wiki/Maharajah_and_the_Sepoyshttp://en.wikipedia.org/wiki/Maharajah_and_the_Sepoyshttp://en.wikipedia.org/wiki/Chomphttp://en.wikipedia.org/wiki/Hex_(board_game)
  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    9/23

    Solving checkers

    Checkers might be a strongly solved game, there have been thoughts

    made, calculations has been created about the probabilities each piece

    of checkers can have, and after all there have been considerations of

    all possible positions.

    It took the researcher and programmer Schaeffer almost 16 years to

    create his checkers odyssey, he invented CHINOOK which is the first

    program to win in the world championship against a human being in

    checkers, this program was made in 1989, the endgame database has

    been created to trace backwards from the final results of games such

    as wins, losses or draws then there was a deep search algorithm made

    to make decisions during play based on evaluating all possible

    outcomes a certain number of moves ahead.

    Schaeffer said: Strongly solving the game or computing all of these

    possible positions would have taken decades, but what he did was firstly

    creating a database of the endgames building backward from all the possible

    wins, losses or draws that the checkers can include, he created also an

    algorithm about backward searching that builds the path of situations that

    can lead the mentioned endgames to the point where exist 10 game pieces

    on the board, the result that he came up with was a database of 39 trillion

    positions compressed using homebrew algorithm into an average of 237

    gigabytes for an average of 154 positions per byte of data.

    9

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    10/23

    Backward searching algorithm is one thing, the next step to be done is the

    forward search technique which is by the way not performed in the way

    Chinook because it used a deep search algorithm to make the next move

    always by analyzing all possible situations that are one move deep then all

    possible situations that are two moves deep and so on till the end.

    There is another technique that actually was also made in Chinook, this

    technique is called best first which prioritize the searching various positions

    and lines of play at a given position in the games where there are several

    possible moves that can be made.

    As a definition of each technique to be made:

    Backward search: the positions at the end are being searched with their

    win/loss/draw value determined, the technique used in this algorithm is the

    retrograde analysis which has been successfully used for many games, the

    algorithm is called backward search because it works backward by starting at

    the end of the game and working toward the start, it also enumerates all one

    piece positions declaring each value of each position then it goes to the two

    piece position which of course leads also to a one piece position with a known

    value the again the three piece positions and so on, the endgame databases

    are crucial to solving checkers which forced to capture rule quickly results in

    many pieces being removed from the board giving rise to a position with less

    than 10 pieces and a known value.

    Forward search: consists of two parts: the proof tree manager that builds

    the proof by defining the positions to be assessed and the proof solvers which

    search individual positions, the manager maintains the master copy of the

    10

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    11/23

    proof and uses the proof number search algorithm to identify a prioritized list

    of positions that need to be examined, typically several hundred positions of

    interest are generated at a time so as to keep multiple computers busy.

    As the checkers board, each square where the pieces can take a move was

    converted into a number to be used in algorithms and diagrams.

    Respecting the above board assumptions was made and number of

    positions was declared as following:

    11

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    12/23

    The number of positions in the game of checkers. For example, the

    possible positions for one piece include 32 squares for the Black king,

    32 squares for the White king, 28 quares for a Black checker, and 28

    squares for a White checker, for a total of 120 positions.

    Forward and backward search. The number of pieces on the board are

    plotted vertically) versus the logarithm of the number of positions

    (Table 1). The shaded area shows the endgame database part of the

    12

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    13/23

    proofi.e., all positions with !10 pieces. The inner oval area shows that

    only a portion of the search space is relevant to the proof. Positions

    may be irrelevant because they are unreachable or are not required for

    the proof. The small open circles indicate positions with more than 10

    pieces for which a value has been proven by a solver. The dotted line

    shows the Boundary between the top of the proof tree that the

    manager sees (and stores on disk) and the parts that are computed by

    the solvers (and are not saved in order to reduce disk storage needs).

    The solid seeded line shows a best sequence of moves.

    13

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    14/23

    Table 2. Openings solved. Shown are the opening moves (using the

    standard square number scheme in Fig. 1, bottom), the result, the number of

    positions given to the solvers, and the position farthest from the start of the

    game that was searched (Max ply). The last two columns give the size and

    ply depth of the pruned minimal proof tree. Note that the total does not

    match the sum of the 19 openings. The combined tree has some duplicated

    nodes, which have been removed when reporting the total.

    Fig. 3. The first three moves of the checkers proof tree. Move sequences are

    indicated using the

    notation from Fig. 1B, with the from-square and to-square of the move

    separated by a hyphen. The result of each position is given for Black, the first

    player to move (=D, a proven draw; =L, a proven loss; =D, draw or win). In some positions, only one move needs to be

    14

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    15/23

    considered; the rest are cut off, as indicated by the rotated T. Some

    positions have only one legal move because of the forced-capture rule.

    15

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    16/23

    Implementation

    The implementation of the checkers should respect the table of

    positions and should demonstrate:

    Alpha Beta Pruning :

    technique for greatly reducing the number of moves searched to get

    the exact same result.

    it is possible to reach up to almost twice the search depth (if optimal,)

    by searching the same number of positions. It is optimal if any time a

    player has one or more moves good enough to cause a cut-off, one of

    these moves is searched first. Therefore to get the most out of alpha-

    beta, you have to try to predict the best move for the player to move,

    and try this move first.

    Iterative Deepening :

    starting with shallow searches before running a deeper search.

    Transposition Table (Hash Table):

    It is a table in memory that stores information about board positions

    previously searched. A plain Alpha-Beta search function will search any

    board it receives, but this is wasteful if it has already encountered and

    searched this board before in another branch of the search.

    Quiescence Search

    16

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    17/23

    It is a necessary in checkers, where the evaluation is based greatly on

    material pieces. A quiescence search means searching certain board

    positions further before evaluating the board.

    Demonstration

    I did not create a game that plays against computer because it takes a

    long time to do so, but I did create a game that whenever you touch a

    piece it gives you the positions that can be done next.

    This is a code from the main class of the java game:

    import java.awt.*;

    import java.awt.event.*;

    import javax.swing.*;

    public class draughts extends JPanel implements ActionListener

    {

    private windowDraughtsBoard draughtsBoard;

    private objCreateAppletImage createImage;

    private JButton cmdNewGame;

    private JPanel panBoard, panStatusArea, panButton;

    private Color clrBackgrounds;

    17

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    18/23

    public static void main(String[] args)

    {

    JFrame.setDefaultLookAndFeelDecorated(true);

    JFrame frame = new JFrame("Draughts"); //Title

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JComponent paneMain = new draughts();

    paneMain.setOpaque(true);

    paneMain.setPreferredSize(new Dimension(550,

    600));

    frame.setContentPane(paneMain);

    frame.pack();

    frame.setVisible(true);

    }

    public draughts()

    {

    super.setLayout(new BorderLayout());

    18

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    19/23

    createImage = new objCreateAppletImage();

    draughtsBoard = new windowDraughtsBoard();

    try

    {

    Image coinRed = createImage.getImage(this,

    "coinRed.gif", 500);

    Image coinBlue = createImage.getImage(this,

    "coinBlue.gif", 500);

    Image coinRedKing =

    createImage.getImage(this, "coinRedKing.gif", 500);

    Image coinBlueKing =

    createImage.getImage(this, "coinBlueKing.gif", 500);

    draughtsBoard.setupCoins(coinRed, coinBlue,

    coinRedKing, coinBlueKing);

    }

    catch (NullPointerException e)

    {

    }

    draughtsBoard.setSize(new Dimension(500,500));

    19

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    20/23

    cmdNewGame = new JButton("New Game");

    cmdNewGame.addActionListener(this);

    panBoard = new JPanel();

    panButton = new JPanel();

    add(panBoard, BorderLayout.NORTH);

    panBoard.add(draughtsBoard);

    add(panButton, BorderLayout.SOUTH);

    panButton.add(cmdNewGame);

    clrBackgrounds = new

    Color(75,141,221);

    setBackground(clrBackgrounds);

    panBoard.setBackground(clrBackgrounds);

    panButton.setBackground(clrBackgrounds);

    }

    public void actionPerformed(ActionEvent e)

    {

    draughtsBoard.resetBoard();

    }

    }

    Screen-shots

    20

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    21/23

    21

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    22/23

    Conclusion

    It is not easy to solve a game , there are always many phases to be

    followed and many techniques to be done, with the current existing

    technology it is possible to weakly solve a game, specially that a

    database contains a proof tree for the game can contain many nodes

    which is a small number by todays standards, to solve the game

    strongly it requires more nodes to be reached in the game.

    As mentioned in this paper the results of Chinook demonstrated a

    super powers byt defeating a human being, the project was a success

    that belongs to both AI and parallel computing.

    So the checkers calculations always eliminate the boundaries of what

    can be achieved by search intensive algorithms.

    Now that the checkers is solved the question remains how solved is it?

    all or almost, are the assumptions enough or missing something, as

    long as algorithms show up from nowhere , thoughts are developing

    everywhere question will be always put.

    22

  • 8/6/2019 Checkers is a Game Played on an Eight by Eight Squared Board With Twelve Pieces on Each Side

    23/23

    References

    Uwic Library

    J. Schaeffer et al. , Solving Checkers

    (www.ijcai.org/papers/0515.pdf, 2005).

    J. Schaeffer et al., in Advances in Computer Games, J.

    van den Herik, H. Iida, E. Heinz, Eds. (Kluwer,

    Dordrecht, Netherlands, 2003).

    Wikipedia

    Longest 10PC MTC

    (http://pages.prodigy.net/eyg/Checkers/longest-10pcmtc.

    htm, 2007).

    23