Küresel optimumu bul
Aşağıdaki kâr maksimizasyonu problemi verildi ve senden küresel maksimumu bulman isteniyor.
\(\Pi= -\frac{1}{4}q^4 + 11q^3 - 160q^2 + 900q\)
Miktar için doğal alt sınır \(0\)'dır ve \(q=30\)'da kârın negatif olduğunu gözlemledin; dolayısıyla \(30\) üst sınır için iyi bir adaydır.
Bu problem için küresel optimumu bul.
basinhopping senin için içe aktarıldı.
Bu egzersiz
Python ile Optimizasyona Giriş
kursunun bir parçasıdırEgzersiz talimatları
- Alt sınırı \(0\), üst sınırı \(30\) olacak şekilde anahtar argümanların sözlüğü
kwargs'ı tanımla. - Amacı
profit'in negatifi olacak şekilde ve başlangıç tahminix0'ı minimizer'akwargsile geçirerekbasinhopping'i çalıştır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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")