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()
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 : ")