示例#1
0
 def GetOptimo(capital: Capital):
     opt = 10000
     capacum = 0
     capini = 99
     """Interacion entre capital el primer for """
     for cap in range(len(capital) - 1):
         DistanciaHelper.InicialCuidadVisitada(capital)
         Heuristica.GetRecorrerCuidad(cap, capital)
         capacum = 0
         """La cantidad KM recorrido """
         for km in range(len(capital) - 1):
             capacum += int(
                 DistanciaHelper.GetDistancia(
                     DistanciaHelper.Capitales[Heuristica.recorrido[km]],
                     DistanciaHelper.Capitales[Heuristica.recorrido[km +
                                                                    1]]))
         """Camparando para buscar el optimo"""
         if capacum <= opt:
             opt = capacum
             capini = cap
     print("El optimo: ", capital[capini].Nombre)
     """Vuelve a inicial las cuidad para poder calcular el recorrido de nuevo cal la capital opt"""
     DistanciaHelper.InicialCuidadVisitada(capital)
     Heuristica.GetRecorrerCuidad(capini, capital)
     Heuristica.PrintRecorrido()
示例#2
0
    def Run(self):
        exit = False
        DistanciaHelper.LoadTablaDistanicaYCapitales()
        cuidad = DistanciaHelper.Capitales
        DistanciaHelper.GetAllCuidad(cuidad)
        DistanciaHelper.InicialCuidadVisitada(cuidad)
        print()
        Initial()
        val = input("Ingrese Opcion : ")
        while True:
            """configuracion = IngresarConfiguracion()
            algoritmo = AlgoritmoGenetico(configuracion)
            algoritmo.Run()
            algoritmo.Print()
            algoritmo.ExportToExcel()
            line = "n"  # input("Correr Nuevamente? [Y,N]: ")
            if line.lower() == "n":
                exit = True"""
            cuidadElegida = 0
            if val == "1":
                cuidadElegida = int(input("Cuidad de partida : "))
                if cuidadElegida < 0 or cuidadElegida > 23:
                    print(
                        "Vuelve a eligir una capital que esta dentro de las capitales"
                    )
                    return True
                Heuristica.GetRecorrerCuidad(cuidadElegida, cuidad)
                Heuristica.PrintRecorrido()
            elif val == "2":
                Heuristica.GetOptimo(cuidad)

            input("Precione enter para continuar")
            Initial()
            val = input("Ingrese Opcion : ")