[R-br] Otimizar tempo de processamento
Leonard Assis
assis.leonard em gmail.com
Quinta Agosto 18 16:17:07 BRT 2011
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 em 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 em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20110818/46c4282c/attachment.html>
Mais detalhes sobre a lista de discussão R-br