В чем разница между поиском best-first и поиском*?
2 ответов
поиск по первому наилучшему алгоритм посещает следующее состояние на основе функции эвристики f (n) = h с наименьшим эвристическим значением (часто называемым жадным). Он не учитывает стоимость пути к этому конкретному состоянию. Все, что его волнует, это то, какое следующее состояние из текущего состояния имеет наименьшую эвристику.
a* поиска алгоритм посещает следующее состояние на основе heristics f (n) = h + g здесь h компонент такой же эвристика применяется как в Best-first search, но g component-это путь от начального состояния к определенному состоянию. Поэтому он не выбирает следующее состояние только с наименьшим значением эвристики, но дает наименьшее значение при рассмотрении эвристики и стоимости перехода в это состояние.
в вашем примере выше, когда вы начинаете с Arad, вы можете пойти либо прямо в Сибиу (253 км) или на Zerind(374km) и Тимишоара(329km). В этом случае оба алгоритмы выбирают Сибиу, так как он имеет меньшее значение f (n) = 253.
можно развернуть либо государства обратно в Арад(366km) или Орадя(380 км) или Faragas(178км) или Rimnicu Vilcea(193 км). Для лучшие первый поиск Faragas будет иметь самый низкий f (n) = 178, но A* будет у Rimnicu Vilcea ф(Н) = 220 + 193 = 413, где 220-это стоимость добраться до Rimnicu из Арада (140+80) и 193 от Rimnicu в Бухарест, но для Фарагаса это будет больше как f (n) = 239 + 178 = 417.
Так что теперь ясно видно лучшие- "первый"!--2--> является жадным алгоритмом, потому что он выберет состояние с более низкой эвристикой, но более высокой общей стоимостью, поскольку он не учитывает стоимость перехода в это состояние из начального состояния
A * обеспечивает лучшую производительность, используя эвристику для поиска. A * сочетает в себе преимущества Best-first Search и Uniform Cost Search: обеспечивает поиск оптимизированного пути при одновременном повышении эффективности алгоритма с помощью эвристики. A * функция будет f(n) = g(n) + h(n) с H(n) - расчетное расстояние между любой случайной вершиной n и целевой вершиной, g (n) - фактическое расстояние между начальной точкой и любой вершиной n. Если g (n)=0, a* оказывается лучшим первым поиском. Если h (n)=0, то a* оказывается поиском равномерной стоимости.