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] |
Selected Features
Board Representation
Bitboard Trials
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
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 [10] to replace Fancy Magic Bitboards in looking up sliding piece attacks [11]
Search
- Lazy SMP 21.0
- Iterative Deepening Depth Resolution 4
- Aspiration Windows
- Principal Variation Search
- Transposition Table
- Move Ordering
- Selectivity
Evaluation
NNUE
Arasan 23.0, released in September 2021, uses a Stockfish 13 compatible NNUE - trained by selfplay positions - to evaluate its positions [12]. The neural network file is external to the program and is loaded at runtime.
Traditional
Automated Tuning
Arasan 19.2, released in November 2016, applies Texel's Tuning Method by default and supports the Adam gradient descent algorithm [13] [14].
Syzygy Bases
Arasan uses a Fathom fork with some bug fixes and enhancements [15], also supporting 7-man [16].
Tournament Play
Arasan went online in December, 1996 [17] , 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 [18] won the ACCA 2012 [19] , Arasan 16.0 the WCRCC 2013 [20] . Over the board, Arasan was 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 [21].
Photos & Games
PT 48, Two Kings fighting, Johan de Koning and Tessa Pijl in Arasan vs. The King [22]
[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 ...
- Arasan 2.0 (Windows chess program) available via ftp by Jon Dart, rec.games.chess, July 4, 1995
- Arasan 2.1 (Windows chess program) available via ftp by Jon Dart, rec.games.chess.misc, October 23, 1995
- Arasan 2.2 (Windows chess program) available via ftp by Jon Dart, rec.games.chess.misc, December 10, 1995
- Arasan progress report by Jon Dart, rgcc, May 23, 1996
- Arasan 3.0 (Windows chess program) available by Jon Dart, rgcc, July 8, 1996
- Arasan goes online by Jon Dart, rgcc, January 6, 1997
- Arasan 4.0 is available by Jon Dart, rgcc, July 15, 1997
- Arasan 5.0 released by Jon Dart, CCC, January 13, 1999
2000 ...
- Arasan 5.4 released by Jon Dart, CCC, May 25, 2000
- Arasan vs. IM Paunovic by Jon Dart, CCC, June 16, 2000
- Arasan now under Linux by Jon Dart, CCC, September 02, 2000
- A few notes from Arasan's games in CCT2 by Jon Dart, CCC, November 05, 2000 » CCT2
- CCT4 notes - Arasan by Jon Dart, CCC, January 20, 2002 » CCT4
- Arasan 6.0 by Jon Dart, CCC, September 24, 2002
- Arasan 6.3 by Jon Dart, CCC, January 26, 2003
- Arasan 7.0 by Jon Dart, CCC, August 09, 2003
- Arasan 7.4 by Jon Dart, CCC, February 28, 2004
- Arasan 7.4 64-bit Speedup by Slater Wold, CCC, March 30, 2004
- Arasan 8.0 by Jon Dart, CCC, August 22, 2004
- Arasan 8.2 by Jon Dart, CCC, November 26, 2004
2005 ...
- Arasan 8.4 by Jon Dart, CCC, February 26, 2005
- Arasan in CCT8 by Jon Dart, CCC, February 26, 2006 » CCT8
- Arasan @ WCRCC tournament by Jon Dart, CCC, July 23, 2007 » WCRCC 2007
- Arasan 10.0 by Jon Dart, CCC, September 02, 2007
- Arasan 10.2 by Jon Dart, CCC, February 16, 2008
- Arasan 10.4 by Jon Dart, CCC, June 27, 2008
- Arasan 11.0 by Jon Dart, CCC, November 28, 2008
- Arasan 11.3 by Jon Dart, CCC, March 24, 2009
- Arasan 11.4 by Jon Dart, CCC, June 20, 2009
- Arasan 11.5 by Jon Dart, CCC, September 05, 2009
- Arasan 11.6 by Jon Dart, CCC, November 18, 2009
2010 ...
- Arasan 11.7 by Jon Dart, CCC, February 07, 2010
- Arasan 12.0 released by Jon Dart, CCC, August 07, 2010
- Arasan 12.2 released by Jon Dart, CCC, November 11, 2010
2011
- Arasan 12.3 released by Jon Dart, CCC, February 02, 2011
- Arasan 13.0 by Jon Dart, CCC, August 18, 2011
- Arasan 13.1 by Jon Dart, CCC, August 23, 2011
- MORE about Arasan 13.1 by Fernando Villegas, CCC, August 26, 2011
- Arasan 13.2 by Jon Dart, CCC, October 02, 2011
- Arasan 13.3 by Jon Dart, CCC, November 14, 2011 » ACCA 2011
- Arasan 13.4 by Jon Dart, CCC, December 07, 2011
2012
- Arasan 14.0 by Jon Dart, CCC, March 04, 2012
- Arasan 14.2 by Jon Dart, CCC, June 12, 2012
- Arasan 14.3 by Jon Dart, CCC, July 18, 2012
- Arasan 15.0 by Jon Dart, CCC, September 20, 2012
- Arasan 15.1 by Jon Dart, CCC, November 19, 2012
2013
- Arasan 15.2 by Jon Dart, CCC, February 26, 2013
- Arasan 15.4 by Jon Dart, CCC, April 24, 2013
- Arasan 15.6 by Jon Dart, CCC, May 21, 2013
- Arasan on github by Jon Dart, CCC, May 22, 2013 [23]
- Arasan games from WCRCC by Jon Dart, CCC, July 21, 2013 » WCRCC 2013
- Arasan 16.0 by Jon Dart, CCC, July 24, 2013
- Arasan 16.1 by Jon Dart, CCC, September 01, 2013
- Arasan 16.2 by Jon Dart, CCC, October 25, 2013
- Arasan 16.3 by Jon Dart, CCC, December 06, 2013
2014
- test position: Rookie-Arasan by Jon Dart, CCC, January 27, 2014 » Rookie, Zugzwang
- Arasan 17.0 by Jon Dart, CCC, March 27, 2014
- Arasan GUI fixes by Jon Dart, CCC, April 02, 2014
- Arasan 17.1 by Jon Dart, CCC, May 07, 2014
- Arasan 17.2 by Jon Dart, CCC, May 30, 2014
- Arasan 17.3 by Jon Dart, CCC, September 01, 2014
- Arasan 17.4 by Jon Dart, CCC, October 08, 2014
2015 ...
- Arasan 17.5 by Jon Dart, CCC, January 24, 2015
- Experiments with eval tuning by Jon Dart, CCC, March 10, 2015 » Automated Tuning, Texel's Tuning Method
- Arasan 18.0 by Jon Dart, CCC, July 30, 2015
- Arasan 18.1 by Jon Dart, CCC, November 02, 2015
- Arasan 18.2 by Jon Dart, CCC, December 03, 2015
2016
- Arasan 18.3 by Jon Dart, CCC, February 02, 2016
- Arasan Syzygy support (working with Windows, too) by Jon Dart, CCC, March 10, 2016 » Syzygy Bases
- Arasan 19.0 + updated test suite by Jon Dart, CCC, April 29, 2016
- Arasan 19.1 by Jon Dart, CCC, August 09, 2016
- Arasan 19.2 by Jon Dart, CCC, November 03, 2016
2017
- Arasan 20.0 by Jon Dart, CCC, January 31, 2017
- building for Android by Jon Dart, CCC, April 19, 2017 » Android
- Arasan 20.1 by Jon Dart, CCC, April 28, 2017
- Arasan Programmer's Guide by Jon Dart, CCC, June 21, 2017
- Arasan 20.2 by Jon Dart, CCC, July 15, 2017
- Arasan 20.3 by Jon Dart, CCC, November 05, 2017
2018
- Arasan 20.4 by Jon Dart, CCC, January 03, 2018
- Arasan 20.4.1 by Jon Dart, CCC, January 05, 2018
- Arasan 20.5 by Jon Dart, CCC, April 08, 2018
- Arasan 21.0 beta by Jon Dart, CCC, June 23, 2018
- Arasan 21.0 by Jon Dart, CCC, June 30, 2018
- Arasan 21.1 by Jon Dart, CCC, October 02, 2018
- Arasan 21.2 by Jon Dart, CCC, December 31, 2018
2019
- Arasan 21.3 by Jon Dart, CCC, March 29, 2019
- Arasan 21.4 by Jon Dart, CCC, July 02, 2019
- Arasan 22.0 by Jon Dart, CCC, December 10, 2019
2020 ...
- Arasan 22.1 by Jon Dart, CCC, July 01, 2020
- Arasan 22.2 by Jon Dart, CCC, December 22, 2020
2021
- Arasan 22.3 by Jon Dart, CCC, May 31, 2021
- Arasan 23.0 by Jon Dart, CCC, September 06, 2021
- Re: Arasan 23.0 by Jon Dart, CCC, September 08, 2021
External Links
Chess Engine
- jdart1/arasan-chess · GitHub [24]
- Arasan Chess by Jon Dart
- Arasan Programmer's Guide by Jon Dart [25]
- Arasan Test Suite
- Arasan 8.4 released, short interview with Jon Dart by Frank Quisinsky, March 01, 2005, Arena Chess GUI, Archive 5, 72 (Wayback Machine)
- Arasan in CCRL 40/15
Misc
References
- ↑ Arasan Blog - Aug 26, 2008
- ↑ Arasan chess
- ↑ Arasan Downloads
- ↑ Arasan Tech Blog
- ↑ Tamil script from Wikipedia
- ↑ அரசன் (சதுரங்கம்) - தமிழ் விக்கிப்பீடியா
- ↑ Arasan Programmer's Guide
- ↑ Arasan progress report by Jon Dart, rgcc, May 23, 1996
- ↑ Arasan Blog - Aug 26, 2008
- ↑ Arasan 20.3 by Jon Dart, CCC, November 05, 2017
- ↑ arasan_source20.3.zip/src/attacks.h
- ↑ Re: Arasan 23.0 by Jon Dart, CCC, September 08, 2021
- ↑ Arasan 19.2 by Jon Dart, CCC, November 03, 2016
- ↑ Diederik P. Kingma, Jimmy Lei Ba (2015). Adam: A Method for Stochastic Optimization. arXiv:1412.6980v8, ICLR 2015
- ↑ jdart1/Fathom · GitHub by Jon Dart
- ↑ 7-man Syzygy support in Fathom by Jon Dart, CCC, April 23, 2019
- ↑ Arasan goes online by Jon Dart, rgcc, January 6, 1997
- ↑ Arasan 15.1 by Jon Dart, CCC, November 19, 2012
- ↑ Seventh Annual ACCA Americas' Computer Chess Championships by Jon Dart, CCC, November 18, 2012
- ↑ Arasan games from WCRCC by Jon Dart, CCC, July 21, 2013
- ↑ Baron 1st, Arasan 2nd by Jon Dart, CCC, June 14, 2015
- ↑ PT48 Round 7
- ↑ jdart1/arasan-chess · GitHub
- ↑ Arasan on github by Jon Dart, CCC, May 22, 2013
- ↑ Arasan Programmer's Guide by Jon Dart, CCC, June 21, 2017