roflMartinBryant wrote:Unfortunately these non-underpromoting engines sometimes get away with murder!!!
Tao is a particular culprit and I (and several others) simply won't use it because of it.
Ages ago Colossus (playing black) had the following position against Tao 5.6 using the Fritz GUI.
[D]8/7p/1p4p1/P7/7P/1K6/2pq2k1/8 b - - 0 64
Colossus played c1=N+ which is mate in 3.
Now Tao doesn't bother with underpromotions even if the opponent plays them, just assumes all promotions are to queens, so in reply it calmly played the illegal axb
Now unfortunately the Fritz GUI (presumably because it expects only legal moves from engines) allowed it!!!
It then passed the illegal move to Colossus which had a thrombosis, crashed and lost on time!!!! GRRRRRRRRR!!!!!!
GUI WRITERS PLEASE NOTE! CHECK MOVES FROM ENGINES FOR LEGALITY!!
The Perils of missing sub-promotion
Moderators: hgm, Rebel, chrisw
Re: The Perils of missing sub-promotion
-
- Posts: 27811
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: The Perils of missing sub-promotion
Indeed, uMax 4.0 has this nasty habit for King strolls and is blind to rep-draws. From 4.3 on there was (passive) King safety (basically through recognizing game stage by keeping track of total piece material, and freezing the King in the middle game). From 4.5 on they recognize rep-draws.nczempin wrote:The draw was another three-moves draw in winning position from umax. Not sure if the 3moves is in 4.8, or how many chars it would cost to add it, but I am sure it is costing you quite a few half-points.
I really could only do meaningful testing after implementing the rep-draws. Without it, improvements did hardly affect the score, as when uMax threatened to win, the opponent would always trick it into a rep-draw. First I saw no way to implement rep-draw recognition with any decent number of characters, as you have to record the game history for it. Later I got the idea to use the hash table for this, and then it took hardly any caharcters at all.
Btw, how did the Eden 13 vs uMax 4.0 Silver match end? Does uMax 4.0 really do better than 1.6? The main difference is that the latter has a hash table.
Re: The Perils of missing sub-promotion
The first one went:hgm wrote: Btw, how did the Eden 13 vs uMax 4.0 Silver match end? Does uMax 4.0 really do better than 1.6? The main difference is that the latter has a hash table.
Code: Select all
Umax4_0w 40,5/80
=00==101==
0100011===
1=1011=011
111001=101
==00=10111
000001110=
101101100=
010001===0
Code: Select all
Umax4_0w 4,0/16
=0000001==
01000=
Let's hope it makes a comeback, in the name of determinism ; so far, this result would point to Eden-umax4.0 having the highest variance of all my Silver tests.
-
- Posts: 1056
- Joined: Fri Mar 10, 2006 6:07 am
- Location: Basque Country (Spain)
Re: The Perils of missing sub-promotion
My engine has the protocol winboard, the protocol recommends to you that if you receive an illegal move you send a messaje "illegal move”.MartinBryant wrote:Unfortunately these non-underpromoting engines sometimes get away with murder!!!
Tao is a particular culprit and I (and several others) simply won't use it because of it.
Ages ago Colossus (playing black) had the following position against Tao 5.6 using the Fritz GUI.
[D]8/7p/1p4p1/P7/7P/1K6/2pq2k1/8 b - - 0 64
Colossus played c1=N+ which is mate in 3.
Now Tao doesn't bother with underpromotions even if the opponent plays them, just assumes all promotions are to queens, so in reply it calmly played the illegal axb
Now unfortunately the Fritz GUI (presumably because it expects only legal moves from engines) allowed it!!!
It then passed the illegal move to Colossus which had a thrombosis, crashed and lost on time!!!! GRRRRRRRRR!!!!!!
GUI WRITERS PLEASE NOTE! CHECK MOVES FROM ENGINES FOR LEGALITY!!
I do not know protocol UCI well but I believe that this protocol leaves much work to the GUI, for example test if the position is valid. UCI can send a mesaje "illegal move"?
Winboard has an option to test the position. In the webc or openwar td use winboard, it is activated?
Pedro
-
- Posts: 27811
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: The Perils of missing sub-promotion
Surprising. I would have expected uMax 4.0 to do appreciably better than uMax 1.6, as it has hash tables. But both seem to score about 50% against Eden.nczempin wrote:The first one went:Code: Select all
Umax4_0w 40,5/80 =00==101== 0100011=== 1=1011=011 111001=101 ==00=10111 000001110= 101101100= 010001===0
Are there any time forfeits, at the time control you are testing now?
Re: The Perils of missing sub-promotion
I think hash tables are only noticeable considerably beyond ply 6.hgm wrote:Surprising. I would have expected uMax 4.0 to do appreciably better than uMax 1.6, as it has hash tables. But both seem to score about 50% against Eden.nczempin wrote:The first one went:Code: Select all
Umax4_0w 40,5/80 =00==101== 0100011=== 1=1011=011 111001=101 ==00=10111 000001110= 101101100= 010001===0
Are there any time forfeits, at the time control you are testing now?
BTW umax has complied to my request, the score is now 31.5/65.
I don't think I've seen any time forfeits; this is the same time control 2/6 that I always use; 4.0 seems to handle it properly.
I'll send you the games.
Re: The Perils of missing sub-promotion
You can use the info string command to send messages but the GUI doesn't try to interpret such things (may just display them), so even if Colossus had tested the moves for legality and complained it wouldn't have helped, the GUI would have just sat there waiting for Colossus to reply to an illegal move.
-
- Posts: 27811
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: The Perils of missing sub-promotion
I guess the recommended operation is to send an illegal-move message:
illegal move: { remains in check }
If that doesn't help, you can become more bold, and send a 'result' message, claiming the game:
result 0-1 { forfeit due to illegal move }
(and be sure to make it 1-0 if you are white! )
If that doesn't silence the GUI, sent him a 100KB string without linefeeds from a 100KB output buffer. That usually does the trick.
illegal move: { remains in check }
If that doesn't help, you can become more bold, and send a 'result' message, claiming the game:
result 0-1 { forfeit due to illegal move }
(and be sure to make it 1-0 if you are white! )
If that doesn't silence the GUI, sent him a 100KB string without linefeeds from a 100KB output buffer. That usually does the trick.
-
- Posts: 147
- Joined: Wed Jun 06, 2007 10:01 am
- Location: United States
- Full name: Mike Leany
Is it worth it to search them?
I actually had been contemplating the question of whether it's even worth it to search underpromotions in my new engine. I would recognize them and be able to deal with them no matter what I do, but I was thinking of having my engine just ignore them unless and until they're actually played. With the way I'm doing my move generator, it would require a small amount of extra work (and processing time) to get it to search them after non-capture moves instead of before them, but of course just ignoring them saves time in both move generation and the search. So is that small amount of saved time worth not seeing them when underpromotion is the best move?
Any thoughts?
Any thoughts?
-
- Posts: 2250
- Joined: Wed Mar 08, 2006 8:47 pm
- Location: Hattingen, Germany
Re: Is it worth it to search them?
Being not aware a promoted knight checks plus eventually forking queen or hanging rook looks dangerous to me. It will happen up and then - most likely not in testgames but important tournamentsxsadar wrote:I actually had been contemplating the question of whether it's even worth it to search underpromotions in my new engine. I would recognize them and be able to deal with them no matter what I do, but I was thinking of having my engine just ignore them unless and until they're actually played. With the way I'm doing my move generator, it would require a small amount of extra work (and processing time) to get it to search them after non-capture moves instead of before them, but of course just ignoring them saves time in both move generation and the search. So is that small amount of saved time worth not seeing them when underpromotion is the best move?
Any thoughts?
I generate underpromotion conditionally after unmaking the queen promotion without cutoff. If the promoted queen got captured (best reply), I don't generate them at all, because one can at least capture the underpromoted piece as well with same score. Otherwise, I generate knight-promotion and if queen-promotion returns stalemate score, even bishop- and rook-promotions. Seems to cover most issues
[d] 8/4P3/1P2P3/4b3/8/PNk5/P1p2P2/K5B1 w - -
Are there counter examples where the above heuristic fails?