У меня есть некоторые проблемы с пониманием некоторых алгоритмов поиска, используемых в ИИ (искусственном интеллекте).
- В чем точная разница между A* и IDA* (итеративное углубление звезды)? Это просто эвристическая функция? Если да, то я до сих пор не могу представить, как работает IDA*.. :/
- Является ли IDA* тем же, что и BFS (поиск в ширину) (когда глубина расширения составляет всего 1 уровень, я имею в виду - перемещение всего на один уровень "вниз", есть ли разница между IDA* и БФС)
- IDDFS (итеративный поиск в глубину) то же, что и IDA*, за исключением эвристической функции (которая эквивалентна 0 в IDDFS)
- Что такое IDDFS — переход вниз всего на один уровень, а затем использование DFS (поиск в глубину)? Если это так, то таким образом множество состояний вычисляется (расширяется) гораздо больше, чем одно. Или вот так - используйте DFS с определенной глубиной, а затем сохраняйте "листья" (последние расширенные узлы) , и повторите их, чтобы снова использовать DFS (что на самом деле является BFS?)
- Откуда берется "итеративный"? Как я вижу, IDDFS вовсе не итеративна, она по-прежнему рекурсивна, просто смешивает BFS и DFS? Или я ошибаюсь? Или эта «итеративность» не имеет ничего общего с противоположностью рекурсии?
- Что такое "итеративный" для IDA*?
Не могли бы вы привести несколько примеров? Целый день читал об этих алгоритмах, знаю их достоинства и недостатки, сложность и т.д., но так и не смог найти хороших примеров (кроме A*; я знаю BFS и DFS, остальные меня смущают). Я нашел несколько псевдокодов для IDA* в разных местах, но все они были совершенно разными.
Примеры были бы лучшим способом понять алгоритмы... но я не могу найти. Даже в TopCoder я ничего не нашел про IDA*.
Я прочитал статьи в вики и ищу что-то новое (:
Большое спасибо!
EDIT: здесь несколько хороших статей, но они слишком теоретические . Никаких примеров, никаких конкретных вещей. Но все равно очень полезно. Я бы порекомендовал их (=