Codigo
Enviado por Gustavo Reyes Castro • 2 de Octubre de 2018 • Documentos de Investigación • 358 Palabras (2 Páginas) • 499 Visitas
def backtracking(variables, rango_variables, optimo, profundidad):
min = rango_variables[profundidad][0]
max = rango_variables[profundidad][1]
op = optimo
for v in range(min, max):
variables[profundidad]= v
if profundidad < len(variables)-1:
#Es completable si no se incumple ninguna restriccion
if es_completable(variables):
op = backtracking(variables[:], rango_variables, op, profundidad+1)
else:
#estamos en una hoja. comprobamos la solucion-
sol = evalua_solucion(variables)
if sol>evalua_solucion(optimo) and es_completable(variables):
optimo = (variables[0], variables[1])
return optimo
def evalua_solucion(variables):
x1=variables[0]
x2=variables[1]
val = (12-6)*x1+(8-4)*x2
return val
def es_completable(variables):
x1=variables[0]
x2=variables[1]
val1=7*x1+4*x2
val2=6*x1+5*x2
if val1<=150 and val2<=160:
return True
else:
return False
if _name_ == "_main_":
#Valores de las variables x1 y x2
variables=[0,0]
#rangos de las variables x1 y x2
rango_variables= [(0,51), (0,76)]
#mejor solucion encontrada
optimo=(0,0)
sol =backtracking(variables[:], rango_variables, optimo, 0)
print ("Mejor Solucion: ")
print (str(sol[0])+" Pantalones.")
...