अपना मॉडल बनाएँ: विमान ऑर्डर जनरेट करें
अब जब SimPy environment और resources बना लिए गए हैं, तो आइए इसे एक generator से जोड़ते हैं जो विमान ख़रीद ऑर्डर को simulate करता है. कुल 30 विमान ऑर्डर हैं.
assembly_line() फंक्शन विमान के अलग-अलग कॉम्पोनेंट मैन्युफैक्चरिंग सेक्शन्स के लिए क्रमवार resource requests करता है.
नीचे दिया गया कोड ऐसी ही एक request दिखाता है.
# Open the resource step_1_fuselage request
with step_1_fuselage.request() as slot_request_1:
request_1_time = env.now
yield slot_request_1
print(f"time: {env.now:7.4f} | Aircraft {aircraft_id:02d}
| Enters: step_1_fuselage
| Queued for {env.now-request_1_time} hours")
yield env.timeout(processing_time[processing_time_step_names[0]])
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Discrete Event Simulation
अभ्यास निर्देश
- एक for-loop बनाएँ जो सभी order requests (
total_num_orders) करे, और इसके लिएrequest_iनाम का एक dummy वैरिएबल उपयोग करें. - for-loop के दौरान हर aircraft request के लिए एक नया process शुरू करें; सभी processes generator
assembly_process_requestपर आधारित हों. - सभी 30 aircraft एक ही बैच में request किए गए हैं, इसलिए कोड को इस तरह पूरा करें कि requests के बीच कोई प्रतीक्षा समय न हो.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
def order_aircraft(env, total_num_orders, step_1_fuselage, step_2_wings, step_3_power_plant, step_4_landing_gear):
# Generate the orders with a for-loop
____ request_i in range(total_num_orders):
assembly_process_request = assembly_line(env, request_i, step_1_fuselage, step_2_wings, step_3_power_plant, step_4_landing_gear)
# Initiate an assembly line process for each request
env.____(assembly_process_request)
# Clock-in the time between requests
yield env.timeout(____)