Удалить неверные координаты - алгоритм кратчайшего пути - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть вопрос. Если у меня есть два столбца X, Y. Они содержат координаты, такие как x = 3, y = 8.

Иногда встречается несколько координат с одинаковыми значениями, например

X = 4, Y = 7
X = 5, Y = 8 <- Remove this 
X = 6, Y = 9 <- Remove this 
X = 4, Y = 7 <- Dead end. Remove this
X = 3, Y = 2
X = 2, Y = 2
X = 1, Y = 2

Как удалить плохие координаты, которые вызывают крайний срок заканчивается? Список X и Y - это C int-массивы.

Я создал алгоритм A *, и теперь мне нужно убедиться, что путь оптимален.

Прежде всего. Сначала я должен знать, какие координаты мне нужно удалить. Есть ли способ для этого тоже?

Одна идея состоит в том, чтобы удалить все между двумя одинаковыми координатами. Это умная стратегия?

Редактировать:

Некоторые из этих координат бесполезны. Некоторые из них дублируются.

x = 8, y = 13 <- Starting
x = 8, y = 12
x = 8, y = 11
x = 8, y = 10
x = 8, y = 11
x = 7, y = 11
x = 6, y = 11
x = 6, y = 10
x = 5, y = 10
x = 5, y = 11
x = 5, y = 12
x = 6, y = 12
x = 7, y = 12
x = 7, y = 11
x = 6, y = 11
x = 6, y = 10
x = 5, y = 10
x = 5, y = 11
x = 5, y = 12
x = 5, y = 13
x = 4, y = 13
x = 3, y = 13
x = 3, y = 12
x = 3, y = 11
x = 3, y = 10
x = 2, y = 10
x = 1, y = 10
x = 1, y = 9
x = 1, y = 8
x = 1, y = 7
x = 2, y = 7
x = 2, y = 6
x = 2, y = 5
x = 2, y = 4
x = 3, y = 4
x = 4, y = 4
x = 5, y = 4
x = 5, y = 5
x = 4, y = 5
x = 4, y = 4
x = 5, y = 4
x = 5, y = 5
x = 5, y = 6
x = 4, y = 6
x = 4, y = 5
x = 4, y = 4
x = 3, y = 4
x = 3, y = 3
x = 3, y = 2
x = 4, y = 2
x = 5, y = 2
x = 6, y = 2
x = 6, y = 1 <- Goal

Идея, которую я получил сейчас, состоит в том, что если я удалю ОДНУ координату, а затем l oop через остальные координаты. Тогда я могу определить, завершен ли путь. Но это займет много времени.

1 Ответ

0 голосов
/ 24 февраля 2020

Я решил эту проблему.

Взгляните на библиотеку CControl. https://github.com/DanielMartensson/CControl

Рабочий пример здесь https://github.com/DanielMartensson/CControl/blob/master/src/CControl/Documents/Examples/Algorithms/A-Star/Astar.txt

...