İçindekiler
1. Monte Carlo Simülasyonu Nedir
Monte Carlo, adını kumarhane şehri Monako'daki Monte Carlo'dan alır. 1940'larda Stanislaw Ulam ve John von Neumann tarafından nükleer silah tasarımında kullanılmak üzere geliştirilmiştir. Rastgeleliği içeren sistemlerin davranışını büyük sayıda (10.000–1.000.000) rastsal örneklemeyle modelleyen bir yöntemdir.
Proje Yönetimi › Süre/Maliyet Risk Analizi (P80 bütçe)
Tedarik Zinciri › Talep + Temin Süresi Belirsizliği
Finans › VaR (Value at Risk), Portföy Simülasyonu
Mühendislik › Güvenilirlik analizi, tolerans yığılması
Üretim › Kapasite ve verim dağılımı modellemesi
Enerji › Rüzgar/güneş üretim tahmini, ROI analizi
Deterministik: Maliyet = 1.000K (tek nokta tahmin)
› "Bütçe yetecek mi" › "Evet" veya "Hayır" (ikili cevap)
Monte Carlo: Maliyet ~ Üçgen(800K, 1.000K, 1.500K)
› "₺1.200K'yı geçme olasılığı %32'dir"
› "₺950K ile tamamlama olasılığı yalnızca %18'dir"
› BELİRSİZLİĞİN NİCELLEŞTİRİLMESİ!
2. Monte Carlo Yönteminin 5 Adımı
| Adım | İşlem | Araç | Kritik Nokta |
|---|---|---|---|
| 1. Modeli Tanımla | Çıktı = f(girdi0, girdi², ...) | Uzman görüşü, tarihsel veri | Doğru model yapısı |
| 2. Dağılımları Ata | Her girdi için olasılık dağılımı seç | Histogram, Ki-kare uyum testi | Doğru dağılım tipi |
| 3. Rastsal Örnekle | Her iterasyonda her girdiden değer çek | Python numpy, @Risk, Crystal Ball | Yeterli iterasyon sayısı |
| 4. Çıktıyı Hesapla | Model denklemini çalıştır, sonucu kaydet | 10.000+ iterasyon | Korelasyon varsa dikkate al |
| 5. Analiz Et | Histogramı, CDF'i, percentil değerleri yorumla | Matplotlib, Tornado grafiği | P50, P80, P90 karar noktaları |
3. Yaygın Girdi Dağılımları
| Dağılım | Parametre | Ne Zaman Kullanılır | Endüstri Örneği |
|---|---|---|---|
| Üçgen (Triangular) | min, mod, max | Az veri, uzman tahmini | İnşaat maliyet tahmini |
| PERT Beta | min, mod, max | Proje süreleri (mod'a ağırlık) | PERT/CPM süre analizi |
| Normal | µ, | Merkezi limit teoremi geçerli | Parça boyutu toleransı |
| Lognormal | µ, | Negatif olamayan değişkenler | Tamir süresi, gelir |
| Uniform | min, max | Tam belirsizlik, tüm değerler eşit olasılık | Döviz kuru aralığı |
| Weibull | ß, | Ömür/güvenilirlik analizi | Rulman MTBF, türbin ömrü |
| Poisson | Sayma (olay/periyot) | Arıza/hafta, kaza/ay | |
| Exponential | Gelişler arası süre | Kuyruk modeli servis süresi |
4. İterasyon Sayısı ve Yakınsama
Standart hata: SE = / n
n = 100 › SE = /10 › ±%10 hata payı
n = 1.000 › SE = /31.6 › ±%3 hata payı
n = 10.000 › SE = /100 › ±%1 hata payı
n = 100.000 › SE = /316 › ±%0.3 hata payı
Pratik kural: Çoğu endüstriyel uygulama için 10.000 iterasyon yeterli.
Kuyruk olasılıkları (P99 gibi) için 100.000+ gerekebilir.
5. Proje Risk Analizi: Bütçe Aşım Olasılığı
| Maliyet Kalemi | Minimum | En Olası | Maksimum | Dağılım |
|---|---|---|---|---|
| Yazılım geliştirme | 800K | 1.000K | 1.500K | Üçgen |
| Donanım alımı | 400K | 500K | 700K | Üçgen |
| Entegrasyon | 200K | 300K | 600K | Üçgen (sağa çarpık) |
| Eğitim | 50K | 80K | 150K | Üçgen |
Beklenen Maliyet (E[C]): 1.960K
P10 (en iyi %10): 1.720K
P50 (medyan): 1.930K
P80 (%80 güven): 2.180K
P90 (%90 güven): 2.350K
P95 (%95 güven): 2.520K
Bütçe: 2.000K iken:
Bütçe aşım olasılığı: %54! ‹ Yüksek risk
Güvenli bütçe (P80): 2.180K gerekli
Çok güvenli (P90): 2.350K gerekli
6. Tedarik Zinciri Uygulaması: Emniyet Stoku
Talep ~ Normal(µ=100, =20) parça/gün
Temin süresi ~ Üçgen(3, 5, 10) gün
Emniyet stoku (klasik formül):
SS = z × (L×_d² + d²×_L²)
z=1.65 (%95 servis): SS = 1.65 × (5×400 + 10000×4.08) = ~352 parça
Monte Carlo ile:
10.000 iterasyonda temin dönemi talebi simüle edilir.
P95 değeri doğrudan okunur: P95 = 385 parça
› Klasik formülden %9 daha yüksek çünkü temin süresi asimetrik!
Monte Carlo, asimetrik dağılımlarda klasik formüllerden daha doğru sonuç verir.
7. Tornado ve Duyarlılık Analizi
| Girdi Değişkeni | Çıktı Üzerindeki Etki (korelasyon) | Yorum |
|---|---|---|
| Yazılım geliştirme maliyeti | r = 0.78 ----------------- | En büyük belirsizlik kaynağı! |
| Entegrasyon maliyeti | r = 0.52 ------------ | Sağa çarpık, uç değer riski |
| Donanım maliyeti | r = 0.31 ------- | Orta etki |
| Eğitim maliyeti | r = 0.15 ---- | Düşük etki |
"Bütçeyi kontrol altına almak istiyorsanız, yazılım geliştirme maliyetini daraltın — bu tek girdi toplam belirsizliğin %60'ından sorumlu! Eğitim maliyetini optimize etmek ise neredeyse hiç etki yaratmaz."
8. Python ile Monte Carlo (Pseudo-kod)
import numpy as np
n = 10_000 # iterasyon
results = []
for i in range(n):
yazilim = np.random.triangular(800, 1000, 1500)
donanim = np.random.triangular(400, 500, 700)
enteg = np.random.triangular(200, 300, 600)
egitim = np.random.triangular(50, 80, 150)
results.append(yazilim + donanim + enteg + egitim)
p50 = np.percentile(results, 50)
p80 = np.percentile(results, 80)
p90 = np.percentile(results, 90)
print(f"P50={p50:.0f}K, P80={p80:.0f}K, P90={p90:.0f}K")
9. Vaka Çalışması 1: Rüzgar Santrali Yatırımı
| Girdi Değişkeni | Dağılım | Parametre |
|---|---|---|
| Rüzgar hızı (m/s) | Weibull | k=2.1, =7.8 |
| Türbin maliyeti (€M) | PERT | min=42, mod=48, max=58 |
| Elektrik fiyatı (€/MWh) | Lognormal | µ=65, =15 |
| İnşaat süresi (ay) | Üçgen | min=14, mod=18, max=28 |
| Kapasite faktörü (%) | Normal | µ=32, =4 |
50.000 iterasyon NPV sonuçları:
| Percentil | NPV (€M) | Yorum |
|---|---|---|
| P10 (en kötü %10) | -12M | Zarar riski var |
| P25 | +14M | Düşük getiri |
| P50 (medyan) | +34M | Beklenen değer |
| P75 | +52M | İyi senaryo |
| P90 (en iyi %10) | +71M | Çok iyi |
Karar: P50 pozitif › yatırım onaylandı. Ancak P10 negatif › döviz kuru riskine karşı hedge anlaşması koşulu eklendi.
10. Vaka Çalışması 2: Üretim Hattı Verim Analizi
| Metrik | Deterministik | MC (P80) | Fark |
|---|---|---|---|
| Günlük üretim | 450 araç | 412 araç | -38 araç (%8.4) |
| OEE | %85 (hedef) | %77 (P50) | -8 puan |
| Yıllık gelir kaybı | 0 | ₺28M (P80) | Risk görünür oldu |
| En kritik risk | Bilinmiyor | Boyahane arızası | Tornado ile tespit |
Sonuç: Deterministik plan %85 OEE varsayıyordu. MC simülasyonu gerçeğin P50'de %77 olduğunu gösterdi. Boyahane TPM programı öncelikli hale getirildi › 6 ayda OEE %77›%83'e çıktı.
11. Sonuç
Belirsizlik var › Tek nokta tahmini yapma, dağılım ata
Doğru dağılım seç › Az veri = Üçgen/PERT, Çok veri = Histogram fit
Min 10.000 iterasyon › Kuyruk analizleri için 100.000+
Tornado grafiği › Hangi girdinin en çok etkisi var
P80 ile raporla › "₺2.18M bütçe %80 güvenle yeterli"
Araçlar › Python (ücretsiz), @Risk, Crystal Ball, Arena
Tekrarla › Proje ilerledikçe dağılımları güncelle