Difference between revisions of "Winter"

From Chessprogramming wiki
Jump to: navigation, search
Line 21: Line 21:
 
** The classifier is trained via [[Temporal Difference Learning|temporal difference learning]]  to predict whether a [[Moves|move]] will return [[Beta|beta]]
 
** The classifier is trained via [[Temporal Difference Learning|temporal difference learning]]  to predict whether a [[Moves|move]] will return [[Beta|beta]]
 
** Classifier considers [[Hash Move|TT move]], [[Killer Move|killers]], [[Moves#Type|move type]], [[Origin Square|from square]], [[Target Square|target square]], [[Captures|capture target]], [[Static Exchange Evaluation|SEE]], target square of last move, [[Check|check]] and changes between forcing and unforcing moves (a capture is more likely after another capture)
 
** Classifier considers [[Hash Move|TT move]], [[Killer Move|killers]], [[Moves#Type|move type]], [[Origin Square|from square]], [[Target Square|target square]], [[Captures|capture target]], [[Static Exchange Evaluation|SEE]], target square of last move, [[Check|check]] and changes between forcing and unforcing moves (a capture is more likely after another capture)
 +
** [[Countermove Heuristic]] (Winter 0.3)
 
* [[Selectivity]]
 
* [[Selectivity]]
 
** [[Null Move Reductions]]
 
** [[Null Move Reductions]]
Line 30: Line 31:
 
==[[Evaluation]]==
 
==[[Evaluation]]==
 
[[FILE:Normal Distribution PDF.svg|border|right|320px|thumb|A set of Gaussians]]
 
[[FILE:Normal Distribution PDF.svg|border|right|320px|thumb|A set of Gaussians]]
* Non standard approach relies on a [https://en.wikipedia.org/wiki/Mixture_model mixture model] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=66266&start=7 Re: Winter Released] by [[Jonathan Rosenthal]], [[CCC]], January 09, 2018</ref>
+
* Non standard approach relied on a [https://en.wikipedia.org/wiki/Mixture_model mixture model] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=66266&start=7 Re: Winter Released] by [[Jonathan Rosenthal]], [[CCC]], January 09, 2018</ref>, since Winter '''0.3''' on [https://en.wikipedia.org/wiki/Fuzzy_clustering Fuzzy C-Means]
 
** Assumes [[Chess Position|positions]] encountered in search come from some set of k [https://en.wikipedia.org/wiki/Gaussian_function Gaussians] <ref>[https://en.wikipedia.org/wiki/K-means_clustering k-means clustering from Wikipedia]</ref> <ref>[http://stanford.edu/~cpiech/cs221/handouts/kmeans.html K Means] by [https://web.stanford.edu/~cpiech/bio/index.html Chris Piech]</ref>   
 
** Assumes [[Chess Position|positions]] encountered in search come from some set of k [https://en.wikipedia.org/wiki/Gaussian_function Gaussians] <ref>[https://en.wikipedia.org/wiki/K-means_clustering k-means clustering from Wikipedia]</ref> <ref>[http://stanford.edu/~cpiech/cs221/handouts/kmeans.html K Means] by [https://web.stanford.edu/~cpiech/bio/index.html Chris Piech]</ref>   
 
** Mixture model is trained via [https://en.wikipedia.org/wiki/Expectation%E2%80%93maximization_algorithm EM algorithm] <ref>[http://www.ics.uci.edu/~smyth/courses/cs274/notes/EMnotes.pdf The EM Algorithm for Gaussian Mixtures - Probabilistic Learning: Theory and Algorithms, CS 274A] (pdf) [https://en.wikipedia.org/wiki/University_of_California,_Irvine University of California, Irvine]</ref> <ref>[http://people.csail.mit.edu/dsontag/courses/ml12/slides/lecture21.pdf Mixture Models & EM algorithm Lecture 21] (pdf) by [https://people.csail.mit.edu/dsontag/ David Sontag], [https://en.wikipedia.org/wiki/New_York_University New York University]</ref> either on [[Databases|database games]] or positions sampled from search  
 
** Mixture model is trained via [https://en.wikipedia.org/wiki/Expectation%E2%80%93maximization_algorithm EM algorithm] <ref>[http://www.ics.uci.edu/~smyth/courses/cs274/notes/EMnotes.pdf The EM Algorithm for Gaussian Mixtures - Probabilistic Learning: Theory and Algorithms, CS 274A] (pdf) [https://en.wikipedia.org/wiki/University_of_California,_Irvine University of California, Irvine]</ref> <ref>[http://people.csail.mit.edu/dsontag/courses/ml12/slides/lecture21.pdf Mixture Models & EM algorithm Lecture 21] (pdf) by [https://people.csail.mit.edu/dsontag/ David Sontag], [https://en.wikipedia.org/wiki/New_York_University New York University]</ref> either on [[Databases|database games]] or positions sampled from search  

Revision as of 01:12, 17 December 2018

Home * Engines * Winter

Winter,
an UCI compliant open source chess engine by Jonathan Rosenthal, written in C++, released on January 08, 2018 under the terms of GPL Version 3. Winter is inspired by machine learning techniques, as applied in move ordering and in particular in evaluation, and heavily relies on C++ templates but not on any library aside from STL as it comes with its own implementations for statistics [2] and linear algebra [3]. Winter started its life in 2016 as a group project at ETH Zurich in a course on parallel computing along with Jonas Kuratli and Jonathan Maurer - the current release with Jonathan Rosenthal as sole author has removed the parallel portion of the code [4]. It started to play on-line at HGM's Online Engine Blitz Tourneys in April 2017 [5].

Selected Features

[6]

Board Representation

BMI2 - PEXT Bitboards

Search

Evaluation

A set of Gaussians

Misc

Forum Posts

Re: Winter Released by Jonathan Rosenthal, CCC, January 09, 2018
Windows version released by Jonathan Rosenthal, CCC, January 23, 2018

External Links

Chess Engine

Misc

feat. Tommy Shannon on bass and Uncle John Turner on drums

References

Up one Level