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
Instrucciones del ejercicio
- Define el diccionario
kwargsde argumentos con nombre, con cotas \(0\) y \(30\). - Ejecuta
basinhopping, usando como objetivo el negativo deprofity pasando la conjetura inicialx0al minimizador mediantekwargs.
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")