Эй, я думаю об использовании A * для поиска и оптимального решения проблемы Word Ladder, но я немного затруднен думать о подходящих g (x) и h (x) , Для этой конкретной задачи может ли g (x) быть число переходов из начальной вершины, а h (x) - количество разных символов из целевого слова? Я советую оказать большую помощь.Возможная эвристическая функция для Word Ladder
ответ
Я никогда не был поклонником обозначений A * f(x) = g(x) + h(x)
, потому что это упрощает алгоритм. A * основан на двух эвристиках; часто обозначается g(x) + h(x)
.
У вас уже есть большинство из них; для Djikstra's/g(x)
, вы хотите вернуть количество перелетов. Для Greedy/h(x)
вы хотите проверить, сколько символов ошибочно; вы попадаете в цель, когда h(x) = 0
.
Объединив эти два значения, у вас есть эвристика A *, которая, по сути, говорит о расширении лучших узлов вдоль кратчайшего пути. В других проектах вы можете добавить эвристику к A *, чтобы получить поведение, подобное избеганию врагов (поэтому я предпочитаю не думать A* = g+h
).
EDIT: Не забудьте проверить каждого кандидата, используя файл словаря; словарная лестница требует, чтобы промежуточные слова были реальными словами.
- 1. c программа для word ladder
- 2. Word ladder java
- 3. word ladder in python
- 4. Что такое эвристическая функция
- 5. Эвристическая функция чужеродных плит
- 6. Допустимая эвристическая функция
- 7. Эвристическая функция против стоимости
- 8. Эвристическая функция A * поиск сортировки
- 9. Лучшая эвристическая функция для игры (AI Minimax)
- 10. Эвристическая функция для применения A * sudoku
- 11. Эвристическая функция для решения взвешенных 15 головоломок
- 12. Эвристическая функция в лабиринте в C
- 13. Word Ladder, Javascript: Какой алгоритм и структуру данных я использую?
- 14. Ошибка программы Java Word Ladder Ошибка переполнения стека
- 15. Эвристическая функция X-Y для решения N-головоломки
- 16. Эвристическая функция для алгоритма A * Dijkstra с библиотекой ускорительных графов
- 17. Возможная вложенная асинхронная функция
- 18. PLC Ladder Logic
- 19. Возможная функция класса в C#
- 20. Как удалить последний «->» в слове ladder
- 21. Bowling Lab: if-else Ladder
- 22. Возможная функция «Путешествующий продавец» в Matlab?
- 23. Возможная или неправильная функция? Overflow: Hidden Weirdness
- 24. Perl print функция word wrap
- 25. PHP Nested Starcraft 2 Ladder Api
- 26. Функция EV для видеоигры 2048
- 27. эвристическая (нечеткая) выдержка даты из строки?
- 28. Java - простой Если else if ladder
- 29. Возможная структура для модуля Node
- 30. Возможная оптимизация для компиляторов или определенного поведения
g (x) не является эвристикой, это реальная стоимость найденного пути, то есть для любого узла n, g (n) - стоимость пути (уже изученного) от начального узла до n. , а h (n) - расчетная или эвристическая стоимость для достижения целевого узла из n. – FrankS101
В некотором смысле вы правы. Причина, по которой я называю это эвристикой, заключается в том, что нет гарантии, что расстояние * есть реальная стоимость пути. Вместо этого мы используем расстояние как фактор в решении нашей проблемы (путем сравнения решений). В зависимости от заданного набора, возможно, что расстояние не будет вообще рассматриваться. – Aaron3468