BaşlayınÜcretsiz Başlayın

Modelini oluştur: Uçak siparişleri üret

Artık SimPy ortamı ve kaynaklar oluşturulduğuna göre, bunu uçak satın alma siparişlerini simüle eden bir üreteçle bağlayalım. Toplam 30 uçak siparişi var.

assembly_line() fonksiyonu, farklı uçak bileşeni üretim bölümleri için ardışık kaynak talepleri yapar. Aşağıdaki kod böyle bir talebi gösterir.

# step_1_fuselage kaynağı için talebi başlat
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]])

Bu egzersiz

Python ile Ayrık Olay Benzetimi

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Sahte bir değişken olan request_i kullanarak tüm sipariş taleplerini (total_num_orders) yapmak için bir for döngüsü oluştur.
  • For döngüsü sırasında her uçak talebi için yeni bir süreç oluştur; tüm süreçler assembly_process_request üretecine dayanır.
  • Tüm 30 uçak tek partide talep edildi, bu yüzden istekler arasında bekleme süresi olmadığını yansıtacak şekilde kodu tamamla.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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(____)
Kodu Düzenle ve Çalıştır