c4fsharp/Dojo-Canopy-2048 — pull request #2 by lefthandedgoat (2014-09-08 02:16:55+00:00)
Title: canopy performance improvements

@sergey-tihon Found that canopy was not performing as well as it could for the 2048 Dojo. Because you check to see if the game has ended on each loop, and 99% of the time its expected to not have ended, exhaustively checking all types of selectors is a waste of time. He and I talked in this ticket: https://github.com/lefthandedgoat/canopy/issues/163#issuecomment-54757613 and decided to add hints to canopy so that you could tell canopy to opt out of the whole list of finders and only use a specific one. This helped out significantly.

I originally forked Sergey's copy of the dojo and it was taking about 10 seconds to make 15 decisions. With optimizations in place it could do 60 decisions (and plays) in 10 seconds. The increases are very obvious for the faster algorithms. The more intelligent algorithms spend more time analyzing the board, so the improvements are not as obvious. I had originally tested against @mathias-brandewinder canopy-2048 project and observed this. Hope this PR makes the dojo more fun!

Great dojo by the way!