Я пытаюсь найти решение проблемы коммивояжера.
Я построил свою сеть с использованием igraph
и сохранил соответствующие расходы в матрице с именем MyMatrix
.
С этого момента, как можно получить самый дешевый тур и его стоимость, начиная с определенного города? Я знаю, что пакет TSP
полезен, но у меня ничего не получилось. (Однако я получил минимальное связующее дерево.) Вот что я сделал:
MyMatrix<-matrix(get.adjacency(my.graph, attr = "weights"),5,5) #Typical TSP Matrix
tsp <- TSP(as.dist(MyMatrix))
tour <- solve_TSP(tsp, start = 1, method = "two_opt")
tour # Gives a different result each time
my.cor<-abs(cor(MyMatrix, method="kendall", use="pairwise"))
my.g<-graph.adjacency(my.cor,
mode='undirected',
weighted=TRUE,
diag=FALSE)
mst<-minimum.spanning.tree(my.g, algorithm='prim')
plot.igraph(mst,
layout=layout.lgl,
vertex.label=colnames(my.cor),
vertex.label.font=2,
vertex.size=12,
vertex.color='light blue',
vertex.label.cex=0.6,
vertex.label.color='black')