Author: Robert Hyatt
Date: 15:25:52 07/19/99
Go up one level in this thread
On July 19, 1999 at 16:02:37, Vincent Diepeveen wrote: >On July 19, 1999 at 10:48:52, Robert Hyatt wrote: > >>On July 19, 1999 at 06:03:38, Vincent Diepeveen wrote: >> >>>On July 19, 1999 at 00:48:56, Robert Hyatt wrote: >>> >>>>On July 18, 1999 at 17:27:12, William Bryant wrote: >>>> >>>>>I have created a SEE routine for my program (following the general plan of >>>>>Swap() >>>>>from Crafty) and now have a question about where it should be implemented. >>>>> >>>>>I initially implemented it in the move generator. When generating captures, if >>>>>the Captured_Piece - Capturing_Piece <0, I would uses a SEE score of < 0 to >>>>>discard the move, never searching it. >>>>> >>>>>This created an overall speed up but leaves a number of questions. >>>>> >>>>>Some positions require a sacrifice to find the winning line. These positions >>>>>are never found because the sacrifice move is always discarded and never >>>>>searched. >>>> >>>> >>>> >>>>this is totally unsafe. In the full-width part of the search, you should be >>>>able to look at these 'losers' at some point in the search, after the good >>>>captures, killers, etc... In the q-search you can afford to ignore them since >>>>the q-search is already full of errors anyway... >>> >>>i disagree here. You can very cheap do checks in qsearch and see these >>>tricks 4 ply earlier. >>> >>>Let us list the programs that do some checks in qsearch, >>>and the ones that do not a single one >>> >>>The programs from which i suspect (if u grow older you >>>grow wiser) doing checks in qsearch (alfabetical listed): >>>Diep >>>Fritz >>>Genius >>>Hiarcs >>>The King (chessmaster 4000 etc) >>>Lambchop >>>Nimzo >>>Rebel >>>Virtual Chess >>>Zarkovx >>> >>>The programs from which is suspect not doing them: >>>Crafty >>>Ferret >>>Junior >>> >>> >>>He what a big coincidence, the programmers of the non-doing check in >>>qsearch are more convinced about getting kicked silly by programs >>>outsearching them. >>> >>>In fact crafty at 12 ply is in fact searching 8 ply >>>tactical for some tricks which probably fall outside the >>>horizon anyway, which is kind of weird. >>> >>>Ferret already gets a huge depth and has all kind of extensions >>>seemingly; in a position where my DIEP searches 13 ply at the >>>same hardware, both Ferret with way over half a million nodes got >>>only 11 or 12 ply in paderborn in the middlegame against fritz >>>fritz not doing better bye the way, as the paderborn version >>>seemed having all kinds of extensions too, although fritz532 >>>searches deeper in that position! >>> >>>Junior already gets like 17 ply anyway tactical (positional 8 ply), >>>and with R=2 it's unlikely that you miss something tactical then, >>>even though when talking about checks it sees obviously 4 ply less. >>> >>>But crafty. Oh crafty. Crafty does a very limited recapture extension. >>>mate threats are extended very slightly, so that last helps a little, >>>but further it simply sees tactical 4 ply less when we're talking >>>about a check threat. >>> >> >>My point is this. Your checks are good for some tactical shots. They are >>awful for common positions. Because you are running down stuff in the q-search >>that is totally wasted. And if you waste time here, you lose time elsewhere. > >What are you talking about, >i don't do checks in common positions of course! > >I do only useful checks. > right... and I only buy stocks that go _up_ too. :) If you knew which checks were 'useful' and which were not, you could solve the game from the root position. >>For every position you find where a check in the q-search helps, There are >>hundreds of positions where it hurts just as much or more. If my game results > >NO doubt 1.e4,e5 2.Qg4,Nf6 Qxd7+ >to name a bad check. > >Of course we wanna prevent bad checks. Qxd7 is trivial to prove bad if it is just tossing a queen. But there are _lots_ of other checks that are bad, yet they are not obviously bad. And extensions make the tree big. And then following checks in the q-search make it even bigger. When you can prove to me that my 'simplified q-search' is bad, I'll change. However, I am doing ok by using it so far... and this lets me work on the search itself, without worrying about the q-search which is always full of errors anyway... > > >>were bad, I'd be looking at why. But I do just fine at present. I have older >>versions of Crafty that _did_ do checks in the q-search (trivial to implement) >>but they don't play better because of it, IMHO. > >Well hopefully you don't try all capturing moves either in qsearch, >is kind of wasting nodes too: Nope... haven't done that in years... Cray Blitz used SEE to control the q-search 20 years ago in fact... > >d4,d5 e4,dxe4 qh5 qxd4 qxh7 qxb2 qxh8 qxa1 qxg8 qxb1 etc. > >>If you want to solve tactical problems, it is probably a good idea to do them. >>If you want to win _games_ I am not so sure. IE when you use my quad p6/200, >>you are about 1/2 as fast as my quad xeon, yet when we play I don't see any >>tactical oversights by my program, generally... And the extra depth on the >>positional moves I get helps significantly when there are no king-chasing >>tactics... >> >> >> >> >>>Of course when getting 12-13 ply, chance is not big you miss tactics >>>anyway. >>> >>>>> >>>>>Is this the tradeoff of this heuristic? >>>>> >>>>>Is there a better way to apply the SEE rather than to all capture moves as they >>>>>are generated? >>>>> >>>>>Are there other heuristics that allow these discarded moves to be found in the >>>>>right positions? >>>>> >>>>>Here is an example position: >>>>>1rr3k1/4ppb1/2q1bnp1/1p2B1Q1/6P1/2p2P2/2P1B2R/2K4R w - - >>>>>It is from a list of mating positions posted by Dan >>>>> >>>>>I can find the winning mate in 0:32 without the SEE, >>>>>and never with the SEE. >>>>> >>>>>Thanks in advance. >>>>> >>>>>William >>>>>wbryant@ix.netcom.com
This page took 0.01 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.