Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: reuse Last Ply Moves In Move Gen ?

Author: Sune Fischer

Date: 10:41:14 04/12/02

Go up one level in this thread


On April 12, 2002 at 12:36:56, Russell Reagan wrote:

>You say that this "seems complicated" and that it's a "hassle". Of course it
>would be. The research involved in finding all of the special cases alone would
>be a hassle, BUT how do you think improvement comes in the world?
>
>For example, consider the people who first wanted to implement multiprocessor
>support in their chess programs. There was no clear "winning" solution to the
>problem and people had to implement rather complex algorithms in some cases,
>knowing that they may not even work or might work inefficiently. Would we have
>been better off if they would have said, "this is going to be too hard" and
>never experimented with it? Certainly not.

When I said a hassle, I was also hinting at all the checks you need to do.
It is very complicated, but is isn't really a given that it is worth while at
all, say that 50% of the moves needs to be regenerated, that means you have
wasted time checking all that stuff, just to save generating half the movelist.

And what when you implement the hash, then you can try the hashmove first and
suddenly the best design would have been, to have as few things to update as
possible. Certainly incrementing a movelist at every node is not for free.

There is so much stuff you need to plan ahead for, right now I am worried in
fact, that although my structures are fast for movegen, that they will be slow
for eval. For instance I have no way of doing a quick check of how many bishops
are left on the board, and what color square they are on.
I forgot about this back when I was too hung up on making a fast movegen.

I could go out and claim that I have the fastet perft function (I probably don't
though), but what does that matter if there is a different part that sucks
beyond repair, it is the engine as a whole that matters, not one specific
function.

>The process from going from a single
>threaded chess engine to a multithreaded engine with support for multiple
>processors IS a "hassle", but that's one of the factors that determines a world
>class program from just another chess engine.

That is a different kind of hassle I think, there is a clear potential in
multiprocessing. And it is not the hassle itself I object to, it is doing a lot
of work for something that has not been given enough thought.

>If the programmer isn't willing to work hard in the first place, then they
>should never expect to have anything but a below average chess program. If you
>have dreams of your program being up there with Fritz and friends, then get
>ready to put in hard work and overcome obstacles such as these. If you aren't
>willing to work that hard at something, that's your loss, because I guarentee
>that someone out there IS willing to work that hard to gain that 5% (or
>whatever) advantage, and if they're willing to do the hard work this time,
>they're going to be wiling to do it next time, and when they add up 5% speed
>increase after 5% speed increase, a 2% increase here, a 1% speed up there, it is
>all going to add up to a strong chess program.

Well, right now, I don't do nullmove, hashing, killers etc.
There is so much stuff that I could really benefit from, so minor tricks will
have to wait. It is quite possible I will also redesign my structures (again),
so all these little optimizations could very well be wasted.

>I think the desire and wilingness to put in hard work is a major factor in
>determining the success you have in any field. If you enjoy putting in the hard
>work, then it's not hard work anymore and it's fun. I would bet that all of the
>authors of top chess programs enjoy what they do and it brings them pleasure to
>hammer out a new idea and put in the hard work.

I think it is also the ability to understand what is worthy of your energy and
what is not. I have two pages full of ideas I want to try, it will take me a
year to try them all, of cause I know which to try first because others have
already proven they work.

When Frenzee hits 2400, then I will be turning every stone in the search for
those marginal tweaks, but not now :)

-S.

>And please excuse me if I sound like I'm talking down to you, that isn't my
>intention. I just hope to bring someone to the reality that success comes from
>hard work, although I approached it from a rather longwinded direction :)
>
>Russell



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.