Tiago,
pra que o loop "for (g in 1:m)" se em momento algum do código vc faz uso deste. Como vc construiu, vc rodar com m = 1 ou m - 700 trilhoes produzirá sempre o mesmo resultado, pois vc somente armazena e retorna a ultima iteração.
repare neste trecho de seu código:
for (g in 1:m) {
y <- 1
for (k in 1:n) {
y <- sum(rbinom(y,f,p))
if (y == 0) break
}
if (y > 0) pp <- pp + 1
}
viu? está rodando m vezes por aqui e nada de usar o g
mais adiante vc tem
S[p/0.01+1,1] <- p
S[p/0.01+1,2] <- pp/m
e em seguida, retorna o S
ou seja: um loop completamente inutil
lmassis <at> yahoo <dot> com <dot> br
assis.leonard <at> gmail <dot> com
2011/8/18 Tiago Vieira
<tiagovieira7@yahoo.com.br>
Estou tentando rodar o programa de simulação de percolação (rede de bethe), mas esta demandando um tempo de processamento muito alto, pois há preciso de muitas iterações. O computador que estou utilizando tem processador i3 e 4gb de memória. Alguém pode me dar uma dica de como posso diminuir o tempo de processamento? Abaixo segue o código:
programa <- function(f,n,m) {
# f: número máximo de filhos
# n: número de gerações
# m: número de iterações
S <- matrix(0,101,2)
for (p in seq(0,1,by=0.01)) {
pp <- 0
for (g in 1:m) {
y <- 1
for (k in 1:n) {
y <- sum(rbinom(y,f,p))
if (y == 0) break
}
if (y > 0) pp <- pp + 1
}
S[p/0.01+1,1] <- p
S[p/0.01+1,2] <- pp/m
}
}
prog <- programa(2,100,1000)
plot(prog, xlab = "p", ylab = "Probabilidade de Percolação")
Desde já agradeço pela atenção!
Tiago Vieira.
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.