6 SİSTEM SİMÜLASYONU Yrd Doç. Dr. Sırma Yavuz Çarşamba : - : (F-9) Ofis: B Blok - Kat Donanım Lab. Ofis Saatleri : Çarşamba 6: - 7: İçerik Simülasyon Modeli Yaklaşımları Kuyruk Sistemlerinin Simülasyonu Simülasyon Tablosu Kullanılarak Simülasyon Adımlarının İncelenmesi Rasgele Sayılar Rasgele Basamaklar Varışlar Arası ve Servis Sürelerinin Üretilmesi Olay Çizelgeleme-Planlama Yaklaşımı ile Tek-Kanallı Kuyruk Örneği Üzerinde İncelemeler
Simülasyon Modeli Yaklaşımları Olay çizelgeleme-planlama yaklaşımı Olaylar ve bunların sistem üzerindeki etkilerine yoğunlaşılır. Proses etkileşimleri yaklaşımı (işletim sistemlerindeki prosesler gibi) -Model varlıklar veya objeler türünden tanımlanır. - İçgüdüsel bir yanı vardır. - Prosesleri üst düzey bloklar veya bağlantılarla tanımlamaya olanak verir. - Olay planlama gizlidir. Her iki yaklaşım da değişken zaman artımı (variable time advance) kullanır. Simülasyon Modeli Yaklaşımları Aktivite tarama yaklaşımı - Hangi aktivitenin başlayabileceğine karar vermek için sabit zaman artımı ve kural tabanlı yaklaşım kullanılır. -Her zaman artımında her bir aktivite için koşullar kontrol edilir ve gerekli koşullar sağlanırsa aktivite başlar. - Küçük sistemler için uygundur.
Aktivite Tarama Yaklaşımı Bu yaklaşım kavramsal olarak basit görünse de sürekli bir aktivitenin başlayıp başlayamayacağını kontrol etmek simülasyonu yavaşlatır. Sonradan olay planlanlama yaklaşımının bazı özellikleri eklenerek bu yaklaşım fazlı bir hale dönüşmüş, ancak biraz daha karmaşık bir hal almış. fazlı yaklaşımda olaylar süreli aktiviteler olarak tanımlanır ve birincil veya koşullu olmak üzere iki tip aktivite tanımlanır. Böylelikle gereksiz kontroller azaltılmıştır. Aktivite Tarama Yaklaşımı Kapı Simülasyonu Örneği
Süreç (Proses) Etkileşimleri Yaklaşımı Proses Etkileşimleri Yaklaşımında analist süreçler cinsinden düşünür. Süreç zamanda dizilmiş olaylar, aktiviteler, gecikmeler zinciridir. Varlık sistem içinde ilerlerken gerek duyduğu kaynaklar da sürece dahildir. Genellikle sistemde birden fazla süreç aktiftir ve bunların etkileşimleri karmaşık bir hal alabilir. Süreç (Proses) Etkileşimleri Yaklaşımı Bu yaklaşımın simülasyon paketlerindeki uygulanmasında model yaratılırken etkileşimler genellikle modeli yaratan kişiden gizlenmiştir: olaylar gelecek olay listesine eklenir, diğer süreçler işlerken başka bir sürecin geçici olarak durmasına sebep olur...
Süreç (Proses) Etkileşimleri Yaklaşımı Tek Sunuculu Kuyruk- İki Müşteri Sürecinin Etkileşimi Olay Çizelgeleme-Planlama Yaklaşımı Analist olaylara ve bu olayların sistem üzerindeki etkilerine yoğunlaşır. Sistemde zaman içinde oluşan durumları takip etmek için simülasyon tabloları kullanılır.
Simülasyon Tablosu Kullanılarak Simülasyon Adımlarının İncelenmesi Öncelikle simülasyon girdilerinin karakteristikleri belirlenir. Çoğunlukla bu girdiler sürkli veya ayrık olasılık dağılımları olarak modellenir. Daha sonra simülasyon tablosu oluşturulur. Eldeki probleme bağlı olarak simülasyon tabloları farklılık gösterecektir. Simülasyon Tablosu Kullanılarak Simülasyon Adımlarının İncelenmesi Her tekrar (i=,,...,n deneme) için p adet girişi (x ij, j=,...,p), adet cevabı (y i ) bulunan simülasyon tablosu örneği : 6
Kuyruk Sistemlerinin Simülasyonu Bir kuyruk sistemi talepte bulunan nüfusu, varışların türü, servis mekanizması, sistem kapasitesi ve kuyruk disiplini ile tanımlanır. Kuyruk Sistemlerinin Simülasyonu Varışlar ve Servisler varışlar arası süre ve servis süresi dağılımı ile tanımlanır. Tek veya çok kanallı bir kuyrukta genel varış hızı toplam servis hızından düşük olmalı, aksi halde kuyruk sınırsız büyür bu tür kuyruklar kararsız ya da patlayıcı olarak nitelendirilir. 7
Kuyruk Sistemlerinin Simülasyonu Tek kanallı kuyruk için talepte bulunan nüfus sonsuzdur: - bir bireyin nüfustan ayrılıp bekleme kuyruğuna veya servise girse bile diğer bireylerin varış oranında değişme olmaz - servis süreleri bir olasılık dağılımına göre rasgele bir uzunluktadır ve zaman içinde değişmezler. Sistem kapasitesi limitsizdir yani herhangi bir sayıda birey kuyruğa girebilir?? Bireyler kuyruğa giriş sıralarına göre servis alacaklardır (First In First Out)?? Tek Kanallı bir Kuyruk Sistemi Servis alan müşteri Gelen Müşteri Kuruktaki Müşteriler Sunucu Giden Müşteri Sistem Durumu : Sistemdeki bireylerin sayısı ve sunucunun durumu (meşgulboş) Olaylar : Varış (sisteme yeni bir bireyin girişi) ve Ayrılma (servisin tamamlanması) 8
Sisteme Yeni bir Bireyin Girişi -Varış Olayı Varış Olayından Sonraki Potansiyel Birey Davranışları Kuyruk Durumu Boş Değil Boş Sunucu Durumu Meşgul Boş Kuyruğa Gir Olanaksız Kuyruğa Gir Sevis Almaya Başla 9
Servisin Tamamlanması -Ayrılma Olayı Servisin Tamamlanması Olayından Sonraki Sunucu Çıktıları Kuyruk Durumu Boş Değil Boş Sunucu Çıktıları Meşgul Boş Olanaksız Olanaksız
Kuyruk Sistemlerinin Simülasyonu Kuyruk sistemlerinin simülasyonu sonraki adımda ne olacağını belirlemek üzere bir olay listesinin tutulmasını ve bakımını gerektirir. Simülasyonda olaylar genellikle gerçek hayattaki rasgeleliği taklit edecek şekilde rasgele zamanlarda oluşur (müşterinin ne zaman varacağını, servisin ne kadar süreceğini kesin olarak bilemeyiz...) Rasgele Sayılar Rasgele Basamaklar Gerçek hayatı taklit etmek için ihtiyaç duyulan rasgeleliği elde etmek rasgele sayılar ın kullanılması ile mümkündür. Rasgele sayıların oluşturulmasında rasgele basamaklar kullanılır.
Rasgele Sayılar Rasgele Basamaklar Rasgele sayılar (,) aralığında bağımsız ve düzenli olarak dağılmıştır. Rasgele basamaklar {,,,...,9} kümesinde düzenli olarak dağılmıştır. Rasgele basamak tablosu ile Rasgele Sayıların oluşturulması: Her bir rasgele sayı için uygun sayıda (girişlerinizin gerektirdiği çözünürlüğe bağlı) basamak seçilir ve seçilen sayının soluna ondalık virgül eklenir: 9788787969.. Tek Kanallı Kuyruk Sistemi Örneği Tek kasası (ödeme noktası) olan bir dükkan Müşterilerin kasaya varış aralıkları -8 dakika arası ve rasgele değişiyor Varışlar arası sürelerin hepsi aynı olasılığa sahip Kasiyerin servis süresi -6 dakika arasında değişiyor ve farklı olasılıklara sahip müşteri için sistemi analiz etmek isteyelim...
Tek Kanallı Kuyruk Sistemi Örneği Normalde müşterilik bir örnek kümesi seçmek güvenilir sonuçlar için yeterli değil Böyle bir dükkanın simülasyonunun dükkan boş iken başlaması da doğru değil ancak hesaplamaları basit tutmak için başlangıç koşulları ve diğer tereddütleri ihmal ediyoruz... Varışlar Arası Sürelerin Dağılımı Varışlar Arası Süre (dakika) Olasılık Kümülatif Olasılık Rasgele Basamak Ataması.. -.. 6-..7-7.. 76-..6-6 6..7 66-7 7..87 7-87 8. 876- R. Basamaklar 6 - arasında Varışlar arası süre dk. R. Sayı.6. ile. arası kümülatif olasılığa karşılık gelir
Varışlar Arası Sürelerin Üretilmesi Kasaya varışları üretmek için bir grup düzgün dağılımlı rasgele sayıya ihtiyacımız var. Bu sayılar (,) aralığında olmalı ve ardarda gelen sayılar birbirinden bağımsız olmalı. Varışlar arası sürelerin olasılıkları basamak ile doğru olarak temsil edilebilir. müşteri için varışlar arası süreleri üretmek üzere 99 rasgele sayıya ihtiyacımız var (neden 99?) Varışlar Arası Sürelerin Üretilmesi Müşteri Rasgele Basamaklar Varışlar Arası Süre (dakika) Müşteri Rasgele Basamaklar Varışlar Arası Süre (dakika) - - 6 6 8 7 678 6 78 6 89 9 6 87 7 6 888 8 7 8 7 9 8 8 9 8 9 : : : 9 8
Servis Sürelerinin Dağılımı 96-. 6 86-9.9. 6-8.8. -6.6. -.. -.. Rasgele Basamak Ataması Kümülatif Olasılık Olasılık Varışlar Arası Süre (dakika) Servis Sürelerinin Üretilmesi 6 8 : : : 6 9 8 9 8 7 7 79 7 6 9 6 6 6 9 8 79 87 8 9 8 Servis Süresi (dakika) Rasgele Basamaklar Müşteri Servis Süresi (dakika) Rasgele Basamaklar Müşteri
Simülasyondan Çıkarılabilecek Bazı Sonuçlar Ortalama Bekleme Süresi Bir müşterinin kuyrukta x dakika bekleme olasılığı Kasanın boşluk-doluluk oranı (kasanın boş olma olasılığı) Ortalama servis süresi (ve beklendik değeri) Varışlar arası ortalama süre (ve beklendik değeri) Olay Çizelgeleme-Planlama Yaklaşımı Örneği (Tek-Kanallı Kuyruk) Tek Kasalı Bir Dükkan için Elle Simülasyon Örneği Sistem Durumu LQ(t) Sırada bekleyen müşteri sayısı LS(t) t anında servis verilen müşteri sayısı ( veya ) Varlıklar Servis elemanı ve müşteri özel olarak modellenmiyor (sadece durum değişkenleri içinde yer alıyor) Olaylar Varış (A) Ayrılma(D) Durma Olayı (E) t=6 anında oluşması planlanmış 6
Olay Çizelgeleme-Planlama Yaklaşımı Örneği Olay İhbarları (A,t) gelecekteki bir t anındaki varış olayı (D,t) gelecekteki bir t anındaki varış olayı (E,6) gelecekte 6 anında simülasyonu sonlandırma olayı Aktiviteler Varışlar arası süre, servis süresi Gecikme Müşterinin kuyrukta beklerken harcadığı süre Varış Olayının Uygulanması 7
Ayrılma Olayının Uygulanması Simülasyon Tablosunun Oluşturulması Daha önce üretilen varışlar arası süreler ve servis sürelerini kullanacağız : Varışlar Arası Süreler (a*) 6 7 : Servis Süreleri (s*) : 8
İstatistiklerin Toplanması Sadece servis kullanımı ve maksimum kuyruk uzunluğuna ait iki istatistik toplayacağız. o Simülasyon tablosunda servis meşgul süresi (B) ve max. kuyruk uzunluğu (MQ) değerleri toplanmıştır. o Servis kullanımı daha sonra servis meşgul süresinin (B) geçen toplam süreye (T E ) bölünmesi ile elde edilir. Simülasyon Tablosu Saat Sistem Durumu LQ(t) LS(t) Gelecek Olay Listesi Açıklama Kümülatif İstatistikler MQ B (A,) (D,) (E,6) Önce A oluşuyor (a*=) sonraki varışı programla A (s*=) ilk ayrılışı D programla (A,) (D,) (E,6) İkinci A oluşuyor: (A,) (a*=) sonraki varışı A prlanla (müşteri gecikti) (D,) (A,8) (E,6) Üçüncü A oluşuyor: (A,) (a*=6) sonraki varışı A prlanla (iki müşteri gecikti) (D,6) (A,8) (E,6) İlk D oluşur: (D,) (s*=) sonraki ayrılışı (D) planla (müşteri gecikti) 6 6 9
Ortalama Cevap Süresinin Hesaplanması Örneğimizde simülasyon analistinin ortalama cevap süresi ve kasada dakika veya daha fazla süre geçiren müşterilerin oranını hesaplamak istediğini düşünelim. Bu durumda cevap süresini hesaplamak için müşteri ayrılırken varış zamanını da bilmemiz gerekiyor. Bunun için müşteri varlık olarak tabloya eklenecek kasa kuyruğu isimli yeni bir listede tutulacak. Ayrıca gelecek olay listesindeki olay ihbarları hangi müşterinin etkilendiğini de gösterecek şekilde tutulacak. Ortalama Cevap Süresinin Hesaplanması Varlıklar (Ci,t), t anında varan müşteriyi (Ci ) temsil etsin Olay İhbarları (A,t,Ci), müşterinin(ci) glecekteki t anında varışı (D,t,Cj), müşterinin(ci) glecekteki t anında ayrılışı Kasa Sırası: belli bir anda kasa varış zamanlarına göre sıralı tüm müşterilerin kümesi Tutulacak Yeni İstatistikler: Cevap Süresi = Saat- Nitelik (varış zamanı) S: O ana kadar ayrılmış olan tüm müşterilerin cevap süresi toplamı N D : O ana kadar ayrılmış olan müşterilerin toplam adedi F: Sistemde dakika veya daha fazla zaman harcamış olan toplam müşteri sayısı
Ortalama Cevap Süresinin Hesaplanması Örneğin Saat = anında C müşterisi için bir ayrılma olayı gerçekleşsin: C müşterisi (varlık) kasa kuyruğu listesinden çıkarılır Nitelik (varış zamanı) = olarak not edilmiş ise, Cevap Süresi = - = dakika olacaktır. S (cevap süresi toplamı) artırılır, N D (o ana kadar ayrılmış müşterilerin toplamı) artırılır, F(Sistemde dakika veya daha fazla zaman harcamış olan toplam müşteri sayısı) artırılmaz. Simülasyon Tablosu SAAT Sİstem Durumu LQ(t)... LS(t)... KASA KUYRUĞU (C,) (C,)(C,) (C,)(C,) (C,)... Gelecek Olay Listesi (A,,C) (D,,C) (E,6) (A,,C) (D,,C) (E,6) (D,,C) (A,8,C) (E,6)... S... Kümülatif İstatistikler ND... F... (C,)(C,) C artık listede yok (D,6,C) (A,8,C) (E,6)
Bir Simülasyon Sisteminin Yapısı Varlıklar-İlişkiler Saat Yönetim Dağılımlar Sonuçların Toplanması Tartışma Sıradışı Simülasyon Örnekleri???