Changes

Jump to: navigation, search

Kurt

8,374 bytes added, 10:57, 9 February 2019
Created page with "'''Home * Engines * Kurt''' FILE:Bundesarchiv Bild 146-2005-0119, Kurt Weill.jpg|border|right|thumb| Kurt Weill <ref>Original caption (German): Kurt Weill..."
'''[[Main Page|Home]] * [[Engines]] * Kurt'''

[[FILE:Bundesarchiv Bild 146-2005-0119, Kurt Weill.jpg|border|right|thumb| Kurt Weill <ref>Original caption (German): Kurt Weill in Wien, Kurt Weill, der bekannte Komponist der "[https://en.wikipedia.org/wiki/The_Threepenny_Opera Drei-Groschen-Oper]", ist zur Premiere seines neuen Stückes "[https://en.wikipedia.org/wiki/Rise_and_Fall_of_the_City_of_Mahagonny Aufstieg und Fall der Stadt Mahagonny]" nach [https://en.wikipedia.org/wiki/Vienna Wien] gekommen, [https://en.wikipedia.org/wiki/German_Federal_Archives German Federal Archives], [https://en.wikipedia.org/wiki/Kurt_Weill Kurt Weill from Wikipedia]</ref>
]]

'''Kurt''',<br/>
a [[Chess Engine Communication Protocol]] and [[UCI]] compliant [[:Category:Open Source|open source chess engine]] under the [[Free Software Foundation#GPL|GNU General Public License]], written by [[Oliver Uwira]] in [[C]]. Able to play [[Chess960]], Kurt participated at the [[Chess960CWC 2006|2nd Livingston Chess960 Computer World Championship 2006]] in [https://en.wikipedia.org/wiki/Mainz Mainz].
The last recent Kurt 0.9.2.2 beta is available from [[Jim Ablett|Jim Ablett's]] site.

=Bitboards=
==Sliding Piece Attacks==
Kurt 0.9.2.x beta is a none [[Rotated Bitboards|rotated]] [[Bitboards|bitboard]] engine <ref>[https://www.stmintz.com/ccc/index.php?id=489834 rotated bitboards obsolete?] by [[Gerd Isenberg]], [[CCC]], February 26, 2006</ref>, and uses a three-dimensional pre-initialized [[Array|array]] of 128 KByte to lookup [[Sliding Piece Attacks|sliding piece attacks]], indexed by [[Squares|square]] (0..63), [[Occupancy of any Line|line occupancy index]] (0..63, considering the [[First Rank Attacks#TheOuterSquares|outer squares]]) and finally the four line [[Direction|directions]] (0..3) for [[Ranks|ranks]], [[Files|files]], [[Diagonals|diagonals]] and [[Anti-Diagonals|anti-diagonals]]. The six-bit line occupancy index is calculated from the masked line of empty squares, multiplied by a 64-bit [[De Bruijn Sequence]] <ref>[[De Bruijn Sequence|De Bruijn sequence]] factors are not required and work more like [[Looking for Magics|random magic factors]] here. File pattern for a [[General Setwise Operations#Multiplication|north-fill multiplication]], or diagonal pattern for a [[Flipping Mirroring and Rotating#FiletoaRank|flip-multiplication]], as applied in [[Kindergarten Bitboards|kindergarten bitboards]] are more stringent to map the [[First Rank Attacks#TheOuterSquares|inner six squares]] of any line to an 6-bit index</ref> for each square and direction, shifting the product right by 58 .
<span id="BitScan"></span>
==BitScan==
Kurt 0.9.2.x beta uses [[Matt Taylor|Matt Taylor's]] [[BitScan#MattTaylorsFoldingtrick|folded BitScan]]. Returning a [[Byte|byte]] <ref>kurt_0_9_2_beta/src/bitboard.c, [http://www.open-aurec.com/wbforum/viewtopic.php?f=2&t=51248 New Version: Kurt 0.9.2 beta] by [[Oliver Uwira]], [[Computer Chess Forums|Winboard Forum]], October 11, 2010</ref>.
<pre>
static const int LsbDeBruijnMap[64] =
{
63, 30, 3, 32, 59, 14, 11, 33,
60, 24, 50, 9, 55, 19, 21, 34,
61, 29, 2, 53, 51, 23, 41, 18,
56, 28, 1, 43, 46, 27, 0, 35,
62, 31, 58, 4, 5, 49, 54, 6,
15, 52, 12, 40, 7, 42, 45, 16,
25, 57, 48, 13, 10, 39, 8, 44,
20, 47, 38, 22, 17, 37, 36, 26
};

unsigned char LeastSignificantBit(bitboard b)
{
unsigned int fold;
b ^= (b - 1);
fold = ((int) b) ^ ((int)(b>>32));
return LsbDeBruijnMap[(fold * 0x78291acf) >> 26];
}
</pre>

==Collapsing Files and Ranks==
[[Occupancy of any Line#CollapsedFiles|Collapsed files]] and [[Occupancy of any Line#CollapsedRanks|collapsed ranks]], as posted by [[Urban Koistinen]] in 1997 <ref>[https://groups.google.com/d/msg/rec.games.chess.computer/YvFagyuVogw/2vNJw_qT8IYJ Re: Rotated bitboards] by [[Urban Koistinen]], [[Computer Chess Forums|rgcc]], October 31, 1997</ref>, and [[Steffan Westcott]] in 2006 <ref>[https://www.stmintz.com/ccc/index.php?id=491079 Re: Some thoughts on Dann Corbit's rotated alternative] by [[Steffan Westcott]], [[CCC]], March 03, 2006</ref> are used in 0.9.2.x for initialization purposes:
<pre>
/**
* CollapseFiles(bitboard) folds a bitboard vertically into an 8 bit word.
* By or-ing the files of a bitboard, a 8-bit folded bitboard is calculated.
* E.g. by folding a bitboard containing the position of all pawns open files
* can be determined:
*
* abcdefgh
*
* 8 00000000
* 7 10100110
* 6 00010001 abcdefgh
* 5 00000000 => CollapseFiles() => 11110111
* 4 00010000
* 3 00100000 Negating the result yields the open-property of
* 2 11000011 the 8 files => the e-file is open.
* 1 00000000
*
* Pawns
*/
unsigned char CollapseFiles(bitboard src)
{
src |= src >> 32;
src |= src >> 16;
src |= src >> 8;
return (unsigned char)(src & 0xff);
}

/**
* CollapseRanks() folds a bitboard horizontally into an 8 bit word.
* This is similar to CollapseFiles(bitboard).
*/
unsigned char CollapseRanks(bitboard src)
{
src |= src >> 4; // No masking needed
src |= src >> 2; // " "
src |= src >> 1; // " "
return (unsigned char)(((src & 0x0101010101010101) * 0x0102040810204080) >> 56);
}
</pre>

=Search=
Kurt's [[Search|search]] is [[Principal Variation Search|PVS]] with [[Null Move Pruning|null move pruning]] and [[Killer Heuristic|killer heuristic]] with two slots for [[Mate Killers|mate killers]] and other [[Killer Move|killer moves]] each, kept in its parent's node structure. Further, [[Static Exchange Evaluation|SEE]] is used in [[Move Ordering|move ordering]] and [[Quiescence Search|quiescence search]] [[Pruning|pruning]].

=Evaluation=
The [[Evaluation|evaluation]] is speeded up by a [[Evaluation Hash Table|hash table]] and considers [[Material|material]] and various positional terms such as [[Development|development]], [[Pawn Structure|pawn structure]], in particular [[Backward Pawn|backward pawns]] and [[Passed Pawn|passed pawns]], and [[King Safety|king safety]].

=Forum Posts=
* [http://www.talkchess.com/forum/viewtopic.php?t=36149 One step forward again] by [[Oliver Uwira]], [[CCC]], September 22, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=36331 New Version: Kurt 0.9.2 beta] by [[Oliver Uwira]], [[CCC]], October 11, 2010
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=2&t=51248 New Version: Kurt 0.9.2 beta] by [[Oliver Uwira]], [[Computer Chess Forums|Winboard Forum]], October 11, 2010

=External Links=
==Chess Engine==
* [http://kirr.homeunix.org/chess/engines/Jim%20Ablett/KURT/ Index of /chess/engines/Jim Ablett/KURT] compiled by [[Jim Ablett]], hosted by [[Kirill Kryukov]]
: [http://kirr.homeunix.org/chess/engines/Jim%20Ablett/+++%20LINUX%20ENGINES%20++/64%20BIT/kurt/ Index of /chess/engines/Jim Ablett/+++ LINUX ENGINES ++/64 BIT/kurt]
* [http://julien.marcel.free.fr/macchess/Chess_on_Mac/Engines.html Mac Chess Engines Repository] by [[Julien Marcel]]
==Misc==
* [https://en.wikipedia.org/wiki/Kurt Kurt (disambiguation) from Wikipedia]
* [http://www.utzingerk.com/ Kurt & Rolf Chess] Homepage of [[Kurt Utzinger]]
* [https://en.wikipedia.org/wiki/Kurt_Richter Kurt Richter from Wikipedia]
* [https://en.wikipedia.org/wiki/Kurt_Tucholsky Kurt Tucholsky from Wikipedia]
* [https://en.wikipedia.org/wiki/Kurt_Wallander Kurt Wallander from Wikipedia]
* [https://en.wikipedia.org/wiki/Kurt_Weill Kurt Weill from Wikipedia]
* [https://en.wikipedia.org/wiki/Louis_Armstrong Louis Armstrong] - [https://en.wikipedia.org/wiki/Mack_the_Knife Mack the Knife], [https://en.wikipedia.org/wiki/The_Hollywood_Palace Hollywood Palace], May 01, 1965, [https://en.wikipedia.org/wiki/YouTube YouTube] Video
: {{#evu:https://www.youtube.com/watch?v=S-lHrDPjGfQ|alignment=left|valignment=top}}
* [https://en.wikipedia.org/wiki/Milo%C5%A1_Kopeck%C3%BD Miloš Kopecký] - [http://de.wikipedia.org/wiki/Die_Moritat_von_Mackie_Messer Mackie Messer], [https://en.wikipedia.org/wiki/YouTube YouTube] Video
: {{#evu:https://www.youtube.com/watch?v=C22WljLi8S8|alignment=left|valignment=top}}

=References=
<references />
'''[[Engines|Up one Level]]'''
[[Category:Open Source]]
[[Category:GPL]]
[[Category:Chess960]]
[[Category:UCI]]
[[Category:WinBoard]]
[[Category:XBoard]]
[[Category:Mac]]
[[Category:Android]]
[[Category:Given Name]]
[[Category:Music]]

Navigation menu