ПочатиПочніть безкоштовно

Знайдіть глобальний оптимум

Вам надано задачу максимізації прибутку. Потрібно знайти глобальний максимум.

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

\(0\) — природна нижня межа для кількості, а при \(q=30\) прибуток від'ємний, тож \(30\) — добра кандидатка на верхню межу.

Знайдіть глобальний оптимум для цієї задачі.

basinhopping уже імпортовано для вас.

Ця вправа є частиною курсу

Вступ до оптимізації в Python

Переглянути курс

Інструкції до вправи

  • Створіть словник іменованих аргументів kwargs з межами \(0\) та \(30\).
  • Запустіть basinhopping, використавши як цільову функцію від'ємне значення profit, а початкове припущення x0 передайте мінімізатору через kwargs.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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")
Редагувати та запускати код