T.C. BALIKESİR ÜNİVERSİTESİ ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜMÜ EME 3105 SİSTEM SİMULASYONU (ARENA) Hafta 2 Beyazıt OCAKTAN
GELİŞ SÜRECİNİN ARENA'DA GÖSTERİMİ Varlıklar (entities) modele girmedikçe, ARENA'da hiç bir şey olmaz. Varlıkların sisteme itilmesi CREATE modülüyle sağlanır. Örnek 1'de müşteriler eczaneye λ=10 müşteri/saat ortalamalı Poisson dağılımına göre gelmektedir. Diğer bir deyişle sisteme Poisson dağılımına göre saatte ortalama 10 müşteri gelmektedir. ARENA'da CREATE modülünde belli bir zaman aralığında gelen müşteri sayısı tanımlanamamaktadır. Bunun yerine CREATE modülünde varlıkların sisteme gelişleri arasında geçen süre modellenebilmektedir. Bu nedenle bize saatte gelen müşteri sayısını dağılımı değil, iki müşteri gelişi arasında geçen sürenin dağılımı gerekmektedir. Olasılık teorisine göre gerçekleşen olay sayısı (λ olay/zaman) ortalamalı Poisson dağılımına uyuyorsa, iki olayın gerçekleşmesi arasında geçen süre μ=1/ λ (zaman/olay) ortalamalı Üstel (Exponential) dağılıma uyar. (Teorik derste bu konunun ayrıntısına girilecektir.) Buna göre gelişler arası sürenin ortalaması: 1 1 saat 60 dakika 6 (dakika/müşteri) 10 müşteri 10 müşteri CREATE modülüne çift tıkladığınızda şekil 2.1'deki menüye ulaşacaksınız. Şekil 2.1 Create modülü Time Between Arrivals, varlıkların sisteme gelişleri arasındaki süresinin modellendiği bölümdür. Default olarak şekilde görüldüğü üzere Üstel (Random (Expo)) olarak gelir.
ARENA'da rassal değişkenlerin dağılımlarla modellenmesinde dağılımların ingilizce isimlerinin ilk dört harfi kullanılır. ARENA'da modellemede kullanılan dağılımlardan bazıları aşağıda verilmiştir. Tablo 2.1 ARENA'da dağılımların kullanımı Dağılım Üstel (Exponential) Dağılım (ortalama) Normal Dağılım (ortalama, standart sapma) Üçgensel (Triangular) (Min,Mod,Max) Erlang (üstel dağılımın ortalaması, k) Beta (beta,alpha) Poisson (ortalama) Weibull (beta,alpha) Sürekli Ampirik Dağılım (birikimli olasılık, değer,...) Kesikli Ampirik Dağılım ((birikimli olasılık, değer,...) ARENA'da EXPO(mean) NORM(mean, StdDev) TRIA (Min, Mode, Max) ERLA (ExpoMean,k) BETA (beta,alpha) POIS (mean) WEIB (beta,alpha) COUNT (P1,V1,...) DISC (P1,V1,...) Not: EXPO(5), Expo(5) yada expo(5) arasında bir fark yoktur. Random (Expo) için " value" bölümü ortalamayı ifade etmektedir. Bu durumda örnek 1'de value bölümüne 6 değeri girilmelidir. Alternatif olarak Type bölümünde "Expression" seçeneği seçilip, "Value" kutusuna "EXPO(6)" yazılabilir. Units, value bölümünde belirtilen rakamın yada dağılım parametrelerinin birimini göstermektedir. Bu örnek için eğer units, hours olarak işaretlenirse iki müşteri gelişi arasında geçen sürenin ortalaması 6 saat; units, minutes olarak işaretlenirse 6 dakika olur. Modelinizi oluştururken bu bölüme çok dikkat edin. Eğer saat olması gerekirken dakika girerseniz sisteme varlıklar çok hızlı, dakika olması gerekirken saat girerseniz ise çok yavaş gelecektir. İşin kötü tarafı bu bölümü gözden kaçırırsanız, modelinizde hata olduğunu bile fark edemeyebilirsiniz. Entities per Arrival, geliş başına varlık sayısını ifade etmektedir. Eğer bu bölüme 1 değerini girerseniz, bu her gelişte 1 varlık geleceğini gösterir. Örneğin sisteminize parçalar 10'arli paletlerde geliyorsa, bu durumda geliş başına varlık sayısını 10 olarak girmelisiniz. Böylece sisteme her gelen palet, aslında 10 parçayı ifade etmiş olur.
MaxArrivals, sisteme gelebilecek maximum varlık sayısını tanımlar. Eğer bu bölümü boş bırakırsanız, bu durumda simulasyon durdurulmadığı sürece sisteme varlık gönderilmeye devam eder. Bu bölüme örneğin 100 değerini girmişseniz, 100. varlık sisteme geldikten sonra artık create modülü sisteme varlık gönderimini keser. First Creation, ilk varlığın sistem açıldıktan ne kadar zaman sonra geleceğini tanımlar. Örneğin eczanenin sabah 08.00'de açıldığını varsayalım. Bu durumda simulasyonun "0" anı, eczanenin açılış saati olan 08.00'i temsil eder. Eğer First Creation bölümüne "0" değerini girerseniz, eczanenin açıldığı an olan 08.00'de (simulasyon saati=0) ilk müşteri sisteme gönderilir. Eğer bu bölüme 2 değerini girerseniz, units'de minutes tanımlı olduğu için sisteme ilk müşteri eczane açıldıktan 2 dakika sonra yani 08.02' de (simulasyon saati=2) gönderilir. 08.00-08.02 arasında eczanede müşteri yoktur. Bu bölüme bir dağılım da girilebilir. Şekil 3'teki gibi expo(6) girilmesi, eczanenin açılışı ile ilk müşterinin gelişi arasında geçen sürenin, ortalaması 6 dakika (units=minutes) olan üstel dağılıma uyduğunu gösterir. KAYNAKLARIN ARENA'DA GÖSTERİMİ Modelde kaynakları tanımlamak için Basic Process Panelinde veri tablosu görünümünde olan "Resource" modülüne gidin. Resource modülünü seçtiğinizde, model penceresinin altında tablo penceresi açılacaktır. Boşluğa iki kere tıkladığınızda şekil 2.2'de verildiği gibi bir satır eklenir. Şekil 2.2 Resource veri modülü tablo görünümü Tablo görünümünü kullanarak yada satır başlangıcına (şekilde 1 satırı üzerine) iki kere tıkladığınızda açılan diyalog menüsü yardımıyla kaynak ekleyebilirsiniz.
Şekil 2.3 Resource diyalog menüsü Örnek 1'de 1 eczacı çalıştığı için kapasite 1 ve kaynak ismini "eczaci" olarak girilmiştir. Ders kapsamında kapasite dışında resource modülündeki diğer bölümler kullanılmayacaktır. PROSESLERİN ARENA'DA GÖSTERİMİ Bir proses, varlıklar tarafından deneyimlenen faaliyetler seti olarak tanımlanabilir. Bir prosesin gerçekleşmesi için iki temel yol vardır: kaynak kısıtlı ve kaynak kısıtsız. Sadece 1 eczacı bulunması ve eczacı meşgulken, müşterilerin beklemek zorunda olması nedeniyle örnek 1'deki durum, kaynak kısıtlıdır. Bu örnekte varlık için önce eczacıyı tutmalı (seize), sonra servis süresi kadar meşgul etmeli (delay) ve sonrasında diğer müşteriler için eczacıyı serbest bırakmalısınız (release). Daha önce tanımladığımız taslak kodu seize-delay-release kavramına göre yeniden güncelleyebiliriz:
1. Poisson geliş sürecine göre sisteme müşteri gönder (create). 2. Eczane boyunca müşterileri prosesle (process). Eczacıyı tut (seize). Servis süresince beklet (delay). Eczacıyı serbest bırak (release). 3. Eczaneden müşterileri çıkar (dispose) Process modülünün üzerine çift tıklayarak, şekil 2.4'teki diyalog menüsünü açın. Action bölümünde bu örnek için "Seize Delay Release" seçeneği işaretlenmelidir. Resource bölümünde "add" tuşu ile prosese kaynak eklenebilir. Şekil 2.4. Proses Modülü diyalog menüsü Daha önce resource modülünde eczaci isimli kaynak tanımlandığı için, çıkan menüde "Resource Name" bölümünde seçeneklerde otomatik olarak görünecek eczaci kaynağı seçilebilir. Daha önce resource modülünde kaynak tanımlanmadıysa, bu bölümde "resource name" girilerek kaynak eklenebilir. Bu bölümdeki Quantity kaynak
kapasitesini değil, varlık için gerekli kaynak sayısını göstermektedir. Örnek 1 için Quantity 1 girilmelidir. Delay Type bölümü bu örnek için servis süresini göstermektedir. Örnek 1 için servis süresi ortalaması 3 dakika/müşteri olan üstel (exponential) dağılım olarak verilmişti. servis süresi olarak modele bu dağılımın girilmesi için Delay Type olarak expression seçilmeli ve Expression bölümünde servis süresi dağılımı Expo(3) olarak tanımlanmalıdır. Şekil 2.5 Process menüsü servis süresi girişi Dağılımın ortalaması olan 3 değerinin birimi dakika olduğu için "units" bölümünde dakika seçilmelidir. Alternatif olarak "units" hours olarak seçilip Expression bölümünde Expo(3/60)'da girilebilir. Bu durumda dakika olarak verilen ortalama süre, saate dönüştürülmüş olur. Kaynak: M.D.Rosetti, Simulation Modeling and Arena, John Wiley & Sons, 2010.