This is a resource of the email@example.com mailing list.
Click to subscribe to wordgame-programmers
Iterative deepening means repeatedly calling a fixed depth search routine with increasing depth until a time limit is exceeded or maximum search depth has been reached. The advantage of doing this is that you do not have to choose a search depth in advance; you can always use the result of the last completed search. Also because many position evaluations and best moves are stored in the transposition table, the deeper search trees can have a much better move ordering than when starting immediately searching at a deep level. Also the values returned from each search can be used to adjust the aspiration search window of the next search, if this technique is used.
What is a letterbank? - take the unique letters in a word, and find another word which is made from only those letters, with each letter appearing at least once. Letters may be used multiple times. For example, ACCOUNT can be letterbanked to COCOANUT.
The code pre-builds a table of all links from a word (whether transformed by letterswapping or letterbanking) and replaces word strings with indexes representing the words. The shortest-path solution works in graph space, and does not handle words at the letter level at all.