for i, particle in enumerate(cloud_particles, start=0): particle.initialize_coordinates(pso.sup_limit, pso.inf_limit) particle.neighbors = topology[i] pso.best_neighbor(cloud_particles, particle) # scatter_x.append(particle.x[0]) # scatter_y.append(particle.x[1]) # # plt.plot(scatter_x, scatter_y, 'o', color='orange', label='Initial Cloud') # plt.legend() dict_iter = {} vector_iter = [] while k < max_iteration: for i, particle in enumerate(cloud_particles, start=0): vector_iter.append(particle.x[:]) if pso.f(particle.x) < pso.f(particle.p_best): particle.p_best = particle.x[:] if pso.f(particle.x) < pso.f(pso.g_best): pso.g_best = particle.x[:] for j in range(particle.dimension): pij = particle.p_best[j] gj = pso.g_best[j] xij = particle.x[j] particle.velocity[j] = pso.calculate_velocity(pij, gj, xij) particle.update_velocity() dict_iter[k] = vector_iter vector_iter = [] k += 1 best_fitness = pso.f(pso.g_best) print( f'f6(x): {pso.inf_limit} <= xi <= {pso.sup_limit}\n'
m = int(sys.argv[4]) iteracoes = int(sys.argv[5]) atual = 0 pso = PSO(w, c_1, c_2, [-10, 10], dimensao) nuvemParticulas = pso.inicia_nuvem(m) topology = pso.arruma_vizinhos(nuvemParticulas) for i, particula in enumerate(nuvemParticulas, start=0): particula.inicia_particula(pso.limiteSuperior, pso.limiteInferior) particula.vizinho = topology[i] pso.melhor_vizinho(nuvemParticulas, particula) while atual < iteracoes: for i, particula in enumerate(nuvemParticulas, start=0): if pso.f(particula.posX) < pso.f(particula.melhorPessoal): particula.melhorPessoal = particula.posX[:] if pso.f(particula.posX) < pso.f(pso.melhorGrupo): pso.melhorGrupo = particula.posX[:] for j in range(particula.dimensao): pij = particula.melhorPessoal[j] gj = pso.melhorGrupo[j] xij = particula.posX[j] particula.distancia[j] = pso.distancia(pij, gj, xij) particula.update_distancia() atual += 1 profit = pso.f(pso.melhorGrupo) file = 'result.csv' fieldnames = [ 'dimensao', 'qtdParticulas', 'iteracoes', 'fatorDiversidade',