Евристична функция за алгоритъм на A* Dijkstra с библиотека с усилващи графики

Нямам много подробни познания за алгоритъма на A * Dijkstra. Знам, че това също е алгоритъм за най-кратък път, който също взема предвид h(x) евристика заедно с g(x). Използвам Boost Graph Library за моя проект и в библиотеката има алгоритъм A*.

Може ли някой да ми покаже с прост пример как да дефинирам евристика за обикновен неориентиран график? Би ми било от голяма полза да продължа напред.


person user1088211    schedule 19.12.2011    source източник


Отговори (1)


Без да има внедрен пример, евристика за A* е нещо като "Знам, че пътят има поне тази дължина (а не по-къса)". Пример може да бъде карта, при която пътното разстояние между два възела не може да бъде по-малко от въздушното разстояние (или евклидовото разстояние или каквато и да е координатна система, която използвате). Така че пример за евристична функция би била функция, връщаща въздушното разстояние между два възела.

person wal-o-mat    schedule 09.02.2012