1106104 SİSTEM SİMÜLASYONU Yrd Doç. Dr. Sırma Yavuz Çarşamba 13:00-15:30 (F-19) Ofis: B Blok - Kat 4 Donanım Lab. Ofis Saatleri : Çarşamba 16:00-17:00 İçerik Sistemler ve Sistem Ortamı Sistem Bileşenleri Ayrık ve Sürekli Sistemler Sistem Modeli Model Tipleri Ayrık Olay Sistem Simülasyonu Simülasyon Çalışmasının Adımları Ayrık-Olay Simülasyonu Kavramları Olay Çizelgeleme (planlama) Zaman Artımı (Time-advance) Algoritması Simülasyon Modeli Yaklaşımları 1
Sistem Sistem, bir amacı gerçekleştirmek üzere düzenli bir etkileşim içinde olan nesneler grubudur. Otomobil fabrikası: makinalar, parçalar ve işçiler montaj hattı etrafında birlikte iş görürler. Sistem Ortamı (Çevresel Etkenler) Sistem çoğu zaman sistemin dışında oluşan değişikliklerden de etkilenir: Sistem ortamı (çevresel etkenler) Fabrika: Gelen siparişler, Talebe göre tedariğin etkisi: gelen talep ile fabrika çıktısı arasındaki ilişki (sistem hareketliliği-aktivitesi) Banka: Müşterilerin varışı 2
Sistemin Bileşenleri Varlık (Entity): Sistemde ilgilenilen bir nesne (fabrikadaki makineler) Nitelik (Attribute) Bir varlığa ait özellik (hız, kapasite) Aktivite, Faaliyet (Activity) Belirli uzunluktaki bir zaman periyodu (kaynaklama, presleme) Durum (State) Herhangi bir anda sistemi tanımlayan değişkenler topluluğu (makine durumu: boş, meşgul, bozuk) Sistemin Bileşenleri Olay (Event) Sistemin durumunu değiştirebilecek aniden vuku bulan şeyler (bozulma, çökme) İç kaynaklı- endojen(endogenous) Sistemle birlikte oluşan olaylar ve faaliyetler Dış Kaynaklı-ekzojen (Exogenous) Ortamla birlikte oluşan olaylar ve faaliyetler 3
Ayrık ve Sürekli Sistemler Ayrık sistem, durum değişkenlerinin sadece zamanda ayrık noktalarda değiştiği sistemlerdir: Banka örneği Kuyrukta bekleyen veya hizmet verilen müşteri adedi Zaman Ayrık ve Sürekli Sistemler Sürekli sistem, durum değişkenlerinin zaman içinde sürekli değiştiği sistemlerdir: Baraj örneği Barajdaki su seviyesi Zaman 4
Bir Sistemin Modeli Bir sistemin davranışının zaman içindeki değişimini incelemek, sistemi anlamak için: Gerçek sistem üzerinde denemeler yapılabilir herzaman mümkün değildir.. Bir Simülasyon Modeli geliştirilerek sistem incelenebilir Bir Sistemin Modeli Sistemi tanımlayan model oluştururken; Sistemin incelenmek istenen problemi etkileyen yönlerini dikkate almak gerekir. Önemsiz detaylar kaldırılmalıdır... 5
Model Tipleri SİSTEM Gerçek sistem üzerindeki Denemeler Sistem modeli üzerindeki Denemeler Fiziksel Model Matemetiksel Model Analitik Çözüm Simülasyon Simülasyon Modelinin Tanımlanması Deterministik veya Stokastik Model rasgele bileşenler içeriyormu? Ayrık Olay Simülasyonunda rasgele bileşenlerin eklenmesi kolaydır Statik veya Dinamik Zaman önemli bir değişken mi? Sürekli veya Ayrık Sistem durumu süreklimi değişiyor yoksa zaman içinde ayrık noktalarda mı? 6
Ayrık-Olay Simülasyon Modeli Stokastik: bazı durum değişkenleri rasgeledir Dinamik: zaman değişimi önemlidir Ayrık-Olay: Zamanda ayrık noktalarda önemli değişiklikler olur Model Sınıflaması Sistem Modeli Deterministik Stokastik Statik Dinamik Statik Dinamik Sürekli Ayrık Sürekli Ayrık Ayrık-Olay Simülasyonu 7
Ayrık-Olay Simülasyon Modelinin Geliştirilmesi 1) Hedeflerin belirlenmesi 2) Kavramsal bir model oluşturulması 3) Ayrıntılı bir modele dönüştürün 4) Sayısal bir modele dönüştürün 5) Sağlamasını yapın (Verify) 6) Onaylanmasını yapın (Validate) Bu tipik olarak iteratif bir süreçtir Model Seviyeleri Kavramsal -Üst Düzey - Model ne kadar kapsamlı olmalı? - Durum değişkenleri neler: hangileri dinamik ve hangileri önemli? Ayrıntılı -Kağıt Üzerinde - Denklemler, pseudo kod vs. İçerebilir - Model girdileri nasıl alacak? Sayısal - Bilgisayar programı - Genel amaçlı programlama dili mi yoksa özel bir simülasyon dili mi? 8
Sağlama & Doğrulama Sağlama - Verification -Sayısal model ayrıntılı model ile tutarlı olmalı - Modeli doğru oluşturduk mu? Doğrulama - Validation -Sayısal model analiz edilen sistem ile tutarlı olmalı - Doğru modeli oluşturduk mu? - Uzman biri sistem çıktılarını simülaasyon çıktılarından ayırabilir mi? - Etkileşimli grafikler faydalı olabilir Simülasyon Çalışmasının Adımları 9
Ayrık-Olay Simülasyonu Kavramları Sistem Bir veya daha fazla amaç için zaman içinde birbiri ile etkileşim içinde olan varlıklar topluluğu (insanlar ve makineler..) Model Sistemi, o sistemi oluşturan varlıklar, varlıklara ait nitelikler, kümeler, süreçler türünden tanımlayan, genellikle yapısal, mantıksal veya matematiksel ilişkiler içeren özet gösterim Sistem Durumu Herhangi bir anda sistemi tanımlayan değişkenler topluluğu Ayrık-Olay Simülasyonu Kavramları Varlık Sistemde özel olarak temsil edilmesi gereken nesne veya bileşen (görevli, müşteri..) Nitelikler Belirli bir müşterinin özellikleri Liste Mantıksal bir sıra ile dizilmiş ilişkili varlıklar topluluğu (FIFO, öncelik...) 10
Ayrık-Olay Simülasyonu Kavramları Olay Sistemin durumunu değiştiren ani oluşum Olay İhbarı Şimdiki veya gelecek zamanda oluşacak bir olay kaydı (tipi ve zamanı) Olay Listesi FEL (future event list gelecek olay listesi Ayrık-Olay Simülasyonu Kavramları Aktivite (koşulsuz bekleme) Belirtilen uzunlukta bir süre (servis süresi, varışlar arası süre) Deterministik, istatiksel ve fonksiyonel Gecikme (koşullu bekleme) Belirsiz uzunlukta, bitene kadar uzunluğu bilinmeyen bir süre (kuyruktaki müşterinin gecikmesi) Saat (Clock) Simüle edilen süreyi temsil eden değişken 11
Able-Baker Çağrı Merkezi Sistem durumu LQ(t): Servis bekleyen arayan kişi sayısı LA(t): Able ın meşgul veya boşta olduğunu gösteriyor (0 veya 1) LB(t): Baker ın meşgul veya boşta olduğunu gösteriyor (0 veya 1) Varlıklar Arayan Kişiler Olaylar Varış olayı, Able veya Baker ın hizmeti tamamlaması Aktiviteler Able ve Baker ın servis süreleri ve çağrılar arası geçen süre Gecikme Arayan kişinin Able veya Baker serbest kalana kadar kuyrukta bekleme süresi Olay Çizelgeleme (planlama) Her olay sistemin durumunu nasıl etkiliyor, nitelikler? Aktiviteler nasıl tanımlanmış (deterministik, olasıksal,...?) Herbir gecikmeyi tetikleyen olaylar hangileri? 0 anında sistem durumu nedir? 12
Olay Çizelgeleme (planlama) Saat (Clock) Sistem Durumu Nitelikler Gelecek Olay Listesi (FEL) Kümülatif istatistikler ve sayaçlar t (x,y,z,...) (3,t1) t1 anında gerçekleşecek 3 tipli olay (1,t2) (4,tn) Clock=t, t<t1<t2< <tn Gelecek olay listesi olay zamanına göre sıralanmıştır Olay Çizelgeleme/ Zaman Artımı (Time-advance) Algoritması t1 anında yeni olay ihbarı üretilmiş olabilir, eğer böyle bir ihbar varsa gelecek olay listesinde bu olaylar için uygun bir konuma olay ihbarı eklenmeli t2<t*<t3 13
Önyükleme (Bootstrapping) ile Varış Akışının Üretilmesi Gelecek olay listesinin üretilmesinde ikinci örnek kuyruk simülasyonunda servisin tamamlanması olayı ile üretilebilir: Önyükleme (Bootstrapping) ile Varış Akışının Üretilmesi n. müşterinin geldiği varsayılan t anında servis süresini (a* ) üret, t*=t+a* zamanını hesapla ve gelecek t* anına gelecek servisin başlangıcını programla Ardarda gelen olaylar arasında sistem durumunun değişmesine neden olabilecek başka olaylar oluşabilir 14
Olay Çizelgeleme Servisin tamamlanması olayı birincil bir olaydır (n. müşteri), sadece boşta bir servis elemanı olması halinde varış anına programlanacaktır. Servisin başlaması olayı koşulludur (n+1. müşteri), çünki oluşumu ancak müşteri mevcut ise ve boşta servis elemanı varsa tetiklenecektir. Koşullu olay ancak birincil bir olayın oluşumu ve belirli koşulların sağlaanması ile tetiklenir. Sadece birincil olaylar gelecek olaylar listesinde yer alır. Simülasyon Durma Zamanı Tüm simülasyonlar için bir durma olayı (E) olmalıdır. Bu olay simülasyonun ne kadar süre ile çalışacağını belirler. 0 anında belirli bir TE anı için simülasyon durma olayı planlanırsa simülasyon [0,TE] aralığı boyunca çalışacaktır. Simülasyonu çalışma süresi olan TE simülasyonun kendisi tarafından belirlenir. TE karmaşık bir sistem için bir makinenin bozulması olayı veya çarpışma simülasyonu için tüm savaşçıların ölmesi gibi bir olay anı olabilir. 15
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. - Oldukça hızlıdır. 16
Ödev (17 Ekim) http://www.wintersim.org/ Sol menüde Past WSC Conference Programs and Full Papers sekmesinden önceki konferanslardan ilgi alanınıza giren uygulama örneklerini bulup 3 tanesini listeleyin, bir tanesi için derste bahsedilen simülasyon adımlarını (akış diagramı) yazarın nasıl gerçekleştirdiğini anlatan kısa bir rapor yazın. Sizce en sıradışı görünen bir uygulamayı seçip sınıfta tartışmak üzere kısa notlar alın? 17