def algoritmo_genetico():

    tam_pobl = 1000
    porc_elite = 0.5
    prob_mut = 0.9
    reps = 10000

    archivo = open('resultados.txt', 'a')
    archivo.write("\n\n" +
                  "Parámetros combinados 3 algoritmo genético(tam_pobl = " +
                  str(tam_pobl) + ", porc_elite = " + str(porc_elite) +
                  ", prob_mut = " + str(prob_mut) + ", reps = " + str(reps) +
                  ")")
    archivo.close()

    inicio_total = time.perf_counter()

    for i in range(0, 20):
        inicio = time.perf_counter()
        dominio = DominioAGTSP('datos/ciudades_cr.csv', 'Liberia')
        sol = optimizar_ag(dominio, tam_pobl, porc_elite, prob_mut, reps)
        final = time.perf_counter()
        tiempo = final - inicio
        print(tiempo)
        print("Iteración:", i, "Recorrido:", DominioAGTSP.texto(dominio, sol),
              "Costo:", DominioAGTSP.fcosto(dominio, sol))

        archivo = open('resultados.txt', 'a')
        archivo.write("\n" + "Iteración: " + str(i) + " Tiempo: " +
                      str(tiempo) + " Costo:" +
                      str(DominioAGTSP.fcosto(dominio, sol)) + " Recorrido: " +
                      str(DominioAGTSP.texto(dominio, sol)))
        archivo.close()

    final_total = time.perf_counter()
    duracion_total = final_total - inicio_total

    print(duracion_total)
    return 0
Exemple #2
0
 def test_optimizar(self):
     dominio = DominioAGTSP('datos/ciudades_cr_pruebas.csv', 'Alajuela')
     sol = optimizar(dominio, 100, 0.1, 0.5, 1000)
     self.assertTrue(dominio.validar(sol))
     self.assertAlmostEqual(dominio.fcosto(sol), 105.9)
 def setUpClass(cls):
     cls.__tsp = DominioAGTSP('datos/ciudades_cr.csv', 'Alajuela')
 def test_optimizar(self):
     dominio = DominioAGTSP('datos/ciudades_cr.csv', 'Liberia')
     sol = optimizar(dominio, 100, 0.1, 0.5, 1000)
     self.assertTrue(dominio.validar(sol))
Exemple #5
0
 def test_optimizar(self):
     dominio = DominioAGTSP('datos/ciudades_cr.csv', 'Santa Cruz')
     sol = optimizar(dominio, 100, 0.1, 0.5, 1000)
     print(sol)
     self.assertTrue(dominio.validar(sol))