• Kazumara@discuss.tchncs.de
    link
    fedilink
    arrow-up
    7
    arrow-down
    1
    ·
    5 months ago

    You don’t use it for the rule-set and allowable moves, but to score board positions.

    For a chess computer calculating all possible moves until the end of the game is not possible in the given time, because the number of potential moves grows exponentially with each further move. So you need to look at a few, and try to reject bad ones early, so that you only calculate further along promising paths.

    So you need to be able to say what is a better board position and what is a worse one. It’s complex to determine - in general - whether a position is better than another. Of course it is, otherwise everyone would just play the “good” positions, and chess would be boring like solved games e.g. Tic-Tac-Toe.

    Now to have your chess computer estimate board positions you can construct tons of rules and heuristics with expert knowledge to hopefully assign sensible values to positions. People do this. But you can also hope that there is some machine learnable patterns in the data that you can discover by feeding historical games and the information on who won into an ML model. People do this too. I think both are fair approaches in this instance.

    • KeenFlame@feddit.nu
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      5 months ago

      You can calculate all possible moves in milliseconds on any silicone these dsys

      • Kazumara@discuss.tchncs.de
        link
        fedilink
        arrow-up
        3
        arrow-down
        1
        ·
        edit-2
        5 months ago

        All possible moves one step from a given position sure.

        But if you then take all possible resulting positions and calculate all moves from there, and then take all possible resulting positions after that second move and calculate all possible third moves from there, and so on, then the possibilities explode so much in number that you can’t calculate them anymore. That’s the exponential part I was refering to.

        You can try and estimate them roughly, let’s say you’re somewhere in the middle of the game, there are 12 units of each side still alive. About half are pawns so we take 1.2 possible moves for them, for the others, well let’s say around 8, thats a bit much for horses and the king on average, but probably a bit low for other units. So 6 times 8 and 6 times 1.2, lets call it 55 possibilities. So the first move there are 55 possible positions, for the second you have to consider all of them and their new possibilitues so there are 55 times 55 or 3025, for the third thats 166375, then 9.15 million, 500 million, 27.6 billion, 1.5 trillion etc. That last one was only 7 moves in the future. Most games won’t be finished by then from a given position, so you either need a scoring function or you’re running out of time.

        • KeenFlame@feddit.nu
          link
          fedilink
          arrow-up
          1
          arrow-down
          1
          ·
          5 months ago

          Yep, those are the moves that can all be easily calculated very quickly on modern hardware

          • Dave@lemmy.nz
            link
            fedilink
            arrow-up
            1
            ·
            5 months ago

            There are more possible chess moves (estimated at 10^120 for an average game) than there are atoms in the observable universe (estimated at 10^80). That is to say the number of possible chess moves has 40 more zeros on the end than the number of atoms in the observable universe.

            Can you point to some souce showing how modern hardware can work these out easily?