def bobo(N, n, b, c, delta, mu, alpha, beta, pmig): pA = 0.0 it = gera_simulacao(N,n,pA,b,c,delta,mu,alpha,beta,pmig,max_it) if it < max_it: return 1, it it = gera_simulacao(N,n,1.0,b,c,delta,mu,alpha,beta,pmig,max_it) if it < max_it: logger.info("pA=1 => 0") return 0, max_it nc = mp.cpu_count() -1 l_its = Parallel(n_jobs=nc)(delayed(sim)(N, n, b, c, delta, mu, alpha, beta, pA, pmig, i)\ for i in xrange(10)) # Mostra quantas simulacoes acabaram antes do maximo e a media de iteracoes que elas levaram v = np.array(l_its)<max_it if np.count_nonzero(v)>0: w = np.take(l_its, np.nonzero(v)[0]) n_geracoes = sum(w)/len(w) else: n_geracoes = max_it return np.count_nonzero(v), n_geracoes
def bobo(b, c, m_c, pmig): pA = 1. if pmig > m_c else 0. l_its = [gera_simulacao(N, n, pA, b, c, delta, mu, alpha, beta, pmig) for i in xrange(5)] # Mostra quantas simulacoes acabaram antes do maximo e a media de iteracoes que elas levaram v = np.array(l_its)<5000 if np.count_nonzero(v)>0: w = np.take(l_its, np.nonzero(v)[0]) n_geracoes = sum(w)/len(w) else: n_geracoes = 0 return b, c, pmig, np.count_nonzero(v), n_geracoes, l_its[0], l_its[1], l_its[2], l_its[3], l_its[4]
def bobo(b, c, m_c, pmig): pA = 1. if pmig > m_c else 0. l_its = [ gera_simulacao(N, n, pA, b, c, delta, mu, alpha, beta, pmig) for i in xrange(5) ] # Mostra quantas simulacoes acabaram antes do maximo e a media de iteracoes que elas levaram v = np.array(l_its) < 5000 if np.count_nonzero(v) > 0: w = np.take(l_its, np.nonzero(v)[0]) n_geracoes = sum(w) / len(w) else: n_geracoes = 0 return b, c, pmig, np.count_nonzero( v), n_geracoes, l_its[0], l_its[1], l_its[2], l_its[3], l_its[4]
def sim(N, n, b, c, delta, mu, alpha, beta, pA, pmig, i): return gera_simulacao(N, n, pA, b, c, delta, mu, alpha, beta, pmig, max_it)