def main():
    problema = rosenbrock.Rosenbrock()
    problema_nombre = "rosenbrock"
    cantidadParticulas = 50
    iteraciones = 2000
    dimensiones = 2
    for dim in range(4):
        for i in range(5):
            de = DifferentialEvolution.DE(iteraciones, cantidadParticulas,
                                          dimensiones, problema,
                                          problema_nombre, i)
            de.run()
        dimensiones = dimensiones * 2
예제 #2
0
def main():
    ros = rosenbrock.Rosenbrock()
    individuos = 32
    dimensiones = [2, 4, 8, 16]
    intervalos = 8
    a = 1
    Q = 20
    evaporacion = 0.9
    t0 = 0.00001
    generaciones = 2000
    for dim in dimensiones:
        for i in range(5):
            aco = ACO.ACO(i, individuos, dim, intervalos, a, Q, evaporacion,
                          t0, ros, generaciones)
            aco.run()
예제 #3
0
def main():
    ros = rosenbrock.Rosenbrock()
    sph = sphere.Sphere()
    qua = quartic.Quartic()
    ras = rastrigin.Rastrigin()

    aux = np.array([])
    graph = np.array([])
    ejecuciones = 1
    draw = drawer.Drawer()

    individuos = 32
    dimensiones = 16
    intervalos = 8
    a = 1
    Q = 20
    evaporacion = 0.9
    t0 = 0.00001
    generaciones = 100
    bestFitnessPos = 100

    graphName = "Quartic" + str(dimensiones) + "D"
    aco = ACO.ACO(individuos, dimensiones, intervalos, a, Q, evaporacion, t0,
                  ras, generaciones, bestFitnessPos)

    for i in range(ejecuciones):
        aux = aco.run()
        if i == 0:
            graph = aux
        else:  #Sumamos el resto de las ejecuciones.
            for a in range(len(aux)):
                graph[a] = graph[a] + aux[a]

    for x in range(len(graph)):
        graph[x] = graph[
            x] / ejecuciones  #Obtenemos el promedio de cada posicion

    draw.drawIndividual(graph, graphName)

    file = open(graphName + ".txt", "w")
    for y in range(len(graph)):
        file.write(str(graph[y]) + "\n")
    file.close()
예제 #4
0
def main():
    problema = rosenbrock.Rosenbrock()
    problema_nombre = "rosenbrock"
    cantidadParticulas = 50
    tamanioVecindario = 16
    iteraciones = 2000
    dimensiones = 2
    cognitionLearningRate = 1.4944
    socialLearningRate = 1.4944
    for dim in range(4):
        for i in range(5):
            spo = SwarmParticleOptimization.SPO(iteraciones,
                                                cantidadParticulas,
                                                tamanioVecindario, dimensiones,
                                                cognitionLearningRate,
                                                socialLearningRate, problema,
                                                problema_nombre, i)
            spo.run()
        dimensiones = dimensiones * 2
예제 #5
0
def main():
    sphere_problem = sphere.Sphere()
    rastrigin_problem = rastrigin.Rastrigin()
    quartic_problem = quartic.Quartic()
    rosenbrock_problem = rosenbrock.Rosenbrock()
    population_size = 16
    generations = 2000
    mutation_rate = 0.1
    for dimentions in [2, 4, 8]:
        raw_sets = []
        for i in range(5):
            ag = PSAlgorithm.ParticleSwarmAlgorithm(population_size, dimentions, generations, mutation_rate, quartic_problem)
            
            raw_sets.append(ag.run())
        print(zip_average(raw_sets), dimentions)
        plt.plot(range(100, generations+100, 100), zip_average(raw_sets), label = str(dimentions))
    # plt.legend(['2', '4', '8'])
    plt.legend()
    plt.show()
예제 #6
0
def main():
    rosen = rosenbrock.Rosenbrock()
    rango = rosen.MAX_VALUE - rosen.MIN_VALUE
	cantidad_individuos = 30