Author: Robert Hyatt
Date: 21:33:59 07/05/02
Go up one level in this thread
On July 06, 2002 at 00:11:41, Ricardo Gibert wrote: >On July 05, 2002 at 23:29:52, Robert Hyatt wrote: > >>On July 05, 2002 at 19:56:10, Christophe Theron wrote: >> >>>On July 04, 2002 at 22:23:34, Robert Hyatt wrote: >>> >>>>On July 04, 2002 at 12:10:26, Christophe Theron wrote: >>>> >>>>>On July 04, 2002 at 10:07:37, Robert Hyatt wrote: >>>>> >>>>>>On July 04, 2002 at 03:49:40, Uri Blass wrote: >>>>>> >>>>>>>On July 03, 2002 at 14:29:17, Robert Hyatt wrote: >>>>>>> >>>>>>>>On July 03, 2002 at 13:46:17, Christophe Theron wrote: >>>>>>>> >>>>>>>>>On July 02, 2002 at 20:20:37, Robert Hyatt wrote: >>>>>>>>> >>>>>>>>>>On July 02, 2002 at 18:54:49, Keith Evans wrote: >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>Sorry to be anal retentive, but that's a bit of a stretch. Here's what they say: >>>>>>>>>>> >>>>>>>>>>>"The chess chips optionally support the use of an external FPGA (Field >>>>>>>>>>>Programmable Gate Array) to provide access to an external transposition table, >>>>>>>>>>>more complicated search control, and additional terms for the evaluation >>>>>>>>>>>function. In theory this mechanism would have allowed the hardware search to >>>>>>>>>>>approach the efficiency and complexity of the software search. Null move search >>>>>>>>>>>was also explicitly supported by this method. Due to time constraints, this >>>>>>>>>>>capability was never used in Deep Blue." >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>Read on. On page 67, section 4.1, item 3, "mate threat". >>>>>>>>>> >>>>>>>>>>"It is relatively simple using a null move search to detect if there is a >>>>>>>>>>threat in the current position.... The Deep Blue implementation ... >>>>>>>>>> >>>>>>>>>>Which matches what I said. They had support for a normal null-move search >>>>>>>>>>had they wanted to use it, but they did use null-move to detect threats, >>>>>>>>>>something that has been done before (and several of us use a form of mate >>>>>>>>>>threat extension based on this idea presently). >>>>>>>>>> >>>>>>>>>>So they used null-move in at least one way, without using it as a forward >>>>>>>>>>pruning algorithm, which fits with Hsu's "no errors in the search" theme he >>>>>>>>>>mentioned repeatedly over the years. Extra extensions were one thing to him, >>>>>>>>>>but outright errors were something else not to be tolerated. Right or wrong. >>>>>>>>>>I obviously disagree about the errors in a normal null-move search, but I >>>>>>>>>>can hardly argue with their success... >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>That's my point as well. >>>>>>>>> >>>>>>>>>I don't argue about their success. >>>>>>>>> >>>>>>>>>I'm just saying that they succeeded because their chips were very fast. So fast >>>>>>>>>that they allowed them to use inferior search techniques and still succeed. >>>>>>>>> >>>>>>>> >>>>>>>>Could you not make the _same_ statement about chess 4.0 in 1975? Until that >>>>>>>>point _everybody_ was doing forward pruning like mad. They discovered that a >>>>>>>>a shallower full-width search had fewer errors and they stomped everybody into >>>>>>>>the ground until everyone converted... >>>>>>> >>>>>>>It is different. >>>>>>>It is obvious that selective search from the first plies >>>>>>>is a mistake when you have speed. >>>>>>> >>>>>>>It also seems obvious that pruning rules that are based >>>>>>>on the remaining depth is a good idea and you can use them >>>>>>>and see everything if you search deep enough. >>>>>>> >>>>>>>Uri >>>>>> >>>>>> >>>>>>Everybody is overlooking an _important_ detail, so lets take this back to >>>>>>CS101: >>>>>> >>>>>>1. Forward pruning is a form of selective search. You cull moves you think >>>>>>are no good, so that the rest are basically "extended" or searched deeper than >>>>>>the "lemon" moves. >>>>>> >>>>>>2. Search extensions do _exactly_ the same thing. They extend the moves you >>>>>>think are "good" so that they are searched more deeply, while the ones you >>>>>>do not extend are not searched that deep. >>>>>> >>>>>>In simple terms, the two ideas are _identical_ in every way, as far as the >>>>>>final result. To say that doing a full-width search with lots of very >>>>>>sophisticated extensions is not as good as doing a sophisticated selective >>>>>>search (forward pruning) is not a particularly sensible statement to make. >>>>>> >>>>>>_anybody_ that has spent any time on tree-searching will realize that _either_ >>>>>>will produce _exactly_ the same result assuming the extensions and forward- >>>>>>pruning are done with the same skill level. >>>>>> >>>>>>So picking on this aspect of deep blue is simply a strawman argument. They >>>>>>clearly do more extensions than the rest of us. Which _may_ offset their >>>>>>lack of forward pruning. Believing or claiming anything else shows a lack >>>>>>of understanding of something... >>>>> >>>>> >>>>> >>>>>In this case, claiming that you are doing brute force just because you do not >>>>>want errors in your search is also a lack of understanding. >>>>> >>>>>Didn't Hsu say this? Aren't you repeating his words every time you can? >>>> >>>>So? >>>> >>>> >>>>> >>>>>First your point is that they have picked brute force because they had enough >>>>>power and did not want mistakes in the search, and now you are saying that they >>>>>had a selective search and that it is equivalent to what can be achieved with >>>>>strong pruning. >>>> >>>>I said the two results can be _identical_. This is covered in most good >>>>AI books that talk in any detail about minimax search... >>>> >>>> >>>> >>>> >>>>> >>>>>Thinking about it, it seems that you can indeed get the same search enveloppe by >>>>>either pruning or extending. >>>> >>>> >>>>:) As I said... >>>> >>>> >>>>> >>>>>But thinking twice about it, I think that it is not possible with the search >>>>>extension techniques used in Deep Blue to get something equivalent to the simple >>>>>and efficient pruning techniques we know today. >>>> >>>> >>>>Based on what? >>> >>> >>> >>>Based on the description they have made of it. >>> >>> >>> >>> >>>>I _despise_ hearing that kind of statement with _zero_ >>>>testing to support it. Very similar to the "bitmaps can't do this or >>>>that" statements that show up from time to time. And which I find very >>>>amusing as a bitboard practitioner. >>> >>> >>>I think you don't get what I said. >>> >>>I'm just saying that given their framework (which is described in their >>>publication) one cannot get a search enveloppe equivalent to the enveloppe you >>>get with currently known pruning techniques.\ >> >> >> >>Why? Did you see the part where they extend 2 plies at times? That is >>_all_ you need to behave just like null-move, which shortens some paths >>by 2 plies.... >> >> >> >>> >>>I'm not talking here about the superiority of one system on the other. >>> >>>You were talking about the classic idea that one can get the same search >>>enveloppe with either pruning or extensions. >>> >>>Actually there is no discussion here. It is true, in theory. >>> >>>That started to make me think about: "how can I get the same enveloppe by using >>>extensions instead of pruning" (in Chess Tiger for example). >>> >>>And suddenly I find myself thinking about ideas I had never met before. >>> >>>Here I'm not trying to oppose your ideas. Actually I have forked out of the >>>initial discussion about Deep Blue. >>> >> >> >>I think either approach is very interesting. I have done both although I >>haven't done forward pruning in a _long_ time (other than n ull-move of >>course). >> >> >> >> >> >>> >>> >>> >>>>Their search definitely "worked". That seems to be all that counts in the >>>>game of chess. Wins and losses.. >>>> >>>> >>>> >>>> >>>>> >>>>>I smell that there is something important behind this and I will have to think >>>>>more about it. That's an interesting research area. >>>>> >>>>> >>>> >>>>It is also well-known. The two approaches are totally complementary. Same >>>>final result. Totally different ways of getting there. >>> >>> >>> >>>That's what I wanted to say. >>> >>>For example you are at 5 plies before the horizon and decide to stop searching >>>here. >>> >>>What is the equivalent of this when one is using extensions? >> >>You extend all the _other_ moves except here. >> >> >> >>> >>>In other terms, can the definition of extensions be expanded to cover both >>>"classical extensions" schemes AND pruning? >> >>I don't see why not. IE the only difference is going to be the iteration >>depth you report. Which is better? reporting 10 but extending 2 plies, or >>reporting 12 but cutting most stuff off at 10 plies? >> >>IE isn't a "forward prune" basically a "negative extension"?? >> >> >>> >>>I'm always interested in generalizations, as they can help to uncover new ideas. >>> >>>I don't remember having read a paper on this. >>> >>> >>> >>> >>>>>>As far as your selective search comments, It is obvious (to me) that everybody >>>>>>is not doing selectivity just deeply in the tree. It is being done near the >>>>>>root as well, based on some very trivial oversights that some programs make from >>>>>>time to time. Oversights that a 4 ply full-width search would see. >>>>> >>>>> >>>>> >>>>>It's not as simple as that. >>>>> >>>>>"Near the root" can mean several different things. >>>>> >>>>>You can apply some kind of gross pruning system near the root and make big >>>>>shortsighted mistakes. >>>>> >>>>>You can also apply some detection near the root and collect information to prune >>>>>later. Then you don't make such big mistakes. >>>>> >>>>>The argument that pruning will make obvious blunders sometimes is simply wrong. >>>> >>>>That argument is provable. Several have shown positions that Tiger simply >>>>can not see. The last one posted here you replied "the forward pruning >>>>simply misses that..." >>> >>> >>>Yes I remember. >>> >>>It was Fernando using Chess Tiger for Palm in blitz. >>> >>>The program was reaching ply depth 3 and missed a fork (or something like that) >>>at the second ply. >>> >>>I'm not sure you could catch the PC version as easily, even at bullet time >>>controls. :) >>> >> >>The one I recall wasn't a palm. It was a normal tiger. IE people regularly >>report positions that fritz can simply not solve, period. Because the position >>zaps null-move searchers. The same thing will happen to _any_ program that >>does forward pruning, since there is no way to make it perfect enough to not >>discard a good move that looks horrible by any imaginable rule. >> >>BTW, Tiger/Fritz aren't the only programs that have "killer positions". I >>have more than enough for my program... > >So do humans, but it forward pruning is not only a good idea, it is essential >for good play for humans. Are you _sure_ you forward prune? Or do you just look at "interesting moves" deeper (selective extensions)? I personally believe humans do not forward prune... because I am _sure_ that a human looks at every move on the board at the root position, and says "these two are interesting and deserve a deeper search." And if both turn out to be bad, then we go back and pick a third to look at if needed... So perhaps the idea of "forward pruning" is foreign to us as well... > >> >> >> >>> >>> >>> >>> Christophe
This page took 0.03 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.