How Solver Works
Although Solver knows the solution to each game it is solving, it uses that information for just two things:
1. | Knowing when it has finished solving. |
2. | Determining the tile colours resulting from each guess. |
Solver has five bots, each with a different method for ranking potential guesses.
• |
By score: Uses a scoring mechanism based on the number of green and yellow tiles a word gets across the remaining words in play. A high score is preferred. |
• |
By words remaining: Determines the average number of words remaining when each word is used to filter the remaining words in play. A low average is preferred. Worst case words remaining is sometimes taken into account. |
• |
By groups: Determines the number of groups (tile patterns) arising when a word is used to arrange the remaining words in play into groups. A high number of groups is preferred. Largest group size is sometimes taken into account. |
• |
By entropy: Determines the number of bits of information (entropy) arising when a word is used to arrange the remaining words in play into groups. A higher number of bits of information is preferred. For certain scenarios, expected steps is calculated and this is used in preference to bits of information when ranking guesses. The approach taken by this bot, follows the one outlined in this video. |
• |
By ambiguity: Determines the number of single member groups arising when a word is used to arrange the remaining words in play into groups. A higher number of single member groups is preferred. The higher the number of certain words, the lower the uncertainty. |
The process for solving is the same for all bots and uses two lists of words:
• |
Pick results from: The list of words from which guesses can be selected. |
• |
Find results in: The list of words that could potentially be the answer and is filtered by the guesses made. |
Each of these lists can be controlled and set to one of the standard dictionaries.
The process below is repeated for each guess starting with the starter word as guess 1:
• | Filter the remaining potential answers using the guess (in fact, the guess’s tiles) and strict mode in order to eliminate all words that cannot be the answer. |
• | Filter the remaining words using the guess and the mode requested in order to eliminate all words that cannot be a guess. |
• | Rank all the remaining words against the remaining potential answers using the bot’s method. |
• | Pick the highest ranking word as the next guess (favouring potential answers over words if they rank equally). If there is a choice to be made between equally ranked words, each bot has a fallback additional ranking mechanism to ensure consistent choices. This includes the use of the number of times the words appear in Wikipedia in order to ensure common words are preferred to obscure ones. |
• | If the selected guess is the solution, we’re done. Otherwise repeat the steps above using the selected next guess. |