IE 303T Sistem Benzetimi L E C T U R E 3 : O L A Y Ç I Z E L G E L E M E A L G O R I T M A S I
İçerik Olay Çizelgeleme Algoritması Tek Servis Sağlayıcılı Kuyruk (Tekrar) Maden Ocağı Kamyonları Liste İşlemleri
Geçen Ders Rassal Rakamların Özellileri Uniform (eşit) dağılım Tarihçeden bağımsızlık Örneklem hacmi ->, rassal rakamların histogramı - > (teorik) uniform dağılımı Yazı-Tura Oyunu Tek Servisli Kuyruk -> -> -> ->
Olay Çizelgeleme Algoritması Şimdiye kadarki benzetim modellerimizde biz objeler üzerinden gittik, gelen müşteriler, gazete bayii ne gelen talepler, yazı-tura vs.. Ama eğer benzetim sistemimiz daha karmaşıksa Örnek: Bir liman benzetimi yaptığımızı varsayalım. 3 farklı gemimiz var: Konteynır gemisi, dökme yük gemileri, tankerler Her bir gemi tipi farklı tipteki vinç ve ekipmanlar tarafından servis görür
Olay Çizelgeleme Algoritması Bu tür bir karmaşık modelde olayların kaydını tutmak gemiler üzerinden simulasyon yapıldığında çok zordur Onun için olay çizelgeleme algoritmasını kullanırız: Algoritmanın temel mantığı her bir olay anında ör. Müşteri gelişi, üretimin başlayışı vs., gelecek olaylar oluşturulur ve Gelecek Olay Listesine (GOL) yazılır.
Olay Çizelgeleme Algoritması Verilen herhangi bir t anında, GOL önceden çizelgelenmiş tüm olayları ve zamanları kronolojik bir sırada içerir: t < t 1 t 2 t 3 t n t zamanı SAAT değişkeninin değeridir, ve simulasyonun bulunduğu zamanı göstermektedir. t1 zamanında ise bir sonraki olay gerçekleşecektir ( imminent event ).
Olay Çizelgeleme Algoritması Saat Sistem Durumu Simulasyon Tablosu Prototipi Obje ve Özellikleri GOL Kümülatif İstatistikler ve Sayaçlar Simulasyonda zaman ilerledikçe sistem durumu ve gelecekteki olaylar ve istatistikler bu tablo ile organize edilecektir.
Olay Çizelgeleme Algoritması Olay Çizelgeleme-Algoritması Adım 1: Bir sonraki olayı GOL den çıkar. Adım 2: SAAT i bir sonraki olayın zamanına ilerlet. Adım 3: Bir sonraki olayı oluştur; sistemi güncelle. Adım 4: Gelecekteki olayları yarat ve GOL e ekle... Adım 5: Kümülatif istatistik ve sayaçları güncelle Ayrıca her simulasyonda bir bitiş olayı (E) olmalıdır ve bu da GOL de tutulmalıdır. Bu algoritmasının akış diyagramını nasıl yazardık?
Olay Çizelgeleme Algoritması
Olay Çizelgeleme Algoritması Olay çizelgeleme algoritmasını kullanarak bir tek servisçi kuyruk sisteminin benzetim modelini kuralım. Değişkenler: N s : Servis alan kişi sayısı. Her yeni bir servis başladığında bir arttır. B : Toplam servis zamanı. TE: Ortalama bekleme zamanı. Toplam bekleme / müşteri sayısı(w/ N S ). W: Kuyrukta geçen toplam zaman LS: Servis uzunluğu LQ: Kuyruk uzunluğu MQ: Maximum kuyruk uzunluğu
Olay Çizelgeleme Algoritması Servis almak üzere bir kişi ile başlayalım... Gelişler Arası Süre Servis Zamanları 1 1 6 3 7 5 2 4 1... 4 2 5 4 1 5 4 1 4... Saat LQ(t) LS(t) GOL Yorum Kümülatif İstatistikler ve Sayaçlar Ns B W MQ 0 0 1 (A,1); (D,4); (E,60) İlk A oldu. 1 0 0 0
Olay Çizelgeleme Algoritması Saat LQ(t) LS(t) GOL Yorum Kümülatif İstatistikler ve Sayaçlar Ns B W MQ 0 0 1 (A,1); (D,4); (E,60) İlk A oldu. 1 0 0 0 1 1 1 (A,2); (D,4); (E,60) İkinci A 1 1 0 1 2 2 1 (D,4); (A,8); (E,60) Üçüncü A oldu. 1 2 1 2 4 1 1 (D,6); (A,8); (E,60) İlk D oldu. 2 4 1+2*2=5 2 6 0 1 (A,8); (D,11); (E,60) İkinci D oldu. 3 6 5+2=7 2 8 1 1 (D,11); (A,11); (E,60) Dördüncü A oldu. 3 8 7 2 11 1 1 (D,15); (A,18); (E,60) Beşinci A, üçüncü D oldu. 4 11 10 2 15 0 1 (D,16); (A,18); (E,60) Dördüncü D oldu. 5 15 14 2 16 0 0 (A,18); (E,60) Beşinci D oldu. 5 16 14 3
Boşaltma Kamyonu Örneği 6 boşaltma kamyonu madenini girişindeki yükleyiciden trenyoluna kadar kömür taşımasında kullanılmaktadır. Her bir kamyon iki yükleyici vinçten bir tanesi ile yüklenmektedir. Daha sonra kamyonlar tartıya giderek tartılmaktadır. Tüm yükleyici ve kamyonlar FCFS sistemi ile çalışmaktadırlar. Kamyondan tartıya kadar geçen süre ihmal edilebilir durumdadır. Tartıdan sonra ise tren istatsyonuna kadar geçen süre, yükleme ve tartılma süreleri ise rassal değişkenlerdir.
Boşaltma Kamyonu Örneği Sistemdeki rassal olayların dağiılımları aşağıdaki gibidir: Yükleme Zamanı Yükleme Zamanı Dağılımı Olasılık Kümülatif Olasılık Rassal Hane 5 0.3 0.3 1-3 10 0.5 0.8 4-8 15 0.2 1 9-0 Tartı Zamanı Tartı Zamanı Olasılık Kümülatif Olasılık Rassal Hane 12 0.7 0.7 1-7 16 0.3 1 8-0 Varış Zamanı Varış Zamanı Olasılık Kümülatif Rassal Olasılık Hane 40 0.4 0.4 1-4 60 0.3 0.7 5-7 80 0.2 0.9 8-9 100 0.1 1 0
Boşaltma Kamyonu Örneği Model bileşenleri: Durum Değişkenleri LQ(t): yükleme kuyruğundaki kamyon sayısı, t anında L(t): yükleme yapılan kamyon sayısı (0,1 veya 2) WQ(t): tartı kuyruğundaki araç sayısı W(t): tartılan araç sayısı Olaylar (ALQ,t,T i ): Kamyon i yükleme kuyruğuna varışı (EL, t, T i ): Kamyon i yükleme bitişi (EW,t,T i ): Kamyon i tartı bitiş.
Boşaltma Kamyonu Örneği Objeler Kamyonlar T 1, T 2,..., T 6 Lists: Yükleme ve tartı kuyruğu, Aktiviteler: Yükleme, tartı, seyahat Gecikmeler: Yükleme ve tartı kuyruğundaki gecikmeler İstatistikler: B L : yükleyicinin toplam çalışma zamanı B W : tartının toplam çalışma süresi B L hesaplanırken her iki yükleyicinin toplam zamanı dikkate alınmalıdır.
Boşaltma Kamyonu Örneği Yükleme Zamanları Tartı Zamanları Seyahat Zaman 10 5 5 10 15 10 10 12 12 12 16 12 16 60 100 40 40 80 Saat 0 Sistem Durumu Listeler GOL LQ(t) L(t) WQ(t) W(t) Yükleme Kuyruk Tartı Kuyruk Kümülatif İstatistik B L Bs
Boşaltma Kamyonu Örneği
Boşaltma Kamyonu Örneği
Boşaltma Kamyonu Örneği
Boşaltma Kamyonu Örneği
Liste İşlemleri Görüldüğü gibi GOL simulasyonda ki organizasyon ve tüm algoritma için önem arz etmektedir. Gerçek sistemlerin simulasyonlarında GOL ciddi biçimde uzun olabilmektedir. GOL bilgisayarda vektörlerde tutularak işlemlenebilir.
List Processing Vektörleri kullanmanın olumlu ve olumsuz yanları bulunmaktadır. GOL de gerçekleştirilen temel operasyonlar: Listenin üstünden bir kayıt silme Listenin herhangi bir yerinden kayıt silme Listenin altına veya üstün kayıt ekleme Listenin herhangi bir yerine kayıt ekleme.
Ders 3 Sonu Next Lecture Chapter 5.1, 5.3, 5.4
Event Scheduling Algorithm - Detail Activity vs. Delay: Activity a duration of time of specified length (statistical distributions) (e.g. service time or interarrival time), which is known when it begins. Delay a duration of time of unspecified indefinite length, which is not known until it ends (e.g. a customer s delay in a last-in-first-out waiting line) Single Server Queue: Event: Arrivals of customers, service completion in the server Activity: Service time Delay: customers waiting in the queue