Author: Robert Hyatt
Date: 13:33:08 07/31/99
Go up one level in this thread
On July 31, 1999 at 15:16:02, blass uri wrote: > >On July 31, 1999 at 12:55:54, Robert Hyatt wrote: > >>On July 31, 1999 at 12:34:34, Robert Hyatt wrote: >> >>>On July 31, 1999 at 03:08:42, Ed Schröder wrote: >>> >>>>>This is easy to test. >>>>> >>>>>My hypothesis: simple search is not good enough to discover that all moves >>>>>but one lead to mate, in any positions except for those near the point where a >>>>>game is already over (one side is mating the other). >>>>> >>>>>Ed's: A simple search is good enough to discern forcing moves. >>>>> >>>>>How about someone looking for positions where all moves but one lead to a >>>>>forced mate... IE one move must _not_ get mated, while all the rest do. >>>>>Then we decide whether the short search of Rebel can see this or not. >>>>> >>>>>Then we decide how often this kind of position occurs, and how often (when it >>>>>does) is a shallow search enough to recognize the forced nature. >>>>> >>>>>I don't think (a) it will work very well; (b) that it is worth the effort to >>>>>search with alpha=-inf, beta=+inf for every root move; (c) that by the time >>>>>this might have a chance of identifying a forcing move, the game is already >>>>>over and saving time is pointless... >>>>> >>>>>My opinion, of course... >>>> >>>>How about going one step further. Some years ago I did an experiment. >>>>Search the first iteration without A/B, then: >>>> >>>>if (best_score - second_best_score > margin_one) limit time control. >>>>if (best_score - second_best_score > margin_two) limit time control even more. >>>> >>>>etc. >>>> >>>>Also I tried this for the second iteration as well. Results were not bad at all >>>>as it also catches forced moves that aren't recaptures and escapes from >>>>checks. Moves sequences like 1..g5 2.Bg3 were also discovered and >>>>2.Bg3 was played very fast. I also remember a case 1.a7 Ra8 preventing >>>>the pawn to promote. Since 1..Ra8 was the only move 1..Ra8 was played >>>>instantly. >>>> >>> >>> >>>that's an easy one to break. Take the position Cray Blitz vs Belle (I will >>>try to find the FEN but it is in one of the test suites (Bxh6 is a draw, Qxb6 >>>loses). >>> >>>I'll bet you that you discover that Qxb6 is +3 better than any other move with >>>a 1 ply search. And a 2 ply search... and a 3, 4, 5 and 6 ply search... and >>>beyond... until you finally see that it loses badly. >>> >>>Using your approach will get you killed there. Care to guess how I know? I >>>was there. I used a scheme almost exactly like yours in 1980 or so, and it >>>made that very same mistake in that very same game, and lost quickly... A 2 >>>minute search would have shown Bxh6 drew and Qxb6 lost. But CB assumed that >>>"Qxb6 was 'easy'" >>> >>> >>> >>> >>>>Note that Q-search in Rebel's first and second iteration were limited to 6 and >>>>8 plies to prevent the search to explode when A/B is not active. I also do >>>>check extensions in Q-search to discover mates which catches the most >>>>important ones but not all of course. >>>> >>>>Ed Schroder >> >> >>Here is the position: >> >>5r1k/6p/1n2Q2p/4p//7P/PP4PK/R1B1q/ w >> >>the position in ascii: >> >> +---+---+---+---+---+---+---+---+ >> 8 | | | | | | *R| | *K| >> +---+---+---+---+---+---+---+---+ >> 7 | | | | | | | *P| | >> +---+---+---+---+---+---+---+---+ >> 6 | | *N| | | Q | | | *P| >> +---+---+---+---+---+---+---+---+ >> 5 | | | | | *P| | | | >> +---+---+---+---+---+---+---+---+ >> 4 | | | | | | | | | >> +---+---+---+---+---+---+---+---+ >> 3 | | | | | | | | P | >> +---+---+---+---+---+---+---+---+ >> 2 | P | P | | | | | P | K | >> +---+---+---+---+---+---+---+---+ >> 1 | R | | B | | *Q| | | | >> +---+---+---+---+---+---+---+---+ >> a b c d e f g h >> >> >>and my search results (PII/300 notebook): >> >>(early iterations like Qxb6 a lot, scores over +4.) >> 8 8.27 0.26 1. Qxb6 Rf1 2. Qd8+ Kh7 3. Qd3+ e4 >> 4. Qxf1 Qxf1 5. b4 e3 >> 8-> 9.56 0.26 1. Qxb6 Rf1 2. Qd8+ Kh7 3. Qd3+ e4 >> 4. Qxf1 Qxf1 5. b4 e3 >> 9 10.54 0.57 1. Qxb6 Rf1 2. Qd8+ Kh7 3. Qd3+ e4 >> 4. Qxf1 Qxf1 5. b4 e3 6. b5 >> 9-> 12.16 0.57 1. Qxb6 Rf1 2. Qd8+ Kh7 3. Qd3+ e4 >> 4. Qxf1 Qxf1 5. b4 e3 6. b5 >> 10 13.17 -- 1. Qxb6 >> 10 43.47 0.00 1. Qxb6 Rf1 2. Qd8+ Kh7 3. Qd3+ e4 >> 4. Qxf1 Qxf1 5. Kg3 Qe1+ 6. Kh2 Qf1 >> 10-> 51.88 0.00 1. Qxb6 Rf1 2. Qd8+ Kh7 3. Qd3+ e4 >> 4. Qxf1 Qxf1 5. Kg3 Qe1+ 6. Kh2 Qf1 >> 11 54.47 -- 1. Qxb6 >> 11 1:47 -2.58 1. Qxb6 Rf1 2. Qd8+ Kh7 3. Qd3+ e4 >> 4. Qxf1 Qxf1 5. a4 e3 6. Ra2 Qxc1 7. >> b4 Kg6 >> 11 2:12 0.00 1. Bxh6 Qxa1 2. Qxe5 Rf6 3. Bg5 Rf2 >> 4. Qe8+ Kh7 5. Qh5+ Kg8 6. Qe8+ Kh7 >> >>As I mentioned, this is from Cray Blitz vs Belle, 1981 ACM NACC tournament. >> >>Bob > >I looked in this position and the latest version of Junior can find Bxh6 even at >depthes 8 or 9 (eqvivalent to brute force depth of 4,5) > >It can find Bxh6 even at level 1 second per move on pentium200. > >I think that Cray blitz and crafty has problem in this position relative to part >of the commercial programs. > >Uri 1. Crafty has difficulties with it because of null-move. 2. Ed was talking about doing a _one_ ply search. You just said it takes junior to depth=8 or 9. See what is wrong with your argument? It has to see it at depth=1, not depth=anything > 1. So doing a _one_ ply search to choose obvious moves will conclude that Qxb6 is obvious, and it is a mistake... you get the idea... 'obvious' moves are _extremely dangerous_... And if someone finds that you are doing this in your program, they will start to exploit it... it isn't hard... because accepting a sacrifice is _always_ obvious to a 1 ply search...
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.