[R-br] Otimizar tempo de processamento

Benilton Carvalho beniltoncarvalho em gmail.com
Quinta Agosto 18 16:28:54 BRT 2011


Leonard,

para cada 'g', ele determina uma realizacao (aleatoria) de Y_n
condicionado em Y_{n-1}. Se essa realizacao por nao-nula, ele
incrementa 'pp'. Como a chance de Y_m ser zero e' bem pequena, ele
repete o laco 'm' vezes, contando quantas vezes (em 'm') ele observa
Y_n > 0...

Estou bem certo de que o codigo esta' correto... mas eu tambem estava
certo que o Brasil ganharia a Copa America...

b

2011/8/18 Leonard Assis <assis.leonard em gmail.com>:
> 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.
>
>
> _______________________________________________
> 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.
>



-- 
Successful people ask better questions, and as a result, they get
better answers. (Tony Robbins)


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