Пожалуйста, простите меня, если я не использую правильные условия или не упустил существующее решение. Я не знаком с поисковыми алгоритмами и теориями. Я просто хотел бы решить проблему.алгоритм оптимального поиска без допустимой эвристики
Я ранее использовал то, что мне сказали как алгоритм A *, чтобы решить другую проблему. Но, прочитав об этом, я понял, что то, что я узнал, не довольно, что википедия говорит мне.
Что я узнал:
- Начала в вашем происхождении узла
- Открыть новое решение для каждого пути вы можете взять
- Рекурсивных создать новое субрешение для каждого пути вы можете взять оттуда
- Когда вы приедете в том же месте, с несколькими решениями, падение тех, кто занял больше времени, чем самый быстрый
Теперь, если я понимаю википедии правильно, это то, что я должен был сделать:
- Начало в вашем происхождении узла
- Открыть новое решение для каждого пути вы можете взять
- Сортировать решения по «стоимости от пути, пройденного»+„оценивается стоимость целевого“
- Возьмите дешевое решение и создать субрешениями для каждого возможного пути
- порядка эти решения в других затем ополоснуть повторить
Я вижу, как это поможет не вычислять столько же решений, но моя проблема в том, что я не вижу возможности создавать «оптимистичную» оценку.
Я не ищу путь на географической карте. Я пытаюсь найти наилучшую последовательность действий. Существует минимальная последовательность - скажем - ABCDEFGH. Вы не можете делать F до E, но повторение предыдущих действий в частичном порядке может сделать более поздние действия более эффективными.
Нужен ли мне другой алгоритм поиска? Я делаю то, что я изначально узнал, и просто живу с тем, что делать больше работы - это цена за отсутствие хорошей эвристической функции?
Я считаю, что мой учитель признал эту проблему. И то, что я узнал, было просто A * с эвристической функцией f (n) = 0.
A * без допустимой эвристики - это в основном BFS, который в худшем случае будет исследовать все возможные состояния. Найдет решение, но худший случай - еще грубая сила. – AndyG