Capacitated plant location - केस स्टडी P3

Python में सप्लाई चेन एनालिटिक्स

Aaren Stubberfield

Supply Chain Analytics Mgr.

Capacitated plant location मॉडल

मॉडलिंग

  • क्षेत्रीय सुविधाओं में उत्पादन
    • दो प्लांट साइज (लो / हाई)
  • उत्पादन को अन्य क्षेत्रों में एक्सपोर्ट करना
  • उत्पादन सुविधाएँ खोलें / बंद करें

क्षेत्रीय उत्पादन वाला ग्लोब

Python में सप्लाई चेन एनालिटिक्स

अपेक्षित रेंजेस

हम अपने निर्णय वैरिएबल्स के मान कैसे अपेक्षित करें?

उत्पादन मात्राएँ:

  • उन क्षेत्रों में अधिक उत्पादन जहाँ वैरिएबल उत्पादन और शिपिंग लागत कम हो
  • उन क्षेत्रों में अधिकतम उत्पादन जहाँ फिक्स्ड उत्पादन लागत भी अपेक्षाकृत कम हो

उत्पादन प्लांट खुले या बंद:

  • उच्च मांग वाले क्षेत्रों में हाई-कैपेसिटी प्लांट
  • अपेक्षाकृत कम फिक्स्ड कॉस्ट वाले क्षेत्रों में हाई-कैपेसिटी प्लांट
Python में सप्लाई चेन एनालिटिक्स

कंस्ट्रेंट्स का सेंसिटिविटी विश्लेषण

कुल उत्पादन = कुल मांग:

  • shadow prices = किसी क्षेत्र की मांग बढ़ने पर प्रति यूनिट कुल लागत में बदलाव दर्शाते हैं
  • slack = शून्य होना चाहिए

कुल उत्पादन ≤ कुल उत्पादन क्षमता:

  • 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 prices और slack)
  • हल करने और परिणाम दिखाने का कोड
  • संभावित बिज़नेस प्रश्न
Python में सप्लाई चेन एनालिटिक्स

बहुत बढ़िया! अब आपकी बारी

Python में सप्लाई चेन एनालिटिक्स

Preparing Video For Download...