Например, у меня есть следующая проблема:
Могут применяться только следующие операторы:
- Поместите самый верхний блок из структуры вниз
- Поместите блок, который не находится в структуре, в самое верхнее положение структуры
У меня есть эвристическая функция:
- h (n) = +1 для каждого поддерживающего блока, если блок размещен правильно, и -1 для каждого поддерживающего блока, если блок размещен неправильно.
В этом примере "«Блок размещен правильно, поэтому я получаю +3 для каждого поддерживающего блока ниже A.« D »размещен неправильно, поэтому я получаю -2.C размещен правильно, я получаю еще +1.Поэтому моя эвристическая функция теперь возвращает значение 3 + 1 - 2 = + 2.
Теперь, основываясь на алгоритме здесь , алгоритм будет только завершать работу, когда достигнет своего значения.состояние цели и , что оно выберет следующее состояние в качестве текущего, только если оно даст лучшее эвристическое значение .Тем не менее, больше невозможно продолжить в случае, который я сделал выше.Откладывание A от структуры даст эвристическое значение -1, которое хуже предыдущего значения (+2).
Почему я изменил пример?Я хочу показать, когда мы сталкиваемся с проблемой локальных максимумов в алгоритме Simple Hill Climbing, и это локальная проблема максимумов, верно? Другой вопрос, поскольку алгоритм говорит, что он прекратит [только], когдаоно достигает своего целевого состояния , оно никогда не выйдет. Или это правильно с моей стороны предполагать, что он также прекратит работу, когда другие соседние государства больше не будут давать лучший результат?