PuLP मॉडलिंग की बुनियाद

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

Aaren Stubberfield

Supply Chain Analytics Mgr.

PuLP क्या है

  • PuLP Python में लिखी गई Linear (LP) और Integer Programming (IP) समस्याओं के लिए एक मॉडलिंग फ्रेमवर्क है

  • COIN-OR Foundation (Computational Infrastructure for Operations Research) द्वारा मेंटेन किया जाता है

  • PuLP सॉल्वर के साथ इंटरफ़ेस करता है

    • CPLEX
    • COIN
    • Gurobi
    • आदि…
Python में सप्लाई चेन एनालिटिक्स

PuLP उदाहरण – संसाधन शेड्यूलिंग

  • एक बुटीक केक बेकरी के लिए कंसल्टेंट जो 2 तरह के केक बेचती है
  • 30 दिन का महीना
  • संसाधन:
    • 1 ओवन
    • 2 बेकर
    • 1 पैकेजिंग पैकर – केवल 22 दिन काम करता है
Python में सप्लाई चेन एनालिटिक्स

PuLP उदाहरण – संसाधन शेड्यूलिंग

  • 2 तरह के केक के लिए अलग संसाधन आवश्यकता:
Cake A Cake B
Oven 0.5 days 1 day
Bakers 1 day 2.5 days
Packers 1 day 2 days

.

Cake A Cake B
Profit $20.00 $40.00
Python में सप्लाई चेन एनालिटिक्स

PuLP उदाहरण – संसाधन शेड्यूलिंग

  • उद्देश्य: लाभ को अधिकतम करना
    • Profit = 20*A + 40*B
  • शर्तें:
    • A ≥ 0
    • B ≥ 0
    • 0.5A + 1B ≤ 30
    • 1A + 2.5B ≤ 60
    • 1A + 2B ≤ 22
Python में सप्लाई चेन एनालिटिक्स

PuLP के लिए सामान्य मॉडलिंग प्रक्रिया

  1. मॉडल इनिशियलाइज़ करें
  2. निर्णय वैरिएबल परिभाषित करें
  3. ऑब्जेक्टिव फंक्शन परिभाषित करें
  4. कंस्ट्रेंट्स परिभाषित करें
  5. मॉडल सॉल्व करें
Python में सप्लाई चेन एनालिटिक्स

मॉडल इनिशियलाइज़ करना - LpProblem()

LpProblem(name='NoName', sense=LpMinimize)
  • name = आउटपुट .lp फाइल में समस्या का नाम, जैसे "My LP Problem"
  • sense = ऑब्जेक्टिव फंक्शन को अधिकतम या न्यूनतम करना
    • Minimize = LpMinimize (default)
    • Maximize = LpMaximize
Python में सप्लाई चेन एनालिटिक्स

PuLP उदाहरण – संसाधन शेड्यूलिंग

  1. मॉडल इनिशियलाइज़ करें
from pulp import *

# Initialize Class
model = LpProblem("Maximize Bakery Profits", LpMaximize)
Python में सप्लाई चेन एनालिटिक्स

निर्णय वैरिएबल परिभाषित करें - LpVariable()

LpVariable(name, lowBound=None, upBound=None, cat='Continuous', e=None)
  • name = आउटपुट .lp फाइल में वैरिएबल का नाम
  • lowBound = निचली सीमा
  • upBound = ऊपरी सीमा
  • cat = वैरिएबल का प्रकार
    • Integer
    • Binary
    • Continuous (default)
  • e = कॉलम-आधारित मॉडलिंग के लिए उपयोग होता है
Python में सप्लाई चेन एनालिटिक्स

PuLP उदाहरण – संसाधन शेड्यूलिंग

  1. Initialize Class
  2. वैरिएबल परिभाषित करें
# Define Decision Variables
A = LpVariable('A', lowBound=0, cat='Integer')
B = LpVariable('B', lowBound=0, cat='Integer')
Python में सप्लाई चेन एनालिटिक्स

PuLP उदाहरण – संसाधन शेड्यूलिंग

  1. Initialize Class
  2. Define Variables
  3. ऑब्जेक्टिव फंक्शन परिभाषित करें
# Define Objective Function
model += 20 * A + 40 * B
Python में सप्लाई चेन एनालिटिक्स

PuLP उदाहरण – संसाधन शेड्यूलिंग

  1. Initialize Class
  2. Define Variables
  3. Define Objective Function
  4. कंस्ट्रेंट्स परिभाषित करें
# Define Constraints
model += 0.5 * A + 1 * B <= 30
model += 1 * A + 2.5 * B <= 60
model += 1 * A + 2 * B <= 22
Python में सप्लाई चेन एनालिटिक्स

PuLP उदाहरण – संसाधन शेड्यूलिंग

  1. Initialize Class
  2. Define Variables
  3. Define Objective Function
  4. Define Constraints
  5. मॉडल सॉल्व करें
# Solve Model
model.solve()
print("Produce {} Cake A".format(A.varValue))
print("Produce {} Cake B".format(B.varValue))
Python में सप्लाई चेन एनालिटिक्स

PuLP उदाहरण – संसाधन शेड्यूलिंग

from pulp import *

# Initialize Class
model = LpProblem("Maximize Bakery Profits",
                   LpMaximize)

# Define Decision Variables
A = LpVariable('A', lowBound=0,
                cat='Integer')
B = LpVariable('B', lowBound=0, 
                cat='Integer')

# Define Objective Function
model += 20 * A + 40 * B
# Define Constraints
model += 0.5 * A + 1 * B <= 30
model += 1 * A + 2.5 * B <= 60
model += 1 * A + 2 * B <= 22

# Solve Model
model.solve()
print("Produce {} Cake A".format(A.varValue))
print("Produce {} Cake B".format(B.varValue))
Python में सप्लाई चेन एनालिटिक्स

सारांश

  • PuLP एक Python LP/IP मॉडलर है
  • PuLP मॉडलिंग प्रक्रिया के 5 स्टेप रिव्यू किए

    1. मॉडल इनिशियलाइज़ करें
    2. निर्णय वैरिएबल परिभाषित करें
    3. ऑब्जेक्टिव फंक्शन परिभाषित करें
    4. कंस्ट्रेंट्स परिभाषित करें
    5. मॉडल सॉल्व करें
  • संसाधन शेड्यूलिंग उदाहरण पूरा किया

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

अभ्यास करते हैं!

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

Preparing Video For Download...