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

สร้างโมเดล: สร้างคำสั่งซื้อเครื่องบิน

เมื่อสร้าง SimPy environment และทรัพยากรต่าง ๆ เรียบร้อยแล้ว มาเชื่อมต่อกับ generator ที่จำลองคำสั่งซื้อเครื่องบินกัน โดยมีคำสั่งซื้อทั้งหมด 30 รายการ

ฟังก์ชัน assembly_line() จะส่งคำขอทรัพยากรตามลำดับไปยังส่วนต่าง ๆ ของสายการผลิตชิ้นส่วนเครื่องบิน โค้ดด้านล่างแสดงตัวอย่างคำขอหนึ่งรายการ

# 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

ดูคอร์ส

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

  • สร้าง for-loop เพื่อวนคำขอสั่งซื้อทั้งหมด (total_num_orders) โดยใช้ตัวแปรชั่วคราวชื่อ request_i
  • สร้างกระบวนการใหม่สำหรับคำขอเครื่องบินแต่ละรายการภายใน for-loop โดยทุกกระบวนการอิงจาก generator assembly_process_request
  • เครื่องบินทั้ง 30 ลำถูกสั่งซื้อพร้อมกันในชุดเดียว ดังนั้นเติมโค้ดให้สะท้อนว่าไม่มีเวลารอระหว่างคำขอ

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

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

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(____)
แก้ไขและรันโค้ด