檢核解答是否合理

Python 的供應鏈分析

Aaren Stubberfield

Supply Chain Analytics Mgr.

解題策略流程圖

Python 的供應鏈分析

檢查模型狀態

  • 不可行:沒有可行解。
    • 檢查限制式
  • 無界:目標函式無上(下)界,極大或極小會趨近無限大。
    • 檢查目標函式
  • 未定義:最適解可能存在,但尚未找到。
    • 目前也許只是最佳可得解
    • 檢視你如何建模此問題
Python 的供應鏈分析

結果是否符合預期

決策變數目標的數值是否在預期範圍內?

  • 依據對問題的知識/理解
  • 若「是」,則你有一個有效解
  • 若「否」,請檢查:
    • Python 程式碼
    • 資料
    • 輸出 LP 檔
Python 的供應鏈分析

輸出 LP

writeLP(filename)
  • filename = 要建立的檔名

會列出:

  • 問題名稱
  • 目標函式與極小化或極大化
  • 限制式(含決策變數的 Bounds)
  • 決策變數
Python 的供應鏈分析

程式碼範例

\* Aggregate Production Planning *\
Minimize
OBJ: 20 prod_('A',_0) + 17 prod_('A',_1) 
    + 18 prod_('A',_2) + 15 prod_('B',_0) 
    + 16 prod_('B',_1) + 15 prod_('B',_2)
Subject To
_C1: prod_('A',_0) >= 0
_C2: prod_('A',_1) >= 0
_C3: prod_('A',_2) >= 0
_C4: prod_('B',_0) >= 8
_C5: prod_('B',_1) >= 7
_C6: prod_('B',_2) >= 6
Bounds
0 <= prod_('A',_0)
0 <= prod_('A',_1)
0 <= prod_('A',_2)
0 <= prod_('B',_0)
0 <= prod_('B',_1)
0 <= prod_('B',_2)
Generals
prod_('A',_0)
prod_('A',_1)
prod_('A',_2)
prod_('B',_0)
prod_('B',_1)
prod_('B',_2)
Python 的供應鏈分析

重點整理

理性檢核策略

  • 檢查模型狀態
  • 檢查決策變數與目標是否在預期範圍
  • 需要時使用 writeLP()
Python 的供應鏈分析

Practice time!

Python 的供應鏈分析

Preparing Video For Download...