네트워크의 너비 우선 탐색을 위해 R과 협력 중입니다. 지금까지 가지고있는 코드는 다음과 같습니다.R에서 BFS를 사용하여 최단 경로 계산
shortestPath <- function(v1,v2) {
q <- rep(0, 3931)
head <- 1
head2 <- 0
tail <- 1
v1$distance <- 0
q[tail] <- v1
while(head <= tail) {
v <- q[head]
head <- head + 1
if(v==v2) {
return(v$distance)
}
vEdges <- get.neighborhood(net, v)
m <- rep(0,3931)
m[head2] <- v
head2 <- head2 + 1
for(n in vEdges) {
if(!(n %in% m)) {
n$distance <- v$distance + 1
m[head2] <- n
head2 <- head2 + 1
tail <- tail + 1
q[tail] <- n
}
}
}
}
나는 그걸 어떻게 처리하고 있는지 잘 모르겠습니다. while 루프에서 무한정 멈춰 버립니다. 내가 다루고있는 네트워크가 완전히 연결되어 있습니다. 나는 누군가가 이것을 고치기 위해 올바른 방향으로 놓을 수 있다면, 내가 볼 수없는 사소한 문제가 있다고 생각한다. 그것은 좋을 것이다. 아마 전형적인 R 사용자만큼 경험이 없을 것입니다.
감사합니다.
코드를 들여 쓰기하면 어떤 코드 블록이 단위를 형성하는지 쉽게 알 수 있습니다. 코드를 들여 쓰는 방법에 대한 편집을 참조하십시오. –
igraph : http://igraph.sourceforge.net/doc/R/graph.bfs.html을 확인하십시오. 어떤 종류의 알고리즘 접근법에서도 R에서 바퀴를 재발 명할 필요는 거의 없습니다. – tcash21