This is my solution for the Practical 1 Part 1 of the AI lecture 2017 at TUM. The program creates a word ladder from a starting word to a goal word.
You start from a starting word and at each step you are only allowed to either add or remove a letter from the word and after that rearange all the letters in the resulting word. This new word must also be a valid English word. The objective is to take as few steps as possible to reach the goal word.
To use the program just run ladder.py startword endword
. The result will be written to the console and to a file output.txt
. If no solution exists the output file will be empty. For example if your run ladder.py lead gold
the result will be:
lead
lad
load
old
gold
On the first run the program will precompute the neighboring words and write this information to a file data.gz
. To precompute the data beforehand just call ladder.py precompute
.
All allowed words are read form a file wordList.txt
. An example file with about 100.000 English words is provided, but you can swap the file to use more words or a differente language.