[R-br] Otimizar tempo de processamento

Leonard Assis assis.leonard em gmail.com
Quinta Agosto 18 16:19:28 BRT 2011


Benilton, eu nem cheguei a rodar, analisei o que ele faz mesmo.

Tem que resolver esse problema daquele loop que só faz perder tempo senão o
próprio estudo de simulação dele está inválido.
lmassis <at> yahoo <dot> com <dot> br
assis.leonard <at> gmail <dot> com


2011/8/18 Benilton Carvalho <beniltoncarvalho em gmail.com>

> Tiago,
>
> esse e' um problema legal... se vc derivar as distribuicoes a mao,
> certamente vc consegue ganhos bem maiores...
>
> FYI: usando propriedades de estatistica, vc chega na mudanca que eu
> fiz na geracao das suas variaveis aleatorias.
>
> Adicionalmente, eu nao tive paciencia de esperar o seu codigo original
> acabar de rodar... eu o cancelei depois de um pouco mais de 1h10m.
>
> Abaixo uma sugestao para voce:
>
>
> library(foreach)
> library(doMC)
> registerDoMC()
> programa2 <- function(f,n,m) {
>     ## f: número máximo de filhos
>    ## n: número de gerações
>    ## m: número de iterações
>     S <- foreach(p=seq(0,1,by=0.01), .combine=rbind) %dopar% {
>         pp <- 0
>        for (g in 1:m) {
>            y <- 1
>            for (k in 1:n)
>                 y <- rbinom(1, y*f, p)
>            if (y > 0) pp <- pp + 1
>        }
>        c(p, pp/m)
>    }
>    return(S)
> }
> system.time(prog2 <- programa2(2,200,1000))
> plot(prog2, xlab = "p", ylab = "Probabilidade de Percolação")
>
> para matar sua curiosidade, no meu computador, eu obtive:
>
> > system.time(prog2 <- programa2(2,200,1000))
>   user  system elapsed
> 257.072   2.562  20.835
> _______________________________________________
> 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/624d7817/attachment.html>


Mais detalhes sobre a lista de discussão R-br