In won endgame positions, computers are incredibly good and never miss a trick.

But in positions where they’ve lost, they tend to play really badly, often with the king running away from where the battle is, in order to delay the mate as long as possible, rather than duking it out and making it difficult to win.

Is there some way to get computers to try the sort of defensive strategies that a human would use against another human?

Where the game might finish more quickly, but the human will have had some thinking to do.

  • Ihnivid@feddit.de
    link
    fedilink
    arrow-up
    8
    ·
    edit-2
    11 months ago

    I’ve used this app to train my endgames for a while, though mostly it has shown me how much I actually suck at theoretically won positions. Not entirely sure if it plays like you describe or not, but I did feel trapped a lot of the time.

    • johnlawrenceaspden@thelemmy.clubOP
      link
      fedilink
      arrow-up
      2
      ·
      11 months ago

      That’s a nice app! Free and open source, and now a permanent addition to my phone. Thank you!

      I can’t tell you whether it solves my problem because it won’t let me set up a position where I know that standard stockfish runs away, but I played with it for half an hour and it doesn’t show that behaviour in the games I played.

    • jorge@sopuli.xyzM
      link
      fedilink
      arrow-up
      4
      ·
      11 months ago

      Maia is a good call.

      Most engines are designed to play expecting that its rival plays the best move. So when the engine sees that it’s going to be mated, it expects that the rival will mate. In a way, all possible moves are equally bad, as they all lead to mate, so it makes no difference to the engine to use defensive strategies.

      But the Maia’s don’t work like that. As they have been trained with games played by humans, they will try to do whatever a human would do, even if it doesn’t make sense from an engine point of view.

      (Although the best advice is to play against real humans as much as you can)

      • johnlawrenceaspden@thelemmy.clubOP
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        11 months ago

        Yes, I’m confused about why engines play so badly in endgames.

        If you start them off a piece down then that’s presumably a theoretically lost position, but they don’t just make random moves because it doesn’t matter…

        What is it about the endgame that means that they suddenly start to favour the move that drags the game out the longest rather than the move that allows their opponent the biggest chance to screw up?

        And actually, they often don’t even play the ‘drag it out longest’ move, they seem to just pick moves at random for no reason.

        And that means that I can often beat stockfish in positions which I have no idea how to win against someone who hasn’t given up.

        Maia does seem to fix this. She plays well in the endgame.

        I wonder if it’s possible to layer the two things, so that if standard stockfish sees that all moves are equivalent, it can hand off to maia to choose which one to play rather than rolling dice?

        • jorge@sopuli.xyzM
          link
          fedilink
          arrow-up
          1
          ·
          11 months ago

          Engines just don’t have the concept of “allowing an opponent the biggest chance to screw up”. They follow blindly their evaluation function. In an endgame, the evaluation tells it that M5 is better than M2. In an opening with piece odds, the evaluation tells it that -3 is better than -3.5. When playing with piece odds against a human, an engine doesn’t win because it tricks the human into difficult positions; it wins because the human (any human) is very likely to screw up in any position. But if you match an engine with piece odds against a similar engine, you will start to see those “random” moves too.