Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Frustrated beyond words

Author: Robert Hyatt

Date: 20:43:16 02/16/06

Go up one level in this thread


On February 16, 2006 at 13:17:01, Vincent Diepeveen wrote:

>On February 16, 2006 at 12:47:46, Robert Hyatt wrote:
>
>>On February 15, 2006 at 19:22:32, Vincent Diepeveen wrote:
>>
>>>On February 15, 2006 at 07:45:37, David B Weller wrote:
>>>
>>>>I am a broken man ...
>>>
>>>My experience is that just asking questions usually works,
>>>as you'll check all those details out and fix bugs there.
>>>
>>>So below a number of questions...
>>>
>>>>I have been searching in vain for the reason(s) that my engine searches so
>>>>slowly compared to others...
>>>>
>>>>1/5 the NPS
>>>
>>>what nps do you get at which hardware?
>>>
>>>>5 ply less
>>>
>>>>NPS and depth is still < Gerbil even when using a rediculously simple SE of
>>>>material ONLY
>>>
>>>>using:
>>>
>>>>AlphaBeta fail soft with Aspiration=30 and PVS
>>>
>>>Aspiration oh dear.
>>>
>>>Throw it away. You get a reliable score from hashtable anyway within a node or
>>>200 which annihilates the need for an aspiration window.
>>
>>
>>That's false.  I used to have a position you could not search without
>>aspiration.  True score was around 0, but there were zillions of forced mates
>>for both sides.  If you searched with +/- infinity, you'd be there for hours,
>>while aspiration allowed the forced mates to prune away branches quickly.
>
>>I use aspiration.  I will post some numbers with and without later, if needed,
>>but it definitely works.
>
>Bob, i'm not here to improve crafty but you definitely should retest things in a
>statistical significant way.

I typically test with lots of games, playing the same opening with white and
black.  Currently I have been using Albert Silver's positions since he posted
them.  That isn't 213 positions, it becomes 100 games x 50 moves or so...



>
>What i do always is generate automatically output of 213 positions and create a
>nice excel sheet from it.


I've always done this, except I don't use excel on linux, but I do have a
program that eats my log files and compares two of them in various ways such as
search depth reached, time to reach particular depth, whatever I want to see..


>
>After results speak for itself in favour of PVS, because already from hashtable
>you get directly a great bound, so fail lows you determine way sooner than a
>true score with aspiration search.
>
>And as you have a lot of fail lows with Crafty in games always (i see it dropped
>at icc quite some points as of lately against all those rybka's),
>perhaps you want to test this time fail low positions instead of always showing
>up with 23 BK-fail high positions :)
>
>Why not pick a position or 213 based upon games from icc which you lost?

I have no idea what you are rambling about now.  Aspiration on fail low is also
important.  Relax the bounds to -infinity and the first search can take a long
time, whereas with aspiration search, you can still prune all the branches
leading to mate to find the loss of a pawn quicker.

BTW current version of crafty is for testing/debugging, with parts of the eval
totally turned off while other parts are being rewritten.  King safety is almost
nil for example...

If you have a set of positions you want me to run with pure PVS and then with
PVS using an aspiration, post 'em and I'll run 'em.  Turning off aspiration at
the root is trivial.  But I've already tested this several times, and found my
multi-level aspiration was better than the old single-level aspiration.  And I
didn't test with BK.





>
>Note that most commercial programmers already find the number of 213 positions
>which i use to determine for example parallel speedup, quite little. They prefer
>1000.
>
>Last ICGA issue i opened i see you are still toying in years 70 there, showing
>just 15 positions. Nearly factor 15 less than what i use and a factor 60 less
>than what the commercial programmers see as a statistical proof.

If you read it you should have noted that I didn't start with 15.  I started
with a _bunch_ but then picked out a representative sub-set for the paper.



>
>Vincent
>
>>
>>
>>
>>
>>>
>>>>Null Move R=2 (no verification)
>>>
>>>use R=3 and double nullmove. Gives another extra ply for free...
>>>
>>>Verification search was invented by Omid when he still was busy starting
>>>computerchess. Very bad idea to use.
>>>
>>>>Futility Pruning at Frontier
>>>
>>>>Delta Pruning in Quies
>>>
>>>Hello, i've been missing some stupidity here as of lately probably.
>>>
>>>Any type of pruning in qsearch is pretty silly to do.
>>>
>>>First of all first count what you could possibly save out.
>>>In diep i could save out a potential 3% of nodes at most by doing some
>>>type of futility in qsearch.
>>>
>>>Should one take huge risks of crippling my entire program as a result of
>>>futility in qsearch in order to save out another 3% of nodes?
>>>
>>>>Low History Reduction [late in move list]
>>>>*not using IID. It does not help
>>>
>>>>Extensions:
>>>>Check
>>>>One Reply
>>>>Mate threat
>>>>Pawn to 7th
>>>>
>>>>extension are UNLIMITED
>>>>[tried several extension limiting schemes with little difference]
>>>>
>>>>Move order:
>>>>ETC [used only when in check]
>>>
>>>Actually this is a pretty good idea. i'll check it out.
>>>
>>>>HASH
>>>>PV
>>>
>>>pv??
>>>
>>>don't you have a probe or 4 from hashtable already.
>>>
>>>>MATE KILLER
>>>>MVV/LVA
>>>>KILLERS (2)
>>>>HISTORY
>>>
>>>>Static eval is about half way between Gerbil and Crafty [in complexity]
>>>
>>>in general fixing stability bugs in eval usually searches another ply deeper.
>>>
>>>>I have profiled the code, and there is nothing abnormal. Spends most time in
>>>>eval. [IIRC 30+ %]
>>>
>>>sounds like a lot to me for such a small eval.
>>>
>>>>Estimated average branching factor is 2.4 [tested on positional suite]
>>>>*maybe higher in games
>>>
>>>>please help. About to go 'stark raving mad'
>>>
>>>But you forgot to mention the most important thing.
>>>
>>>What language are you programming in?
>>>
>>>I remember i helped out an Australian programmer one day and just pointed him to
>>>profile his c++ code. Not long after that his engine speeded up 2 times in nps.
>>>
>>>Now let's not discuss silly programming languages like JAVA nor C#.
>>>Perhaps good for GUI's but writing an engine in it is really asking for trouble
>>>and a slowdown of factor 3 to 5.
>>>
>>>Secondly how much testcode did you write in order to test that what your program
>>>is doing is also working?
>>>
>>>Usually i start an amateur program. I see it spit out big nonsense from
>>>hashtable and i ask the author to remove some bugs from his hashtable.
>>>
>>>What proof do you have that your hashtable is working bugfree.
>>>
>>>Did you test 100% correct your hashkey?
>>>
>>>Like test after every makemove and unmakemove that the hashkey was correct?
>>>How many probes do you do and do you clean your hashtable *before* you give a
>>>newgame?
>>>
>>>What overwrite strategy do you use?
>>>
>>>And so on.
>>>
>>>Please remember, in 1997 it was quite common to search 10 ply and to die around
>>>11 ply with a branching factor of 10.0
>>>
>>>Secondly extensions.
>>>
>>>Just throw out extensions. Extend at most getting out of check. Throw out the
>>>rest. Are you 100% sure that you don't search further after making an illegal
>>>move, is it garantueed you capture the king as first?
>>>
>>>Vincent



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.