Cyclone 1.0 and Cyclops 1.0 avaliable

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

Moderators: hgm, Rebel, chrisw

kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Cyclone 1.0 and Cyclops 1.0 avaliable

Post by kranium »

hi all-

cyclone 1.0 (UCI) is ready. it's extremely configurable, with a total of 88 UCI options, and is available here:
http://www.cyclonechess.com/

cyclops 1.0 (WB) is also ready and can be downloaded here:
http://www.cyclopschess.com/

both are free open-source engines based on Fruit/Toga.

i think is cyclops is stronger, but it doesn't yet support fen/epd.

regards-
Norm
Last edited by kranium on Mon Aug 04, 2008 9:08 pm, edited 3 times in total.
User avatar
Graham Banks
Posts: 41423
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Cyclone 1.0 and Cyclops 1.0 avaliable

Post by Graham Banks »

Hi Norman,

what is the difference between Cyclone 1.0 beta and Cyclone 1.0?

Cheers, Graham.
gbanksnz at gmail.com
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: Cyclone 1.0 and Cyclops 1.0 avaliable

Post by kranium »

New UCI configuration options:

Backward Pawn Penaly - Opening
Backward Pawn Penalty - Endgame
Backward Pawn Penalty Open
Bishop Mobility - Opening
Bishop Mobility - Endgame
Blocked Bishop Penalty
Blocked Rook Penalty
Doubled Pawn Penalty - Opening
Doubled Pawn Penalty - Endgame
Isolated Pawn Penalty - Opening
Isolated Pawn Penalty - Endgame
Isolated Pawn Penalty Open
King Attack
King Attack Value
King Mobility - Opening
King Mobility - Endgame
Pawn Shelter
Pawn Shelter Weight
Pawn Storm
Pawn Storm Value
Knight Mobility - Opening
Knight Mobility - Endgame
Number of Threads
Queen Mobility - Opening
Queen Mobility - Endgame
Queen on 7th Bonus - Opening
Queen on 7th Bonus - Endgame
Rook Mobility - Opening
Rook Mobility - Endgame
Rook on 7th Bonus - Opening
Rook on 7th Bonus - Endgame
Transposition Table
Transposition Table Depth
Trapped Bishop Penalty

Other changes:
option.cpp options added bonus/penalty to several options
pawn_parameter() created
new parameters added to protocol.cpp parse_set_option()
search_parameter() called from search_full_init()
FutilityMargin1->FutilityMargin
FutilityMargin2->ExtendedFutilityMargin
FutilityMargin3 removed (unused)
trans_stats(), search_send_stat changed to show hash_level
defaults options.cpp changed:
dynamic true
nps=500000
spm=10, (now defaults to 128MB)
powers of 2 hash sizes implemented
double hash_level var made global
trans_is_set var removed
hash_level var placed in tran_stats() send() included
speedtest -> send_stats() changed no longer includes hash_level
extended history pruning/king safety/rebel reduction default set to false
option.cpp added missing 0 to razor depth min
bitbase default path c:\egbb

and now well tested.

regards,
Norm
jpqy
Posts: 550
Joined: Thu Apr 24, 2008 9:31 am
Location: Belgium

Re: Cyclone 1.0 and Cyclops 1.0 avaliable

Post by jpqy »

Hi Norman,

Great,so many UCI options!!

Just try it,but the numbers of threats don't works?
Using a Q6600 g0 ...select 2 to 4 threats...check a few times...but cpu stays at 50% so still using 2cores!

Jean-Paul.
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: Cyclone 1.0 and Cyclops 1.0 avaliable

Post by kranium »

thanks Jean-Paul,

can you please tell me...is the Q6600 a quad core?
also what interface are you using?

Norm
Golem

Re: Cyclone 1.0 and Cyclops 1.0 avaliable

Post by Golem »

Great Job with those engine... I will have to test them both.

I really like the fact that we can configure a lot of parameters via UCI options. Now, everyone can make some test and try to find improvements on the default settings.

I am a little familar with the source code of toga and the code of cyclone is really cleaner. As far as I can see, a lot of variable has been renamed to conform to the coding convention of Fabien. The code of cyclone is more homogeneous.

Keep up the good work with this engine !

PS : I was reading some af the eval code but I think there is a small error with the assert in the lazyeval code. You are asserting on a non-initialized variable. The code must be the one below (No need for the lazy_eval variable and the assert is correct this time...) :

Code: Select all

// lazy eval

   if (LazyEval && board->piece_size[White] > 3 && board->piece_size[Black] > 3){

	 phase = mat_info->phase;
     eval = ((opening * (256 - mat_info->phase)) + (endgame * mat_info->phase)) / 256;

	 ASSERT&#40;eval >= -ValueEvalInf && eval <= +ValueEvalInf&#41;;

     if &#40;COLOUR_IS_BLACK&#40;board->turn&#41;) eval = -eval;

	 if &#40;eval - LazyEvalMargin >= beta&#41;
		return &#40;eval&#41;;
	 if &#40;eval + LazyEvalMargin <= alpha&#41;
		return &#40;eval&#41;;  
   &#125; 
ArmyBridge

Re: Cyclone 1.0 and Cyclops 1.0 avaliable

Post by ArmyBridge »

Hi Norman Cyclone is very strong and have a great style!!!
Congratulations 8-) good job
Regards
Uri Blass
Posts: 10281
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Cyclone 1.0 and Cyclops 1.0 avaliable

Post by Uri Blass »

ArmyBridge wrote:Hi Norman Cyclone is very strong and have a great style!!!
Congratulations 8-) good job
Regards
Maybe it is strong but I plan to try it only if people find that it can be better than earlier toga.

Previous version seems to be weaker than Toga1.4.1 SE or Toga1.4.2JD and I do not know what is the reason

see http://cegt.foren-city.de/topic,60,-bli ... gines.html

Uri
Last edited by Uri Blass on Tue Aug 05, 2008 8:26 pm, edited 1 time in total.
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: Cyclone 1.0 and Cyclops 1.0 avaliable

Post by kranium »

Golem wrote:Great Job with those engine... I will have to test them both.

I really like the fact that we can configure a lot of parameters via UCI options. Now, everyone can make some test and try to find improvements on the default settings.

I am a little familar with the source code of toga and the code of cyclone is really cleaner. As far as I can see, a lot of variable has been renamed to conform to the coding convention of Fabien. The code of cyclone is more homogeneous.

Keep up the good work with this engine !

PS : I was reading some af the eval code but I think there is a small error with the assert in the lazyeval code. You are asserting on a non-initialized variable. The code must be the one below (No need for the lazy_eval variable and the assert is correct this time...) :

Code: Select all

// lazy eval

   if &#40;LazyEval && board->piece_size&#91;White&#93; > 3 && board->piece_size&#91;Black&#93; > 3&#41;&#123;

	 phase = mat_info->phase;
     eval = (&#40;opening * &#40;256 - mat_info->phase&#41;) + &#40;endgame * mat_info->phase&#41;) / 256;

	 ASSERT&#40;eval >= -ValueEvalInf && eval <= +ValueEvalInf&#41;;

     if &#40;COLOUR_IS_BLACK&#40;board->turn&#41;) eval = -eval;

	 if &#40;eval - LazyEvalMargin >= beta&#41;
		return &#40;eval&#41;;
	 if &#40;eval + LazyEvalMargin <= alpha&#41;
		return &#40;eval&#41;;  
   &#125; 
Hi Gontran,

many many thanks for your support and kind comments.

the lazy eval code was implemented by Thomas Gaksch in an early version of Toga. i think it works well, but have never really looked at it closely. at inital glance, it appears you may be correct. i'll address the issue in the next version. please let me know if you find any other anomalies.

regards-
Norm
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Cyclone 1.0 and Cyclops 1.0 avaliable

Post by Ovyron »

Even if it's based on Toga it's a different flavor due to different playing style, so why not using it?

By that logic you would only use the strongest engine (Rybka.)