Protector

Home * Engines * Protector



Protector, an UCI compliant open source chess engine written by Raimund Heid in C, distributed under the GNU General Public License GPL. Protector already started its life in early 2000, and over the time incorporated many public ideas and techniques known from other open source programs, notably Crafty, Fruit, Toga, Glaurung/Stockfish and RobboLito. It can be compiled to run under Windows, Linux and Mac OS. Protector is incorporated in the cluster chess project GridProtector by Kai Himstedt which had its debut at PT 49.

=Tournament Play= Protector participated at the TCEC Season 6, the TCEC Season 7, and over the board the WCCC 2015 and WCSC 2015 in Leiden, operated by Timo Haupt, who was also responsible for the book lines. At the WCCC, Protector played strongly and shared the third place with HIARCS with 5/8, only losing from Komodo. At the uniform hardware WCSC Protector also shared the third place, now with Komodo, both 4½/7, behind Shredder and Ginkgo.

=Photos & Games=

WCCC 2015
WCCC 2015, round 2, Steve Maughan and Timo Haupt in Maverick vs. Protector [Event "WCCC 2015"] [Site "Leiden, The Netherlands"] [Date "2015.06.29"] [Round "2.2"] [White "Maverick"] [Black "Protector"] [Result "0-1"]

1.d4 Nf6 2.c4 e6 3.Nf3 d5 4.g3 dxc4 5.Bg2 a6 6.O-O Nc6 7.e3 Bd7 8.Nc3 Bd6 9.Qe2 b5 10.e4 e5 11.dxe5 Nxe5 12.Nxe5 Bxe5 13.f4 Bxc3 14.bxc3 c6 15.Be3 O-O 16.Bc5 Bg4 17.Qc2 Re8 18.Bd4 Rb8 19.h3 Bc8 20.Rad1 Qe7 21.Be5 Rb7 22.Bd6 Qd8 23.Bc5 Rd7 24.Bd4 Qc7 25.Bxf6 gxf6 26.Rxd7 Qxd7 27.Rd1 Qe7 28.Qe2 Rd8 29.Rxd8+ Qxd8 30.Bf1 Qb6+ 31.Kh2 c5 32.f5 Qd6 33.h4 Qe5 34.Qc2 Bb7 35.Bg2 b4 36.cxb4 c3 37.bxc5 Qxc5 38.Kh3 Bc6 39.h5 Qd4 40.Bf3 Ba4 41.Qc1 Qd2 42.Qxd2 cxd2 43.h6 d1=Q 44.Bxd1 Bxd1 45.Kg2 Kf8 46.Kf2 Ke7 47.Ke3 Kd6 48.Kd4 Be2 49.Kc3 Ke5 0-1

WCSC 2015
WCSC 2015, round 2, Harvey Williamson and Timo Haupt in Protector vs. HIARCS waiting for 20.Qa8+ [Event "WCSC 2015"] [Site "Leiden, The Netherlands"] [Date "2015.07.04"] [Round "2.4"] [White "Protector"] [Black "HIARCS"] [Result "1/2-1/2"]

1.d4 Nf6 2.c4 c6 3.Nc3 d5 4.e3 e6 5.Nf3 Nbd7 6.Bd3 dxc4 7.Bxc4 b5 8.Bd3 Bb7 9.O-O a6 10.e4 c5 11.d5 Qc7 12.dxe6 fxe6 13.Bc2 Bd6 14.Ng5 Nf8 15.f4 O-O-O 16.Qe2 h6 17.Nf3 Bxf4 18.e5 Bxf3 19.Qxf3 Bxe5 20.Qa8+ Kd7 21.Qxa6 b4 22.Nb5 Qc6 23.Rd1+ Nd5 24.Rxd5+ exd5 25.Bf5+ Ne6 26.Qa7+ Kc8 27.Qe7 Kb8 28.Qa7+ Kc8 29.Bd2 Rhe8 30.Re1 g6 31.Bg4 h5 32.Bh3 Qxb5 33.Rxe5 Rd6 34.Bf4 Kd8 35.Bg3 Qd7 36.Bh4+ Kc8 37.Qa8+ Kc7 38.Qa7+ Kc8 39.Qa8+ Kc7 40.Qa7+ Kc6 41.Qa6+ Kc7 42.Qa7+ 1/2-1/2

=Description=

Move Generation
Protector is bitboard based and applies Lasse Hansen's plain magic bitboards to determine sliding piece attacks. Staged move generation considers PV- and hash move, winning captures and up to four killers early, and otherwise orders captures by SEE and quiet moves by the history heuristic and various static move properties.

Search
Protector uses a pool of threads to perform a parallel search loosely synchronized by a shared hash table. The serial principal variation search with null move pruning and verification, razoring, futility pruning, late move reductions, IID, check- and restricted singular extensions is embedded inside the common iterative deepening frame with aspiration.

Evaluation
The evaluation caches pawn structure and king safety stuff in thread local hash tables. Opening and endgame scores of various features are computed and aggregated speculatively and finally interpolated by a tapered eval on the current game phase.

=Acknowledgment= Protector is based on many great ideas from the following people: Fabien Letouzey (pvnodes, blending of opening and endgame values, eval params), Thomas Gaksch (pvnode extensions, extended futility pruning, space attack eval), Robert Hyatt (consistent hashtable entries), Stefan Meyer-Kahlen (UCI), Gerd Isenberg /Lasse Hansen (magic bitboards), Marco Costalba/Tord Romstad/Joona Kiiski (Glaurung/Stockfish sources), Igor/Yakov (RobboLito sources), Andrew Kadatch/Eugene Nalimov (endgame tablebases), Frank Rahde (testing) and Wolf Stephan Kappesser (Adaptations for Mac OS). Without their contributions Protector would not be what it is. Thank you so much.

=See also=
 * GridProtector

=Forum Posts=

2009

 * Protector - new UCI engine by Denis P. Mendoza, Toga Developers Discussion Board, August 12, 2009
 * Found 2 New Engines: Protector and BDI Chess by Swaminathan, Winboard Forum, August 16, 2009
 * Protector 1.2.7 by Patrick Buchmann, WBEC-Ridderkerk Forum, August 27, 2009
 * Re:Original project by Ruxy Sylwyka, CCC, August 29, 2009
 * What was the verdict on Protector 1.2.7? by Graham Banks, CCC, October 03, 2009
 * Protector 1.2.9 executables with egtb access by Volker Pittlik, CCC, October 22, 2009
 * Protector 1.3.2 released by Graham Banks, CCC, November 26, 2009

2010 ...

 * Protector by Olivier Deville, Winboard Forum, March 04, 2010
 * Protector 1.5 is coming! by Jesús Muñoz, CCC, January 29, 2013
 * Unofficial Protector 1.6 by Jose Mº Velasco, CCC, December 21, 2013
 * Protector 1.7.0 is released... by Dr.Wael Deeb, CCC, September 21, 2014

2015 ...

 * Protector 1.8.0 ?! by Frank Quisinsky, CCC, May 20, 2015
 * Protector 1.8.0 officially released by Graham Banks, CCC, May 27, 2015
 * Protector 1.9 Available for the Mac by Michael B, CCC, November 24, 2015
 * Re-release Protector 1.9 for the Mac by Michael B, CCC, January 02, 2016

=External Links=

Chess Engine

 * Protector | Free software downloads at SourceForge
 * Protector's ICGA Tournaments
 * Interview with Raimund Heid, by Frank Quisinsky, Schachwelt.de, February 20, 2010 (German)
 * Protector in CCRL 40/40

Misc

 * protector - Wiktionary
 * Protector (disambiguation) from Wikipedia
 * Protector (DC Comics) from Wikipedia
 * Protector (Marvel Comics) from Wikipedia
 * Protectors (comics) from Wikipedia
 * Protector (novel) from Wikipedia
 * Protector (title) from Wikipedia
 * Pak Protector from Wikipedia
 * Protectorate from Wikipedia
 * Protection (disambiguation) from Wikipedia
 * Dharmapala from Wikipedia
 * Citipati from Wikipedia
 * Iron Savior - Protector, Condition Red (2002), YouTube Video

=References= Up one Level