Difference between revisions of "Spartan"
GerdIsenberg (talk | contribs) |
GerdIsenberg (talk | contribs) |
||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
'''[[Main Page|Home]] * [[Engines]] * Spartan''' | '''[[Main Page|Home]] * [[Engines]] * Spartan''' | ||
− | [[FILE:Spartandia.jpg|border|right|thumb| SPARTAN-101 Diagram <ref>[https://de.wikipedia.org/wiki/SPARTAN#SPARTAN_101 SPARTAN-101] (Shuttle Pointed Autonomous Research Tool for Astronomy) carrier module of [https://en.wikipedia.org/wiki/STS-51-G STS-51-G], the 18th flight of [https://en.wikipedia.org/wiki/NASA NASA's] [https://en.wikipedia.org/wiki/Space_Shuttle Space Shuttle] program, and the fifth flight of [https://en.wikipedia.org/wiki/Space_Shuttle_Discovery Space Shuttle Discovery], June 17-24, 1985, [https://en.wikipedia.org/wiki/NASA NASA] image, [https://de.wikipedia.org/wiki/SPARTAN SPARTAN – Wikipedia.de] (German), [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> ]] | + | [[FILE:Spartandia.jpg|border|right|thumb| SPARTAN-101 Diagram <ref>[https://de.wikipedia.org/wiki/SPARTAN#SPARTAN_101 SPARTAN-101] (Shuttle Pointed Autonomous Research Tool for Astronomy) carrier module of [https://en.wikipedia.org/wiki/STS-51-G STS-51-G], the 18th flight of [https://en.wikipedia.org/wiki/NASA NASA's] [https://en.wikipedia.org/wiki/Space_Shuttle Space Shuttle] [https://en.wikipedia.org/wiki/Space_Shuttle_program program], and the fifth flight of [https://en.wikipedia.org/wiki/Space_Shuttle_Discovery Space Shuttle Discovery], June 17-24, 1985, [https://en.wikipedia.org/wiki/NASA NASA] image, [https://de.wikipedia.org/wiki/SPARTAN SPARTAN – Wikipedia.de] (German), [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> ]] |
'''Spartan''',<br/> | '''Spartan''',<br/> | ||
Line 7: | Line 7: | ||
written in [[C]] and distributed under the [[Free Software Foundation#GPL|GNU General Public License]], first released in April 2016 | written in [[C]] and distributed under the [[Free Software Foundation#GPL|GNU General Public License]], first released in April 2016 | ||
as successor of [[JFresh]] <ref>[http://www.open-chess.org/viewtopic.php?f=7&t=2973 New UCI engine: Spartan] by [[Christian Daley|CDaley11]], [[Computer Chess Forums|OpenChess Forum]], April 23, 2016</ref>. | as successor of [[JFresh]] <ref>[http://www.open-chess.org/viewtopic.php?f=7&t=2973 New UCI engine: Spartan] by [[Christian Daley|CDaley11]], [[Computer Chess Forums|OpenChess Forum]], April 23, 2016</ref>. | ||
− | + | As a pure [[Bitboards|bitboard]] engine, Spartan applies [[Matt Taylor|Matt Taylor's]] [[BitScan#MattTaylorsFoldingtrick|folding trick]] to [[BitScan|scan bits]] <ref>[https://github.com/christiandaley/Spartan/blob/master/src/bitscan.h Spartan/bitscan.h at master · christiandaley/Spartan · GitHub]</ref>, and [[Population Count#BrianKernighansway|Brian Kernighan's way]] to [[Population Count|count bits]] <ref>[https://github.com/christiandaley/Spartan/blob/master/src/bitscan.c Spartan/bitscan.c at master · christiandaley/Spartan · GitHub]</ref>. | |
+ | In calculating [[King Pawn Tropism|king passer tropism]] in [[Evaluation|evaluation]], | ||
+ | Spartan uses the [https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance] between king and passer squares with [[Double|double]] arithmetic due to [https://en.wikipedia.org/wiki/C_standard_library C standard library] [https://en.wikipedia.org/wiki/Square_root square root] (double sqrt(double)) <ref>[https://github.com/christiandaley/Spartan/blob/master/src/eval.h partan/eval.h at master · christiandaley/Spartan · GitHub], #define DIST(sq1, sq2) ((int)sqrt(((...</ref> | ||
+ | <ref>[https://www.programiz.com/c-programming/library-function/math.h/sqrt C sqrt() - C Standard Library]</ref> of the [https://en.wikipedia.org/wiki/Sum_of_squares sum of squares] of [[Ranks#RankDistance|rank difference]] and [[Files#FileDistance|file difference]], which is quite expensive. Recommended is [[Distance#Lookup|looking up]] the [[Distance|Chebyshev distance]] or [[Manhattan-Distance|Manhattan distance]] for that purpose. | ||
+ | |||
=Features= | =Features= | ||
<ref>[https://github.com/christiandaley/Spartan/blob/master/Readme.md Spartan/Readme.md at master · christiandaley/Spartan · GitHub]</ref> | <ref>[https://github.com/christiandaley/Spartan/blob/master/Readme.md Spartan/Readme.md at master · christiandaley/Spartan · GitHub]</ref> | ||
==[[Board Representation]]== | ==[[Board Representation]]== | ||
− | * [[ | + | * [[Bitboard Board-Definition]] |
* [[Magic Bitboards]] | * [[Magic Bitboards]] | ||
==[[Search]]== | ==[[Search]]== | ||
Line 33: | Line 37: | ||
** [[Killer Heuristic]] | ** [[Killer Heuristic]] | ||
** [[History Heuristic]] | ** [[History Heuristic]] | ||
+ | ==[[Evaluation]]== | ||
+ | * [[Material]] | ||
+ | * [[Tapered Eval]] | ||
+ | * [[Piece-Square Tables]] | ||
+ | * [[Mobility]] | ||
+ | * [[Rook on Open File|Rooks on (Semi) Open Files]] | ||
+ | * [[Connectivity]] | ||
+ | * [[Pawn Structure]] | ||
+ | ** [[Pawn Hash Table]] | ||
+ | ** [[Backward Pawn]] | ||
+ | ** [[Doubled Pawn]] | ||
+ | ** [[Isolated Pawn]] | ||
+ | * [[Passed Pawn]] | ||
+ | ** [[Unstoppable Passer]] | ||
+ | ** [[King Pawn Tropism|King Passer Tropism]] | ||
+ | * [[King Safety]] | ||
+ | ** [[King Safety#Attacking|Attacking King Zone]] | ||
+ | ** [[King Safety#PawnShield|Pawn Shelter]] | ||
+ | ** [[King Safety#PawnStorm|Pawn Storm]] | ||
==Misc== | ==Misc== | ||
* [[Bratko-Kopec Test]] | * [[Bratko-Kopec Test]] | ||
Line 56: | Line 79: | ||
* [https://en.wikipedia.org/wiki/Sparta Sparta from Wikipedia] | * [https://en.wikipedia.org/wiki/Sparta Sparta from Wikipedia] | ||
* [https://en.wikipedia.org/wiki/Sparta_(disambiguation) Sparta (disambiguation) from Wikipedia] | * [https://en.wikipedia.org/wiki/Sparta_(disambiguation) Sparta (disambiguation) from Wikipedia] | ||
+ | * [[:Category:Broken Brass Ensemble|Broken Brass Ensemble]] - Spartan, [https://en.wikipedia.org/wiki/North_Sea_Jazz_Festival North Sea Jazz] 2019, [https://en.wikipedia.org/wiki/NPO_Radio_2_Soul_%26_Jazz NPO Radio 2 Soul & Jazz], [https://en.wikipedia.org/wiki/YouTube YouTube] Video | ||
+ | : {{#evu:https://www.youtube.com/watch?v=j4ziR0UDKWA|alignment=left|valignment=top}} | ||
=References= | =References= | ||
Line 68: | Line 93: | ||
[[Category:Linux]] | [[Category:Linux]] | ||
[[Category:Windows]] | [[Category:Windows]] | ||
+ | [[Category:Broken Brass Ensemble]] |
Latest revision as of 21:41, 17 September 2020
Spartan,
an UCI compliant open source chess engine by Christian Daley,
written in C and distributed under the GNU General Public License, first released in April 2016
as successor of JFresh [2].
As a pure bitboard engine, Spartan applies Matt Taylor's folding trick to scan bits [3], and Brian Kernighan's way to count bits [4].
In calculating king passer tropism in evaluation,
Spartan uses the Euclidean distance between king and passer squares with double arithmetic due to C standard library square root (double sqrt(double)) [5]
[6] of the sum of squares of rank difference and file difference, which is quite expensive. Recommended is looking up the Chebyshev distance or Manhattan distance for that purpose.
Contents
Features
Board Representation
Search
- Iterative Deepening
- Aspiration Windows
- Alpha-Beta
- Principal Variation Search
- Transposition Table
- Selectivity
- Move Ordering
Evaluation
- Material
- Tapered Eval
- Piece-Square Tables
- Mobility
- Rooks on (Semi) Open Files
- Connectivity
- Pawn Structure
- Passed Pawn
- King Safety
Misc
See also
Forum Posts
- New UCI engine: Spartan by CDaley11, OpenChess Forum, April 23, 2016
- New UCI engine Spartan released (a while ago) by Günther Simon, CCC, May 11, 2016
External Links
Chess Engine
Misc
- spartan - Wiktionary
- Spartan - Wiktionary
- Spartan Chess - Chess Variant Page
- Spartan Race from Wikipedia
- Sparta from Wikipedia
- Sparta (disambiguation) from Wikipedia
- Broken Brass Ensemble - Spartan, North Sea Jazz 2019, NPO Radio 2 Soul & Jazz, YouTube Video
References
- ↑ SPARTAN-101 (Shuttle Pointed Autonomous Research Tool for Astronomy) carrier module of STS-51-G, the 18th flight of NASA's Space Shuttle program, and the fifth flight of Space Shuttle Discovery, June 17-24, 1985, NASA image, SPARTAN – Wikipedia.de (German), Wikimedia Commons
- ↑ New UCI engine: Spartan by CDaley11, OpenChess Forum, April 23, 2016
- ↑ Spartan/bitscan.h at master · christiandaley/Spartan · GitHub
- ↑ Spartan/bitscan.c at master · christiandaley/Spartan · GitHub
- ↑ partan/eval.h at master · christiandaley/Spartan · GitHub, #define DIST(sq1, sq2) ((int)sqrt(((...
- ↑ C sqrt() - C Standard Library
- ↑ Spartan/Readme.md at master · christiandaley/Spartan · GitHub
- ↑ Spartan Chess - Chess Variant Page