Page 1 of 2

open source gift for Christmas

Posted: Sun Dec 25, 2011 10:32 am
by PK
http://www.koziol.home.pl/rodent_0.08.zip

This is a little open source engine, based on Sungorus 1.4 by Pablo Vazquez, with eval parameters borrowed from excellent "Toga LOG user manual" (link in the readme). As You see, it has never been destined to be completely original. I consiered it rather a didactic exercise: self-teaching by exposition to concise code of the original author, trying to get a feel of object-oriented design and going for simple implementation of a couple of concepts. So You may regard it as a beefed-up, bitboard version of the CPW-Engine (Rodent is probably 2550+).

Rodent is also meant to showcase one idea that I consider interesting - "sliding LMR reduction". This means making LMR reduction depth variable, using fractional plies - currently something like 3/4 ply after trying 6th move in a given node and then 1/4 ply is added after every 4 moves.

The intended effect is that first full reduction happens a bit later than usual (as I start with 3/4 ply reduction), but a series of late moves is reduced much deeper. So difficult move sequences become more difficult to find, but easy shots are easier to spot.

It has been one of the very first things added to Sungorus codebase, so all other modifications had to cope with the effect of that reduction scheme. The funny thing is that I was not able to gain anything from tempo bonus in the evaluation.

Unfortunately Rodent's playing style is boring, this is not Glass and will never be. However, I expect Glass to gain form some search improvements I tested here.

Re: open source gift for Christmas

Posted: Sun Dec 25, 2011 2:25 pm
by Pablo Vazquez
Very nice. Thank you, Pawel :)

Re: open source gift for Christmas

Posted: Sun Dec 25, 2011 4:08 pm
by PK
BTW Pablo, I have tried to merge these changes with the source You have sent me, but this didn't work well (probably Your shrinking of history table is incompatibile with my multiplying the counters). However, I'll probably merge history table access functions into sSelector class, which is a natural extension of Your modifications.

at the very least, now You can see potential of Sungorus :)

Re: open source gift for Christmas

Posted: Sun Dec 25, 2011 7:18 pm
by Pablo Vazquez
PK wrote:BTW Pablo, I have tried to merge these changes with the source You have sent me, but this didn't work well (probably Your shrinking of history table is incompatibile with my multiplying the counters). However, I'll probably merge history table access functions into sSelector class, which is a natural extension of Your modifications.

at the very least, now You can see potential of Sungorus :)
You mean it didn't work regarding strength? That is strange. Changes to the history code shouldn't make much of a difference. I remember testing without history counters and the difference was about 15-20 ELO. History and killers overlap and removing both is worth a lot (maybe 100 ELO or so) but just removing one is a small loss.

Re: open source gift for Christmas

Posted: Mon Dec 26, 2011 6:45 am
by Graham Banks
Image

Re: open source gift for Christmas

Posted: Mon Dec 26, 2011 4:05 pm
by ZirconiumX
What is the correct way to compile, as there is no Makefile?

(I don't have MSVC++, nor even Windows)

Matthew:out[/code]

Re: open source gift for Christmas

Posted: Mon Dec 26, 2011 4:19 pm
by lucasart
PK wrote:http://www.koziol.home.pl/rodent_0.08.zip

This is a little open source engine, based on Sungorus 1.4 by Pablo Vazquez, with eval parameters borrowed from excellent "Toga LOG user manual" (link in the readme). As You see, it has never been destined to be completely original. I consiered it rather a didactic exercise: self-teaching by exposition to concise code of the original author, trying to get a feel of object-oriented design and going for simple implementation of a couple of concepts. So You may regard it as a beefed-up, bitboard version of the CPW-Engine (Rodent is probably 2550+).

Rodent is also meant to showcase one idea that I consider interesting - "sliding LMR reduction". This means making LMR reduction depth variable, using fractional plies - currently something like 3/4 ply after trying 6th move in a given node and then 1/4 ply is added after every 4 moves.

The intended effect is that first full reduction happens a bit later than usual (as I start with 3/4 ply reduction), but a series of late moves is reduced much deeper. So difficult move sequences become more difficult to find, but easy shots are easier to spot.

It has been one of the very first things added to Sungorus codebase, so all other modifications had to cope with the effect of that reduction scheme. The funny thing is that I was not able to gain anything from tempo bonus in the evaluation.

Unfortunately Rodent's playing style is boring, this is not Glass and will never be. However, I expect Glass to gain form some search improvements I tested here.
Good stuff :)

I just wonder how it can perform that well, with no SEE pruning in the quiescent search... Probably something you should add.

I'll gladly test it in my GPL Blitz rating list, if you decide to make the code portable.

Re: open source gift for Christmas

Posted: Mon Dec 26, 2011 7:46 pm
by Pablo Vazquez
lucasart wrote:
PK wrote:http://www.koziol.home.pl/rodent_0.08.zip

This is a little open source engine, based on Sungorus 1.4 by Pablo Vazquez, with eval parameters borrowed from excellent "Toga LOG user manual" (link in the readme). As You see, it has never been destined to be completely original. I consiered it rather a didactic exercise: self-teaching by exposition to concise code of the original author, trying to get a feel of object-oriented design and going for simple implementation of a couple of concepts. So You may regard it as a beefed-up, bitboard version of the CPW-Engine (Rodent is probably 2550+).

Rodent is also meant to showcase one idea that I consider interesting - "sliding LMR reduction". This means making LMR reduction depth variable, using fractional plies - currently something like 3/4 ply after trying 6th move in a given node and then 1/4 ply is added after every 4 moves.

The intended effect is that first full reduction happens a bit later than usual (as I start with 3/4 ply reduction), but a series of late moves is reduced much deeper. So difficult move sequences become more difficult to find, but easy shots are easier to spot.

It has been one of the very first things added to Sungorus codebase, so all other modifications had to cope with the effect of that reduction scheme. The funny thing is that I was not able to gain anything from tempo bonus in the evaluation.

Unfortunately Rodent's playing style is boring, this is not Glass and will never be. However, I expect Glass to gain form some search improvements I tested here.
Good stuff :)

I just wonder how it can perform that well, with no SEE pruning in the quiescent search... Probably something you should add.

I'll gladly test it in my GPL Blitz rating list, if you decide to make the code portable.
It's not visible in the quiescence search function but it actually does, NextCapture() filters bad captures.

Re: open source gift for Christmas

Posted: Mon Dec 26, 2011 8:29 pm
by lucasart
Pablo Vazquez wrote:
lucasart wrote:
PK wrote:http://www.koziol.home.pl/rodent_0.08.zip

This is a little open source engine, based on Sungorus 1.4 by Pablo Vazquez, with eval parameters borrowed from excellent "Toga LOG user manual" (link in the readme). As You see, it has never been destined to be completely original. I consiered it rather a didactic exercise: self-teaching by exposition to concise code of the original author, trying to get a feel of object-oriented design and going for simple implementation of a couple of concepts. So You may regard it as a beefed-up, bitboard version of the CPW-Engine (Rodent is probably 2550+).

Rodent is also meant to showcase one idea that I consider interesting - "sliding LMR reduction". This means making LMR reduction depth variable, using fractional plies - currently something like 3/4 ply after trying 6th move in a given node and then 1/4 ply is added after every 4 moves.

The intended effect is that first full reduction happens a bit later than usual (as I start with 3/4 ply reduction), but a series of late moves is reduced much deeper. So difficult move sequences become more difficult to find, but easy shots are easier to spot.

It has been one of the very first things added to Sungorus codebase, so all other modifications had to cope with the effect of that reduction scheme. The funny thing is that I was not able to gain anything from tempo bonus in the evaluation.

Unfortunately Rodent's playing style is boring, this is not Glass and will never be. However, I expect Glass to gain form some search improvements I tested here.
Good stuff :)

I just wonder how it can perform that well, with no SEE pruning in the quiescent search... Probably something you should add.

I'll gladly test it in my GPL Blitz rating list, if you decide to make the code portable.
It's not visible in the quiescence search function but it actually does, NextCapture() filters bad captures.
Ah ok! I was wondering how your program could perform any good without this ;)

Re: open source gift for Christmas

Posted: Tue Dec 27, 2011 2:22 am
by Graham Banks
PK wrote:...Rodent is probably 2550.
Could be a little conservative.
Rodent just beat Murka 2.0 by 8.5-1.5 here. Trying it against GarboChess 3.0 next.