Friday, 25 May 2007

Transposition tables and tidying up.

I realised this morning that it has been quite a while since my last posting. I am currently working on a number of things in Vicki and my guess is that release 0.04a would be significantly stronger than the previous versions. I am somewhat reluctant to drop the alpha qualifier, but perhaps I will in the next release (version 0.05beta).

I currently have a structure called CHESSENGINE that I pass around (or the pointer to it) between functions. I realised that this parameter-passing may actually degrade performance, cause problems because of its size (I’m not completely sure, but isn’t there a limit of 64k on a "struct"s – even on modern operating systems?) and waste quite a few clock cycles to find the data element within this structure. Regardless, all I gain from this is the ability to have multiple engines in the same process as its state is completely described by this one chunk of data. I’m moving away from this and dumping everything as global variables and structures in a header file. Who wants multiple engines (of the same kind and strength) in the same process anyway?

I am also implementing an elementary transposition table and cleaning up the code as I go. At the moment I am having problems getting it to work, but I’m sure it is just a case of a silly bug lurking somewhere. Once this are done, Vicki will not be such a pushover anymore! ;-)

I’ll keep you all posted...


Jonatan Pettersson said...

Transposition tables is the most annoying thing I have done so far in chess programming (and probably ever will).

I must have tried using atleast 10 different setups in the alpha-beta method to make them work, and suddenly one worked for some odd reason.

I have been very careful not break anything when messing around with them since then. :)

Sparky said...

Killer moves took me 10 minutes to implement; aspiration windows took 5 and was such a joy. Move ordering took an hour to get the basics working and the rest was just tweaking...

However, so far, I'm having the same problems you had... transposition tables are really tricky... so far what I have is simply not working.

Anonymous said...

Jaco !!

Can't believe I found you! How have you been?

You really have to join facebook, we have a Bond University group there that would really love to chat to you again!

I have you and you alone to thank for my entire career! I am running my own web development company and it's been running for over 2 years now.

Your a LEGEND!

hope to see you on Facebook soon!

Glen Boonzaier

Sparky said...

Hi Glen!!
great to hear from you!! ...I'm so glad you started your own company and you're doing so well (you have yourself to thank for that!) I've already joined facebook and can't wait to hear from the old gang?
Thanks for the post.

Rajiv Bakulesh Shah said...

It's just a week shy of a month since your last post. I hope your project isn't dead. I'd like to match our engines sometime. ;-)

Keep up the good work, and don't forget to post from time to time!

Sparky said...

Hi rajiv

You are quite correct... The project is definitely not dead, but I am rather busy at the moment.

I am having difficulty with a number of things in Vicki. Even though I've implemented killer moves, better heuristics, transposition table, etc., the results are not really that better. I am working on this at the moment.

I'll post an update real soon! Regards