Sinsinmin, здравствуй.
Я использовал алгоритм А* для нахождения оптимального решения для игры в обобщенные пятнашки. Не думаю, что тебе это чем то поможет, но вот ссылка: github.com/RazorNd/BarleyBreak
Кстати, твои картинки не отражают сути этих алгоритмов. Используя эти алгоритмы мы находим самый короткий путь или один из самых коротких путей, если есть два пути с одинаковым расстоянием. Так что найденный путь будет или одинаковым или равным по расстоянию.