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>Übungsanweisungen
- 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 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")