Giới thiệu về tối ưu hóa toán học

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

Jasmin Ludolf

Content Developer

Sắp học...

 

Bạn sẽ học...
  • Giải các bài toán tối ưu thực tế
  • Xây bộ công cụ để xử lý nhiều bài toán

 

Kiến thức cần trước...

 

Không cần biết...
  • Giải tích
  • Thuật toán
Nhập môn Tối ưu hóa với Python

Tối ưu hóa toán học là gì?

 

  • Tìm đầu vào tối ưu cho một bài toán cụ thể

 

  • Ví dụ:
    • Tối đa hóa sản lượng cây trồng

Cây trồng trên cánh đồng.

  • Đất đai, thời tiết
  • Số lượng và chất lượng cây trồng tối ưu
Nhập môn Tối ưu hóa với Python

Tối ưu hóa toán học là gì?

 

 

Xe tải chạy theo tuyến giao hàng.

 

 

  • Tuyến phân phối tối ưu
  • Khoảng cách và giao thông
  • Cải thiện thời gian giao hàng, giảm chi phí
Nhập môn Tối ưu hóa với Python

Hàm mục tiêu

  • Mô tả quan hệ giữa biến đầu vào và kết quả

 

Sản xuất nội thất:

  • Tối đa hóa lợi nhuận, P
  • Số lượng, q

 

$P = 40q - 0.5q^2$

  • Giá trị q nào làm P lớn nhất?
Nhập môn Tối ưu hóa với Python

Tối ưu bằng Python

import numpy as np
import matplotlib.pyplot as plt

qs = np.arange(80)


def profit(q): return 40 * q - 0.5 * q**2
plt.plot(qs, profit(qs)) plt.xlabel('Quantity') plt.ylabel('Profit') plt.show()
Nhập môn Tối ưu hóa với Python

Tối ưu trong sản xuất

 

  • Giá trị cực đại = giá trị tối ưu

 

  • Một số lý do cho hình dạng đường cong:
    • Thiếu nhân lực hoặc thiết bị

 

Lợi nhuận thay đổi theo số lượng.

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

Tìm kiếm vét cạn

  • Phương pháp “brute force”
  • Tính lợi nhuận cho một dải số lượng
  • Chọn giá trị cho lợi nhuận lớn nhất

 

Một người cầm ống nhòm ngồi trên bóng bay có ký hiệu đô la để tìm lợi nhuận.

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

Tìm kiếm vét cạn với Python

import numpy as np

qs = np.arange(80)

def profit(q): 
  return 40 * q - 0.5 * q**2


profits = profit(qs) max_profit = profits.max()
max_ind = np.argmax(profits) q_opt = qs[max_ind]
print(f"The optimum is {q_opt} pieces of furniture, which makes ${max_profit} profit.")
The optimum is 40 pieces of furniture, which makes $800 profit.
Nhập môn Tối ưu hóa với Python

Ưu và nhược điểm của tìm kiếm vét cạn

 

  • Ưu điểm
    • (+) Dễ triển khai
    • (+) Không cần phần mềm đắt tiền
    • (+) Ít giả định
  • Nhược điểm
    • (-) Không mở rộng cho trường hợp phức tạp
Nhập môn Tối ưu hóa với Python

Ayo berlatih!

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

Preparing Video For Download...