Как провести случайную прогулку, не посещая одни и те же вершины / узлы
Я использую функцию случайного блуждания в 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
}