ComenzarEmpieza gratis

Encuentra el óptimo global

Se te proporciona el siguiente problema de maximización de beneficios y tu tarea es encontrar el máximo global.

\(\Pi= -\frac{1}{4}q^4 + 11q^3 - 160q^2 + 900q\)

\(0\) es una cota inferior natural para la cantidad y has observado que en \(q=30\) el beneficio es negativo, así que \(30\) es una buena candidata para cota superior.

Encuentra el óptimo global de este problema.

basinhopping ya se ha importado por ti.

Este ejercicio forma parte del curso

Introducción a la optimización en Python

Ver curso

Instrucciones del ejercicio

  • Define el diccionario kwargs de argumentos con nombre, con cotas \(0\) y \(30\).
  • Ejecuta basinhopping, usando como objetivo el negativo de profit y pasando la conjetura inicial x0 al minimizador mediante kwargs.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

def profit(q): 
	return -q**4 / 4 + 11 * q**3 - 160 * q**2 + 900 * q
  
x0 = 0

# Define the keyword arguments for bounds
kwargs = {"bounds": [(____, ____)]} 

# Run basinhopping to find the optimal quantity
result = basinhopping(____ q: -profit(q), ____, ____=kwargs)

print(f"{result.message}")
print(f"The maximum according to basinhopping(x0={x0}) is at {result.x[0]:.2f}\n")
Editar y ejecutar código