LoslegenKostenlos starten

Finde das globale Optimum

Du hast folgendes Gewinnmaximierungsproblem erhalten und sollst das globale Maximum finden.

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

\(0\) ist eine natürliche Untergrenze für die Menge, und du hast beobachtet, dass bei \(q=30\) der Gewinn negativ ist. Daher ist \(30\) ein guter Kandidat für die Obergrenze.

Finde das globale Optimum für dieses Problem.

basinhopping wurde bereits für dich importiert.

Diese Übung ist Teil des Kurses

<Kurs>Einführung in Optimierung mit Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Definiere das Dictionary kwargs mit den Keyword-Argumenten und den Schranken \(0\) und \(30\).
  • Führe basinhopping aus, mit der Zielfunktion als Negativem von profit und der Anfangsschätzung x0, die über kwargs an den Minimizer übergeben wird.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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 bearbeiten und ausführen