Я новичок в R, и я играю с играфом и маршрутами. У меня есть матрица, которую можно рассматривать как карту (координаты x и y). 0 - проходное пространство, а 1 - препятствия. Примерной матрицей будет:Вычислить матрицу смежности в R из матрицы nxm (представляющую карту)
0 0 0 0 0 0 0
0 0 0 1 1 0 0
0 0 0 1 1 0 0
0 0 1 1 1 0 0
0 0 1 1 1 0 0
0 0 0 0 0 0 0
Цель состоит в том, чтобы рассчитать кратчайший путь от верхней левой точки до нижней правой точки. Движимые способы - это левое/правое/верхнее/нижнее и диагональное, но препятствие (обозначенное 1 значением матрицы) не может быть передано.
Я нашел способы использовать Dijkstra на матрице смежности в R из похожих вопросов, но я не нашел способ использовать его в этой примерной матрице (представляющей карту/пол). Следовательно, I хотел узнать, есть ли простой способ (например, функция) создать матрицу смежности с этого входа?
Пример вдохновлен Дейкстра Википедии Страница https://en.wikipedia.org/wiki/Dijkstras_algorithm#Algorithm
Особенно от GIF, где препятствие блокирует прямой путь. (Я бы опубликовал GIF, но у меня недостаточно репутации)
Спасибо, сэр, это именно то, что я искал. Не могли бы вы рассказать мне, как вы нашли эту функцию. Я искал матрицу смежности в R и т. Д., Но не смог получить функцию 'as_adjacency_matrix'. – Urknecht
Привет, Уркнехт, да, это немного сложно со всеми новыми именами в igraph, многие функции теперь имеют несколько способов их вызова. Документация на [igraph.org] (http://igraph.org/r/) довольно хороша. Если вы загрузите пакет igraph и запустите '?" Igraph-package ", это тоже хорошая отправная точка. Индекс пакета имеет полный список. – dougmet