2013-12-01 5 views
1
1 2 
1 3 
1 4 
1 5 
2 3 
2 4 
2 5 
5 6 

Это мой текстовый файл с информацией о графике.Самый короткий путь igraph на R

library("igraph") 
g<-read.table("/home/emir/RRR/graph.txt",) 
g<- graph.data.frame(g,directed=0) 
get.shortest.paths(g, 6,4, weights = NULL ,output=c("vpath", "epath", "both")) 
plot(g) 

http://imgur.com/vLSTkcK

Когда я построить график это все правильно. Но когда я попытался найти кратчайший путь, он не всегда дал мне правильный путь. Выход = 6 3 1 4. Это должно быть 6 5 2 4. Как вы можете видеть, нет разницы между 6 и 3. Как я могу решить эту проблему.

ответ

0

Проблема в том, что ваш граф имеет имена вершин, и они отличаются от идентификаторов, которые у вас есть. Отбросьте атрибут вершины name, и все должно быть хорошо. Это правда, что graph.data.frame() может быть умнее об этом ....

Вы также можете попробовать добавить вершинные идентификаторы в правильном порядке:

g <- graph.data.frame(g, directed=FALSE, 
    vertices=data.frame(name=as.character(seq_len(max(g)))) 
+0

Можете ли вы помочь мне на сбросив атрибут вершины на этом? Или любой пример того, как я могу это сделать? Благодарю. – Emir

+0

http://igraph.sourceforge.net/doc/R/attributes.html –

+0

Спасибо. Очень признателен. – Emir

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