НачатьНачать бесплатно

Найдите глобальный оптимум

Вам предоставлена следующая задача максимизации прибыли, и ваша цель — найти глобальный максимум.

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