
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 } return(S) }
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.