Changes

Jump to: navigation, search

Sierżant

5,899 bytes added, 20:16, 8 November 2020
Created page with "'''Home * Engines * Sierżant''' [[FILE:Army-POL-OR-05.svg|border|right|thumb|160px| Sierżant <ref>[https://en.wikipedia.org/wiki/Badge Badge] of rank of S..."
'''[[Main Page|Home]] * [[Engines]] * Sierżant'''

[[FILE:Army-POL-OR-05.svg|border|right|thumb|160px| Sierżant <ref>[https://en.wikipedia.org/wiki/Badge Badge] of rank of Sierżant (Sergeant) of the [https://en.wikipedia.org/wiki/Polish_Land_Forces Polish Army], [https://en.wikipedia.org/wiki/Polish_Armed_Forces_rank_insignia Polish Armed Forces rank insignia - Wikipedia], [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> ]]

'''Sierżant''', (Sierzant)<br/>
a [[WinBoard]] compliant chess engine by [[Mariusz Rostek]], written in [[Cpp|C++]] and first released in November 2004.
Sierżant was described in Mariusz' 2008 Diploma thesis <ref>[[Mariusz Rostek]] ('''2008'''). ''[http://strony.toya.net.pl/~sierzant29/nowosci.html Program grający w szachy]''. (Chess playing programs) Engineering Thesis, [[Technical University of Łódź]], advisor [[Maciej Szmit]]</ref>.
It is the successor of the weaker [[Szeregowiec]], and predecessor of the stronger [[Porucznik]] - in dependence to the [https://en.wikipedia.org/wiki/Polish_Armed_Forces_rank_insignia Polish Armed Forces ranking].

=Tournament Play=
As "house program" of the [[Technical University of Łódź]], Sierżant was active in four consecutive [[Polish Computer Chess Championship|Polish Computer Chess Championships]], the [[PCCC 2004]], [[PCCC 2005]], [[PCCC 2006]] and the international [[IOPCCC 2007]].

=Selected Games=
[[PCCC 2006]], round 3, [[Sierżant]] - [[nanoSzachy]] <ref>[http://mpps.maciej.szmit.info/mpps-5/ Mistrzostwa Polski Programów Szachowych - PGN]</ref>
<pre>
[Event "5th PCCC 2006"]
[Site "Lodz"]
[Date "2006.09.16"]
[Round "3"]
[White "Sierzant"]
[Black "nanoSzachy"]
[Result "1-0"]

1.c4 e6 2.Nc3 d5 3.d4 Nf6 4.cxd5 exd5 5.Bg5 Nbd7 6.e3 Be7 7.Qc2 c6 8.Bd3 O-O
9.Nf3 Re8 10.h3 Nf8 11.Bf4 Ng6 12.Bh2 Ne4 13.Nxe4 dxe4 14.Bxe4 Qa5+ 15.Kf1 Be6
16.Ne5 Rad8 17.b3 Bf6 18.Nxg6 hxg6 19.Rc1 Qa3 20.Rb1 Qa6+ 21.Kg1 Qa3 22.Bf4 Bd5
23.Bd3 Rd7 24.e4 Be6 25.d5 cxd5 26.Bb5 dxe4 27.Bxd7 Bxd7 28.Rd1 Bf5 29.g4 Rc8
30.Qe2 Be6 31.g5 Bc3 32.Qxe4 Qxa2 33.Qxb7 Qxb3 34.Qxb3 Bxb3 35.Rc1 Rc4 36.Kg2
a5 37.Rb1 Bc2 38.Rb8+ Kh7 39.Rc1 Bd4 40.f3 f6 41.h4 a4 42.Re1 Bf5 43.Ree8 Rc2+
44.Kh1 Bc8 45.Rbxc8 Rxc8 46.Rxc8 Bf2 47.Rc2 Be1 48.Re2 Bc3 49.Bd6 Ba5 50.Kg2
Bb6 51.Re7 Bd4 52.Re4 Bc3 53.Rxa4 Kg8 54.Rc4 Bb2 55.Rc2 Bd4 56.Rd2 Bc3 57.Rc2
Bd4 58.Rc4 Bb2 59.f4 Kh8 60.Be7 Kg8 61.Rc7 fxg5 62.hxg5 Kh7 63.Bf6 Bxf6 64.gxf6
Kg8 65.fxg7 Kh7 66.Kf3 g5 67.f5 Kg8 68.Kg4 Kh7 69.Kxg5 Kg8 70.f6 Kh7 71.Kf5 Kg8
72.Rc8+ Kh7 73.g8=Q+ Kh6 1-0
</pre>

=Description=
==[[Board Representation]]==
The board is represented by a [[Mailbox|10x10 array]], [[Move Generation|move generation]] is done in conjunction with [[Piece-Lists|piece lists]] and [[Table-driven Move Generation]].

==[[Search]]==
Sierżant performs [[Principal Variation Search|PVS]] [[Alpha-Beta|alpha-beta]] with [[Null Move Pruning|null-move pruning]] and [[Razoring|razoring]] inside an [[Iterative Deepening|iterative deepening]] loop,
and [[Check Extensions|extends consecutive checks]] up to five times inside one variation. Despite it has no [[Transposition Table|transposition table]], additive 32-bit [[Zobrist Hashing|Zobrist keys]] are used to detect [[Repetitions|repetitions]].
After first playing the [[Principal Variation|principal variation]] from the previous iteration, [[Move Ordering|move ordering]] is improved by the [[Killer Heuristic|killer heuristic]] and [[MVV-LVA]] for captures.
<span id="Cutratio"></span>To compare the quality of move ordering, a [[Beta-Cutoff|beta-cutoff]] ratio L1/L2 >= 1.0 (the smaller, the better) is determined as follows:
<pre>
int alphabeta (ply, depth, alpha, beta) {
for (a = 1; a <= NMoves; a++) {
make ();
value = -alphabeta( ... );
unmake ();
if (value >= beta) {
L1 += a;
L2 += 1;
return beta;
}
}
}
</pre>

==[[Evaluation]]==
The [[Material#Balance|material balance]] is [[Incremental Updates|calculated incrementally]] and passed as parameter to the recursive alpha-beta routine. Positional considerations, notably [[Piece-Square Tables|piece-square tables]] including [[King Safety|king safety]] versus [[King Centralization|king centralization]] and [[Pawn Structure|pawn structure]] related stuff, are dependent on the [[Game Phases|game phase]], pre-determined at the [[Root|root]] before starting the search, that is [[Opening|opening]], [[Middlegame|middle]] and [[Endgame|endgame]], separated by the total amount of material on the board.

=See also=
* [[Porucznik]]
* [[Szeregowiec]]

=Publications=
* [[Mariusz Rostek]] ('''2008'''). ''[http://strony.toya.net.pl/~sierzant29/nowosci.html Program grający w szachy]''. (Chess playing programs) Engineering Thesis, [[Technical University of Łódź]], advisor [[Maciej Szmit]]

=Forum Posts=
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=2&t=502&p=1879 New winboard engine] by [[Leo Dijksman]], [[Computer Chess Forums|Winboard Forum]], November 05, 2004

=External Links=
==Chess Engine==
* [http://strony.toya.net.pl/~sierzant29/ Porucznik program szachowy algorytmy szachowe programowanie gry w szachy] (Polish)
: [http://strony.toya.net.pl/~sierzant29/download.html Program szachowy Sierzant28 - download]
: [http://strony.toya.net.pl/~sierzant29/algorytmy.html Program szachowy Sierżant - Heurystyki]
* [http://www.computer-chess.org/doku.php?id=computer_chess:wiki:download:engine_download_list Engine Download List] from [[Ron Murawski|Ron Murawski's]] [http://computer-chess.org/doku.php?id=home Computer-Chess Wiki]
==Misc==
* [https://pl.wikipedia.org/wiki/Sier%C5%BCant Sierżant – Wikipedia.pl] (Polish)
: [https://en.wikipedia.org/wiki/Sergeant Sergeant - Wikipedia]

=References=
<references />
'''[[Engines|Up one Level]]'''
[[Category:WinBoard]]
[[Category:PC]]
[[Category:X86]]
[[Category:Windows]]
[[Category:Thesis]]
[[Category:Military]]

Navigation menu