Jaocs commited on
Commit
2a62559
verified
1 Parent(s): 668267d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -7
app.py CHANGED
@@ -6,7 +6,7 @@ from typing import List
6
 
7
  class InputData(BaseModel):
8
  data: List[float] # Lista de caracter铆sticas num茅ricas (flotantes)
9
-
10
  app = FastAPI()
11
 
12
  # ------------- algoritmo genetico -------------
@@ -66,11 +66,13 @@ def mutar(individuo, probabilidad_mutacion):
66
  return individuo
67
 
68
  # Funci贸n para generar distancias aleatorias entre ciudades y sus coordenadas bidimensionales
69
- def generar_distancias(num_ciudades):
70
  distancias = [[0] * num_ciudades for _ in range(num_ciudades)]
71
- coordenadas = [
72
- (random.uniform(0, 100), random.uniform(0, 100)) for _ in range(num_ciudades)
73
- ]
 
 
74
 
75
  for i in range(num_ciudades):
76
  for j in range(i + 1, num_ciudades):
@@ -116,7 +118,9 @@ async def predict(data: InputData):
116
  num_individuos = int(input_data[0][1])
117
  probabilidad_mutacion = float(input_data[0][2])
118
  num_generaciones = int(input_data[0][3])
119
- distancias, coordenadas = generar_distancias(num_ciudades)
 
 
120
 
121
  mejor_solucion, mejor_distancia = algoritmo_genetico(num_generaciones,num_ciudades,num_individuos,probabilidad_mutacion,distancias,coordenadas)
122
  #print(type(mejor_solucion),mejor_solucion
@@ -131,4 +135,4 @@ async def predict(data: InputData):
131
  "cromosoma": mejor_solucion # Esto ya es un array de ints
132
  }
133
  except Exception as e:
134
- raise HTTPException(status_code=500, detail=str(e))
 
6
 
7
  class InputData(BaseModel):
8
  data: List[float] # Lista de caracter铆sticas num茅ricas (flotantes)
9
+ puntos: List[int]
10
  app = FastAPI()
11
 
12
  # ------------- algoritmo genetico -------------
 
66
  return individuo
67
 
68
  # Funci贸n para generar distancias aleatorias entre ciudades y sus coordenadas bidimensionales
69
+ def generar_distancias(num_ciudades, puntos_array):
70
  distancias = [[0] * num_ciudades for _ in range(num_ciudades)]
71
+ coordenadas = []
72
+
73
+ for i in range(0, len(puntos_array), 2):
74
+ if i+1 < len(puntos_array):
75
+ coordenadas.append((puntos_array[i], puntos_array[i+1]))
76
 
77
  for i in range(num_ciudades):
78
  for j in range(i + 1, num_ciudades):
 
118
  num_individuos = int(input_data[0][1])
119
  probabilidad_mutacion = float(input_data[0][2])
120
  num_generaciones = int(input_data[0][3])
121
+
122
+ puntos_array = data.puntos
123
+ distancias, coordenadas = generar_distancias(num_ciudades, puntos_array)
124
 
125
  mejor_solucion, mejor_distancia = algoritmo_genetico(num_generaciones,num_ciudades,num_individuos,probabilidad_mutacion,distancias,coordenadas)
126
  #print(type(mejor_solucion),mejor_solucion
 
135
  "cromosoma": mejor_solucion # Esto ya es un array de ints
136
  }
137
  except Exception as e:
138
+ raise HTTPException(status_code=500, detail=str(e))