Two ideas I have tested

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
Kempelen
Posts: 620
Joined: Fri Feb 08, 2008 10:44 am
Location: Madrid - Spain

Two ideas I have tested

Post by Kempelen »

Hello,

Before I released Rodin I was testing two ideas I had, but they were not successfull. I write them here to know if anyone has testing something similar with success.

1) As I have a pawn hash, I know in almost every node when a passed pawn has been created compared to previous node. Is a cheap an effective way to know about it. My idea was that in those moment I can increase "security margins", I mean, futility margin incress 100, delta_prunning increase 100 also, and so on..... The idea is the passed pawn could make prunning techniques to lie about real situation.
For me, althought logical, this did not increase elo. :(

2) Knowing if a node is in check after making the move is relatively expensive. Why dont to store check information in the hash table? it is cheap, only two bits needed (00 - Check has not been computed, 01 - position is not check, 10 - position is check). It is possible also that no lose of slot because to add this data. A possibility is to add those bits to flag integer, so the only cost would be to extract or make that information for an integer.
The idea is compute if is check is needed sometime which can be saved storing that information in the hash.

Has anyone tested any of this ideas??? I did not get any good result, but maybe I did not make the correct fixed or tests......

Best regards,
Fermin
Fermin Serrano
Author of 'Rodin' engine
http://sites.google.com/site/clonfsp/
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Two ideas I have tested

Post by hgm »

Joker stores the in-check status in the hash, to know if it should extend the hash move (which is tried before move generation). I have not tested for the Elo this brings, but it is obvious that it speeds things up.
jwes
Posts: 778
Joined: Sat Jul 01, 2006 7:11 am

Re: Two ideas I have tested

Post by jwes »

I was thinking about this, though I would only use 1 bit and ensure that no position is stored in the hash table without knowing the check status. Another idea is to use another bit to say if the best move from the tt gives check.
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Two ideas I have tested

Post by jdart »

Storing the check status in the hash is highly dangerous if you ever get a hash collision. Getting an invalid score from the hashtable doesn't probably crash anything, but thinking you are in check and not being, or vice-versa, is very bad.