Mathematical optimization เบื้องต้น

การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น

Jasmin Ludolf

Content Developer

ที่จะมาถึง...

 

สิ่งที่จะได้เรียนรู้...
  • การแก้โจทย์ optimization ในชีวิตจริง
  • สร้างชุดเครื่องมือสำหรับรับมือปัญหาหลากหลายประเภท

 

สิ่งที่ควรรู้มาก่อน...

 

สิ่งที่ไม่จำเป็นต้องรู้...
  • แคลคูลัส
  • อัลกอริทึม
การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น

Mathematical optimization คืออะไร?

 

  • การหาค่า input ที่เหมาะสม สำหรับปัญหาหนึ่งๆ

 

  • ตัวอย่าง:
    • การเพิ่มผลผลิตทางการเกษตรให้สูงสุด

พืชผลที่กำลังเติบโตในทุ่งนา

  • สภาพดินและสภาพอากาศ
  • ปริมาณและคุณภาพพืชผลที่ดีที่สุด
การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น

Mathematical optimization คืออะไร?

 

 

รถตู้กำลังวิ่งตามเส้นทางจัดส่ง

 

 

  • เส้นทางการกระจายสินค้าที่เหมาะสม
  • ระยะทางและการจราจร
  • ลดเวลาจัดส่งและประหยัดต้นทุน
การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น

Objective function

  • อธิบายความสัมพันธ์ระหว่างตัวแปร input กับผลลัพธ์

 

การผลิตเฟอร์นิเจอร์:

  • เพิ่มกำไร P ให้สูงสุด
  • ปริมาณ q

 

$P = 40q - 0.5q^2$

  • ค่า q ใดทำให้ P สูงสุด?
การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น

Optimize ด้วย 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()
การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น

Optimization ในการผลิต

 

  • ค่าสูงสุด = ค่า optimum

 

  • สาเหตุที่เป็นรูปทรงนี้:
    • พนักงานหรืออุปกรณ์ไม่เพียงพอ

 

กราฟกำไรที่เปลี่ยนแปลงตามปริมาณ

การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น

Exhaustive search

  • วิธี "brute force"
  • คำนวณกำไรสำหรับปริมาณหลายค่า
  • เลือกค่าที่ให้กำไรสูงสุด

 

ชายถือกล้องส่องทางไกลนั่งอยู่บนบอลลูนที่มีสัญลักษณ์ดอลลาร์ กำลังมองหากำไร

การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น

Exhaustive search ด้วย 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.
การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น

ข้อดีและข้อเสียของ exhaustive search

 

  • ข้อดี
    • (+) ง่ายต่อการนำไปใช้
    • (+) ไม่ต้องใช้ซอฟต์แวร์ราคาแพง
    • (+) ตั้งสมมติฐานน้อย
  • ข้อเสีย
    • (-) ไม่เหมาะกับกรณีที่ซับซ้อน
การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น

มาฝึกกันเถอะ!

การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น

Preparing Video For Download...