2015-03-08 4 views
1

поднятия этой ссылки: http://www.policyalmanac.org/games/aStarTutorial.htmструктуры данных для алгоритма *

Какой структура данных будет лучше для отслеживания эвристики, движение стоимости, а сумма два для данного Bitmap? Два основных вопроса, о которых я думал, были SortedSet и SortedList. Другие источники говорят, что используют очередь приоритетов, но, насколько я знаю, у C# ее нет.

Так вещи, чтобы следить за будет:

  • х и у координаты пикселя.
  • Движение Стоимость (без диагоналей)
  • В Hueristics (используя Манхэттен расстояние)
  • Сумма два
  • Родитель Узла

Я планирую создать объект узла что будет иметь следующий:

  • Tuple (xcoordinate, ycoordinate)
  • родитель node

Какую структуру данных я должен использовать и как мне организовать мой узел, чтобы он наилучшим образом соответствовал моим потребностям?

+0

Я бы выполнил свою собственную кучу на C# и использовал ее в A *, поскольку она лучше всего подходит здесь. – Ra1nWarden

+1

Вы должны прочитать следующие статьи: http://blogs.msdn.com/b/ericlippert/archive/tags/astar/ –

+0

Я прочитаю, спасибо! – xglide

ответ

0

Используйте очередь приоритетов для хранения разработанных узлов, которые сравнивают (d + h) каждого узла, чтобы сортировать их в очереди приоритетов. «d» - текущая глубина узла, а «h» - расчетное эвристическое значение узла или предполагаемые будущие этапы.

Смежные вопросы