Bắt đầu ngayBắt đầu miễn phí

Tìm nghiệm tối ưu toàn cục

Bạn được cung cấp bài toán tối đa hóa lợi nhuận sau và cần tìm giá trị cực đại toàn cục.

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

\(0\) là cận dưới tự nhiên cho sản lượng và bạn quan sát thấy tại \(q=30\) lợi nhuận âm, nên \(30\) là ứng viên tốt cho cận trên.

Hãy tìm nghiệm tối ưu toàn cục cho bài toán này.

basinhopping đã được nhập sẵn cho bạn.

Bài tập này là một phần của khóa học

Nhập môn Tối ưu hóa với Python

Xem khóa học

Hướng dẫn bài tập

  • Tạo dictionary kwargs cho các đối số từ khóa, với các cận là \(0\) và \(30\).
  • Chạy basinhopping, với hàm mục tiêu là số âm của profit và truyền giá trị khởi tạo x0 vào kwargs của minimizer.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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")
Chỉnh sửa và Chạy Mã