Difference between revisions of "FrankWalter"

From Chessprogramming wiki
Jump to: navigation, search
 
(4 intermediate revisions by the same user not shown)
Line 4: Line 4:
  
 
'''FrankWalter''', (Frank Walter, Frank-Walter)<br/>
 
'''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]].
+
a [[Chess Engine Communication Protocol]] compliant chess engine by [[Laurens Winkelhagen]], written in [[Java]]. The development started in 2009 with various trials to implement efficient [[Bitboards|bitboard]] techniques in Java <ref>[http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=49948 Java & Magic Bitboards] by [[Laurens Winkelhagen]], [[Computer Chess Forums|Winboard Forum]], February 03, 2009</ref>.
 
After continuing the development on his old engine <ref>[http://www.open-aurec.com/wbforum/viewtopic.php?f=2&t=50010 Frank-Walter 1.0.5] by [[Laurens Winkelhagen]], [[Computer Chess Forums|Winboard Forum]], March 03, 2009</ref>, Laurens Winkelhagen re-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>,
 
After continuing the development on his old engine <ref>[http://www.open-aurec.com/wbforum/viewtopic.php?f=2&t=50010 Frank-Walter 1.0.5] by [[Laurens Winkelhagen]], [[Computer Chess Forums|Winboard Forum]], March 03, 2009</ref>, Laurens Winkelhagen re-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].
 
short before it had its over the board debut at the [[PT 54]] in [https://en.wikipedia.org/wiki/Leiden Leiden].
 +
Since '''2.3.2''' in February 2019, FrankWalter has become [[:Category:Open Source|open source]], hosted on [https://en.wikipedia.org/wiki/GitHub GitHub] and licensed under the [[Free Software Foundation#GPL|GPL v3.0]] <ref>[http://talkchess.com/forum3/viewtopic.php?f=2&t=69754&start=9 Re: New engine releases 2019] by [[Laurens Winkelhagen]], [[CCC]], February 12, 2019</ref>.
  
 
=Etymology=
 
=Etymology=
Line 20: Line 21:
 
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.
 
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]],
 
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,
+
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>, 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]],  
 
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>.
 
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>.
Line 51: Line 52:
 
* [[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>
 
* [[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
 
* [[Beowulf]] [[Opening Book]] Format
 +
 +
=Photos & Games=
 +
[[FILE:PT55_R4FrankWalterTheKing.jpg|none|border|text-bottom|800px|link=https://csvn.nl/index.php/nieuws/51-toernooien/830-55th-programmer-tournament-ranking]]
 +
[[PT 55]], Round 4, [[FrankWalter]] - [[The King]], [[Johan de Koning]] and [[Laurens Winkelhagen]] <ref>[https://csvn.nl/index.php/nieuws/51-toernooien/830-55th-programmer-tournament-ranking 55th Programmer Tournament Photos day 2] by [[Jan Krabbenbos]]</ref> <ref>[https://csvn.nl/index.php/download/partijen/csvn-programmer-tournaments/262-csvn-programmer-tournament-55 CSVN Programmer Tournament 55 pgn download]</ref>
 +
<pre>
 +
[Event "PT55"]
 +
[Site "Amersfoort"]
 +
[Date "2019.05.19"]
 +
[Round "4"]
 +
[White "FrankWalter"]
 +
[Black "The King"]
 +
[Result "1-0"]
 +
 +
1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 c5 5.g3 Nc6 6.dxc5 Bxc5 7.Bg2 d5 8.cxd5 exd5 9.Bg5 O-O 10.Bxf6 Qxf6
 +
11.Qxd5 Bb4 12.O-O Be6 13.Qb5 Rab8 14.Rfc1 a6 15.Qg5 Be7 16.Qxf6 Bxf6 17.Ne1 Nb4 18.a3 Nc6 19.Rab1 Rfd8
 +
20.Rd1 a5 21.Rxd8+ Rxd8 22.Nd3 Bd4 23.Rd1 Bb3 24.Rc1 Bc4 25.Bxc6 bxc6 26.Na4 Bb5 27.Nac5 a4 28.Kg2 g5
 +
29.Rc2 Bg7 30.Nb4 h6 31.Kf3 Rd4 32.h3 Kf8 33.b3 axb3 34.Nxb3 Rc4 35.Rxc4 Bxc4 36.Na5 Bb5 37.Nd3 Bd4
 +
38.Nb3 Bb6 39.Nbc5 Ke7 40.a4 Bc4 41.Nb7 f5 42.Ndc5 Ba7 43.a5 Bd5+ 44.Ke3 Bc4 45.Kd2 h5 46.h4 g4 47.e3
 +
Bd5 48.Kc3 Bg8 49.a6 Bd5 50.Kb4 Bf3 51.Na5 Bd5 52.Nc4 Be6 53.Nxe6 Kxe6 54.Nb2 Kd5 55.Nd3 Ke4 56.Nf4
 +
Kf3 57.Nxh5 Kxf2 58.Ng7 f4 59.exf4 Kxg3 60.h5 Kxf4 61.h6 g3 62.Nh5+ Kg5 63.Nxg3 Kxh6 64.Nf5+ Kg5 65.Ne7
 +
Be3 66.Nxc6 Kf6 67.Kc4 Bb6 68.Kb5 Bf2 69.Nb4 Ke6 70.Kc6 Ba7 71.Nd5 Kf5 72.Kb7 Bd4 73.Nb6 1-0
 +
</pre>
  
 
=See also=
 
=See also=
Line 63: Line 86:
 
* [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://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=69057 Frank Walter] by [[Gabor Szots]], [[CCC]], November 26, 2018
 +
* [http://talkchess.com/forum3/viewtopic.php?f=2&t=69754&start=9 Re: New engine releases 2019] by [[Laurens Winkelhagen]], [[CCC]], February 12, 2019
 +
* [http://talkchess.com/forum3/viewtopic.php?f=2&t=69754&start=34 Re: New engine releases 2019] by [[Laurens Winkelhagen]], [[CCC]], March 10, 2019
 +
* [http://talkchess.com/forum3/viewtopic.php?f=2&t=69754&start=96 Re: New engine releases 2019] by [[Laurens Winkelhagen]], [[CCC]], April 09, 2019
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71937 Frank-Walter & Tablebases] by [[Ted Summers]], [[CCC]], September 27, 2019
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71937 Frank-Walter & Tablebases] by [[Ted Summers]], [[CCC]], September 27, 2019
  
Line 77: Line 103:
 
* [http://www.frankwalter.org/ Frank Walter] ([https://en.wikipedia.org/wiki/Antigua Antiguan] Artist)
 
* [http://www.frankwalter.org/ Frank Walter] ([https://en.wikipedia.org/wiki/Antigua Antiguan] Artist)
 
* [https://en.wikipedia.org/wiki/Frank-Walter_Steinmeier Frank-Walter Steinmeier from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Frank-Walter_Steinmeier Frank-Walter Steinmeier from Wikipedia]
* [https://www.jazzfest-bonn.de/en/2019-2/videos-jazzfest-bonn-2019/ Jazzfest Bonn]: Frank-Walter Steinmeier ist größter Jazz-Fan, May 16, 2019, [https://en.wikipedia.org/wiki/YouTube YouTube] Video
+
* [https://www.jazzfest-bonn.de/en/2019-2/videos-jazzfest-bonn-2019/ Jazzfest Bonn]: Frank-Walter Steinmeier ist größter Jazz-Fan, May 16, 2019, and [[:Category:Mezzoforte|Mezzoforte]] - Medley: A Blast From The Past, [https://en.wikipedia.org/wiki/YouTube YouTube] Videos
 
: {{#evu:https://www.youtube.com/watch?v=-gPFLjuFQeQ|alignment=left|valignment=top}}
 
: {{#evu:https://www.youtube.com/watch?v=-gPFLjuFQeQ|alignment=left|valignment=top}}
 +
: {{#evu:https://www.youtube.com/watch?v=abOjCj1ej7g|alignment=left|valignment=top}}
  
 
=References=  
 
=References=  
Line 89: Line 116:
 
[[Category:Java]]
 
[[Category:Java]]
 
[[Category:Given Name]]
 
[[Category:Given Name]]
[[Category:Music]]
+
[[Category:Mezzoforte]]

Latest revision as of 19:14, 28 September 2019

Home * Engines * FrankWalter

Frank-Walter meets Condoleezza [1]

FrankWalter, (Frank Walter, Frank-Walter)
a Chess Engine Communication Protocol compliant chess engine by Laurens Winkelhagen, written in Java. The development started in 2009 with various trials to implement efficient bitboard techniques in Java [2]. After continuing the development on his old engine [3], Laurens Winkelhagen re-published FrankWalter 2.2.0 in November 2018 [4], short before it had its over the board debut at the PT 54 in Leiden. Since 2.3.2 in February 2019, FrankWalter has become open source, hosted on GitHub and licensed under the GPL v3.0 [5].

Etymology

Frank-Walter Steinmeier, in 2009 German Minister for Foreign Affairs, since March 2017 President of Germany, and his apparently desired name change [6] to Frank was the inspiration for the name of the chess engine [7]. Frank-Walter Steinmeier in an 2011 interview [8]

Mr. Steinmeier, can you actually play chess, like Peer Steinbrück and Helmut Schmidt?
Frank-Walter Steinmeier: Neither am I a good chess player nor am I currently writing a book.

Features

Board Representation

FrankWalter represents the board using a two-dimensional array of piece bitboards, indexed by color and type, and further has an 8x8 board for a square-centric view. These are all members of a board class along with the usual stuff specifying a chess position, such as side to move, castling rights, en passant target, halfmove clock, and an array of Zobrist keys to detect repetitions along the actual game record and variation. Despite sliding piece attacks are determined by a memory friendly approach of Kindergarten bitboards for files and Magic bitboards for ranks and bishops, FrankWalter keeps attack tables in classical Chess 4.5 style [9], two bitboard arrays (ATKFR and ATKTO) indexed by square, While along with keeping bitboards for pinned pieces, this seems an reasonable approach to implement legal move generation, the culprit is the incremental update, in particular using a copy-make stack to copy the 1K attack table not only during make but also back during unmake [10].

Search

Evaluation

Misc

Photos & Games

PT55 R4FrankWalterTheKing.jpg

PT 55, Round 4, FrankWalter - The King, Johan de Koning and Laurens Winkelhagen [12] [13]

[Event "PT55"]
[Site "Amersfoort"]
[Date "2019.05.19"]
[Round "4"]
[White "FrankWalter"]
[Black "The King"]
[Result "1-0"]

1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 c5 5.g3 Nc6 6.dxc5 Bxc5 7.Bg2 d5 8.cxd5 exd5 9.Bg5 O-O 10.Bxf6 Qxf6 
11.Qxd5 Bb4 12.O-O Be6 13.Qb5 Rab8 14.Rfc1 a6 15.Qg5 Be7 16.Qxf6 Bxf6 17.Ne1 Nb4 18.a3 Nc6 19.Rab1 Rfd8 
20.Rd1 a5 21.Rxd8+ Rxd8 22.Nd3 Bd4 23.Rd1 Bb3 24.Rc1 Bc4 25.Bxc6 bxc6 26.Na4 Bb5 27.Nac5 a4 28.Kg2 g5
29.Rc2 Bg7 30.Nb4 h6 31.Kf3 Rd4 32.h3 Kf8 33.b3 axb3 34.Nxb3 Rc4 35.Rxc4 Bxc4 36.Na5 Bb5 37.Nd3 Bd4 
38.Nb3 Bb6 39.Nbc5 Ke7 40.a4 Bc4 41.Nb7 f5 42.Ndc5 Ba7 43.a5 Bd5+ 44.Ke3 Bc4 45.Kd2 h5 46.h4 g4 47.e3 
Bd5 48.Kc3 Bg8 49.a6 Bd5 50.Kb4 Bf3 51.Na5 Bd5 52.Nc4 Be6 53.Nxe6 Kxe6 54.Nb2 Kd5 55.Nd3 Ke4 56.Nf4
Kf3 57.Nxh5 Kxf2 58.Ng7 f4 59.exf4 Kxg3 60.h5 Kxf4 61.h6 g3 62.Nh5+ Kg5 63.Nxg3 Kxh6 64.Nf5+ Kg5 65.Ne7 
Be3 66.Nxc6 Kf6 67.Kc4 Bb6 68.Kb5 Bf2 69.Nb4 Ke6 70.Kc6 Ba7 71.Nd5 Kf5 72.Kb7 Bd4 73.Nb6 1-0

See also

Forum Posts

2009

2018 ...

External Links

Chess Engine

Misc

References

Up one level