Mulai sekarangMulai gratis

Bangun model Anda: Hasilkan pesanan pesawat

Sekarang setelah lingkungan SimPy dan sumber daya dibuat, mari kita hubungkan dengan sebuah generator yang mensimulasikan pesanan pembelian pesawat. Terdapat 30 pesanan pesawat.

Fungsi assembly_line() melakukan permintaan sumber daya secara berurutan untuk berbagai bagian manufaktur komponen pesawat. Kode di bawah ini menunjukkan salah satu contoh permintaan tersebut.

# Buka permintaan resource step_1_fuselage
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]])

Latihan ini merupakan bagian dari kursus

Simulasi Peristiwa Diskret dengan Python

Lihat Kursus

Instruksi latihan

  • Buat for-loop untuk membuat semua permintaan pesanan (total_num_orders) menggunakan variabel dummy bernama request_i.
  • Buat proses baru untuk setiap permintaan pesawat selama for-loop; semua proses didasarkan pada generator assembly_process_request.
  • Semua 30 pesawat diminta dalam satu batch, jadi lengkapi kode untuk mencerminkan tidak adanya waktu tunggu antarpermintaan.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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(____)
Edit dan Jalankan Kode