ÎncepețiÎncepe gratuit

Găsește optimul global

Ți-a fost furnizată următoarea problemă de maximizare a profitului și ai sarcina de a găsi maximul global.

\(\Pi= -\frac{1}{4}q^4 + 11q^3 - 160q^2 + 900q\)

\(0\) este o limită inferioară naturală pentru cantitate și ai observat că la \(q=30\) profitul este negativ, deci \(30\) este un candidat bun pentru limita superioară.

Găsește optimul global pentru această problemă.

basinhopping a fost deja importat pentru tine.

Acest exercițiu face parte din cursul

Introducere în optimizare în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește dicționarul kwargs al argumentelor cheie, cu limitele \(0\) și \(30\).
  • Rulează basinhopping, cu obiectivul definit ca negativul funcției profit și estimarea inițială x0 transmisă minimizatorului kwargs.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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")
Editează și rulează codul