การผลิตเสื้อผ้า: หลายกระบวนการและการสร้างโมดูล
คุณได้รับมอบหมายให้สร้างแบบจำลอง discrete-event เพื่อช่วยเพิ่มประสิทธิภาพโรงงานผลิตเสื้อผ้าในเมืองมิลาน ประเทศอิตาลี ซึ่งเป็นที่รู้จักในฐานะเมืองหลวงแห่งแฟชั่น
คุณตื่นเต้นมากและต้องการให้แน่ใจว่าจะสร้างโมเดลที่มีประโยชน์และรองรับการขยายตัวได้ เพราะรู้ดีว่าอุตสาหกรรมเสื้อผ้านั้นซับซ้อนและมีกระบวนการรวมถึงทรัพยากรมากมายที่ยังคงต้องศึกษาเพิ่มเติม
หลังจากค้นคว้าข้อมูลแล้ว คุณได้รวบรวมรายการกระบวนการดังแสดงในตารางด้านล่าง โดยได้สร้างฟังก์ชันแยกสำหรับแต่ละกระบวนการอย่างรอบคอบ เพื่อให้โมเดลมีความเป็นโมดูลและสามารถขยายได้อย่างมีระเบียบ
ขณะนี้ คุณได้รับข้อเสนอแนะจากผู้จัดการ และได้รับแจ้งให้เพิ่มกระบวนการใหม่เข้าไปในโมเดล คือ "การทำความสะอาดจุดด่างและซักรีด" ซึ่งควรอยู่ระหว่างขั้นตอนที่ 8 และ 9 (ดูแถวในตารางที่ไฮไลต์สีแดง) โดยได้นำเข้าแพ็กเกจ random และ simpy แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create a function for the new process
def ____(gen_type=None, gauss_mean=None, gauss_std=None, unif_start=None, unif_end=None):
if gen_type == "gauss":
duration = random.gauss(gauss_mean, gauss_std)
elif gen_type == "uniform":
duration = random.uniform(unif_start, unif_end)
return duration
def all_processes(env, prod_line):
with prod_line.request() as request:
yield request
t1 = fabric_relaxing(gen_type="gauss", gauss_mean=2*60, gauss_std=15)
t2 = spread_form_layout(gen_type="gauss", gauss_mean=6, gauss_std=1)
t3 = laying_paper_pattern(gen_type="uniform", unif_start=3, unif_end=0.5)
t4 = marking(gen_type="gauss", gauss_mean=6, gauss_std=1)
t5 = cutting(gen_type="gauss", gauss_mean=5, gauss_std=0.5)
t6 = embroidery_screen_and_printing(gen_type="uniform", unif_start=10, unif_end=2)
t7 = sewing(gen_type="gauss", gauss_mean=15, gauss_std=3)
t8 = checking(gen_type="gauss", gauss_mean=2, gauss_std=0.5)
# Add the new process
tnew = ____
# Account for the new process duration in the entire process duration
total_duration = sum([t1, t2, t3, t4, t5, t6, t7, t8, ____, t9, t10])
yield env.timeout(total_duration)