Mengembangkan model peristiwa-diskret
Anda diminta untuk mengembangkan model peristiwa-diskret untuk suatu operasi pertanian guna membantu mengalokasikan sumber daya, meningkatkan produktivitas, serta mengidentifikasi dan menghilangkan kemacetan proses.
Anda masih mendiskusikan berbagai proses yang terlibat bersama rekan kerja dan sejauh mana detailnya perlu direpresentasikan dalam model. Karena itu, Anda sepakat bahwa informasi tersebut akan dikompilasi dalam sebuah dictionary bernama process_dict dengan struktur berikut. Gagasannya adalah dictionary ini akan diperbarui seiring tersedianya lebih banyak informasi tentang proses.
process_dict = {
"Process name 1": <duration>,
"Process name 2": <duration>,
...
}
Mari membangun model peristiwa-diskret generik bernama discrete_model_farm() yang dapat menjadwalkan sejumlah peristiwa diskret apa pun yang didefinisikan dalam dictionary tersebut.
Argumen masukan model (berurutan) adalah:
process_dict: Dictionary berisi informasi tentang prosessimulation_time: Periode simulasi
Waktu dalam model akan diukur dalam hari.
Latihan ini merupakan bagian dari kursus
Simulasi Peristiwa Diskret dengan Python
Instruksi latihan
- Inisialisasi variabel keadaan model, yaitu
time(melacak waktu) dansupply_chain(melacak jumlah siklus), lalu setel keduanya ke nol. - Tetapkan kondisi penghentian sehingga model berjalan selama
timelebih kecil daripadasimulation_time. - Tambahkan durasi proses ke variabel keadaan
time.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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")