Protector

From Chessprogramming wiki
Jump to: navigation, search

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 [2] , 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

MaverickProtectorWCCC2015.JPG

WCCC 2015, round 2, Steve Maughan and Timo Haupt in Maverick vs. Protector [3]

[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

ProtectorHiarcsWCSC2015.JPG

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

[4]

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 [5] /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

Forum Posts

2009

2010 ...

2015 ...

External Links

Chess Engine

Misc

References

  1. Dharma Protector, Mahabodhi Temple, Bodh Gaya, Flickr Image by Anandajoti Bhikkhu, Penang, Malaysia, March 16, 2013, Wikimedia Commons
  2. Interview with Raimund Heid, by Frank Quisinsky, Schachwelt.de, February 20, 2010 (German)
  3. WCCC 2015 and WCSC 2015 photos by Gerd Isenberg
  4. Acknowledgment from Protector_1_9_0.zip/readme.txt file
  5. Thank you! (Gerd Isenberg, March 16, 2013) My own contribution to Magic Bitboards was the line-wise forerunner, dubbed Kindergarten Bitboards, also tried with "random" factors, while Lasse Hansen had the idea to hash both lines simultaneously. I was initially skeptical whether the huge tables pay off.

Up one Level