Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Congratulations Bob!

Author: Robert Hyatt

Date: 19:52:38 08/14/05

Go up one level in this thread


On August 14, 2005 at 22:12:14, Uri Blass wrote:

>On August 14, 2005 at 21:36:56, Robert Hyatt wrote:
>
>>On August 14, 2005 at 20:59:33, Uri Blass wrote:
>>
>>>On August 14, 2005 at 20:12:37, Eugene Nalimov wrote:
>>>
>>>>On August 14, 2005 at 20:08:21, Uri Blass wrote:
>>>>
>>>>>On August 14, 2005 at 18:01:28, Robert Hyatt wrote:
>>>>>
>>>>>>On August 14, 2005 at 17:00:02, Bernhard Bauer wrote:
>>>>>>
>>>>>>>On August 14, 2005 at 16:47:43, Darrel Briley wrote:
>>>>>>>
>>>>>>>>On August 14, 2005 at 15:22:43, Graham Banks wrote:
>>>>>>>>
>>>>>>>>>Best wishes for the remaining games. It would be really good for this to be the
>>>>>>>>>best Crafty ever! Fingers and toes crossed!
>>>>>>>>>
>>>>>>>>>Graham.
>>>>>>>>
>>>>>>>>1.5 with two blacks vs. Shredder and Junior.  Impressive indeed.
>>>>>>>>Congratulations Bob!
>>>>>>>>
>>>>>>>>                         DB
>>>>>>>
>>>>>>>As Bob has pointed out earlier this is pure luck.
>>>>>>>Crafty has serios tactical weaknesses as all the
>>>>>>>computer chess specialists know. Crafty is not even commercial,
>>>>>>>so how can this be explainded in any other way, but luck?
>>>>>>>Perhaps Bob has found a very old version and is running this now, 6.4?
>>>>>>>
>>>>>>>Anyway congratulations and
>>>>>>>Kind regards
>>>>>>>Bernhard
>>>>>>
>>>>>>
>>>>>>I'd bet that those "serious tactical weaknesses" are not to be found on this
>>>>>>hardware, at least until someone is searching far faster than I am...
>>>>>
>>>>>Tactical weaknesses can be found also in software.
>>>>>
>>>>>>
>>>>>>Crafty's "serious tactical weaknesses" are more urban legend than fact...
>>>>>
>>>>>Comparing Crafty with fruit Crafty does not do checks in the first ply of the
>>>>>qsearch when fruit does it and Crafty does not use history based pruning when
>>>>>fruit does it.
>>>>>
>>>>>I think that these are relative weaknesses and using the ideas of fruit may help
>>>>>Crafty to be better in tactics.
>>>>
>>>>Those are not "ideas of fruit". Both are mentioned in the 1977 computer chess
>>>>book written by KAISSA authors.
>>>>
>>>>Thanks,
>>>>Eugene
>>>
>>>You may be right but fruit proves that they can work practically in chess
>>>programs and Fabien showed the relevant source and as far as I know Bob never
>>>tried checks only in the first ply of the qsearch.
>>
>>Look at the comments in main.c...  You might be surprised to see that I did
>>checks in the q-search until just prior to Jakarta, which was version 10.x I
>>think..  So this was in Crafty in 1995.  And removed in 1996 before the WMCCC
>>that year...
>>
>>I tried them in the first ply only, the first two plies (that is the so-called
>>extension search mentioned first below) and so forth...
>>
>>
>> *    2.5    first check extensions added.  in the extension search (stage     *
>> *           between full-width and captures-only, up to two checking moves    *
>> *           can be included, if there are checks in the full-width part of    *
>> *           the search.  if only one check occurs in the full-width, then     *
>> *           only one check will be included in the extension phase of the     *
>> *           selective search.                                                 *
>>
>>*    4.0    evaluation units changed to "millipawns" where a pawn is now      *
>> *           1000 rather than the prior 100 units.  this provides more         *
>> *           "resolution" in the evaluation and will let Crafty have large     *
>> *           positional bonuses for significant things, without having the     *
>> *           small positional advantages add up and cause problems.  V3.8      *
>> *           exhibited a propensity to "sac the exchange" frequently because   *
>> *           of this.  it is hoped that this is a thing of the past now.       *
>> *           also, the "one legal reply to check" algorithm is now being used. *
>> *           in short, if one side has only one legal reply to a checking move *
>> *           then the other side is free to check again on the next ply. this  *
>> *           only applies in the "extension" search, and allows some checks    *
>> *           that extend() would normally not follow.                          *
>>
>> *    5.5    checks are now back in the quiescence search.  Crafty now stores  *
>> *           a negative "draft" in the transposition table rather than forcing *
>> *           any depth < 0 to be zero.  the null-move search now searches the  *
>> *           null-move to depth-1 (R=1) rather than depth-2 (R=2) which seemed *
>> *           to cause some tactical oversights in the search.                  *
>>
>> *    5.6    improved move ordering by using the old "killer move" idea.  an   *
>> *           additional advantage is that the killers can be tried before      *
>> *           generating any moves (after the captures.)  quiescence now only   *
>> *           includes "safe" checks (using Swap() to determine if it is a safe *
>> *           checking move.                                                    *
>>
>> *    8.12   fixed minor bugs in quiescence checks, which let Crafty include   *
>> *           more checks than intended (default quiescence_checks=2, but the   *
>> *           comparison was <= before including a check, which made it include *
>> *           three.  Additionally, a hashed check was *always* tried, even if  *
>> *           quiescence_checks had already been satisfied.  pawn scoring also  *
>> *           had a bug, in that there was a "crack" between opening and middle *
>> *           game, where Crafty would conclude that it was in an endgame, and  *
>> *           adjust the pawn advance scores accordingly, sometimes causing an  *
>> *           odd a4/a5/etc move "out of the blue."  minor bug in next_capture  *
>> *           was pruning even exchanges very early in quiescence search.  that *
>> *           has now been removed, so only losing exchanges are pruned.        *
>>
>> *    9.5    "vestigial code" (left over from who-knows-when) rmoved from      *
>> *           Evaluate().  this code used an undefined variable when there was  *
>> *           no bishop or knight left on the board, and could add in a penalty *
>> *           on random occasions.  quiescence checks removed completely to see *
>> *           how this works, since checks extend the normal search significant *
>> *           amounts in any case.  QuiesceFull() removed and merged into       *
>> *           Quiesce() which is faster and smaller.  first impression: faster, *
>> *           simpler, better.  the benefit of no quiescence checks is that the *
>> *           exhaustive search goes deeper to find positional gains, rather    *
>> *           than following checks excessively.  No noticable loss in tactical *
>> *           strength (so far).                                                *
>
>I know that you tried checks in the qsearch but I remember from another
>discussion that you did not try them only in the first ply of the qsearch and
>maybe I remember wrong.
>
>The idea is basically to have 2 qsearch functions
>QuiesceFull() and Quiesce() when in QuiesceFull only one ply is made but
>checking moves are made inside that ply when in quiesce you make only reply to
>checks and captures.

Old crafty versions did exactly that, except that quiescefull() was not called
that, it was called "extend()" instead, and was called when search() ran out of
depth.  It could check one (or even two plies at one point) ply or none
depending...




>
>I am not sure if this is exactly the idea that is used in fruit(I did not read
>fruit's search code and I only read part of it's evaluation code)
>
>Following a lot of checks is not a problem in that case because you follow only
>a single check and later go to qsearch without following checks(except replies
>to check or captures).
>
>Note also that fruit is using also null Move with constant R=3 and I think that
>following checks in the qsearch goes well with constant R=3 because the main
>problem with constant R=3 is missing threats when the remaining depth is small
>and with checks in the qsearch you do not have that problem.

You have it, just in different forms.  Not all threats are started with a check.
 R=3 misses every one of those whether you do checks or not...


>
>Uri



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.