Older Version
Newer Version
GerdIsenberg
Sep 16, 2017
**[[Home]] * [[Engines]] * Tunguska** || [[image:Tunguska.jpg link="https://commons.wikimedia.org/wiki/File:Tunguska.png"]] ||~ || **Tunguska**, an [[UCI]] compliant [[Open Source Engines|open source chess engine]] by [[Fernando Tenorio]], written in [[Cpp|C++11]], released in December 2016 on [[https://en.wikipedia.org/wiki/GitHub|GitHub]] <ref>[[http://www.talkchess.com/forum/viewtopic.php?t=62455|New engine Tunguska 1.0]] by [[Fernando Tenorio]], [[CCC]], December 11, 2016</ref>. Tunguska may be build to run under [[Windows]], [[Linux]] and [[Mac OS]]. A new version should fix the inappropriate [[Sliding Piece Attacks|sliding piece attack]] implementation (see below) either by using [[BitScan#LeadingZeroCount|leading zero count]] intrinsics or [[Magic Bitboards|magic bitboards]]. || || Fallen trees at [[https://en.wikipedia.org/wiki/Tunguska_event|Tunguska]], 1927 <ref>[[https://commons.wikimedia.org/wiki/File:Tunguska.png|Fallen trees at Tunguska, 1927]], [[https://en.wikipedia.org/wiki/Tunguska_event|Tunguska event from Wikipedia]], [[https://en.wikipedia.org/wiki/Wikimedia_Commons|Wikimedia Commons]]</ref> ||~ ||^ || [[toc]] =Description= ==Board Representation== Tunguska [[Board Representation|represents the board]] using a [[Bitboards|bitboard]] [[Bitboard Board-Definition|array declaration]] along the the obligatory [[8x8 Board|8x8 board]]. [[Sliding Piece Attacks|Sliding piece attacks]] are generated ray-wise by the [[Classical Approach|classical approach]]. While this approach relies on scanning the nearest blocker in positive and negative directions using [[BitScan#Bitscanforward|bitscan forward]] or [[BitScan#Bitscanreverse|bitscan reverse]], aka [[BitScan#TrailingZeroCount|trailing]] (tzc) or [[BitScan#LeadingZeroCount|leading zero count]] (lzc), Tunguska implements these zero counts, in particular lzc, without machine instructions. [[Kim Walisch|Kim Walisch's]] and Mark Dickinson's [[BitScan#FillDeBruijn|suggestion]] of a [[Parallel Prefix Algorithms|parallel prefix fill]] for a [[General Setwise Operations#TheMostSignificantOneBitMS1B|MS1B]] separation along with [[De Bruijn sequence|De Bruijn]] multiplication and lookup is likely the cheapest general implementation without hardware support, but still far to slow for this purpose considering other sliding piece attack approaches. ==Search== So far the [[Search|search]] uses [[Iterative Deepening|iterative deepening]], [[Alpha-Beta|alpha-beta]] with [[Transposition Table|transposition table]], [[Check Extensions|check extensions]], [[Null Move Pruning|null move pruning]], [[Late Move Reductions|late move reductions]] and [[Futility Pruning|futility pruning]]. The [[Move Ordering|move ordering]] is enhanced by using the [[History Heuristic|history heuristic]] and [[Killer Heuristic|killer heuristic]]. ==Evaluation== Tunguska's [[Evaluation|evaluation]] relies on [[Material|material]], [[Piece-Square Tables|piece-square tables]], [[Mobility|mobility]], various [[Evaluation of Pieces|piece specific terms]], [[Pawn Structure|pawn structure]], and [[King Safety#PawnShield|pawn shield]] and [[King Safety#Attacking|zone attacks]] concerning [[King Safety|king safety]]. All feature weights are aggregated as distinct [[Middlegame|middlegame]] and [[Endgame|endgame]] [[Score|scores]], finally interpolated by the current [[Game Phases|game phase]] - a technique known as [[Tapered Eval|tapered eval]]. =See also= * [[Various Classifications#Disaster|Disaster]] * [[Various Classifications#Geography|Geography]] =Forum Posts= * [[http://www.talkchess.com/forum/viewtopic.php?t=62455|New engine Tunguska 1.0]] by [[Fernando Tenorio]], [[CCC]], December 11, 2016 * [[http://www.talkchess.com/forum/viewtopic.php?t=65119|Tunguska engine v2.0]]by [[Fernando Tenorio]], [[CCC]], September 09, 2017 =External Links= ==Chess Engine== * [[https://github.com/fernandotenorio/Tunguska|GitHub - fernandotenorio/Tunguska: UCI compliant chess Engine]] * [[http://www.computerchess.org.uk/ccrl/4040/cgi/engine_details.cgi?print=Details&each_game=1&eng=Tunguska%201.0%2064-bit#Tunguska_1_0_64-bit|Tunguska 1.0 64-bit in CCRL 40/40]] ==Misc== * [[https://en.wikipedia.org/wiki/Tunguska_event|Tunguska event from Wikipedia]] * [[https://en.wikipedia.org/wiki/Podkamennaya_Tunguska_River|Podkamennaya Tunguska River from Wikipedia]] =References= <references /> =What links here?= [[include page="Tunguska" component="backlinks" limit="20"]] **[[Engines|Up one Level]]**