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
Anleitung zur Übung
- Definiere das Dictionary
kwargsmit den Keyword-Argumenten und den Schranken \(0\) und \(30\). - Führe
basinhoppingaus, mit der Zielfunktion als Negativem vonprofitund der Anfangsschätzungx0, die überkwargsan 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")