Monte Carlo, bir ya da daha çok olasılık dağılımından rastgele sayılar seçerek bir sistemi (ya da deneyi) taklit eden ve aranan niceliği bu simülasyonlardan yaklaşık olarak hesaplayan yöntemler bütünüdür. İlk uygulamalar nükleer taşınım ve nötron yayılımı problemlerine dayanır; adlandırma Von Neumann ve Ulam’a atfedilir. Yöntem, şans oyunu kavramından farklı olarak fiziksel sistemi tanımlayan olasılık yoğunluk fonksiyonlarından seçilen rastgele değerlerle hesap yapar.
Simülasyon, gerçek sistemin neden–sonuç ilişkilerini bilgisayara taşıyan ve farklı koşullar altında sistem davranışını model üzerinde incelemeye imkân veren bir metodolojidir; optimum çözümü garanti etmez, fakat alternatifleri karşılaştırmaya ve en kötü durum senaryolarını test etmeye elverişlidir. Erken dönem uygulamalarda “analog simülasyon” adlandırması da kullanılmıştır; güncel kullanımda Monte Carlo, model örneklemesi ve şans oyunlarından ayrı, net bir teknik çerçeve sunar.
Bir aralıkta a≤x≤b sonuçlarını üreten bir olayın olasılık yoğunluğu p(x), birikimli dağılımı ise
<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">Q</span><span class="mopen">(</span><span class="mord mathnormal">x</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.2151em;vertical-align:-0.3558em;"></span><span class="mop"><span class="mop op-symbol small-op" style="margin-right:0.19445em;position:relative;top:-0.0006em;">∫</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8593em;"><span style="top:-2.3442em;margin-left:-0.1945em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">a</span></span></span></span><span style="top:-3.2579em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">x</span></span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.3558em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal">p</span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7519em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">′</span></span></span></span></span></span></span></span></span><span class="mclose">)</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal">d</span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7519em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">′</span></span></span></span></span></span></span></span></span></span></span></span>
şeklinde tanımlanır. Monte Carlo’nun “temel ilkesi”,<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.13889em;">T</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">Q</span><span class="mopen">(</span><span class="mord mathnormal">x</span><span class="mclose">)</span></span></span></span>dönüşümüyle<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.13889em;">T</span></span></span></span>'nin <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">[</span><span class="mord">0</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">1</span><span class="mclose">]</span></span></span></span>üzerinde düzgün dağılımlı olması ve tersine çözümle <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.07847em;">X</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.0213em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathnormal">Q</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7713em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">−</span></span></span></span></span></span></span></span><span class="mord">1</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.13889em;">T</span><span class="mclose">)</span></span></span></span> elde edilmesidir (ters dönüşüm yöntemi). Bu yapı, hedef dağılımdan örnek üretmenin standart yoludur.
Bilgisayarda üretilen sayılar deterministiktir; ancak istatistiksel olarak “rastgele” özellikler gösterdiklerinde sözde rastgele (pseudo-random) sayılar olarak adlandırılır. Yaygın bir üretici, karma (mixed) kongrüans yöntemidir:
<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6595em;"></span><span class="mord mathnormal">x</span><span class="mord mathnormal">i</span><span class="mord"></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.1514em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">x</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord mathnormal">i</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">1</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">c</span><span class="mclose">)</span><span class="mord mathnormal">m</span><span class="mord mathnormal">o</span><span class="mord mathnormal">d</span><span class="mord mathnormal">m</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal">u</span><span class="mord mathnormal">i</span><span class="mord"></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">x</span><span class="mord mathnormal">i</span><span class="mord">/</span><span class="mord mathnormal">m</span><span class="mord">.</span></span></span></span>
Dizinin periyodu<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">m</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal">a</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal">c</span></span></span></span> uygun seçilirse büyütülebilir; her sayı 0–1 aralığına ölçeklenerek simülasyonda kullanılır.
Kesikli dağılımlar için önce kümülatif olasılık fonksiyonu oluşturulur; 0–1 aralığındaki <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.10903em;">U</span></span></span></span> sayısı hangi aralığa düşerse ona karşılık gelen değer seçilir. Sürekli dağılımlar için sayısı hangi aralığa düşerse ona karşılık gelen değer seçilir.
Sürekli dağılımlar için<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.13889em;">F</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3283em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.07847em;">X</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord"></span><span class="mopen">(</span><span class="mord mathnormal">x</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.13889em;">P</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.07847em;">X</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">≤</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">x</span><span class="mclose">)</span></span></span></span>hesaplanır; <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.10903em;">U</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">∼</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.10903em;">U</span><span class="mopen">(</span><span class="mord">0</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">1</span><span class="mclose">)</span></span></span></span>üretilir ve <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.13889em;">F</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3283em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.07847em;">X</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathnormal">x</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.10903em;">U</span></span></span></span>denklemi <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">x</span></span></span></span> için çözülür (ters dönüşüm). Hazır RNG fonksiyonları (ör. RANDU, RN(0), RND((<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">x</span></span></span></span>)) pratikte sıklıkla kullanılır.
Aynı cevap parametreleri altında dahi, her simülasyon çalışması farklı bir tahminler kümesi üretir; bu, Monte Carlo’da katlanılması gereken temel hatadır ve örnekleme büyüklüğü ile yöntemsel tercihlerle yönetilir. Bağımsız tekrarların ortalamasını almak standart hatayı<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.0503em;vertical-align:-0.25em;"></span><span class="mord">1/</span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8003em;"><span class="svg-align" style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord" style="padding-left:0.833em;"><span class="mord mathnormal">n</span></span></span><span style="top:-2.7603em;"><span class="pstrut" style="height:3em;"></span><span class="hide-tail" style="min-width:0.853em;height:1.08em;"><svg xmlns="http://www.w3.org/2000/svg" width="400em" height="1.08em" viewBox="0 0 400000 1080" preserveAspectRatio="xMinYMin slice"><path d="M95,702 c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 c69,-144,104.5,-217.7,106.5,-221 l0 -0 c5.3,-9.3,12,-14,20,-14 H400000v40H845.2724 s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z M834 80h400000v40h-400000z"/></svg></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.2397em;"><span></span></span></span></span></span></span></span></span>mertebesinde düşürür (sabit-durum koşullarında).
Basit tesadüfi örnekleme (SRS) ile çizilen girdi örneklemleri, bilinen girdi dağılımını örnek histogram/moment düzeyinde tesadüfi olarak dalgalı temsil eder; bu da simülasyon tahminlerinin varyansını yükseltir. Antitetik değişkenler, tabakalama, ortak rastgele sayılar ve Latin hiperküp gibi teknikler bu nedenle geliştirilmiştir.
Bu bağlamda betimsel örnekleme, “deterministik veri × tesadüfi seri” ilkesine dayanır; girdi değerleri seti deterministik olarak seçilir, yalnızca yerleştirim tesadüfidir. Uygulaması ve programlaması kolaydır; iki ana adımdan oluşur: (i) betimsel değişkenler kümesinin (örnek değer setinin) üretilmesi, (ii) bu değerlerin tesadüfi yerleştirim setleri ile eşlenmesi. Negatif üstel dağılım için tipik formülasyon
<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.5806em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord"></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.0213em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.13889em;">F</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7713em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">−</span></span></span></span></span></span></span></span><span class="mord">1</span><span class="mopen">((</span><span class="mord mathnormal">i</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">0.5</span><span class="mclose">)</span><span class="mord">/</span><span class="mord mathnormal">n</span><span class="mclose">)</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal">i</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8389em;vertical-align:-0.1944em;"></span><span class="mord">1</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="minner">…</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal">n</span></span></span></span>
şeklinde verilir. Ampirik karşılaştırmalarda, betimsel örnekleme ile elde edilen tahminlerin varyansı SRS’ye göre anlamlı biçimde daha düşüktür; kimi uygulamalarda ek varyans azaltma tekniklerine ihtiyaç kalmadığı raporlanmıştır.
Betimsel örneklemenin algoritmik çerçevesi, ters dönüşüm ile oluşturulan küme değerleri<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.07847em;">X</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3361em;"><span style="top:-2.55em;margin-left:-0.0785em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">d</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>’nin her çalıştırmada yer değiştirme olmadan kullanılması ve her adımda rasgele bir indeksle eşleştirilmesine dayanır.
Basit bir düşünce deneyi: [0,1] üzerinde üretilen rastgele sayılarla bir nötronun madde içindeki adımları simüle edildiğinde, örneğin 0.23, 0.71 ve 0.62 değerleriyle toplam mesafe üçüncü adımda 1’i aşarak parçacığın ortamı terk ettiğini gösterir; bu tür tekrarlar ile “kaç adımda çıkış” gibi nicelikler yaklaşıklanır.
MCNP, nötron/foton/elektronların üç boyutlu geometride, zamana bağlı sürekli enerji taşınımını (transport) çözen genel amaçlı bir Monte Carlo kodudur; sabit kaynak ve kritik-altı problemleri kapsar. Kodun kökleri Los Alamos’taki çalışmalara dayanır; gelişimi kalite güvencesi, dokümantasyon ve daha iyi fizik modellerine güçlü vurgu ile sürdürülür.
Monte Carlo ve genel simülasyon teknikleri; üretim/imalat, envanter ve dağıtım, tamir-bakım sistemleri, iletişim ve ulaştırma altyapıları, uzay uçuşlarında risk minimizasyonu, askeri savunma, nükleer teknoloji, ölçme-değerlendirme, sosyoekonomik sistemler gibi alanlarda yaygın biçimde kullanılır; yöntemin riski temsil gücü bu alanlarda tercih edilme nedenidir.
Avantajlar: Esneklik; anlaşılabilirlik; aşamalı uygulama imkânı; klasik yöntemlerin kullanılamadığı büyük ve karmaşık problemlerde etkililik; diğer yöntemlerle incelenmesi güç kısıt/koşulların modellenebilmesi; uzun dönemli sonuçların kısa sürede analiz edilebilmesi; sistemi değiştirmeden yeni politika ve fikirleri deneme olanağı; deney koşulları üzerinde yüksek kontrol.
Dezavantajlar: İyi bir modelin geliştirilmesi zaman ve maliyet gerektirir; optimum çözüm garantisi yoktur; her model kendi bağlamına özgüdür; uygulama kolaylığı analitik çözümlerin göz ardına itilmesine yol açabilir; modelleme ve bulguların analizindeki hatalar yanlış sonuçlar doğurabilir.
Henüz Tartışma Girilmemiştir
"Monte Carlo Yöntemleri" maddesi için tartışma başlatın
Simülasyonun yeri
Model türleri
Matematiksel Temel
Rastgele (sözde rastgele)
Dağılımlardan Örnekleme
Monte Carlo Simülasyonunun Yürütülmesi
Varyans Azaltma ve Betimsel (descriptive) Örnekleme
Nükleer Taşınım Bağlamında Monte Carlo ve Bir Örnek
MCNP (Monte Carlo N-Particle) Kod Sistemi
Uygulama alanları
Avantajlar ve Dezavantajlar
Bu madde yapay zeka desteği ile üretilmiştir.