เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การสร้างแบบจำลอง Discrete-Event

คุณได้รับมอบหมายให้สร้างแบบจำลอง Discrete-Event สำหรับการดำเนินงานฟาร์ม เพื่อช่วยจัดสรรทรัพยากร เพิ่มประสิทธิภาพการผลิต และระบุ-กำจัดคอขวด

ขณะนี้ยังอยู่ในขั้นตอนการหารือกับเพื่อนร่วมงานเกี่ยวกับกระบวนการต่าง ๆ และระดับรายละเอียดที่ควรนำมาใช้ในโมเดล จึงได้ตกลงกันว่าจะรวบรวมข้อมูลไว้ในดิกชันนารีชื่อ process_dict ที่มีโครงสร้างดังนี้ โดยดิกชันนารีนี้จะได้รับการอัปเดตเมื่อมีข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการต่าง ๆ

process_dict = {
    "Process name 1":  <duration>,
    "Process name 2":  <duration>,
    ...
}

มาสร้างแบบจำลอง Discrete-Event แบบทั่วไปชื่อ discrete_model_farm() ที่สามารถจัดตารางเหตุการณ์ Discrete ได้ตามจำนวนที่กำหนดในดิกชันนารี

อาร์กิวเมนต์อินพุตของโมเดล (เรียงตามลำดับ) มีดังนี้:

  1. process_dict: ดิกชันนารีที่เก็บข้อมูลเกี่ยวกับกระบวนการต่าง ๆ
  2. simulation_time: ช่วงเวลาของการจำลอง

หน่วยเวลาในโมเดลนี้วัดเป็นวัน

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดค่าเริ่มต้นของตัวแปรสถานะของโมเดล ได้แก่ time (ติดตามเวลา) และ supply_chain (ติดตามจำนวนรอบ) โดยตั้งค่าทั้งสองเป็นศูนย์
  • กำหนดเงื่อนไขสิ้นสุด เพื่อให้โมเดลทำงานต่อเนื่องในขณะที่ time ยังน้อยกว่า simulation_time
  • บวกระยะเวลาของกระบวนการเข้ากับตัวแปรสถานะ time

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

def discrete_model_farm(process_dict, simulation_time):
  # Initiate variables
  time = ____
  supply_chain = ____

  # Define ending condition
  while ____ < ____:

    supply_chain += 1
    process_names = list(process_dict.keys())

    for p in range(len(process_names)):
		  
      event_duration = process_dict[process_names[p]]
          
      # Add the process duration
      ____ += event_duration
      print(f"{process_names[p]}  (completed): time = {time}")
          
    print(f"COMPLETED: Production cycle #{supply_chain} | Time = {time} days")  
แก้ไขและรันโค้ด