Перед использованием необходимо обновить автолоадер
composer dump-autoload
Затем запустить сам скрипт
./cook.php
Слова, для которых будет подбираться цепочка задаются в файле cook.php
Требуется на PHP написать программу, которая делает из "мухи" - "слона". Например:
муха -> мука -> рука -> ... -> слон
Т.е., меняя за 1 шаг по 1 букве, нужно найти правильную последовательность словарных слов и распечатать все шаги.
В качестве словаря используется SQLite база данных, которая содержит 92675 слов русского языка. Для формирования использовался словарь А. А. Зализняка, из которого были удалены слова с дефисами. Буквы е
и ё
различаются. Файл словаря был скачан отсюда
В реализации я решил использовать графы, т.к. по моему мнению они лучше всего подходят для решения подобных задач. В качестве поиска кратчайшей цепочки слов был реализован алгоритм волновой трассировки (волновой алгоритм, алгоритм Ли).
В процессе реализации активно использовались возможности ООП с расчётом на то, что каждый модуль может быть с лёгкостью заменён на другой (алгоритм поиска цепочки, метод реализации графов, логгер, работа с БД) либо безболезненно доработан.
Данный алгоритм превратил муху в слона, используя следующую цепочку из 9 слов: муха -> мура -> кура -> кора -> корн -> коан -> клан -> клон -> слон