title: How hard is it to implement a chess engine?
body: <p>I'm wondering how hard it would be to implement a <strong>chess engine</strong>. Are there already open-source implementations? </p>
  
  <p>It seems that you'd need a scoring function for a given board constellation, and a very fast way of exploring several likely future board constellations. Exploring all possible future moves is of course impossible, so one could greedily follow the most promising moves, or use approximate techniques like <a href="http://en.wikipedia.org/wiki/Simulated_annealing" rel="noreferrer">simulated annealing</a> to follow likely moves probabilistically.</p>
  
  <p>Do you think that is within the scope of a <a href="http://en.wikipedia.org/wiki/Machine_learning" rel="noreferrer">machine learning</a> graduate student project -- assuming there was an open-source implementation that the students could use, that does the basic things like returning the next possible moves for a given figure? Probably too hard? </p>
  
  <p>It would be a fun project to have different teams work on chess engines and then let them play against each other ... </p>