Simülasyon ile Modelleme Prof.Dr. Aydın Ulucan
İş dünyasında cevabı aranan karar problemlerinin çoğunda modeli oluşturan bileşenlerin değerleri kesin olarak belirli değildir. Böyle bir durumda karar verici, kesin olarak belirli olmayan model bileşenlerini istatistiksel dağılımlarla tanımlayarak karar problemini analiz edecektir. Bu tipteki rassal değişkenlerin bulunduğu karar problemlerinin analizinde kullanılanılan önemli bir teknik de simülasyondur. Karar vericinin rassal olaylar hakkında bir yönlendirmesi yoktur: Finansal Riskler: hisse fiyatları, faiz oranları, döviz kurları... Pazar Riskleri: talep, girdi fiyatları, satış fiyatı... Politik Riskler Doğal Riskler ... Bugün Gelecek Zaman Karar ver, x Rassal Olay, r Kar, f(x,r)
İş dünyasında cevabı aranan karar problemlerinin çoğunda modeli oluşturan bileşenlerin değerleri kesin olarak belirli değildir. Böyle bir durumda karar verici, kesin olarak belirli olmayan model bileşenlerini istatistiksel dağılımlarla tanımlayarak karar problemini analiz edecektir. Bu tipteki rassal değişkenlerin bulunduğu karar problemlerinin analizinde kullanılanılan önemli bir teknik de simülasyondur. Simülasyon, en basit tanımıyla, bir gerçek hayat durumunun bilgisayar destekli modellerle taklit edilmesidir. İçinde bazı girdilerinin belirsizlik içerdiği simülasyon modeli çalıştırıldığında, belirsizlik içeren girdiler uygun oldukları dağılımdan bir değer alır ve model çalıştırılarak sonuçlar elde edilir. Bir deney olarak adlandırabileceğimiz bu işlem, her seferinde modeldeki belirsizlik içeren girdilerin değerleri uygun dağılımlardan çekilerek defalarca tekrarlanır ve kurulan modelin davranışı izlenir. Bu sonuçlar istatistiksel olarak analiz edilerek karar vericinin simülasyon modeli ile karara ulaşması hedeflenmiştir.
Bir simülasyon modeli sonucunda karar verici tek bir sonuç yerine bir sonuç dağılımına ulaşır. Bu özellik bir dezavantaj gibi algılansa da, aslında farklı senaryolarda modelin nasıl davranacağını ortaya koymasından dolayı önemli bir avantajdır. Öte yandan matematiksel olarak model kurmanın güç olduğu sistemler kolaylıkla simüle edilerek gözlenebilir. Ayrıca herhangi bir sistem fiziksel olarak oluşturulmadan önce simülasyon modeli oluşturularak sistemin temel karakteristikleri çok daha az maliyetli bir yolla analiz edilebilir. Ancak simülasyon modeli ile optimal sonuca ulaşılacağı garanti edilemez. Fakat deney sayısı arttıkça optimale çok yakın bir sonuçla sistemin analiz edileceği söylenebilir.
Monte Carlo Simülasyonu ve Rassal Sayı Üretilmesi Rassal değişkenler, değeri kesin olarak tahmin edilemeyen değişkenlerdir. Rassal değişkenlere örnek verilmek istenirse; gelecekteki maliyetler, faiz oranları, döviz kurları, talep değerleri sayıabilir. Bu şekilde rassa değişkenler içeren modellerle uğraşan karar verici, rassal değişkeni bir dağılımla tanımlamaya çalışıp, ardından bu dağılıma uyan rassal sayılar üretecektir. Üretilen bu rassal sayılar modelde yerine konulup modelin davranışı gözlenecektir. Bu yaklaşım Monte Carlo Simülasyonu olarak adlandırılır.
Excel’de bulunan =RAND() fonksiyonu 0 ile 1 arasında rassal sayı üreten bir fonksiyondur. Bu fonksiyonla üretilen rassal sayılar çeşitli transformasyonlarla modelde istenilen forma dönüştürülüp kullanılır. =RAND() fonksiyonu her çalıştırıldığında, üretilen sayının 0 ile 1 arasında aldığı değerin farklı bir değer alması ile olasılığı eşittir. Daha açık bir ifade ile üretilen sayının 0.5 ile 0.6 arasında bir değer alma olasılığı %10’dur. Dolayısıyla bu fonksiyon düzgün (uniform) dağılıma uygun sayı üretmektedir.
Yazı Tura: =IF(RAND()<0.5;’’Yazı’’;’’Tura’’) Zar: =INT(6*RAND())+1 1) Modelde belirsizlik içeren parametreleri belirle. 2) Uygun rassal sayı üret. 3) Modeli n kez çalıştırıp, sonuçları kaydet. 4) Sonuçları istatistiksel olarak analiz et. Yazı Tura: =IF(RAND()<0.5;’’Yazı’’;’’Tura’’) Zar: =INT(6*RAND())+1
Örnek Teknokomp bilgisayar şirketi uzakdoğudan ithal ettiği isimsiz bilgisayarların montajını yapıp TKom markasıyla pazarlamaktadır. Şirket yöneticisi şu anda uzakdoğuda büyük bir bilgisayar fuarındadır ve yılbaşına kadar olan önümüzdeki üç aylık dönem için sipariş verecektir. Fuarda sipariş vereceği her bilgisayarı 500 dolardan indirimli olarak alacaktır. Önümüzdeki üç aylık dönem için talebin aşağıdaki olasılık dağılımına uygun gerçekleşmesi beklenmektedir. Talep Olasılık 200 0.10 250 0.25 300 0.20 350 0.15 400 450 500 0.05
Şirket bilgisayarları 750 dolardan satmaktadır Şirket bilgisayarları 750 dolardan satmaktadır. Şirket yönetiminin bu bilgisayarlardan daha sonra aynı fiyattan sipariş verme şansı yoktur. Yıl sonuna kadar satılmayan bilgisayarlar, yeni çıkacak modeller nedeniyle 350 dolardan elden çıkarılacaktır. Şirket yöneticisinin kaç adet bilgisayar sipariş vermesi gerektiğini belirleyen simülasyon modelini kurunuz. Bu sipariş miktarı için %95 güvece aralığındaki beklenen karı belirleyiniz.
Şekil 13.1. TKom simülasyon modeli
Artık karar verici 500 birim sipariş vermesi halinde oluşacak karının yapısı hakkında karar verebilecek düzeyde fikir sahibidir. Karar verici tüm bu süreci 200-500 arasındaki farklı sipariş miktarları için tekrarlayarak en karlı olduğu sipariş miktarını belirleyebilir. =RAND() fonksiyonu 0-1 arasında rassal sayı üretir. Excel’de her yaptığınız işlemden sonra bu fonksiyon otomatik olarak çalışmakta ve yeni sayılar üretmektedir. Dolayısıyla sonuçlar her işlemden sonra değişecektir. Ancak deney sayısı bizim örneğimizde olduğu gibi yüksek tutulursa sayılar değişse bile ortalama beklenen karlarda çok büyük bir değişiklik beklenmez. Modeli geliştirme ve yorumlama esnasında rassal sayıların sürekli yeniden hesaplanmasını önlemek için B20:B1019 aralığında rassal sayılar bir kere hesaplanıp ardından o aralık seçilip kopyalanır ve aynı yere “Özel Yapıştır (Paste Special)” komutu kullanılıp, sadece “Değerler (Values)” seçilerek yapıştırılırsa bir daha değişmeyecektir.
Excel’de Sürekli Dağılımlara Uygun Rassal Sayı Üretilmesi Bir önceki kısımda uygulanan örnekteki rassal değişkenin olasılık dağılımı kesikli düzgün bir dağılım olduğu için =RAND() fonksiyonu ile uygun rassal sayılar üretilmişti. Buna ek olarak sürekli olasılık dağılımına sahip rassal değişkenler için de Excel’de simülasyon modelleri kurulabilir. Normal dağılıma uygun rassal sayı üreten formül : =NORMINV(RAND(),m,s) ifadesidir. Burada dağılımın ortalamasını, ’da standart sapmasını göstermektedir. Üstel dağılıma uygun rassal sayı üreten formül : =-LN(1-RAND())/m ifadesidir. Benzer şekilde, Beta dağılımına uygun rassal sayılar BETAINV, Ki Kare dağılımına uygun rassal sayılar CHINV, Gamma dağılımına uygun rassal sayılar GAMMAINV, F dağılımına uygun rassal sayılar FINV, Lognormal dağılıma uygun rassal sayılar LOGINV fonksiyonları kullanılarak Excel’de üretilebilir.
Specialty Steel Products Co. Specialty Steel Products Company siaprişe göre makine parçaları üreten bir işletmedir. Siparişler gerekene makine saatine çevrilip, saat cinsinden değerlendirilmektedir. Yönetim, torna birimindeki kapasite problemi üzerinde çalışmaktadır. Yeni bir tornanın üretime eklenmesi analiz edilmek istenmektedir.
Specialty Steel Products Co. Geçmiş kayıtlara göre torna biriminin haftalık işyükü aşağıdaki tablodaki gibi değişmektedir. Haftalık İşyükü Relatif Gereksinimi (saat) Frekans 200 0.05 250 0.06 300 0.17 350 0.05 400 0.30 450 0.15 500 0.06 550 0.14 600 0.02 Toplam 1.00
Specialty Steel Products Co. Ortalama haftalık üretim aşağıdaki gibi hesaplanmaktadır. Haftalık İşyükü Relatif Gereksinimi (saat) Frekans 200 0.05 250 0.06 300 0.17 350 0.05 400 0.30 450 0.15 500 0.06 550 0.14 600 0.02 Toplam 1.00 Ortalama haftalık üretim gereksinimi = 200(0.05) + 250(0.06) + 300(0.17) + … + 600(0.02) = 400 saat
Specialty Steel Products Co. Haftalık İşyükü Relatif Gereksinimi (saat) Frekans 200 0.05 250 0.06 300 0.17 350 0.05 400 0.30 450 0.15 500 0.06 550 0.14 600 0.02 Toplam 1.00 Normal Relatif Kapasite (saat) Frekans 320 (8 makine) 0.30 360 (9 makine) 0.40 400 (10 makine) 0.30 Haftalık ortalama kapasite: 320(0.30) + 360(0.40) + 400(0.30) = 360 saat Fazla mesai Maliyeti 25 Max fazla mesai 100 Taşeron maliyeti 35 Ortalama haftalık üretim gereksinimi = 400 saat
Specialty Steel Products Co. Haftalık İşyükü Relatif Gereksinimi (saat) Frekans 200 0.05 250 0.06 300 0.17 350 0.05 400 0.30 450 0.15 500 0.06 550 0.14 600 0.02 Total 1.00 Normal Relatif Kapasite (saat) Frekans 320 (8 makine) 0.30 360 (9 makine) 0.40 400 (10 makine) 0.30 Haftalık ortalama kapasite = 360 saat Eğer 11 makine ile çalışılırsa, çalışan kapasite aşağıdaki gibi olacaktır. Normal Relatif Kapasite (saat) Frekans 360 (9 makine) 0.30 400 (10 makine) 0.40 440 (11 makine) 0.30 Ortalama haftalık üretim gereksinimi = 400 saat
Specialty Steel Products Co. Rassal Sayıların Kullanımı 0-1 arasındaki rassal sayılar relatif frekans tablosuna uygun olarak talep üretmede kullanılacaktır. Event Existing Weekly Random Weekly Random Demand (hr) Probability Numbers Capacity (hr) Probability Numbers 200 0.05 0.00–0.04 320 0.30 0.00–0.29 250 0.06 0.05–0.10 360 0.40 0.30–0.69 300 0.17 0.11–0.27 400 0.30 0.70–0.99 350 0.05 0.28–0.32 400 0.30 0.33–0.62 450 0.15 0.63–0.77 500 0.06 0.78–0.83 550 0.14 0.84–0.97 600 0.02 0.98–0.99
Specialty Steel Products Co. 20-hafta simülasyon © 2007 Pearson Education Specialty Steel Products Co. 20-hafta simülasyon 10 Makine Çalışan Talep Haftalık Kapasite Haftalık Rassal Üretim Rassal Kapasite Boş Fazla Mesai Taşeron Hafta Sayısı (saat) Sayısı (saat) Saat Saat Saat 1 71 450 50 360 90 2 68 450 54 360 90 3 48 400 11 320 80 4 99 600 36 360 100 140 5 64 450 82 400 50 6 13 300 87 400 100 7 36 400 41 360 40 . . . . . . . . . . . . . . . . . . . . . . . . 20 37 400 19 320 80 Total 490 830 360 Weekly average 24.5 41.5 18.0
Capital Bank An example of queuing system simulation Capital Bank is considering opening the bank on Saturdays morning from 9:00 a.m. Management would like to determine the waiting time on Saturday morning based on the following data: Data: There are 5 teller positions of which only two will be staffed. Ann Doss is the head teller, experienced, and fast. Bill Lee is associate teller less experienced and slower.
Capital Bank Data: Service time distributions: Ann’s Bill’s Service Time Probability Service Time Probability 0.5 minutes 0.05 1 minute 0.05 1 0.10 1.5 0.15 1.5 0.20 2 0.20 2 0.30 2.5 0.30 2.5 0.20 3 0.10 3 0.10 3.5 0.10 3.5 0.05 4 0.05 4.5 0.05
Capital Bank Data: Customer inter-arrival time distribution: Inter-arrival time Probability 1Minutes 0.65 1.5 0.15 2 0.15 2.5 0.05 Service priority rule is first come first served A simulation model is required to analyze the service.
Capital Bank – Solution Calculating expected values: E (inter-arrival time) = 1 (0.65) + 1.5 (0.15) + 2 (0.15) + 2.5 (0.05) = 1.3minutes [75 customers arrive per hour on the average, (60 / 1.3 = 46.15)] E (service time for Ann) = 0.1 (0.05) + 1 (0.10) +…+ 3.5 (0.05) = 2 minutes [Ann can serve 60 / 2 = 30 customers per hour on the average] E (Service time for Bill and Carla) = 1 (0.05) + 1.5 (0.15) +…+ 4.5 (0.05) = 2.5 minutes [Bill and Carla can serve 60 / 2.5 = 24 customers per hour on the average] To reach a steady state the bank needs to employ all the three tellers (30 + 24 = 54 > 46)
Capital Bank – Simulation Logic If no customer waits in line, an arriving customer seeks service by a free teller in the following order: Ann, Bill. If all the tellers are busy the customer waits in line and takes then the next available teller. The waiting time is the time a customer spends in line, and is calculated by [Time service begins] minus [Arrival Time]
CAPITAL – Simulation Demonstration 1.5 1.5 1.5 1.5 1.5 1.5 Bill 1.5 Ann 1.5 1.5 1.5 3.5 Mapping Interarrival time 80 – 94 1.5 minutes Mapping Ann’s Service time 35 – 64 2 minutes
CAPITAL – Simulation Demonstration Bill 3 5.5 Ann 1.5 3.5 Mapping Interarrival time 80 – 94 1.5 minutes Mapping Bill’s Service time 40 – 69 2.5 minutes
CAPITAL – Simulation Demonstration Waiting time 3 3.5
CAPITAL – 1000 Customer Simulation
CAPITAL – 1000 Customer Simulation This simulation estimates two performance measures: Average waiting time in line (Wq) = 1.67 minutes Average waiting time in the system W = 3.993 minutes Average inter-arrival time = .80 minutes. To determine the other performance measures, we can use Little’s formulas: Average number of customers in line Lq =(1/.80)(1.67) = 2.0875 customers Average number of customers in the system = (1/.80)(3.993) = 4.99 customers.
Problemler