Olayları ve yöntemleri sözde rasgeleleştirme

Python ile Ayrık Olay Benzetimi

Diogo Costa (PhD, MSc)

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

Süreç (veya olay) rasgeleleştirme

Rasgeleleştirme nedir?

  • Bir şeyi rasgele hale getirme süreci
  • Bu bağlamda, olayları (veya süreçleri) rasgele yapmak
  • Deterministik olmayan süreçleri simüle etmek için yararlı

Not edilmeli: Bilgisayarlar tasarım gereği gerçek anlamda rasgele sayılar üretemez.

  • Üreteci daha rasgele kılmak için çoğunlukla mevcut zaman ve diğer dış değişkenler hesaplamalarda kullanılır.
Python ile Ayrık Olay Benzetimi

Gerçek vs. sözde rasgele

"Gerçek" rasgele üretim

  • Sayılar gerçekten rasgeledir
  • Rasgelelik makinenin içsel kısıtlarıyla sınırlıdır

Sözde rasgele üretim

  • Sayılar olasılık dağılımlarına göre üretilir
  • Örnek sayısı arttıkça istatistiksel dağılım belirginleşir

Örnek: Manuel montaj görevi olan fabrika

Belirli bir manuel montajın tekrarlanmasıyla süresini gösteren saçılım grafiği.

  • Bir sonraki sözde rasgele gerçekleşmeyi üretmek için olasılık dağılımı daha uygundur
Python ile Ayrık Olay Benzetimi

Sözde rasgeleleştirme için paketler

Birçok istatistik paketi kullanılabilir:

  • NumPy
  • SciPy
  • statsmodels
  • pandas
  • Random
  • scikit-learn

Random paketi

  • Rasgele ve sözde rasgele sayılar üretir

Odak noktamız

  • Ayrık olaylı modellerde yaygın kullanılan yöntemler
Python ile Ayrık Olay Benzetimi

Belirli aralıkta rasgele sayı

Belirli aralıkta rasgele tamsayı

Yöntem:

random.randint(start, end)

Örnek: 3 (dahil) ile 9 (dahil değil) arasında rasgele tamsayı

random.randint(3, 9)
5

Belirli aralıkta rasgele float

Yöntem:

random.uniform(start, end)

Örnek: 3 ile 9 arasında rasgele float

random.uniform(3, 9)
6.4557754
Python ile Ayrık Olay Benzetimi

Rasgele örnekler ve diziler

Bir diziden rasgele örnek

Yöntem:

random.sample(mylist, k=number_samples)

Örnek: Bir listeden 2 rasgele öğe

mylist = ["apple", "banana", "cherry"]
random.sample(mylist, k=2)
['cherry', 'banana']

Listeyi karıştırma (öğeleri yeniden sırala)

Yöntem:

random.shuffle(mylist)

Örnek: Liste öğelerini rasgele yeniden sıralama

mylist = ["book", "pencil", "eraser"]
random.shuffle(mylist)
['eraser', 'pencil', 'book']
Python ile Ayrık Olay Benzetimi

Gauss ve üstel dağılımlar

Gauss dağılımı

Yöntem:

random.gauss(average, standard_dev)

Örnek: Ortalama 100, standart sapma 50 ile sözde rasgele float

random.gauss(100, 50)
123.59383

Üstel dağılım

Yöntem:

random.expovariate(lambda)
  • lambda>0 ise sonuçlar [0, infinity]
  • lambda<0 ise sonuçlar [-infinity, 0]

Örnek: lambda=1.5 ile üstel dağılımdan sözde rasgele float: random.expovariate(1.5)

0.2234355
Python ile Ayrık Olay Benzetimi

Haydi pratik yapalım!

Python ile Ayrık Olay Benzetimi

Preparing Video For Download...