有容量限制的廠址選擇-案例研究 P3

Python 的供應鏈分析

Aaren Stubberfield

Supply Chain Analytics Mgr.

有容量限制的廠址選擇模型

建模

  • 區域設施的生產
    • 兩種廠規模(低/高)
  • 跨區域出口生產
  • 生產設施啟用/關閉

帶有區域生產的地球圖像

Python 的供應鏈分析

預期範圍

我們應該預期決策變數會落在哪些值?

生產數量:

  • 在變動生產與運輸成本低的區域產量高
  • 在固定生產成本也相對較低的區域達到滿載生產

生產廠啟用或關閉:

  • 需求高的區域採高產能廠
  • 固定成本相對較低的區域採高產能廠
Python 的供應鏈分析

限制式的敏感度分析

總產量 = 總需求:

  • shadow prices = 代表某區需求增加時,總成本的變化
  • slack = 應為 0

總產量 ≤ 總產能:

  • shadow prices = 代表產能增加時,總成本的變化
  • slack = 有剩餘產能的區域
Python 的供應鏈分析
from pulp import *
import pandas as pd

# Initialize Class
model = 
    LpProblem("Capacitated Plant Location Model",
               LpMinimize)

# Define Decision Variables
loc = ['A', 'B', 'C', 'D', 'E']
size = ['Low_Cap','High_Cap']
x = LpVariable.dicts(
                "production_", 
                [(i,j) for i in loc for j in loc],
                 lowBound=0, upBound=None, 
                 cat='Continuous')

y = LpVariable.dicts(
               "plant_", 
               [(i,s) for s in size for i in loc], 
                cat='Binary')
# Define Objective Function
model += 
  (lpSum([fix_cost.loc[i,s]*y[(i,s)] 
          for s in size for i in loc])
 + lpSum([var_cost.loc[i,j]*x[(i,j)] 
          for i in loc for j in loc]))

# Define the Constraints
for j in loc: model += 
  lpSum([x[(i, j)] 
        for i in loc]) == demand.loc[j,'Dmd']
for i in loc: model += 
  lpSum([x[(i, j)] for j in loc]) <= lpSum(
             [cap.loc[i,s]*y[(i,s)]for s in size])
Python 的供應鏈分析
# Solve
model.solve()

# Print Decision Variables and Objective Value print(LpStatus[model.status]) o = [{'prod':"{} to {}".format(i,j), 'quant':x[(i,j)].varValue} for i in loc for j in loc] print(pd.DataFrame(o)) o = [{'loc':i, 'lc':y[(i,size[0])].varValue, 'hc':y[(i,size[1])].varValue} for i in loc] print(pd.DataFrame(o)) print("Objective = ", value(model.objective))
# Print Shadow Price and Slack o = [{'name':name, 'shadow price':c.pi, 'slack': c.slack} for name, c in model.constraints.items()] print(pd.DataFrame(o))
Python 的供應鏈分析

商務問題

常見問題:

  • 這個供應鏈網路模型的預期成本是多少?

  • 若某區需求增加,需要多少利潤才能覆蓋該區的生產與運輸成本?

  • 哪些區域仍有產能可因應未來需求成長?

Python 的供應鏈分析

摘要

回顧:

  • 決策變數的預期範圍
  • 解讀敏感度分析輸出(shadow pricesslack
  • 解題與輸出結果的程式碼
  • 可能的商務問題
Python 的供應鏈分析

做得很好!換你了

Python 的供應鏈分析

Preparing Video For Download...