LoslegenKostenlos loslegen

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

Einführung in Optimierung mit Python

Kurs anzeigen

Anleitung zur Übung

  • 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 Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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