Як допустима евристика забезпечує оптимальне рішення?


16

Використовуючи A * (або будь-який інший алгоритм пошуку найкращого шляху), ми говоримо, що використовуваний евристик повинен бути допустимим , тобто він ніколи не повинен переоцінювати фактичну довжину шляху рішення (або рухається).

Як допустима евристика забезпечує оптимальне рішення? Я бажаю шукати інтуїтивно зрозуміле пояснення.

Якщо ви хочете, ви можете пояснити, використовуючи евристику 8-головоломок на Манхеттені .


2
@Ashwin Інтуїтивно зрозуміло, оскільки коли алгоритм знаходить шлях довжиною , він вже випробував будь-який інший шлях, який, можливо, може мати довжину не більше . Ось чому ваша евристична функція ніколи не повинна завищувати вартість до мети. Спробуйте самі, зробивши евристичну функцію, яка може завищити. кк
Pål GD

Відповіді:


7

Хоча відповідь Антона абсолютно досконала, дозвольте мені спробувати надати альтернативну відповідь: допустимість означає, що евристика не переоцінює зусилля на досягнення мети, тобто для всіх у державний простір (у 8-головоломці це означає лише будь-яку перестановку плиток та мету, яку ви зараз розглядаєте), де - оптимальна вартість досягнення цілі.год(н)год(н)нгод(н)

Я думаю, що найбільш логічна відповідь, щоб зрозуміти, чому забезпечує оптимальні рішення, якщо допустимо, є бекаузація, вона сортує всі вузли ВІДКРИТИ в порядку зростання і, також тому, що вона не зупиняється при створенні мети, а при її розширенні:Агод(н)f(н)=г(н)+год(н)

  1. Оскільки вузли розширені у порядку зростання ви знаєте, що жоден інший вузол не є більш перспективним, ніж поточний. Пам’ятайте: допустимий, тому що наявність найнижчого означає, що він має можливість досягти мети дешевшим шляхом, який не мають інші вузли в OPEN. І це справедливо, якщо ви не зможете довести протилежне, тобто, розширивши поточний вузол.f(н)год(н)f(н)
  2. Оскільки зупиняється лише тоді, коли він переходить до розширення вузла цілі (як протиставити зупинці при його генерації), ви впевнені (з першої точки вище), що жоден інший вузол не веде через більш дешевий шлях до нього.А

І це, по суті, все, що ви знайдете в оригінальному доказі Nilsson et al.

Сподіваюся, це допомагає,


3
Спасибі. Це допомогло. Ви посилалися на деякі докази Nilsson et al. Хто то? І де я можу знайти доказ?
Ешвін

1
@Ashwin Дивіться книгу " Принципи штучного інтелекту " (близько стор. 80) Нілса Дж. Нілссона (1982).
nbro

12

Якщо евристична функція недопустима, то ми можемо мати оцінку, яка перевищує фактичну вартість шляху від якогось вузла до вузла цілі. Якщо ця більш висока оцінка вартості шляху знаходиться на шляху найменшої вартості (який ми шукаємо), алгоритм не буде його досліджувати, і він може знайти інший (не найменш затратний) шлях до цілі.

Подивіться на цей простий приклад.

введіть тут опис зображення

Нехай і G - це відповідно стартовий і цільовий вузли. Нехай h ( N ) - оцінка довжини шляху від вузла N до G , N у графі. Більше того, нехай c ( N , X i ) є функцією витрат на крок від вузла N до його сусіда X i , N і i = 1 .. m , де mАГгод(N)NГNc(N,Хi)NХiNi=1.мм- кількість сусідів (тобто функція, яка повертає вартість краю між вузлом N та одним із його сусідів).NN

Нехай буде евристика

  • год(Б)=3

  • год(С)=4

Ця евристична функція неприпустима, оскільки h ( C ) = 4 > c ( C , G ) = 2Н

год(С)=4>c(С,Г)=2

ААБГАБГ4АСГ3


1
Добре. Але як допустима евристика забезпечує оптимальне рішення?
Ешвін

Може статися так, що - h (b) <h (c), причому допустимі і h (b), і h (c), але фактичні_кошти (b)> фактичні_кошти (с), правильно? Таким чином, b буде обраний як наступний шлях, де, як насправді, c дав би найкращий шлях.
Ешвін

Для першого коментаря: допустима евристика забезпечує пошук найкоротшого шляху. Саме рішення є оптимальним, якщо евристика є послідовною .
Антон

Для другого коментаря: якщо евристичний допустимий A-> B, можна вибрати наступний вузол для розширення, але після цього A * вибере A-> C, а не A-> B-> G. І врешті-решт це закінчиться A-> C-> G.
Антон

1
Тому що A * працює так. Він розширює вузол з найменшою сумою відстані до цього вузла + евристична оцінка від цього вузла. d (A, G) + h (G) = 4 + 0 = 4 і d (A, C) + h (C) = 1 + щось <= 2 (тому що це допустимо). Таким чином, C має меншу суму і A * вибере її. Таким же чином він розширить G і знайде найменший шлях.
Антон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.