Changes

Jump to: navigation, search

FrankWalter

4,995 bytes added, 10:43, 28 September 2019
Created page with "'''Home * Engines * FrankWalter''' '''FrankWalter''', (Frank Walter, Frank-Walter)<br/> a Chess Engine Communication Protocol compliant :Category:Open..."
'''[[Main Page|Home]] * [[Engines]] * FrankWalter'''

'''FrankWalter''', (Frank Walter, Frank-Walter)<br/>
a [[Chess Engine Communication Protocol]] compliant [[:Category:Open Source|open source chess engine]] by [[Laurens Winkelhagen]], written in [[Java]], licensed under the [[Free Software Foundation#GPL|GPL v3.0]].
After continuing the development on his old engine, Laurens Winkelhagen published FrankWalter '''2.2.0''' in November 2018 <ref>[http://talkchess.com/forum3/viewtopic.php?t=68989 Revived Engine - Frank Walter 2.2.0 (Java - WB)] by [[Laurens Winkelhagen]], [[CCC]], November 20, 2018</ref>,
short before it had its over the board debut at the [[PT 54]] in [https://en.wikipedia.org/wiki/Leiden Leiden].

=Features=
==[[Board Representation]]==
FrankWalter [[Board Representation|represents the board]] using a two-dimensional [[Array|array]] of [[Bitboard Board-Definition#CBoardDef|piece bitboards]], indexed by [[Color|color]] and [[Pieces#PieceTypeCoding|type]], and further has an [[8x8 Board|8x8 board]] for a square-centric view.
These are all members of a board class along with the usual stuff specifying a [[Chess Position|chess position]], such as [[Side to move|side to move]], [[Castling Rights|castling rights]], [[En passant|en passant]] target, [[Halfmove Clock|halfmove clock]], and an array of [[Zobrist Hashing|Zobrist keys]] to detect [[Repetitions|repetitions]] along the actual game record and variation.
Despite [[Sliding Piece Attacks|sliding piece attacks]] are determined by a memory friendly approach of [[Kindergarten Bitboards|Kindergarten bitboards]] for [[Files|files]] and [[Magic Bitboards|Magic bitboards]] for [[Ranks|ranks]] and [[Bishop|bishops]],
FrankWalter keeps [[Attack and Defend Maps|attack tables]] in [[Attack and Defend Maps#Classical Approach|classical]] [[Chess (Program)|Chess 4.5]] style <ref>[[David Slate]], [[Larry Atkin]] ('''1977'''). ''CHESS 4.5 - The Northwestern University Chess Program.'' [[Chess Skill in Man and Machine]], reprinted ('''1988''') in [[Computer Chess Compendium]]</ref>, that is two bitboard arrays (ATKFR and ATKTO) indexed by square,
While along with keeping bitboards for [[Pin|pinned pieces]], this seems an reasonable approach to implement [[Move Generation#Legal|legal move generation]], the culprit is the [[Incremental Updates|incremental update]],
in particular using a [[Copy-Make#Stack|copy-make stack]] to copy the 1K attack table not only during [[Make Move|make]] but also back during [[Unmake Move|unmake]] <ref>[https://github.com/ljgw/frankwalter/blob/master/src/main/java/com/winkelhagen/chess/frankwalter/board/Board.java frankwalter/Board.java at master · ljgw/frankwalter · GitHub]</ref>.

==[[Search]]==
* [[Lazy SMP]]
* [[Depth#FractionalPlies|Fractional Ply]] [[Iterative Deepening]]
* [[Principal Variation Search]]
* [[Aspiration Windows]]
* [[Transposition Table]]
* [[Selectivity]]
** [[Null Move Pruning]]
** [[Late Move Reductions]]
** [[Check Extensions]]
** [[Quiescence Search]]
* [[Move Ordering]]
** [[PV-Move]]
** [[Killer Heuristic]]
** [[History Heuristic]]
** [[Static Exchange Evaluation]]
==[[Evaluation]]==
* [[Material]]
* [[Piece-Square Tables]]
* [[Mobility]]
* [[Pawn Structure]]
* [[King Safety]]
* [[Tapered Eval]]
* [[Texel's Tuning Method]]
==Misc==
* [[Syzygy Bases]] via [https://en.wikipedia.org/wiki/Java_Native_Interface JNI] [[Syzygy Bases#Fathom|Fathom]] Bridge (JSyzygy) <ref>[https://github.com/ljgw/syzygy-bridge GitHub - ljgw/syzygy-bridge: Java bridge to use the Syzygy Tablebases via JNI]</ref>
* [[Beowulf]] [[Opening Book]] Format

=Forum Posts=
* [http://talkchess.com/forum3/viewtopic.php?t=68989 Revived Engine - Frank Walter 2.2.0 (Java - WB)] by [[Laurens Winkelhagen]], [[CCC]], November 20, 2018
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69057 Frank Walter] by [[Gabor Szots]], [[CCC]], November 26, 2018
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71937 Frank-Walter & Tablebases] by [[Ted Summers]], [[CCC]], September 27, 2019

=External Links=
==Chess Engine==
* [https://github.com/ljgw/frankwalter GitHub - ljgw/frankwalter: a WB2 java chess engine]
* [https://ccrl.chessdom.com/ccrl/4040/cgi/compare_engines.cgi?family=FrankWalter&print=Rating+list&print=Results+table&print=LOS+table&print=Ponder+hit+table&print=Eval+difference+table&print=Comopp+gamenum+table&print=Overlap+table&print=Score+with+common+opponents FrankWalter ] in [[CCRL|CCRL 40/40]]
==Misc==
* [https://en.wikipedia.org/wiki/Frank_(given_name) Frank (given name) from Wikipedia]
* [https://en.wikipedia.org/wiki/Walter_(name) Walter (name) from Wikipedia]
* [https://en.wikipedia.org/wiki/Frank_Walter Frank Walter from Wikipedia]
* [http://www.frankwalter.org/ Frank Walter] ([https://en.wikipedia.org/wiki/Antigua Antiguan] Artist)

=References=
<references />
'''[[Engines|Up one level]]'''
[[Category:Open Source]]
[[Category:GPL]]
[[Category:WinBoard]]
[[Category:XBoard]]
[[Category:Java]]
[[Category:Given Name]]

Navigation menu