open source gift for Christmas

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

PK
Posts: 893
Joined: Mon Jan 15, 2007 11:23 am
Location: Warsza

open source gift for Christmas

Post 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.
Pablo Vazquez
Posts: 154
Joined: Thu May 31, 2007 9:05 pm
Location: Madrid, Spain

Re: open source gift for Christmas

Post by Pablo Vazquez »

Very nice. Thank you, Pawel :)
PK
Posts: 893
Joined: Mon Jan 15, 2007 11:23 am
Location: Warsza

Re: open source gift for Christmas

Post 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 :)
Pablo Vazquez
Posts: 154
Joined: Thu May 31, 2007 9:05 pm
Location: Madrid, Spain

Re: open source gift for Christmas

Post 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.
User avatar
Graham Banks
Posts: 41412
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: open source gift for Christmas

Post by Graham Banks »

Image
gbanksnz at gmail.com
ZirconiumX
Posts: 1334
Joined: Sun Jul 17, 2011 11:14 am

Re: open source gift for Christmas

Post 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]
Some believe in the almighty dollar.

I believe in the almighty printf statement.
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: open source gift for Christmas

Post 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.
Pablo Vazquez
Posts: 154
Joined: Thu May 31, 2007 9:05 pm
Location: Madrid, Spain

Re: open source gift for Christmas

Post 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.
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: open source gift for Christmas

Post 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 ;)
User avatar
Graham Banks
Posts: 41412
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: open source gift for Christmas

Post 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.
gbanksnz at gmail.com