Arasan

From Chessprogramming wiki
Revision as of 20:26, 2 October 2018 by GerdIsenberg (talk | contribs)
Jump to: navigation, search

Home * Engines * Arasan

Arasan,

an open source engine written by Jon Dart in C++. Arasan's development started in the early 90s, the first version, released in 1994 was a 16-bit program running under Windows 3.1 using an 8x8 Board, incremental updated attack tables and its own GUI, evolving to a portable 32-bit and later 64-bit program, utilizing bitboards to determine its sliding piece attacks with rotated bitboard lookups. In 2008, rotated were replaced by Magic bitboards, which gave Arasan about a 20-25% speedup [1].

Despite its own GUI, Arasan early supported the Chess Engine Communication Protocol and later UCI as well, to run under Windows, Linux and Mac OS [2]. The latest version of Arasan and all major versions, including Version 1.0 from March 1994, are available as source code from the Arasan.org site [3] . Jon's change logs, bug fix reports and tournament reports over the time are available from forum archives, as well the recent ones from the Arasan blog [4]

அரசன்
அரசன் [5] (Arasan) , King in Tamil language [6]

Bitboard Trials

Jon Dart, May 1996 [7]

 Lately I've been working on a new major release of Arasan. I have spent the last few months working on the search engine, trying to improve speed and performance. I tried some experiments with a bitboard move representation, but I have backed off on that for now.
With bitboards, I got a nice reduction in tree size (bitboards allow a more accurate swap-down analysis than I had before, and this improves move ordering and allows better "culling" of losing captures in the quiescence search).
However, currently the program relies pretty heavily on incrementally generated attack information, and I didn't have that implemented to work with bitboards, so I had to compute attacks as needed. Unfortunately, the current program "needs" to do this much more often than Crafty does, so the loss from computing attacks more than balanced out the gains from bitboards. This is fixable, I'm sure, but I've put off further work on it for now. 

Magic Bitboards

Jon Dart, August 2008 [8] :

The main change has been to re-work the code to use "magic" bitboard logic instead of rotated bitboards. This has given about a 20-25% speedup. I have also had to re-write the evaluation function to take advantage of bitboard attack functions for king safety and mobility. 

PEXT/PDEP Bitboards

Arasan 20.3, released in November 2017, performs PEXT/PDEP Bitboards if compiled for the BMI2 instruction set [9] to replace Fancy Magic Bitboards in looking up sliding piece attacks [10]

Automated Tuning

Arasan 19.2, released in November 2016, now applies Texel's Tuning Method by default and supports the Adam gradient descent algorithm [11] [12].

Lazy SMP

As of version 21.0 in June 2018 Arasan comes with a Lazy SMP implementation.

Tournament Play

Arasan went online in December, 1996 [13] , and played almost all major online computer chess tournaments, such as CCT Tournaments, ACCA Americas' Computer Chess Championship, ACCA World Computer Rapid Chess Championship, TCEC, and International Gsei Web Tournaments. Arasan 15.1 [14] won the ACCA 2012 [15] , Arasan 16.0 the WCRCC 2013 [16] . Over the board, Arasan is active at the CSVN Programmers Tournaments operated by Tessa Pijl. Arasan was runner-up behind The Baron in May 2014 at the PT 46 one point behind, as well in June 2015 at the PT 48 with the same score according to the tiebreak rules [17].

Photos & Games

ArasanTheKingPT48.jpg

PT 48, Two Kings fighting, Johan de Koning and Tessa Pijl in Arasan vs. The King [18]

[Event "PT 48"]
[Site "Leiden, NL"]
[Date "2015.06.14"]
[Round "7"]
[White "Arasan"]
[Black "The King"]
[Result "1-0"]

1.d4 d5 2.c4 c6 3.Nf3 Nf6 4.Nc3 e6 5.e3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 a6 
9.a4 b4 10.Ne4 c5 11.Nxf6+ Nxf6 12.dxc5 Bxc5 13.e4 Bb7 14.Qe2 O-O 15.O-O e5 
16.Bg5 h6 17.Bh4 Qd6 18.Bg3 Rfe8 19.Rfd1 Re7 20.Bh4 Qc6 21.Rac1 Rc8 22.Rc4 Re6 
23.Bxf6 Rxf6 24.Rdc1 Qb6 25.Kh1 a5 26.Qc2 b3 27.Qe2 Qd6 28.R4c3 Rf4 29.g3 Rf6 
30.Bc4 Rb8 31.Rxb3 Bb4 32.Rd3 Qc7 33.Kg2 Rf8 34.Rdd1 Rc6 35.b3 Re8 36.Kg1 Rc8 
37.Rd5 Re6 38.Rd3 Rf6 39.Rcd1 Re8 40.Nh4 Qb6 41.Nf5 Rf8 42.Rf3 Kh8 43.Nh4 Kg8 
44.Rd7 Bc8 45.Rd5 Rd6 46.Rxd6 Qxd6 47.Rd3 Qc7 48.Qh5 Kh7 49.Nf3 f6 50.Nh4 Bd7 
51.Bf7 Bc8 52.Bg6+ Kg8 53.Bf5 Qc2 54.Qf3 Re8 55.Kg2 Rf8 56.Rd5 Bc5 57.Bxc8 Rxc8 
58.Rd7 Bf8 59.Qg4 h5 60.Qg6 Qe2 61.Nf3 Qc2 62.Qf7+ Kh8 63.Qxh5+ Kg8 64.Nd2 Rb8 
65.g4 Rc8 66.Qf7+ Kh8 67.Qh5+ Kg8 68.Qg6 Kh8 69.Qf5 Kg8 70.g5 fxg5 71.Nf3 Qc6 
72.Nxg5 Qh6 73.Rd3 Rc7 74.Rf3 Bb4 75.Rh3 Bf8 76.Rxh6 1-0

See also

Forum Posts

1995 ...

2000 ...

2005 ...

2010 ...

2011

2012

2013

2014

2015 ...

2016

2017

2018

External Links

Chess Engine

Misc

References

Up one Level