Objective functions और system optimization

Python में Discrete Event Simulation

Diogo Costa (PhD, MSc)

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

System optimization

  • System optimization

    • सर्वोत्तम ऑपरेशनल कॉन्फ़िगरेशन पहचानें
  • Human-driven processes

    • कम लागत में अधिकतम आउटपुट (कम संसाधन, कम समय)
  • वे प्रक्रियाएँ पहचानें जिनका सिस्टम आउटपुट पर ज्यादा असर है

  • Monte-Carlo sampling

    • सफलता नापें और परिणाम रैंक करें
  • Objective functions

    • लक्ष्य फंक्शन जो परफॉर्मेंस गोल सेट करता है
Python में Discrete Event Simulation

Objective function

  • आउटपुट लक्ष्य बताने वाला गणितीय व्यंजक

  • सिमुलेशन परिदृश्यों को स्कोर करें

उदाहरण

  • Process A: 35%
  • Process B: 20%
  • Process C: 45%

कुल: 100%

  • Process C का वेट सबसे अधिक है

Search & Stop: अलग-अलग मॉडल कॉन्फ़िगरेशन चलाएँ और वांछित शर्त पूरी होते ही रोकें

while total_duration < 24:
      model_to_run()

Score & Rank: वेटिंग क्राइटेरिया के आधार पर सिमुलेशन को स्कोर और रैंक करें

for i in range(num_runs):
   out_1, out_2 = model_to_run(i)
   scores[i] = 0.3 * out_1 + 0.7 * out_2
Python में Discrete Event Simulation

Approach 1: Search & Stop

  • कई परिदृश्यों के लिए Monte Carlo sampling
  • अलग-अलग non-deterministic प्रक्रियाओं की घटनाएँ शामिल
  • Optimal scenario सर्च लूप शर्त पूरी होते ही रुकता है

उदाहरण

scenario_num = 0
while scenario_num == 0 or total_duration[s] > 40:
  scenario_num += 1
  env = simpy.Environment()
  env.process(manufacturing_proc(env))
  env.run()
  plot_results()

मैन्युफैक्चरिंग गतिविधि की प्रतिक्रिया एनवेलप दिखाने वाला प्लॉट, जिसमें क्रमिक प्रक्रियाओं की श्रृंखला है; नीचे नीली रेखा उस अंतिम रन को दर्शाती है जिसने Search & Stop विधि की आवश्यकताएँ पूरी कीं.

Python में Discrete Event Simulation

Approach 2: Score & Rank

  • कई परिदृश्यों के लिए Monte Carlo sampling
  • परिणामों को स्कोर और रैंक करें

उदाहरण: मैन्युफैक्चरिंग उद्योग

कई क्रमिक टास्क/प्रोसेस शामिल, जैसे कार प्रोडक्शन लाइन.

def objective_function_calc():
  score_objfunc = np.ones(num_scenarios)

  for s in range(num_scenarios):
    for p in range(len(processes)):

      score_objfunc[s] += (
         processes[p]["duration_hours"]
         * processes[p]["score_weight"])
Python में Discrete Event Simulation

Approach 2: Score & Rank

Score

"RED": कम स्कोर; "BLUE": उच्च स्कोर स्कैटर प्लॉट जो "Unloading and Preparing", "Cutting" और "Polishing" प्रक्रियाओं के लिए सिमुलेट किए गए विभिन्न परिदृश्यों का objective function स्कोर दिखाता है.

Rank

सिमुलेशन रन को स्कोर-रैंक करें प्लॉट जो "Unloading and Preparing", "Cutting", और "Polishing" प्रक्रियाओं के लिए सिमुलेट किए गए परिदृश्यों को objective function स्कोर के अनुसार रैंक करता है.

Python में Discrete Event Simulation

वे critical प्रक्रियाएँ पहचानना जो परफॉर्मेंस सीमित करती हैं

Search & stop

मैन्युफैक्चरिंग गतिविधि की प्रतिक्रिया एनवेलप दिखाने वाला प्लॉट, जिसमें क्रमिक प्रक्रियाएँ शामिल हैं; नीचे नीली रेखा उस अंतिम रन से मेल खाती है जिसने Search & Stop पद्धति की आवश्यकताएँ पूरी कीं. सर्वश्रेष्ठ सिमुलेशन के लिए प्रत्येक प्रक्रिया की न्यूनतम अवधि को हाइलाइट किया गया है.

  • "Blue" रेखा ने "stop" क्राइटेरिया पूरा किया

    • कुल अवधि = 30 min
  • "best" सिमुलेशन का ब्रेकडाउन:

    • Process 1: लगभग 10 min (sum = 20 min)
    • Process 2: लगभग 10 min (sum = 20 min)
    • Process 3: लगभग 8 min (sum = 28 min)
    • Process 4: लगभग 2 min (sum = 30 min)
  • यह लक्ष्य पाने में "Process 1" critical है

Python में Discrete Event Simulation

वे critical प्रक्रियाएँ पहचानना जो परफॉर्मेंस सीमित करती हैं

Score

उद्देश्य: सबसे कम स्कोर = सबसे कम अवधि स्कैटर प्लॉट जो "Unloading and Preparing", "Cutting" और "Polishing" प्रक्रियाओं के लिए सिमुलेट किए गए विभिन्न परिदृश्यों का objective function स्कोर दिखाता है. सर्वश्रेष्ठ सिमुलेशन के लिए प्रत्येक प्रक्रिया की न्यूनतम अवधि को हाइलाइट किया गया है.

Rank

यह लक्ष्य पाने में "Process 1" critical है प्लॉट जो "Unloading and Preparing", "Cutting", और "Polishing" प्रक्रियाओं के लिए सिमुलेट किए गए परिदृश्यों को objective function स्कोर के अनुसार रैंक करता है. सर्वश्रेष्ठ सिमुलेशन के लिए प्रत्येक प्रक्रिया की न्यूनतम अवधि को हाइलाइट किया गया है.

Python में Discrete Event Simulation

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

Python में Discrete Event Simulation

Preparing Video For Download...