timpalpant / LittleBoxes

A crossword solver
GNU General Public License v3.0
1 stars 0 forks source link

Implement simulated annealing solver #28

Open timpalpant opened 8 years ago

timpalpant commented 8 years ago

It should take a set of "moves" (puzzle modifications), a score function (#27), and a temperature schedule. The solver will randomly select moves, and accept them according to the Metropolis-Hastings criterion.

The trick will be coming up with a set of moves that allows effective search of the puzzle landscape (all possible letters in all possible boxes). Some potential ideas for moves:

  1. Fill a word with a compatible entry from the ClueDB / Dictionary.
  2. Erase a word or some letters.
  3. Fill some letters based on the N-gram model (#10).

Some initial sketches in the mc_solver branch. If this turns out to be ineffective, an alternative is a refined branch search as described in the Dr. Fill paper.