Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Speed and horizont effect

Author: José Carlos

Date: 08:33:58 01/22/00

Go up one level in this thread


On January 22, 2000 at 08:24:30, David Blackman wrote:

>On January 21, 2000 at 11:23:19, José Carlos wrote:
>
>>  Averno has a very slow move generation. Although I know I have to face this
>>problem soon, I'd like to try some methods to avoid the horizont effect, that
>>causes me lots of headaches.
>>  How did old machines (Forte/Super Forte, Mephisto Almeria/Portorose, etc...)
>>that ran in very slow hardware avoid this problem?
>>  I don't think null move can help me, since my prog sees 4-6 plys in midgame,
>>so I can't apply null move at so shallow depth (am I wrong about this?).
>
>Null move probably helps even at those shallow depths. (Warning: Bob Hyatt
>disagrees, and he is often right about these things.) It will cause some
>problems, but it should see forced tactics a bit deeper as well. Of course, you
>want to turn it off or limit it in the endgame.
>
>>I implemeted hash tables, that improves move ordering, but hash tables are not
>>magic.
>
>4-6 plies is bad. Slow move generation is a bit of a worry, but it would have to
>be incredibly slow to do this on modern hardware at any sensible time control.
>Perhaps there are other things to fix as well.

  Sorry, I forgot to say that I test my prog usually at blitz time controls. At
15 to 30 minutes a game, ply 7 usually is searched. At longer time controls I
have no time to test it, but I'm quite sure each new ply costs a lot more than
the previus (branching factor is about 5).
  Anyway, my move generation is slow, because I wrote it from scratch, using a
programming "understandable, but not efficient". But I'll try to improve it when
I have a better understanding of searching techniques.
  What confuses me is how old programs in very slow hardware could play a so
reasonable game.

>Have a close look at move ordering. Also look at the percentage of nodes that
>are in the quiescence search, and if it is large, try to work out how to reduce
>it.

  Move ordering is where I've put more efforts. Hash tables, killers, try
captures first, etc.
  About quiescence, you are right. More or less halve of the nodes searched are
in quiesce. I probe hash table in quiesce, but I'm sure my pruning is not enough
yet (only beta cutoffs).

>>  About extensions, I implemented checks and recaptures, but since my prog had
>>problems in long series of captures, I define recapture as a capture after
>>another, not necessaryly reestablishing the material imbalance. As well, I
>>extend a full ply in recaptures, since in a so shallow depth, it is very
>>difficult to find four captures (most people extend 3/4 ply in recaptures,
>>right?).
>
>Check extension is important. Keep it.
>
>Turn off the other extensions until you get the program working better. That
>recapture extension is probably costing you a ply or two. You need those extra
>plies.

  I'll try this.

>Are you doing a quiescence search? Because if you are, long series of captures
>are not usually a problem. Sometimes, but not usually.
>
>>  Extensions help, but I still got problems with horizont effect.
>
>Are you sure you really have horizon effect? Horizon effect is a very subtle
>thing. Maybe you are just not searching deep enough. That is something
>different.

  Many times I see my program has a big piece attacked. Then, it puts a small
piece between the atacker and the big piece. The opponent can attack that
intermediate piece, my program can defend it, but at the end, the piece will be
lost anyway. I think this is horizon effect, because the program does not know
it is in trouble until it sees the loss.

>If you do a 4 ply search and miss a 6 ply tactic, that is just not enough depth.
>It is not the horizon effect.
>
>If you do a 6 ply search and miss a 4 ply tactic, that might be the horizon
>effect. (But it might just be a bug. Or a null move problem. Look carefully.)
>
>>  Any suggestions?
>
>Search deeper. Look carefully at move ordering, quiescence search, null move.
>When those are fixed, try to write a faster move generator.
>
>When you've done all that, start looking at extensions again. Extensions can be
>good, but you have to do them carefully or you lose too much depth.
>
>>  Thanks in advance.
>>
>>  José C.
>>
>>PS.: I use PVS and Aspiration search.
>
>Sounds good.



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.