Я реализую алгоритм Best-First Search в C#. Это консольное приложение.Функция оценки Best-First Search
Структура данных, которую я использую, является деревом. Функция оценки, которую я видел в этом алгоритме, представляла собой прямолинейное расстояние между двумя узлами (например, городами). Расстояние - это вектор (длина) на сетке в графическом приложении. Мое приложение находится в консоли, поэтому я не могу вычислить векторы между узлами.
Как вычислить функцию оценки в моем способе реализации этого алгоритма?
EDIT (на основе @ идеи Эндрю)
Я нарисовал дерево на листе бумаги, и я присвоены координаты узлов. Начальная точка A (корень). Конечная точка L (пользователь выбирает цель в программе). Расстояние вычисляется по формуле евклидова для двух размеров:
d(p,q) = sqrt(pow((p1 - q1), 2) + pow((p2 - q2), 2))
Посмотрите на картинке: Best-First Search for Tree
это хорошая идея?
Я еще не пытался вычислить эту функцию eval, потому что у меня нет идеи для этого. Есть идеи? – raz
Вам не нужен интерфейс для вычисления расстояния. Сначала найдите математику (или готовый мир кода/библиотеки) (это называется усилием). Если у вас возникли трудности с кодом, у вас есть все основания просить о помощи здесь. Я могу найти математику через 3 секунды, вы? – Sinatr
Но мое представление дерева представляет собой матрицу nxn (матрица смежности). Я создаю дерево с помощью словаря, а затем применяю ключи и значения к матрице. Как я могу вычислить эту функцию? – raz