Aan de slagGa gratis aan de slag

Vind het globale optimum

Je hebt het volgende winstmaximalisatieprobleem gekregen en je taak is om het globale maximum te vinden.

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

\(0\) is een natuurlijke ondergrens voor de hoeveelheid en je hebt gezien dat bij \(q=30\) de winst negatief is, dus \(30\) is een goede kandidaat voor de bovengrens.

Vind het globale optimum voor dit probleem.

basinhopping is al voor je geïmporteerd.

Deze oefening maakt deel uit van de cursus

Introductie tot optimalisatie in Python

Cursus bekijken

Oefeninstructies

  • Definieer de dictionary kwargs met keyword-argumenten, met grenzen \(0\) en \(30\).
  • Voer basinhopping uit, met de doelstelling als het negatieve van profit en de beginwaarde x0 doorgegeven aan de minimizer via kwargs.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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")
Code bewerken en uitvoeren