3.3 Programas numericos

Enumeracion exhaustiva

Consiste en enumerar todas las soluciones posibles, a partir de los valores tomados para las variables enteras y realizar todas las combinaciones posibles hasta encontrar una combinación que nos proporcione el valor óptimo de la función objetivo y que cumpla con todas las restricciones del problema. Una de las objeciones principales que presenta éste método es el número de variables, ya que se presentan demasiadas combinaciones antes de encontrar la solución óptima.

Aproximacion de soluciones

Es similar a enumeracion exhaustiva pero necesita de mayor precision y de una respuesta exacta como tal. En estos algoritmos podemos aproximar las soluciones con un margen de error que llamaremos epsilon.

Busqueda binaria

Ejemplo:
#Algoritmo de busqueda binaria para raiz cuadrada
objetivo = int(input('Escoge un numero para calcular su raiz cuadrada: '))
epsilon = 0.001
bajo = 0.0
alto = max(1.0, objetivo)
respuesta = (alto + bajo)/2

while abs(respuesta**2 - objetivo) >= epsilon:
print(f'bajo={bajo} alto={alto} respuesta={respuesta}')
if respuesta ** 2 < objetivo:
bajo = respuesta
else:
alto = respuesta

respuesta = (alto + bajo)/2

print(f'La raiz cuadrada de{objetivo} es {respuesta}')







Backlinks: Inteligencia Artificial:3. Introduccion al pensamiento computacional con Python