Ayrık olay simülasyonu - Discrete-event simulation

Bir ayrık olay simülasyonu (DES) bir sistemi olarak (ayrık ) olaylar dizisi zamanında. Her olay belirli bir zamanda meydana gelir ve bir değişikliği işaretler. durum Sistemde.[1] Birbirini izleyen olaylar arasında, sistemde hiçbir değişikliğin meydana gelmediği varsayılır; bu nedenle simülasyon zamanı, bir sonraki olayın meydana gelme zamanına doğrudan atlayabilir. sonraki etkinlik zaman ilerlemesi.

Bir sonraki etkinlik zaman ilerlemesine ek olarak, adı verilen alternatif bir yaklaşım da vardır. sabit artışlı zaman ilerlemesi, burada zaman küçük zaman dilimlerine bölünür ve sistem durumu, zaman diliminde meydana gelen olaylar / faaliyetler kümesine göre güncellenir.[2] Her zaman diliminin simüle edilmesi gerekmediğinden, bir sonraki olay zamanı simülasyonu tipik olarak karşılık gelen sabit artışlı zaman simülasyonundan çok daha hızlı çalışabilir.

DES'in her iki biçimi de, sürekli simülasyon sistem durumunun bir dizi temelde zaman içinde sürekli olarak değiştiği diferansiyel denklemler durum değişkenlerinin değişim oranlarını tanımlama.

Misal

Ayrık olay simülasyonlarının nasıl oluşturulacağını öğrenmede yaygın bir alıştırma, bir kuyruk, bir veznedar tarafından hizmet almak üzere bir bankaya gelen müşteriler gibi. Bu örnekte, sistem varlıkları Müşteri kuyruğu ve Vezneler. Sistem olayları Müşteri-Varış ve Müşteri-Ayrılış. (Olayı Teller-Hizmete Başlıyor varış ve ayrılış olaylarının mantığının bir parçası olabilir.) Bu olaylarla değiştirilen sistem durumları, Sıradaki Müşteri Sayısı (0'dan n'ye kadar bir tam sayı) ve Vezne Durumu (meşgul veya boşta). rastgele değişkenler bu sistemi modellemek için karakterize edilmesi gereken stokastik olarak vardır Müşteri-Arası-Zaman ve Vezne-Hizmet-Süresi. İyimser bir paralel ayrık olay simülatörünün performans modellemesi için aracı tabanlı bir çerçeve, ayrı bir olay simülasyonu için başka bir örnektir.[3]

Bileşenler

Sistem olayları meydana geldiğinde ne olacağı mantığına ek olarak, ayrık olay simülasyonları şunları içerir:

Öncelik kuyruğu, Animasyon olay işleyicisi ve Zaman yeniden normalleştirme işleyicisi (simülasyon çalışırken, zaman değişkenleri hassasiyetini kaybeder. Bir süre sonra tüm zaman değişkenleri, son işlenen olay zamanı çıkarılarak yeniden normalleştirilmelidir).

Durum

Sistem durumu, incelenecek sistemin göze çarpan özelliklerini yakalayan bir dizi değişkendir. Zaman içindeki durum yörüngesi S (t) matematiksel olarak bir basamak fonksiyonu bir olay meydana geldiğinde değeri değişebilir.

Saat

Simülasyon, modellenen sistem için uygun olan ölçü birimleri ne olursa olsun, mevcut simülasyon zamanını takip etmelidir. Kesikli olay simülasyonlarında, sürekli simülasyonların aksine, olaylar anlık olduğu için zaman 'zıplar' - simülasyon ilerledikçe saat sonraki olay başlangıç ​​zamanına atlar.

Olay listesi

Simülasyon, simülasyon olaylarının en az bir listesini tutar. Bu bazen denir bekleyen olay kümesiçünkü önceden simüle edilmiş olayın bir sonucu olarak beklemede olan ancak henüz kendileri simüle edilmemiş olayları listeler. Bir olay, meydana geldiği zaman ve o olayı simüle etmek için kullanılacak kodu belirten bir tür ile tanımlanır. Olay kodunun parametreleştirilmesi yaygındır, bu durumda, olay açıklaması ayrıca olay kodunun parametrelerini de içerir.

Olaylar anlık olduğunda, zamana yayılan aktiviteler olay dizileri olarak modellenir. Bazı simülasyon çerçeveleri, bir olayın zamanının aralık olarak belirlenmesine izin vererek her olayın başlangıç ​​ve bitiş zamanını verir.

Tek dişli anlık olaylara dayalı simülasyon motorlarının yalnızca bir güncel olayı vardır. Tersine, çok iş parçacıklı aralık tabanlı bir olay modelini destekleyen simülasyon motorları ve simülasyon motorları birden fazla güncel olaya sahip olabilir. Her iki durumda da, güncel olaylar arasında senkronizasyonla ilgili önemli sorunlar vardır.

Bekleyen olay kümesi genellikle bir öncelik sırası, sıralanmış etkinlik zamanına göre.[4] Yani, olayların olay kümesine eklendiği sıraya bakılmaksızın, kesinlikle kronolojik sırayla kaldırılırlar. Ayrık olay simülasyonu bağlamında çeşitli öncelik kuyruğu uygulamaları incelenmiştir;[5] incelenen alternatifler dahil edildi yayvan ağaçlar, listeleri atla, takvim kuyrukları,[6] ve merdiven sıraları.[7][8]Açık büyük ölçüde paralel makineler, gibi çok çekirdekli veya çok çekirdekli İşlemciler, beklemedeki olay kümesi güvenerek uygulanabilir. engellemeyen algoritmalar, eşzamanlı iş parçacıkları arasında senkronizasyon maliyetini azaltmak için.[9][10]

Tipik olarak, simülasyon ilerledikçe olaylar dinamik olarak planlanır. Örneğin, yukarıda belirtilen banka örneğinde, T zamanında MÜŞTERİ-VARIŞ olayı, eğer MÜŞTERİ_SAYISI boşsa ve TELLER boştaysa, t + s zamanında gerçekleşecek olan MÜŞTERİ-KALKIŞ olayının oluşturulmasını içerir; burada s SERVICE-TIME dağıtımından üretilen bir sayıdır.

Rastgele sayı üreteçleri

Simülasyonun oluşturulması gerekiyor rastgele değişkenler sistem modeline bağlı olarak çeşitli türlerde. Bu, bir veya daha fazla Sözde rasgele sayı üreteçleri. Gerçek rastgele sayıların aksine sözde rasgele sayıların kullanılması, bir simülasyonun tam olarak aynı davranışa sahip bir yeniden çalıştırmaya ihtiyaç duyması durumunda bir avantajdır.

Ayrık olay simülasyonunda kullanılan rastgele sayı dağılımlarıyla ilgili sorunlardan biri, olay zamanlarının sabit durum dağılımlarının önceden bilinemeyebilmesidir. Sonuç olarak, bekleyen olay kümesine yerleştirilen ilk olaylar kümesi, kararlı durum dağılımını temsil eden varış sürelerine sahip olmayacaktır. Bu problem tipik olarak simülasyon modelinin önyüklenmesiyle çözülür. Bekleyen olayların ilk kümesine gerçekçi zamanlar atamak için yalnızca sınırlı bir çaba harcanır. Ancak bu olaylar, ek olayları planlar ve zamanla olay zamanlarının dağılımı, sabit durumuna yaklaşır. Bu denir önyükleme simülasyon modeli. Çalışan modelden istatistik toplarken, ya kararlı duruma ulaşılmadan önce meydana gelen olayları göz ardı etmek ya da simülasyonu, önyükleme davranışının kararlı durum davranışı tarafından bastırılmasına yetecek kadar uzun süre çalıştırmak önemlidir. (Terimin bu kullanımı önyükleme her ikisinde de kullanımıyla karşılaştırılabilir İstatistik ve bilgi işlem ).

İstatistik

Simülasyon tipik olarak sistemin İstatistik, ilgi alanlarını nicelleştiren. Banka örneğinde, ortalama bekleme sürelerini izlemek ilgi çekicidir. Bir simülasyon modelinde, performans ölçütleri analitik olarak türetilmez olasılık dağılımları, daha ziyade ortalamalar olarak replikasyonlar, bu modelin farklı çalışmalarıdır. Güvenilirlik aralığı genellikle çıktının kalitesinin değerlendirilmesine yardımcı olmak için oluşturulur.

Bitiş koşulu

Olaylar önyüklendiğinden, teorik olarak ayrı bir olay simülasyonu sonsuza kadar çalışabilir. Bu yüzden simülasyon tasarımcısı simülasyonun ne zaman biteceğine karar vermelidir. Tipik seçimler, "t zamanında" veya "n sayıda olay işlendikten sonra" veya daha genel olarak "istatistiksel ölçüm X, x değerine ulaştığında" şeklindedir.


Üç Aşamalı Yaklaşım

Pidd (1998), ayrık olay simülasyonuna üç aşamalı yaklaşımı önermiştir. Bu yaklaşımda, ilk aşama bir sonraki kronolojik olaya atlamaktır. İkinci aşama, o sırada koşulsuz olarak meydana gelen tüm olayları yürütmektir (bunlara B olayları denir). Üçüncü aşama, o sırada koşullu olarak meydana gelen tüm olayları yürütmektir (bunlara C olayları denir). Üç aşamalı yaklaşım, bilgisayar kaynaklarının en verimli şekilde kullanılmasını sağlamak için eşzamanlı olayların sıralandığı olay temelli yaklaşımın iyileştirilmesidir. Üç aşamalı yaklaşım, bir dizi ticari simülasyon yazılım paketi tarafından kullanılır, ancak kullanıcının bakış açısından, temeldeki simülasyon yönteminin özellikleri genellikle gizlidir.

Yaygın kullanımlar

Süreç sorunlarının teşhisi

Simülasyon yaklaşımları, kullanıcıların karmaşık ortamlardaki sorunları teşhis etmesine yardımcı olmak için özellikle iyi bir şekilde donatılmıştır. Kısıtlar teorisi bir sistemdeki darboğazları anlamanın önemini gösterir. Darboğazları belirlemek ve ortadan kaldırmak, süreçleri ve genel sistemi iyileştirmeye olanak tanır. Örneğin, üretim işletmelerinde aşırı stok nedeniyle darboğazlar yaratılabilir, aşırı üretim, süreçlerdeki değişkenlik ve yönlendirme veya sıralamadaki değişkenlik. Bir simülasyon modeli yardımıyla sistemi doğru bir şekilde belgeleyerek, tüm sistemin kuş bakışı görüntüsünü elde etmek mümkündür.

Bir sistemin çalışma modeli, yönetimin performans faktörlerini anlamasını sağlar. Herhangi bir sayıda performans göstergeleri işçi kullanımı, zamanında teslimat oranı, hurda oranı, nakit döngüleri vb.

Hastane uygulamaları

Bir ameliyathane genellikle birkaç cerrahi disiplin arasında paylaşılır. Bu prosedürlerin doğasını daha iyi anlayarak hasta verimini artırmak mümkün olabilir. Örnek: Bir kalp ameliyatı ortalama dört saat sürüyorsa, bir ameliyathane programını sekiz saatten dokuza çıkarmak hasta verimini artırmayacaktır. Öte yandan, eğer bir fıtık prosedürü ortalama yirmi dakika sürerse, fazladan bir saat sağlamak, iyileşme odasında harcanan kapasite ve ortalama süre dikkate alınmazsa, herhangi bir artan verim sağlamayabilir.

Laboratuvar testi performans iyileştirme fikirleri

Birçok sistem iyileştirme fikri, sağlam ilkeler, kanıtlanmış metodolojiler (Yağsız - Yağsız, Altı Sigma, TKY, vb.) yine de genel sistemi iyileştirmede başarısız olur. Bir simülasyon modeli, kullanıcının genel sistem bağlamında bir performans iyileştirme fikrini anlamasını ve test etmesini sağlar.

Sermaye yatırımı kararlarının değerlendirilmesi

Ayrıca bakınız: Finansta Monte Carlo yöntemleri; Kurumsal finansman # Sermaye yatırım kararları ve # Belirsizliği ölçme.

Simülasyon modelleme genellikle potansiyel yatırımları modellemek için kullanılır. Yatırımları modelleme yoluyla karar vericiler bilgiye dayalı kararlar verebilir ve potansiyel alternatifleri değerlendirebilir.

Ağ simülatörleri

Gerçek dağıtımdan önce yeni protokolleri, farklı sistem mimarilerini (dağıtılmış, hiyerarşik, merkezi, P2P) simüle etmek için bilgisayar ağında ayrı olay simülasyonu kullanılır. Hizmet süresi, bant genişliği, bırakılan paketler, kaynak tüketimi vb. Gibi farklı değerlendirme ölçütlerini tanımlamak mümkündür.


Ayrıca bakınız

Sistem modelleme yaklaşımları:

Hesaplama teknikleri:

Yazılım:

Disiplinler:

Referanslar

  1. ^ Stewart Robinson (2004). Simülasyon - Model geliştirme ve kullanma pratiği. Wiley.
  2. ^ Matloff, Norm. "Kesikli Olay Simülasyonuna ve SimPy Diline Giriş" (PDF). Alındı 24 Ocak 2013.
  3. ^ Aditya Kurve; Khashayar Kotobi; George Kesidis (2013). "İyimser bir paralel ayrık olay simülatörünün performans modellemesi için aracı tabanlı bir çerçeve". Karmaşık Uyarlamalı Sistem Modellemesi. 1: 12. doi:10.1186/2194-3206-1-12.
  4. ^ Douglas W. Jones, ed. Zamanın Gerçekleştirilmesi, 18. Kış Simülasyon Konferansı Bildirileri, 1986.
  5. ^ Douglas W. Jones, Öncelik Kuyruğu ve Olay Seti Uygulamalarının Ampirik Karşılaştırması, ACM'nin İletişimleri, 29, Nisan 1986, sayfalar 300–311.
  6. ^ Kah Leong Tan ve Li-Jin Thng, SNOOPy Takvim Sırası, 32. Kış Simülasyon Konferansı Bildirileri, 2000
  7. ^ Dickman, Tom; Gupta, Sounak; Wilsey, Philip A. (2013). "Çok çekirdekli Beowulf kümelerinde PDES için olay havuzu yapıları". Gelişmiş ayrık simülasyon İlkeleri üzerine 2013 ACM SIGSIM konferansının bildirileri - SIGSIM-PADS '13. s. 103. doi:10.1145/2486092.2486106. ISBN  9781450319201. S2CID  17572839.
  8. ^ Furfaro, Angelo; Sacco, Ludovica (2018). "Uyarlanabilir Merdiven Sırası". 2018 ACM SIGSIM İleri Ayrık Simülasyon Prensipleri Konferansı Bildirileri - SIGSIM-PADS '18. sayfa 101–104. doi:10.1145/3200921.3200925. ISBN  9781450350921. S2CID  21699926.
  9. ^ Marotta, Romolo; Ianni, Mauro; Pellegrini, Alessandro; Quaglia, Francesco (2017). "Ölçeklenebilir Paylaşımlı Her Şeyi PDES Platformları için Çatışmaya Dirençli Kilitsiz Takvim Sırası". 2017 ACM SIGSIM İleri Ayrık Simülasyon Prensipleri Konferansı Bildirileri - SIGSIM-PADS '17. s. 15–26. doi:10.1145/3064911.3064926. hdl:11573/974295. ISBN  9781450344890. S2CID  30460497.
  10. ^ Lindén, Jonatan; Jonsson, Bengt (2013). "En Az Hafızayla Çatışmaya Sahip Skiplist Tabanlı Eşzamanlı Öncelik Sırası". Dağıtık Sistemlerin İlkeleri 2013 Konferansı Bildirileri - OPODIS 2013. s. 206–220. doi:10.1007/978-3-319-03850-6_15. ISBN  9783319038490.

daha fazla okuma

  • Myron H. MacDougall (1987). Bilgisayar Sistemlerini Simüle Etmek: Teknikler ve Araçlar. MIT Basın.
  • William Delaney; Erminia Vaccari (1988). Dinamik Modeller ve Ayrık Olay Simülasyonu. Dekker A.Ş.
  • Roger W. McHaney (1991). Bilgisayar Simülasyonu: Pratik Bir Perspektif. Akademik Basın.
  • Michael Pidd (1998). Yönetim biliminde bilgisayar simülasyonu - dördüncü baskı. Wiley.
  • A, Alan Pritsker, Jean J. O'Reilly (1999). Görsel SLAM ve AweSim ile Simülasyon. Wiley.CS1 bakım: birden çok isim: yazarlar listesi (bağlantı)
  • Averill M. Yasası; W. David Kelton (2000). Simülasyon modelleme ve analizi - üçüncü baskı. McGraw-Hill.
  • Bernard P. Zeigler; Herbert Praehofer; Tag Gon Kim (2000). Modelleme ve simülasyon teorisi: Ayrık olay ve sürekli karmaşık dinamik sistemleri entegre etmek - ikinci baskı. Akademik Basın.
  • Jerry Banks; John Carson; Barry Nelson; David Nicol (2005). Ayrık olay sistem simülasyonu - dördüncü baskı. Pearson.
  • James J. Nutaro (2010). Simülasyon için yazılım oluşturma: C ++ uygulamalarıyla teori ve algoritmalar. Wiley.