0

R を使用して、ネットワークの幅優先検索を行っています。これが私がこれまでに持っているコードです:

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 ユーザーほどの経験はありません。

ありがとう。

4

1 に答える 1