Testing at fixed nodes to tune eval

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Testing at fixed nodes to tune eval

Post by Don »

Zlaire wrote:
bob wrote:I did this years ago in Crafty, but there is a way to exploit it that made me get rid of it. I take a long time to work out a tactical plan that is complex, but not fool-proof. I then start moving very quickly since i have that worked out, and the program now moves quickly and fails to see just what it is voluntarily walking into until it is too late... I did this back in the days where opponents could almost trivially beat every program on ICC (ICS at the time) by simply playing very quickly and running the program out of time.

I found it better to just "play chess" and _always_ use a clock, and let things go beyond that point...
Using a tactic like that to beat a good engine is still very hard since engines see many many plies in a fraction of a second. Surely it was worse back when you tried it when people didn't have trouble beating the engines in the first place.

I find it rather interesting as a mean to force the player to play rather quickly, without the risk of simply losing on time. The penalty you get for playing slow is facing stronger moves.
I agree. And surely this type of strategy is much weaker against a program that is adapting it's time than to a program simply playing fast without regard to the humans time.

The way I specified the idea is that the computer is fairly slow to react to the extra time advantage (or deficit) so if you use a huge amount of time on a single move the computer doesn't just use all that time on it's next response, it puts most of it in the bank. That's a tweakable parameter, I suggest using something like 1/10 to 1/20 of the time available.

So if you are playing at the rate of 5 seconds per move and suddenly the opponent uses 3 minutes for a difficult or "tricky" move, you now have an additional 18 seconds if your factor is 1/10 which means you have over 4X more thinking time for the next move or about 20-25 seconds instead of 5. So the computer is not brutally taken advantage of.

What used to irk me is that after a game where the computer played blitz and the human took over an hour to beat it, some would have to audacity to gloat or criticize the computers weak play (sometimes even when the human had to take back a couple of moves!)

We are talking about a time when humans were less educated about computer play. They generally were rather ignorant to 2 principles:

1. Taking back a move is a HUGE advantage.

2. Scalability in computer chess.

They justified the take-backs by saying it was a blunder extremely uncharacteristic of them so presumably the game did not reflect their "true ability" to play the game.

The scalability issue wasn't understood by laymen back then (and for a while even the computer chess community didn't know about it.) It was not believed that thinking 20X longer than the computer was worth very much.

Actually, I'm not sure laymen understand that it works this way with humans too. I think humans improve just as much, perhaps more with time than computers. This goes unnoticed in human games because when you get more time, your opponent does also.

That's why skittles without a clock is like playing with a heavy time handicap going against it for the computer.

Those days are gone - I don't think people play against computer than much because it's just not very interesting.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Testing at fixed nodes to tune eval

Post by bob »

Zlaire wrote:
bob wrote:I did this years ago in Crafty, but there is a way to exploit it that made me get rid of it. I take a long time to work out a tactical plan that is complex, but not fool-proof. I then start moving very quickly since i have that worked out, and the program now moves quickly and fails to see just what it is voluntarily walking into until it is too late... I did this back in the days where opponents could almost trivially beat every program on ICC (ICS at the time) by simply playing very quickly and running the program out of time.

I found it better to just "play chess" and _always_ use a clock, and let things go beyond that point...
Using a tactic like that to beat a good engine is still very hard since engines see many many plies in a fraction of a second. Surely it was worse back when you tried it when people didn't have trouble beating the engines in the first place.

I find it rather interesting as a mean to force the player to play rather quickly, without the risk of simply losing on time. The penalty you get for playing slow is facing stronger moves.
Don will remember the ACM events where we (Cray Blitz) used to take on all comers. And we did very well. For the longest most computers played with the old "northwestern speed chess rules" where we had 5 minutes of CPU time, the human used a clock and we used the honor system to report when we lost on time.

I got tired of that as the humans invariably got aggravated when they lost on time, after the program had apparently lost on time 3 minutes prior according to the chess clock. So I adopted a new time control for Cray Blitz, and I had gotten to the point where I could type moves in and make them on the board so quickly, that we used a normal chess clock for us and the human, both set to 5 minutes. For the first minute, I had Cray Blitz use 3 secs/move, not counting any ponder time. For the next minute, it took 2 seconds per move. Now two minutes are gone, plus the small operator time I had consumed that the program didn't know about, and now it went into the one second per move for the rest of the game.

And when we started to do this, something remarkable happened. We went on a 30+ game winning streak against very strong Grandmasters, no draws, no time losses, no losses at all. And what I noticed was that as the program sped up, so did the opponent, almost as if he could not vary from the program's game tempo. And as they sped up, they made mistakes. IM Mike Valvo used to play us all the time late at night after a round had completed, and he commented that the way we were playing made it _very_ difficult on him. Even though he regularly played other IMs at 5:1 time odds (he would get one minute on the clock, they would get 5, and he smoked them because they tried to play at his speed).

So your idea is certainly valid, and has been tested in years past with good results. But once you get to longish games, I don't think it works any longer, because at 40/2hr, I don't care how long my opponent takes to move, I have my own target time in mind and I am playing as I want to play.
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Testing at fixed nodes to tune eval

Post by Don »

bob wrote:
Zlaire wrote:
bob wrote:I did this years ago in Crafty, but there is a way to exploit it that made me get rid of it. I take a long time to work out a tactical plan that is complex, but not fool-proof. I then start moving very quickly since i have that worked out, and the program now moves quickly and fails to see just what it is voluntarily walking into until it is too late... I did this back in the days where opponents could almost trivially beat every program on ICC (ICS at the time) by simply playing very quickly and running the program out of time.

I found it better to just "play chess" and _always_ use a clock, and let things go beyond that point...
Using a tactic like that to beat a good engine is still very hard since engines see many many plies in a fraction of a second. Surely it was worse back when you tried it when people didn't have trouble beating the engines in the first place.

I find it rather interesting as a mean to force the player to play rather quickly, without the risk of simply losing on time. The penalty you get for playing slow is facing stronger moves.
Don will remember the ACM events where we (Cray Blitz) used to take on all comers. And we did very well. For the longest most computers played with the old "northwestern speed chess rules" where we had 5 minutes of CPU time, the human used a clock and we used the honor system to report when we lost on time.

I got tired of that as the humans invariably got aggravated when they lost on time, after the program had apparently lost on time 3 minutes prior according to the chess clock. So I adopted a new time control for Cray Blitz, and I had gotten to the point where I could type moves in and make them on the board so quickly, that we used a normal chess clock for us and the human, both set to 5 minutes. For the first minute, I had Cray Blitz use 3 secs/move, not counting any ponder time. For the next minute, it took 2 seconds per move. Now two minutes are gone, plus the small operator time I had consumed that the program didn't know about, and now it went into the one second per move for the rest of the game.

And when we started to do this, something remarkable happened. We went on a 30+ game winning streak against very strong Grandmasters, no draws, no time losses, no losses at all. And what I noticed was that as the program sped up, so did the opponent, almost as if he could not vary from the program's game tempo. And as they sped up, they made mistakes. IM Mike Valvo used to play us all the time late at night after a round had completed, and he commented that the way we were playing made it _very_ difficult on him. Even though he regularly played other IMs at 5:1 time odds (he would get one minute on the clock, they would get 5, and he smoked them because they tried to play at his speed).

So your idea is certainly valid, and has been tested in years past with good results. But once you get to longish games, I don't think it works any longer, because at 40/2hr, I don't care how long my opponent takes to move, I have my own target time in mind and I am playing as I want to play.

I think in speed chess the opponents time is nearly as valuable as your own. This diminishes as the time control increases, but the effect is always there - humans benefit enormously from the opponents time.

In the same sense that a human needs about 1-2 minutes of move transfer time to operate a computer keyboard, I think the human brain needs a little bit of time to see a move and recognize it for what it is. Just the time watching your opponent grab a piece and moving it before hitting his clock is very valuable in speed chess. In normal chess it's of little value.