Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Evaluation-based Reductions and/or Extensions

Author: Tord Romstad

Date: 15:02:42 12/29/03

Go up one level in this thread


On December 29, 2003 at 10:35:35, Anthony Cozzie wrote:

>On December 29, 2003 at 09:04:44, Tord Romstad wrote:
>
>>On December 28, 2003 at 22:18:04, Anthony Cozzie wrote:
>>
>>>In my personal opinion: The time of such static tricks has passed.  When people
>>>ran on a 386 and struggled to get 5 ply, extensions && pruning were critical.
>>>Top programs nowadays get 14 ply.  The simple fact of the matter is that
>>>computers are almost perfect tactically.  More depth now is purely for
>>>positional benefit.  Right now I'm trying to _reduce_ my extensions, not add
>>>more :)
>>
>>By proceeding in the same direction, you will start adding reductions.  :-)
>>
>>I disagree that computers are almost perfect tactically.  In the comp-comp games
>>I see,
>>a high percentage of the games are decided by a tactical mistake by one of the
>>engines.
>>You may be right that the main importance of more depth is stronger positional
>>play,
>>but I don't see this as a reason to avoid using knowledge in the search.  By
>>pruning or
>>reducing anti-positional moves with no tactical potential, you will search
>>deeper positionally
>>*and* tactically.
>
>In blitz, maybe.  But at longer time controls even Zappa makes almost no
>tactical errors.

My experience is very different -- I've found that tactics are important at all
time
controls.  The explanation is probably partly that my engine is not as strong as
Zappa
(tactics tend to be more important in games between weaker engines), and partly
that Gothmog's style often leads to wild positions with many tactical
opportunities
for both sides.

But still, I think Uri is right that tactics are important for strong engines as
well,
even if it is not as visible.  A top engine might be able to avoid being crushed
by
a tactical shot, but it could still happen that one engine discovers a
combination
one move later than its opponent, and is forced to make some positional
concession
in order to avoid the combination.  Even when the whole game looks purely
positional, there will often be important tactics hidden in variations which
were
never played out on the board.

>>You also once again make the mistake of believeing that everybody is only
>>interested
>>in making their engines play well on super-fast hardware.  Programming a chess
>>engine
>>that plays well on a fast, modern PC is so easy that it is almost boring.  In my
>>opinion, it
>>is much more interesting to invent techniques which do not require extreme speed
>>of
>>computation in order to work.
>
>Depends on how you define "well". Better than a human? easy.  Better than
>Crafty/Yace/Ruffian? more challenging.

Of course.  I just don't find that type of challenge very interesting.  To me,
the
main purpose of chess engines is to serve as enjoyable opponents for human
players, not as tools to beat other chess engines.

>>>Thorsten and Ed have both said that Rebel plays better with the reductions off.
>>>The only engine on ICC that uses his reductions is Chompster, and I've seen
>>>chompster make errors on a 10 ply search that Zappa catches with a 6 ply search.
>>
>>When you start a sentence with "The only engine on ICC that uses ...", the
>>statement will
>>almost always be wrong, no matter how you complete it.  Gothmog ("GothmogX" on
>>ICC)
>>doesn't use exactly the same reductions as Rebel, but it does many similar and
>>often more
>>aggressive reductions (for instance, I have no upper limit for the number of
>>reductions in a
>>single path).  I'm sure you'll be able to find positions where Gothmog makes
>>errors in a 10
>>ply search which Zappa catches with a 6 ply search, but I also think it is
>>possible to find
>>positions where the opposite happens.
>
>First of all, for me and I think you chess programming is a hobby, not a job.
>We are free to do whatever we want: optimize for standard time controls and dual
>opteron, or 2 minute bullet on a cell phone, or for playing an interesting game
>of chess, or for being a good sparring partner for my grandmother, or whatever.
>Being the competetive person I am, I try to make a strong engine, so that is my
>viewpoint.

It is and will always remain just a hobby to me, too.  :-)

We clearly have very different goals with our engines.  I am not a very
competitive
person, and I have no ambitions of creating a strong engine.  Playing an
interesting
game is good enough to me.

>Secondly, I am talking about strong chess programs.  Commercials + top amateurs.
>   Ruffian made a tactical error at Leiden 2003.  1 error.  And we were all
>amazed because it happens so infrequently.  When you get 14 ply, you just don't
>make mistakes.  You have to win with eval/book.
>
>Third, my point was not to derogate Chompster or Gothmog,

I understood that, of course.  I also hope my post didn't look aggressive in any
way -- that was certainly not my intention.

>but simply point out
>that worst case performance is what matters.  What do you think is stronger: 35
>14-ply searches and 5 8-ply searches, or 40 13-ply searches?  That is the
>problem with all static tricks:  Every now and again they are wrong, and when
>they are wrong your program can lose the game in one swift swoop.

Doing a reduced-depth search for bad-looking moves (possibly with a re-search
if the move surprisingly turns out to fail high) is not the same as static
pruning.
I don't do any static pruning at all except in the last 3 plies before the
horizon.

>I think it is possible to add 20-30 elo to your engine with static pruning.
>HIARCS and Shredder seem to have static pruning that more or less works.  But I
>think it takes years to get right.

It is tricky to get right, but it's also great fun.  And I think your estimate
of 20-30 elo
is way too low.  The current version of Gothmog seems to be at least 150 points
stronger than the last pre-MTD(f) versions in July or August.  The evaluation
function
is almost unchanged since then.  There is no new knowledge, just a few minor and
unimportant bug fixes and tuned parameters.  The only substantial improvements
are MTD(f), slightly better move ordering, and extensive use of the evaluation
function
to guide the search.  I think the last factor is by far the most important.

Perhaps it would be an interesting experiment to remove all knowledge-based
pruning
and reductions from my engine, and run a test match against the normal version.

Tord



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.