Do hourglass mode put more strain on weaker engine?

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
Nordlandia
Posts: 2828
Joined: Fri Sep 25, 2015 9:38 pm
Location: Sortland, Norway

Do hourglass mode put more strain on weaker engine?

Post by Nordlandia »

My hypothese is as follows: the weaker engine have to keep up the momentum or otherwice it will fall behind on the clock. If the weaker engine use more time, the stronger engine get more time allocated for next move.

Resulting in snowball effect (less time -> weaker moves)

Engine need to understand that they can't afford to give opponent too much time.

http://www.coroflot.com/ericchiang/Temp ... t-IDS-West
Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Do hourglass mode put more strain on weaker engine?

Post by Michael Sherwin »

Nordlandia wrote:My hypothese is as follows: the weaker engine have to keep up the momentum or otherwice it will fall behind on the clock. If the weaker engine use more time, the stronger engine get more time allocated for next move.

Resulting in snowball effect (less time -> weaker moves)

Engine need to understand that they can't afford to give opponent too much time.

http://www.coroflot.com/ericchiang/Temp ... t-IDS-West
It is a catch 22 situation. A noticeably weaker engine if it does not spend more time in the beginning simply loses sooner rather than later. Or has a bad position and no amount of extra saved up time will help it. Then what do you do against stronger engines that use otim to scale their usage to the weaker engine. Maybe my engine should use otim but after thinking about my engine just scales it's time to make sure it does use most of its time without running out of time. And it does use time a little more heavily at first. Since no one plays blitz tournaments with zero increment my engine uses this simple time management.

Code: Select all

    if(!strcmp(cmd, "time")) {
      s32 div;
      s32 movesLeft;
      sscanf(data, "time %d", &myTime);
      myTime *= 10;
      if(numMoves > 3) {
        movesLeft = numMoves - (((ply + 1) / 2) % numMoves);
        div = movesLeft * 7 / 8;
        if(div < 8) div = 8;
      } else {
        div = 16 - (ply / 4);
        if(div < 2) div = 2;
      }
      maxTime = myTime/div;
      continue;
    } 
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through