Как провести случайную прогулку, не посещая одни и те же вершины / узлы

Я использую функцию случайного блуждания в R с помощью iGraph, где мой случайный бродяга путешествует по дорожной сети. Однако когда я запускаю приведенный ниже код, я обнаруживаю, что случайный обходчик всегда возвращается к одним и тем же вершинам / узлам. Есть ли способ, которым я могу запрограммировать случайный ходок каждый раз следовать новому пути?

    set.seed(1)
    resample <- function(x, ...) x[sample.int(length(x), ...)]
    n <- 1000
    tm <- G
    x = sub$idNode1[sample(1:length(sub$idNode1),1)]

    start <- x # Random walk starting vertex
    len <- 100 # Walk length
    path <- c(start, rep(NA, len))
    for(i in 2:(len + 1)) {
        idx <- G[path[i - 1], ] != 0
        if(any(idx)) {
            path[i] <- resample(which(idx), 1, prob = G[path[i - 1], idx])
        } else {
          break # Stopping if we get stuck
        }

0 ответов

Другие вопросы по тегам