Ayrık olay modeli geliştirme
Kaynak tahsisini yapmak, verimliliği artırmak ve darboğazları belirleyip ortadan kaldırmak için bir tarım operasyonu adına bir ayrık olay modeli geliştirmen istendi.
Hâlâ meslektaşlarınla birlikte hangi süreçlerin yer alacağı ve modelde ne kadar ayrıntılı temsil edileceği üzerine konuşuyorsun. Bu nedenle, bilgilerin aşağıdaki yapıda process_dict adlı bir sözlükte derlenmesi konusunda anlaştınız. Amaç, süreçlerle ilgili daha fazla bilgi geldikçe bu sözlüğün güncellenmesi.
process_dict = {
"Process name 1": <duration>,
"Process name 2": <duration>,
...
}
Sözlükte tanımlanan herhangi bir sayıda ayrık olayı zamanlayabilen discrete_model_farm() adlı genel bir ayrık olay modeli oluşturalım.
Modelin girdi argümanları (sırasıyla):
process_dict: Süreçler hakkında bilgileri içeren sözlüksimulation_time: Simülasyon süresi
Modelde zaman gün cinsinden ölçülecek.
Bu egzersiz
Python ile Ayrık Olay Benzetimi
kursunun bir parçasıdırEgzersiz talimatları
- Modelin durum değişkenlerini başlat:
time(zamanı takip eder) vesupply_chain(döngü sayısını takip eder) ve her ikisini de sıfıra ayarla. - Bitiş koşulunu tanımla; model
time,simulation_timedeğerinden küçük olduğu sürece çalışsın. - Sürecin süresini
timedurum değişkenine ekle.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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")