Changes

Jump to: navigation, search

Daydreamer

9,776 bytes added, 22:06, 19 July 2019
Created page with "'''Home * Engines * Daydreamer''' FILE:Daydreaming Gentleman.jpg|border|right|thumb| A daydreaming gentleman <ref>[https://commons.wikimedia.org/wiki/Fil..."
'''[[Main Page|Home]] * [[Engines]] * Daydreamer'''

[[FILE:Daydreaming Gentleman.jpg|border|right|thumb| A daydreaming gentleman <ref>[https://commons.wikimedia.org/wiki/File:Daydreaming_Gentleman.jpg A daydreaming gentleman]; from an original 1912 postcard published in Germany, [https://en.wikipedia.org/wiki/Daydream Daydream from Wikipedia], [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> ]]

'''Daydreamer''', (DayDreamer)<br/>
an [[UCI]] compliant [[:Category:Open Source|open source chess engine]] by [[Aaron Becker]], written in [[C]], and the '''2.0''' pre-release in [[Rust]] <ref>[https://github.com/AaronBecker/daydreamer/blob/release/README.md daydreamer/README.md at release · AaronBecker/daydreamer · GitHub]</ref>,
also able to play [[Chess960]]. Developed since early 2009, the program was named Daydreamer after a bug in an early version caused it to occasionally follow up very strong play with bizarre blunders, as though it had lost its focus on the game and its mind was wandering aimlessly.
First released in August 2009 <ref>[http://www.talkchess.com/forum/viewtopic.php?t=29417 Announcing Daydreamer 1.0] by [[Aaron Becker]], [[CCC]], August 16, 2009</ref>, it initially used [[Tomasz Michniewski|Tomasz Michniewski's]] [[Simplified Evaluation Function|simplified evaluation function]], while subsequent versions were rapidly improving since mid 2010. DayDreamer played the [[CCT12]] and [[ACCA 2010]] online tournaments.

=Description=
==Board Representation==
Daydreamer prior to '''2.0''' pre-release used [[Piece-Lists|piece-lists]] and a [[Vector Attacks|16x16 vector attacks]] board around a [[0x88]] board inside its middle 16x8 slots <ref>[https://github.com/AaronBecker/daydreamer/blob/release/position.h daydreamer/position.h at release · AaronBecker/daydreamer · GitHub]</ref>. [[Move Generation|Move generation]] of pieces is unrolled over [[Direction|directions]], [[Captures|capture]] generation of [[Sliding Pieces|sliding pieces]] for [[Quiescence Search|quiescence]] uses the leading efficient [[Vector Attacks#blockerloop|blocker loop]], i.e. for one vertical direction <ref>[https://github.com/AaronBecker/daydreamer/blob/release/move_generation.c daydreamer/move_generation.c at release · AaronBecker/daydreamer · GitHub]</ref>:
<pre>
for (to=from+16; pos->board[to]==EMPTY; to+=16) {}
if (can_capture(piece, pos->board[to])) {
moves = add_move(pos, create_move(from, to, piece,
pos->board[to]), moves);
}
</pre>
Daydreamer 2.0 is a not finished rewrite in [[Rust]] <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68647&start=2 Re: Daydreamer 2.0?] by [[Graham Banks]], [[CCC]], October 14, 2018</ref>, with the significant change to [[Bitboards|bitboards]] and the introduction of [[Move Generation#Staged|staged move generation].

==Search==
The [[Search|search]] is [[Principal Variation Search|PVS]] [[Alpha-Beta|alpha-beta]] with [[Transposition Table|transposition table]], [[Internal Iterative Deepening|IID]], [[Null Move Pruning|null move pruning]] combined with [[Mate Threat Extensions|mate threat extensions]], [[Razoring|razoring]], [[Futility Pruning|futility pruning]] and [[Late Move Reductions|late move reductions]] inside an [[Iterative Deepening|iterative deepening]] framework with [[Aspiration Windows|aspiration windows]] and [[Float|floating point]] [[Depth#FractionalPlies|fractional ply depth]],
the latter credited to [[Ivan Bonkin]] and his [[Bison]] program <ref>[http://www.sdchess.ru/Bison.html Bison by Иван Бонькин (Ivan Bonkin), Russia!] from [http://www.sdchess.ru/ sdchess.ru] - searcher.h</ref>.

==Opening Book==
Daydreamer supports [[PolyGlot]] and [[CTG|ctg]] [[Opening Book|opening books]] <ref>[https://github.com/AaronBecker/daydreamer#changes-from-16-to-17 GitHub - AaronBecker/daydreamer: A chess engine, focused on search, written in C - Changes from 1.6 to 1.7]</ref>, the [https://en.wikipedia.org/wiki/Huffman_coding huffman codes] and ctg move decoding based on [[Stephan Vermeire|Stephan Vermeire's]] ctg code for [[Brutus NL|Brutus]] <ref>[https://github.com/AaronBecker/daydreamer/blob/release/book_ctg.c daydreamer/book_ctg.c at release · AaronBecker/daydreamer · GitHub]</ref>.

==Endgame Tablebases==
Daydreamer is able to probe [[Gaviota Tablebases]] as well as [[Scorpio Bitbases]] <ref>[https://github.com/AaronBecker/daydreamer/blob/release/scorpio_bb.c daydreamer/scorpio_bb.c at release · AaronBecker/daydreamer · GitHub]</ref>.

==Evaluation==
Daydreamer's [[Evaluation|evaluation]] might be [[Lazy Evaluation|lazy]] with respect to [[Bound|bounds]] and margins based on [[Material Hash Table|cached]] [[Material|material]], considering imbalances, and [[Piece-Square Tables|piece-square table]] [[Score|scores]] only. Otherwise, supported by a [[Pawn Hash Table|pawn hash table]], it takes [[Pawn Structure|pawn structure]], [[Mobility|mobility]], [[King Safety|king safety]] and various other terms into account, speculatively aggregating [[Middlegame|middle-]] and [[Endgame|endgame]] scores, which were finally [[Tapered Eval|tapered]] by a range of 24 [[Game Phases|game phases]].

=Selected Games=
[[ACCA 2010]], round 6, [[DayDreamer]] - [[Gaviota]] <ref>[http://compchess.org/ACCAChampionships/ACCA2010Championships/2010ACCCResults.html The 2010 Fifth Annual ACCA Americas' Computer Chess Championships -- Results]</ref>
<pre>
[Event "ACCA 2010"]
[Site "FICS, San Jose, California USA"]
[Date "2010.11.07"]
[Round "6"]
[White "DayDreamer"]
[Black "Gaviota"]
[Result "1-0"]

1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 O-O 8.Bd3 Nbc6
9.Nf3 f5 10.exf6 Rxf6 11.Qh5 h6 12.O-O c4 13.Be2 Qa5 14.Bd2 Bd7 15.Ne5 Be8
16.Qh4 Nxe5 17.dxe5 Nf5 18.Qh3 Rf8 19.a4 Bxa4 20.g4 Nd4 21.Bd1 b5 22.Kh1 Rf7
23.g5 Nf5 24.gxh6 Qc7 25.Bh5 Re7 26.Bg6 Bxc2 27.Rg1 Qxe5 28.Bh7+ Kf8 29.Rae1
Be4+ 30.f3 Ke8 31.fxe4 dxe4 32.hxg7 Kd7 33.g8=Q Rxg8 34.Rxg8 Kc7 35.Ra1 Kb7
36.Bxf5 Qxf5 37.Qh8 a5 38.Rg5 Qf3+ 39.Kg1 e5 40.Qd8 Qf6 41.Qxa5 Qb6+ 42.Qxb6+
Kxb6 43.Be3+ Kc6 44.Ra6+ Kd7 45.Bc5 e3 46.Bxe7 1-0
</pre>

=See also=
* [[Dreamer]]

=Forum Posts=
==2009==
* [http://www.talkchess.com/forum/viewtopic.php?t=29417 Announcing Daydreamer 1.0] by [[Aaron Becker]], [[CCC]], August 16, 2009
* [http://www.talkchess.com/forum/viewtopic.php?t=29519 Daydreamer 1.01 : 2037] by [[Patrick Buchmann]], [[CCC]], August 24, 2009
* [http://www.talkchess.com/forum/viewtopic.php?t=29651 Announcing Daydreamer 1.5] by [[Aaron Becker]], [[CCC]], September 04, 2009
* [http://www.talkchess.com/forum/viewtopic.php?t=30605 Daydreamer 1.51 : 2272] by [[Patrick Buchmann]], [[CCC]], November 14, 2009
* [http://www.talkchess.com/forum/viewtopic.php?t=31200 Announcing Daydreamer 1.6] by [[Aaron Becker]], [[CCC]], December 22, 2009
==2010 ...==
* [http://www.talkchess.com/forum/viewtopic.php?t=31421 Daydreamer 1.61: 2361] by [[Patrick Buchmann]], [[CCC]], January 02, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=31606 Test tournament starts: Gaviota, Daydreamer, Greko, Atak] by [[Harun Taner]], [[CCC]], January 10, 2010 » [[Gaviota]], [[Daydreamer]], [[GreKo]], [[Atak]]
* [http://www.talkchess.com/forum/viewtopic.php?t=33361 Daydreamer 1.7] by [[Aaron Becker]], [[CCC]], March 19, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=33417 Daydreamer 1.7 : 2519] by [[Patrick Buchmann]], [[CCC]], March 22, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=33590 Daydreamer 1.75] by [[Aaron Becker]], [[CCC]], April 02, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=33622 Daydreamer 1.75 : 2569] by [[Patrick Buchmann]], [[CCC]], April 05, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=34094 Compiling Daydreamer in Visual Studio] by [[Gregory Strong]], [[CCC]], May 01, 2010
* [http://www.talkchess.com/forum/viewtopic.php?t=47384 Developments of the last two years] by [[Aaron Becker]], [[CCC]], March 02, 2013
* [http://www.talkchess.com/forum/viewtopic.php?t=50805&start=3 Re: copy/make vs make/unmake] by [[Aaron Becker]], [[CCC]], January 07, 2014 » [[Copy-Make]], [[Make Move]], [[Unmake Move]]
==2015 ...==
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68647 Daydreamer 2.0?] by CMCanavessi, [[CCC]], October 14, 2018
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68647&start=2 Re: Daydreamer 2.0?] by [[Graham Banks]], [[CCC]], October 14, 2018

=External Links=
==Chess Engine==
* [https://github.com/AaronBecker/daydreamer GitHub - AaronBecker/daydreamer]
: [https://github.com/AaronBecker/daydreamer/downloads Downloads · AaronBecker/daydreamer · GitHub]
* [http://kirr.homeunix.org/chess/engines/Jim%20Ablett/DAYDREAMER/ Index of /chess/engines/Jim Ablett/DAYDREAMER] compiled by [[Jim Ablett]], hosted by [[Kirill Kryukov]]
: [http://kirr.homeunix.org/chess/engines/Jim%20Ablett/+++%20LINUX%20ENGINES%20++/32%20BIT/daydreamer/ Index of /chess/engines/Jim Ablett/+++ LINUX ENGINES ++/32 BIT/daydreamer] compiled by [[Jim Ablett]], hosted by [[Kirill Kryukov]]
* [http://ccrl.chessdom.com/ccrl/4040/cgi/engine_details.cgi?print=Details&each_game=1&eng=Daydreamer+1.75+64-bit Daydreamer 1.75 64-bit] in [[CCRL|CCRL 40/40]]
==Misc==
* [https://en.wikipedia.org/wiki/Daydreamer Daydreamer (disambiguation) from Wikipedia]
* [https://en.wikipedia.org/wiki/Daydream Daydream from Wikipedia]
* [https://en.wikipedia.org/wiki/Johnny_Hodges Johnny Hodges] - [https://en.wikipedia.org/wiki/Day_Dream Day Dream] (1940), [https://en.wikipedia.org/wiki/YouTube YouTube] Video
: {{#evu:https://www.youtube.com/watch?v=RbpFq4EP9V8|alignment=left|valignment=top}}

=References=
<references />
'''[[Engines|Up one level]]'''
[[Category:Open Source]]
[[Category:UCI]]
[[Category:Chess960]]
[[Category:Thought]]
[[Category:Music]]

Navigation menu