Программирование на языке ПРОЛОГ для искуственного интеллекта




Поиск c предпочтением применительно к головоломке "игра в восемь" - часть 7


        упоряд = 6.
Эвристическая оценка Н вычисляется как сумма

        Н = сумрасст + 3 * упоряд

Эта эвристическая функция хорошо работает в том смысле, что она весьма эффективно направляет поиск к цели. Например, при решении головоломок   рис. 12.7(а) и (b) первое решение обнаруживается без единого отклонения от кратчайшего решающего пути. Другими словами, кратчайшие решения обнаруживаются сразу, без возвратов. Даже трудная головоломка  рис. 12.7 (с) решается почти без возвратов. Но данная эвристическая функция страдает тем недостатком, что она не является допустимой: нет гарантии, что более короткие пути обнаруживаются раньше более длинных. Дело в том, что для функции  h  условие  h <= h*   выполнено не для всех вершин пространства состояний. Например, для начальной позиции   рис. 12.7 (а)

        h = 4 + 3 * 6 = 22,    h* = 4

С другой стороны, оценка "суммарное расстояние" допустима: для всех позиций

        сумрасст <= h*

Доказать это неравенство можно при помощи следующего рассуждения: если мы ослабим условия задачи и разрешим фишкам взбираться друг на друга, то каждая фишка сможет добраться до своего целевого положения по траектории, длина которой в точности равна манхеттеновскому расстоянию между ее начальным и целевым положениями. Таким образом, длина оптимального решения упрощенной задачи будет в точности равна сумрасст. Однако в исходном варианте задачи фишки взаимодействуют друг с другом и мешают друг другу, так что им уже трудно идти по своим кратчайшим траекториям. В результате длина оптимального решения окажется больше либо равной сумрасст.




Содержание  Назад  Вперед