Peristiwa dan proses non-deterministik

Simulasi Peristiwa Diskret dengan Python

Diogo Costa (PhD, MSc)

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

Non-determinisme peristiwa

CATATAN: Istilah "peristiwa" dan "proses" digunakan secara bergantian.

Apa itu non-determinisme peristiwa (atau proses)?

  • Ketidakmampuan memprediksi proses secara akurat
  • Proses disebut "Non-Deterministik"

Mengapa proses deterministik penting?

  • Aktivitas alam dan manusia sering melibatkan proses non-deterministik
  • Setiap kali terjadi, polanya berbeda
  • Durasi tidak bisa ditentukan dengan tepat
  • Dapat sangat memengaruhi keluaran sistem
Simulasi Peristiwa Diskret dengan Python

Contoh proses atau peristiwa non-deterministik

Dunia alami

  • Momen gunung berapi meletus
  • Detik tepat turunnya hujan
  • Waktu dan lokasi sambaran petir
  • Waktu dan lokasi terbentuknya tornado

Proses yang dipicu/didorong manusia

  • Momen mesin rusak
  • Momen seseorang ingin ke kamar mandi
  • Momen bayi mulai menangis
  • Apakah penerbangan komersial akan tertunda
Simulasi Peristiwa Diskret dengan Python

Mewakili peristiwa non-deterministik dalam model kejadian-diskret

Proses non-deterministik

  • Dampaknya pada sistem tidak dapat diulang persis
  • Durasi tepat tidak diketahui

Statistika

  • Mewakili variabilitas durasi proses
  • Paket random membantu untuk ini

  • Contoh: random.randint(start, end)

import random

# Non-deterministic processes
process_1 = [5, 15]

while time < simulation_time:

   # Update simulation time: process_1
   time += random.randint(
               process_1[0], 
               process_1[1])

Simulasi Peristiwa Diskret dengan Python

Mewakili peristiwa non-deterministik dengan SimPy

  • Tidak ada metode khusus untuk mengakomodasi proses non-deterministik

  • Variabilitas durasi peristiwa dihitung seperti pada model non-berbasis SimPy

  • Teruskan statistik yang tepat ke .timeout()

import random

# Non-deterministic processes
process_1 = [5, 15]

while True:

  # Update simulation time: process_1
  yield env.timeout(random.randint(
         process_1[0], 
         process_1[1]))
Simulasi Peristiwa Diskret dengan Python

Ayo berlatih!

Simulasi Peristiwa Diskret dengan Python

Preparing Video For Download...