Входными данными является график. Граф - это множество вершин (или узлов), соединенных ребрами. График обычно используется для обозначения сети, такой как дороги, где ребра - это отрезок дороги, а узлы - это пересечения. График взвешивается, если у каждого ребра есть вес, описывающий расстояние или время в пути.
Посмотрите на этот тривиальный пример ориентированного графа, давайте предположим, что все ребра имеют одинаковую длину:
В пакете R и cppRouting график должен представлять собой фрейм данных, описывающий каждое ребро:
library(cppRouting)
library(igraph)
graph<-data.frame(from=c(0,1,2,3,4,2),
to=c(1,2,3,0,2,4),
weight=c(1,1,1,1,1,1))
#visualize
test<-graph_from_data_frame(graph,directed = TRUE)
plot(test,edge.arrow.size=0.2)
Теперь, если вы хотите узнать кратчайший путь между узлами 0 и 3:
cpp_graph<-makegraph(graph,directed=TRUE)
get_path_pair(cpp_graph,from="0",to="3")
, если вы хотите узнать кратчайшее расстояние:
get_distance_pair(cpp_graph,from="0",to="3")
Надеюсь, что поможет.