สายการประกอบรถยนต์: เพิ่มกระบวนการแบบไม่ตายตัว
แบบฝึกหัดนี้เน้นที่กระบวนการแบบไม่ตายตัว (non-deterministic) โดยยังไม่ใช้ SimPy แบบฝึกหัดถัดไปจะนำ SimPy มาใช้
ในแบบจำลองเหตุการณ์ไม่ต่อเนื่องของสายการผลิตรถยนต์ก่อนหน้านี้ คุณได้รับมอบหมายให้คำนึงถึงความผันแปรของระยะเวลาในแต่ละกระบวนการด้วย กลุ่มกระบวนการที่ระบุไว้ก่อนหน้านี้ประกอบด้วย (1) "การเชื่อมและการพ่นสี" และ (2) "การประกอบชิ้นส่วนและการทดสอบ" แต่ละกลุ่มกระบวนการครอบคลุมงานย่อยหลายขั้นตอน อย่างไรก็ตาม ในขั้นนี้ให้มุ่งเน้นที่การเขียนโค้ดแบบจำลองในระดับภาพรวมก่อน
จากการศึกษาก่อนหน้า พบว่ากระบวนการเชื่อมและพ่นสีใช้เวลาเฉลี่ย 15 ชั่วโมง ส่วนการประกอบชิ้นส่วนและการทดสอบใช้เวลาเฉลี่ย 24 ชั่วโมง
จากการวิจัยและติดตามผลเพิ่มเติม พบว่ากระบวนการเชื่อมและพ่นสีอาจมีความผันแปรได้ห้าชั่วโมง (มากขึ้นหรือน้อยลง) และการประกอบชิ้นส่วนอาจผันแปรได้หกชั่วโมง (มากขึ้นหรือน้อยลง)
อัปเดตแบบจำลองเหตุการณ์ไม่ต่อเนื่องให้รองรับความผันแปรของระยะเวลาในแต่ละเหตุการณ์
โหลดแพ็กเกจ random ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python
คำแนะนำการฝึกหัด
- บันทึกระยะเวลาของกระบวนการ "การเชื่อมและการพ่นสี" โดยคำนึงถึงข้อมูลความผันแปรที่ได้รับใหม่ โดยใช้เมธอดจากแพ็กเกจ
randomที่สุ่มจำนวนเต็ม - บันทึกระยะเวลาของกระบวนการ "การประกอบชิ้นส่วนและการทดสอบ" โดยคำนึงถึงข้อมูลความผันแปรที่ได้รับใหม่ โดยใช้เมธอดจากแพ็กเกจ
randomที่สุ่มจำนวนเต็ม
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def car_production_line(SIMULATION_TIME):
car_number, time = 0, 0
while time < SIMULATION_TIME:
car_number += 1
# Clock the time requirement for: Welding and Painting
time += ____
if time >= SIMULATION_TIME: break
print(f"Time = {time:7.4f} | Car {car_number:02d} | Welding and Painting")
# Clock the time requirement for: Assembly of parts and Testing
time += ____
if time >= SIMULATION_TIME: break
print(f"Time = {time:7.4f} | Car {car_number:02d} | Assembly of parts and Testing")
print(f"Time = {time:7.4f} | Car {car_number:02d} | Car ready for shipping!")
car_production_line(SIMULATION_TIME)