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
Instruksi latihan
- Buat for-loop untuk membuat semua permintaan pesanan (
total_num_orders) menggunakan variabel dummy bernamarequest_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(____)