OliThink
OliThink5 Java online [1] OliThink,
an open source chess engine supporting the Chess Engine Communication Protocol written by Oliver Brausch with C and Java versions available, and binaries running under Windows, Linux and Mac OS [2]. The completely rewritten OliThink 5.x has a very fast move generator based on the framework of the Perft program OliPerft with a plain bitboard board representation without any piece-lists or board arrays [3]. OliThink’s evaluation consists almost of material balance and mobility, plus a very simple pawn structure evaluation, rewarding passed pawns. OliThink 4.13 played the CCT6 in 2004, with four points out of nine games [4]. In June 2020, after a long break, Oliver Brausch published OliThink 5.4.0 with a big leap in playing strength due to modifications in evaluation of likely drawn endgames [5].
Search
OliThink’s search relies on PVS without aspiration windows in its iterative deepening loop [6], along with a fixed sized transposition table. It further applies flexible null move pruning, late move reductions [7], IID, singular reply-, check- and passed pawn extensions [8]. Move ordering considers PV-moves stored in a triangular PV-Table, SEE, killer- and history heuristic.
Sliding Piece Attacks
OliThink pre 5 versions used rotated bitboards to determine sliding piece attacks. Since version 5, only the usual occupancy is used to map the masked line to an index, for files and diagonals by a north-fill multiplication and right shift as also applied in kindergarten bitboards [9], with the addition not only to lookup attack bitboards, but also X-ray attacks through the first blocking pieces (if any) of both ray-directions [10] . A pre-initialized array of 8 times 4K bitboards (256 Kbyte in total) is used for attacks on ranks, files, diagonals and anti-diagonals in its lower half, while the upper half holds appropriate x-ray attacks. Per line, a 12-bit index is composed of the 6-bit square index and a 6-bit occupancy key [11].
C Source
These are the relevant code snippets and data declarations of the attack and x-ray attack getter in the C source, initialization omitted [12] :
Java Source
In Java, the code looks quite similar, embedded inside the class OliThink [13]:
Selected Games
SEE
CCT6, SEE - OliThink 4.13 [14]
Bodo
CCT6, Bodo - OliThink 4.13 [15]
Forum Posts
1998 …
- OliThink 2.2.1 released by Ralph Jörg Hellmig, CCC, December 07, 1998
- Olithink, test it! by Carlos E.A. Drake, Winboard Forum, September 24, 1999
2000 …
- OliThink bug? 1 0 Winboard tournament by Aloisio Ponti Lopes, CCC, July 02, 2000
- Olithink 3.0.1 by Martin G, Winboard Forum, March 26, 2001
- Olithink by Dann Corbit, Winboard Forum, March 28, 2001
- Bug in OliThink 4.1.0 by Tord Romstad, CCC, September 16, 2003
- Question about details of hashing (olithink) by Michel Langeveld, CCC, January 22, 2004
- Looking for a last moment operator for Olithink 4.1.3 for CCT-6 by Dann Corbit, CCC, January 26, 2004 » CCT6
- Re: Watch Olithink by Oliver Brausch, CCC, January 27, 2004
- Olithink @ CCT6 by Peter Skinner, CCC, February 01, 2004
- OliThink@CCT6 - Programmers View by Oliver Brausch, CCC, February 03, 2004
- OliThink 5 by Oliver Brausch, Winboard Forum, October 29, 2004
- OliThink 5 by Oliver Brausch, rgcc, October 30, 2004
2005 …
- Re: Question about SEE (Static exchange evaluation) by Oliver Brausch, CCC, December 18, 2007 » X-ray Attacks
- OliPerft with divide Option as Pre Version for OliThink 5 by Oliver Brausch, CCC, December 27, 2007 » Perft
2008
- Problem with Transposition Table and Repitition-Draw by Oliver Brausch, CCC, January 11, 2008 » Transposition Table, Repetitions
- OliThink 5.0.4 - GNU Chess 5.0.7 Bullet by Oliver Brausch, CCC, January 13, 2008
- OliThink 5.0.8 released by Oliver Brausch, CCC, January 25, 2008
- The limits of “Just-mobility-evaluation” by Oliver Brausch, CCC, January 29, 2008
- OliThink 5.0.9 released by Oliver Brausch, CCC, February 06, 2008
- OliThink 5.1.0 released by Oliver Brausch, CCC, March 19, 2008
- OliThink 5.1.1 released by Oliver Brausch, CCC, March 21, 2008
- OliThink 5.1.2 released by Oliver Brausch, CCC, April 03, 2008
- OliThink couldn’t win K+B+P vs K against Toga by Oliver Brausch, CCC, April 05, 2008 » Toga
- OliThink 5.1.3 released by Oliver Brausch, CCC, April 11, 2008
- OliThink 5.1.4 released by Oliver Brausch, CCC, October 16, 2008
- Tournament with OliThink, Crafty and Glaurung. OliThink 5.1. by Oliver Brausch, CCC, October 19, 2008 » Crafty, Glaurung
- OliThink 5.1.6 released by Oliver Brausch, CCC, October 19, 2008
- OliThink 5.1.7 released by Oliver Brausch, CCC, October 27, 2008
- Olithink 5.1.8 released because of better ChessDM vs Crafty by Oliver Brausch, CCC, October 29, 2008
- Kindergarten Bitboard Approach by Gerd Isenberg by Edsel Apostol, CCC, November 05, 2008 » Kindergarten Bitboards
2009
- Bug found in OliThink 5.1.9 => Corrected code (5.2.0) only by Oliver Brausch, CCC, September 18, 2009
- OliThink 5.2.1 Java by Oliver Brausch, CCC, September 25, 2009
- OliThink5 Java can be played in browser with self written GUI by Oliver Brausch, CCC, November 25, 2009
- OliThink GUI in Java… Complete source posted by Oliver Brausch, CCC, November 25, 2009 » GUI, Java
- OliThink 5.2.2 released with 48MB Hashsize by Oliver Brausch, CCC, December 05, 2009
- OliThink 5.2.3 released by Oliver Brausch, CCC, December 16, 2009
- OliThink 5.2.4 released by Oliver Brausch, CCC, December 22, 2009
- OliThink 5.2.5 released by Oliver Brausch, CCC, December 25, 2009
- OliThink 5.2.6 released introducing LMR by Oliver Brausch, CCC, December 31, 2009
2010 …
- OliThink 5.2.7 released by Oliver Brausch, CCC, January 05, 2010
- Problem with exploding tree because of extensions by Oliver Brausch, CCC, January 05, 2010 » Search Explosion, Extensions
- OliThink 5.2.9 released by Oliver Brausch, CCC, January 09, 2010
- OliThink 5.3.0 released by Oliver Brausch, CCC, January 25, 2010
- OliThink 5.3.0 Java performance by Oliver Brausch, CCC, July 18, 2010
2011
2012
- Open Source Blitz Rating List: Olithink 5.3.0 by Lucas Braesch, CCC, January 21, 2012
- OliThink 5.3.1 released (Win, Mac, Linux and Java) by Oliver Brausch, CCC, February 28, 2012
- Open Source Bullet: Olithink 5.3.1 by Lucas Braesch, CCC, February 29, 2012
- OliThink 5.3.2 released (Source, Windows, Mac and Linux) by Oliver Brausch, CCC, March 02, 2012
- Open Source Bullet: Olithink 5.3.2, Diablo 1.4 by Lucas Braesch, CCC, March 05, 2012
2020 …
- OliThink 5.4.0 has been published with an big leap in strength for only 3 lines of code by Oliver Brausch, CCC, June 16, 2020
- Java vs C. It’s not like one would think by Oliver Brausch, CCC, June 22, 2020 » Java, C
- An undetected bug for 10 years by Oliver Brausch, CCC, August 18, 2020 » Two Squares on a Diagonal
- Official Release of OliThink 5.7.5 including a Java-GUI by Oliver Brausch, CCC, September 09, 2020
- Ancient olithink fossils by Dann Corbit, CCC, November 03, 2020
Re: Ancient olithink fossils by Ajedrecista, CCC, November 03, 2020 2021
- OliThink 5.9.5 is very small by Oliver Brausch, CCC, May 18, 2021
Re: OliThink 5.9.5 is very small by Oliver Brausch, CCC, June 06, 2021 » Kindergarten Bitboards
External Links
- GitHub - olithink/OliThink: OliThink 5
- Chess Engine OliThink by Oliver Brausch
- OliThink 5.3.0 in CCRL 40/40
- OliThink 5.3.2 64-bit in CCRL 40/40
References
- ↑ Chess Engine OliThink by Oliver Brausch
- ↑ Chess Engine OliThink by Oliver Brausch
- ↑ OliPerft with divide Option as Pre Version for OliThink 5 by Oliver Brausch, CCC, December 27, 2007
- ↑ OliThink@CCT6 - Programmers View by Oliver Brausch, CCC, February 03, 2004
- ↑ OliThink 5.4.0 has been published with an big leap in strength for only 3 lines of code by Oliver Brausch, CCC, June 16, 2020
- ↑ OliThink 5.1.2 released by Oliver Brausch, CCC, April 03, 2008
- ↑ OliThink 5.2.6 released introducing LMR by Oliver Brausch, CCC, December 31, 2009
- ↑ OliThink 5.1.1 released by Oliver Brausch, CCC, March 21, 2008
- ↑ Kindergarten Bitboard Approach by Gerd Isenberg by Edsel Apostol, CCC, November 05, 2008
- ↑ Re: Question about SEE (Static exchange evaluation) by Oliver Brausch, CCC, December 18, 2007
- ↑ Re: OliThink 5.9.5 is very small by Oliver Brausch, CCC, June 06, 2021
- ↑ 5.9.8a Half sized bitboards (slightly edited)
- ↑ Chess Engine OliThink - OliThink Source Code Vers. 5.3.2 Java - olithink.java (slightly edited)
- ↑ CCT6 hosted by Volker Richey
- ↑ CCT6 hosted by Volker Richey