Najdi globální optimum
Máš k dispozici následující problém maximalizace zisku a tvým úkolem je najít globální maximum.
\(\Pi= -\frac{1}{4}q^4 + 11q^3 - 160q^2 + 900q\)
\(0\) je přirozená dolní mez pro množství a při \(q=30\) je zisk záporný, takže \(30\) je dobrý kandidát na horní mez.
Najdi globální optimum tohoto problému.
Funkce basinhopping je již naimportována.
Toto cvičení je součástí kurzu
Introduction to Optimization in Python
Pokyny k cvičení
- Definuj slovník
kwargss klíčovými argumenty, kde meze jsou \(0\) a \(30\). - Spusť
basinhoppings účelovou funkcí jako zápornou hodnotouprofita počátečním odhademx0předaným minimalizátorukwargs.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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")