Monte-Carlo Simülasyonu
Monte Carlo Simülasyonu/Benzetimi Monte Carlo Simülasyonu adında da anlaşılabileceği gibi Monte Carlo Yöntemi ailesine aittir. Monte Carlo Yöntemi rastgele sayılarla denenerek yaparak sonuca ulaşmayı amaçlayan deneysel bir yöntemdir. Bu şekilde matematiksel ve fiziksel problemlerin çözümü amaçlanmaktadır. Los Alamos Bilimsel Laboratuar’ından John Von Neumann, Stan Ulam ve Nick Metropolis adlarında üç bilim adamı tarafından ortaya çıkarılmıştır. Metropolis algoritması olarak da bilinir. Algoritma, kesin çözüm yapmanın zor olduğu problemlerde tahmini çözümlere gitmeyi amaçlar. Yani olasılık teorisi üzerine kurulmuştur. Monte Carlo Benzetim metodu, olasılık teorisi üzerine kurulu bir sistemdir. Monte Carlo metodunda istatistiksel ve matematiksel tekniklerle bir deneyi veya çözülmesi gereken bir fiziksel olayı tesadüfi sayıları defalarca kullanarak simülasyon edilip çözmek esastır.
1930 yılında İtalyan bir fizikçi olan Enrico Fermi’nin, yeni keşfedilmiş olan nötronun özelliklerinin hesaplaması sırasında Monte Carlo Yöntemi’ni kullanması ile bu yöntemin adı duyulmuş oldu. Sınırlı hesaplama kaynaklarına sahip olunduğunda sıklıkla kullanılan bir yöntemdir. Örnek olarak Monte Carlo Yöntemi İkinci Dünya Savaşı sırasında ilk atom bombasının geliştirildiği Manhattan Projesi’nde kullanılmıştır. (0-1) aralığında düzgün, (U(0.1)), rassal sayılar kullanılarak, zaman faktörünün önemli olmadığı, olasılıklı (stokastik) veya belirli (deterministik) problemlerin çözümünde kullanılan bir tekniktir. Monte Carlo Benzetimi, genellikle statik benzetim modellerinde kullanılır.
Monte Carlo simülasyonu günümüzde zaman akışının önemli olmadığı deterministik veya olasılıksal problemlerin çözümünde rassal sayılar kullanılarak yapılan plan olarak tanımlanır. Dinamik karekterli olmaktan çok statik karakterli (Law ve Kelton, 1991, s.113) olan Monte Carlo simülasyonu, en iyi bilinen ve yaygın olarak kullanılan simülasyon yöntemlerinden biri olarak belirginleşmekte ve parametrelerin olasılık dağılımlarıyla modellenebileceği varsayımına dayanmaktadır.
Monte Carlo yönteminin temel amacı, büyük elemanlar topluluğunun özelliklerinin rastgele olarak seçilmiş bir alt kümesi aracılığı ile çıkartılmasıdır. Örneğin herhangi bir f(x) fonksiyonunun (a, b) aralığındaki beklenen değerinin, bu fonksiyonun yine bu aralıkta, rastgele seçilen sonlu sayıdaki noktalarındaki tahmini değerinden çıkartılmasını amaçlar. Yöntem; Hücre Simülasyonu, Borsa Modelleri, Dağılım Fonksiyonları, Sayısal Analiz, Doğal olayların simülasyonu, Atom ve Molekül Fiziği, Nükleer Fizik ve Yüksek Enerji Fiziği modellerini test etmek amacıyla kullanılır.
Monte Carlo Yöntemi ile Sayısal İntegrasyon ve Hata Değerlendirmesi Matematik ve fizikte sıklıkla analitik olarak çözülemeyen problemlerle karşılaşırız. Özellikle çok boyutlu integral alma durumu söz konusu olunca hesaplamalar gittikçe karmaşıklaşmakta ve maliyet yükselmektedir. Monte Carlo yönteminde yüksek boyutlu entegrallerin çözümü daha kolaylaşmakta ve hata oranı işlem yapılmadan önce yaklaşık olarak rahatlıkla kestirilebilmektedir. Genel Olarak Monte Carlo Yöntemi Şu Şekildedir: Herhangi bir R bölgesinde f fonksiyonunun integralini almak isteyelim.
Monte Carlo Yöntemi ile Sayısal İntegrasyon ve Hata Değerlendirmesi İntegral boyutunu 5 olarak kabul edip her boyut için 10 adet örnek elaman kullandığımızda yapmamız gereken toplam işlem sayısı ve hata oranını Yöntem Toplam İşlem Sayısı Hata Oranı Normal Monte Carlo
Monte Carlo Yöntemine Ait Teknikler Reddetme (Rejetion) Yöntemi Bu yöntem uygulanmak istendiğinde, öncelikle seçilen bir dağılım fonksiyonu kullanılarak elde edilen rastgele değerlerden çözüme gidilmeye çalışılır. Seçilen rastgele noktalar, eğer f(x) fonksiyonuna ait eğrinin altında kalıyorsa kabul, üstünde ise reddedilerek toplam yapılan denemelerden kaç tanesinin başarılı sonuç verdiği hesaplanır. Yapılan işlemler sonucunda, toplam deneme sayısının başarılı deneme sayısına oranı, toplam alanın integrali alınmak istenen f(x) fonksiyonunun alanına oranını verir.
Bu yöntem, bir veya daha fazla keskin tepesi olan fonksiyonlar için uygun bir yöntem değildir. Ayrıca reddetme yönteminde analitik düzlem üzerinde bölge sınırları yanlış belirlenmiş ise reddedilen noktalar vakit kaybına sebep olur
Ortalama (Averaging) Yöntemi Ortalama yöntemi de rastgele seçilen sayılar/noktalar üzerinde işlem yapar. Reddetme yönteminden farklı olarak, alan taramak yerine, seçilen noktalardaki fonksiyonun değerinden yola çıkarak sonucu bulmaya çalışır.
Kontrol Değişkeni (Control Variates) Yöntemi Bu yöntemde, integrali alınmak istenen f(x) fonksiyonuna oldukça yakın bir h(x) yardımcı fonksiyonu kullanılır. Bu yardımcı fonksiyonun integral değeri, f(x) fonksiyonumuzdan daha kolay hesaplanabilir veya çözümü bilinen bir fonksiyon olmalıdır. Böylelikle seçilen her rastgele noktada iki fonksiyonun farkından, integral değerleri arasındaki fark bulunmaya çalışılır. Elde edilen fark değeri h(x) fonksiyonunun integral değerine eklenerek f(x) fonksiyonuna ulaşılmaya çalışılır.
Önem Örneklemesi (Importance Sampling) Yöntemi Bu yöntem, bir önceki kontrol değişkeni yöntemine oldukça benzerdir. Kontrol yönteminden farklı olarak kullanılan h(x) yardımcı fonksiyonunun etkisi toplamsal değil çarpımsaldır. Kontrol değişkeni yönteminde olduğu gibi seçilen h(x) fonksiyonunun doğruluğu hata oranını azaltmaktadır. Elde edilen fark değeri h(x) fonksiyonunun integral değeri ile çarpılarak f(x) fonksiyonuna ulaşılmaya çalışılır.
Monte Carlo Yöntemi ile Pi (π) Sayısının Tahmini Pi sayısı (π), bir dairenin çevresinin çapına bölümü ile elde edilen matematik sabiti. İsmini, Yunanca περίμετρον (çevre) sözcüğünün ilk harfi olan π den alır. Günlük kullanımda basitçe 3, 3.14 veya 3.1415 olarak ifade edilmesine rağmen gerçek değeri bilinmemektedir. Analitik düzlemde daire formülü. Birim dairenin yarıçapı 1 olduğundan y’ yi x cinsinden yazarsak Dairenin alanı Birim daire ile ilgilendiğimizden dolayı alan ’ dir. Monte Carlo yöntemi kullanılarak bulunacak bölgenin alanı, olan çeyrek dairenin alanı olduğundan, bu çeyrek dairenin alanını bularak pi sayısına ulaşmış oluruz.
Reddetme Yönteminin Uygulanışı ve Sonuçları Taranacak alanının belirlenebilmesi için, fonksiyonun ilgilenilen aralıkta en yüksek tepe değerinin bilinmesi gerekir. Reddedilen noktalar bizim için herhangi bir önemi olmadığı için, alanı hesaplanacak bölgenin doğru şekilde seçilmesi gerekir. Fonksiyon eğrisinin altında kalan alanlar integral değerine eklenecek, üstünde kalan noktalar ise reddedilecektir. Rastgele sayılara göre taranan noktaların kaçının eğrinin altında, kaçının eğrinin üstünde kaldığının oranı integralin değerini verecektir.
Tablodan da anlaşılacağı üzere, bu yöntemde örnek miktarının arttırılmasına rağmen pi değerinden önemli bir iyileşme göstermemiştir. Bu durum yöntemin söz konusu örnek için verimsizliğini gösterir.
Ortalama Yönteminin Uygulanışı ve Sonuçları Reddetme yönteminden farklı olarak, alan taramak yerine, seçilen noktalardaki fonksiyonun değerlerini kullanarak integralin bulunmasını sağlar. Sadece x- ekseninden rastgele sayılar seçilerek fonksiyonunun y eksenindeki değerleri bulunur. Üretilen her x değeri için hesaplanan ortalamanın, fonksiyonun ilgilendiğimiz aralıktaki ortalaması olduğunu varsayıp, bu elde edilen ortalama değerini aralık büyüklüğümüz ile çarparsak integral değerimize ulaşmış oluruz. *
Tablodan da anlaşılacağı üzere, bu yöntemde pi sayısına yaklaşım reddetme yöntemine oranla daha iyidir. Aynı aralıktaki rastgele sayılar için ortalama yöntemi daha iyi sonuçlar vermiştir.
Kontrol Değişkeni Yönteminin Uygulanışı ve Sonuçları Bu yöntemde integral çözümü bilinen ve de aradığımız fonksiyona oldukça benzer olan ve onu iyi takip eden bir yardımcı fonksiyon seçilir. h(x)= fonksiyonu seçilmiş olsun. Bu yöntemde, ortalama yönteminde olduğu gibi x koordinat düzlemindeki rastgele sayılara karşılık gelen her iki fonksiyonun değerleri hesaplanır. Her iki fonksiyonun farkı alınarak aralık değeri ile çarpılır. Bu yöntemin en temel zorluğu yardımcı fonksiyonun bulunması işlemidir.
Az sayıda örnek alınmasına rağmen diğer yöntemlere göre daha hızlı ve yakın sonuç üretmiştir.
Önem Örneklemesi Yönteminin Uygulanışı ve Sonuçları Bu yöntem, kontrol değişkeni yöntemine oldukça benzer bir yöntemdir. Fakat aranılan fonksiyona yakınsamak amacıyla kullanılan yardımcı fonksiyonun etkisi, toplamsal değil çarpımsaldır.
Bu yöntem; hiçbir zaman kontrol değişkeni yöntemi kadar iyi sonuç veren bir yöntem değildir fakat uygun yaklaşım fonksiyonu seçilir ise ortalama ve reddetme yöntemine göre daha verimli sonuçlar üretir.
Matlap İle Pi Sayısının Bulunması Alanı 1 br^2 olan bir kare düşünelim ve içine de kenarlarına teğet olacak şekilde çember düşünelim. Bu alanın içine rastgele(random) bir a noktası koyarsak, bunun çemberin içine gelme olasılığı (P), P=(alan)_daire/(alan)_kare=pi*r^2/1 pi=P/r^2 Karenin içine düşen noktara “n” ve dairenin içine düşen noktalara “m” dersek aşağıdaki Matlab programı yaklaşık “pi” sayısını verecektir.
clc; n=input('Nokta sayısı: '); x=rand(n,1); y=rand(n,1); figure('color','white'); hold all axis square; x1=x-0.5; y1=y-0.5; %çemberin merkezi (0.5,0.5) r=x1.^2+y1.^2; m=0; %Nçember içindeki nokta sayısı for i=1:n if r(i)<=0.25 m=m+1; plot(x(i),y(i),'b.'); else plot(x(i),y(i),'r.'); end end m/(0.25*n)
n=50 için n=1000 için n=10000 için
ÖRNEK PROBLEM-1 Kenarları birim uzunlukta olan bir kare düşününüz. Bu kare içinde rassal seçilen A ve B noktaları olsun. A ve B arası d uzunluğundadır. d’nin 0.8’den küçük olma olasılığı nedir? Açıklama: Monte Carlo tekniğiyle rassal olarak 1000 adet A ve B noktaları üreterek d’nin 0.8’den küçük olma olasılığını bulunuz. Kullanacağınız yaklaşımı açıklayarak, akış şemasını çiziniz.
N=N+1 BAŞLA N=1000 D<0.8 N1= N1+1 DUR D=√(x2 – x1)2+(y1 – y2)2 u1 ~ u (0,1) üret ve x1=u1 u2 ~ u (0,1) üret ve y1=u2 u3 ~ u (0,1) üret ve x2=u3 u4 ~ u (0,1) üret ve y2=u4 D=√(x2 – x1)2+(y1 – y2)2 N=N+1 BAŞLA Hayır N=1000 Hayır D<0.8 Evet N1= N1+1 Evet N1/ N hesapla DUR
ÖRNEK PROBLEM-2 Şekilde görülen eğrisi ile x ekseni arasında kalan taralı alanı Monte Carlo benzetimi kullanarak bulunuz? Eğer dikdörtgen içerisinde rastgele noktalar (xi,yi) işaretleyip bu noktaların eğrinin altında olup olmadıklarını belirler ve bunu toplam nokta sayısına oranlarsak A alanının R karesine olan oranını yaklaşık olarak elde edebiliriz.
ÖRNEK PROBLEM-3 0 ile 100 arasında bulunan sayılar içinden rastgele seçilen bir sayının 11’e tam bölünebilme olasılığı nedir ? Analitik Çözüm : 0 ile 100 arasında 11 ‘e tam bölünen sayıları bulup bunları tüm sayılara oranlarsak sorumuzun cevabını bulabiliriz. Bu sayılar ; 11, 22, 33, 44, 55, 66, 77, 88, 99 olmak üzere toplam 9 adet, Tüm sayılarda 1,2,3,4 .... 100 olmak üzere 100 adet; O zaman Olasılık değerimiz P = 9/100 = 0,09 olmaktadır.
Monte Carlo Benzetimi ile Çözüm : Monte Carlo benzetimi 0 ile 100 arasında rastgele n adet sayı seçmemizi ister. Seçeceğimiz n adet sayıdan m tanesinin 11’e tam bölündüğünü farzedelim. Bu durumda Olasılık değerimiz m / n olur. Programlama esnasında rastgele seçilecek her sayı değeri için n artarken , m değeri seçilen sayının 11’e tam bölünmesi durumda artırılmalıdır.