Gönderen Konu: Monte Carlo Benzetimi  (Okunma sayısı 5742 defa)

Çevrimdışı Muharrem Mandacı

  • OTOKON Üyesi
  • *
  • İleti: 493
  • ESKİ GİRİŞ KOORDİNATÖRÜ
Monte Carlo Benzetimi
« : Ocak 06, 2017, 11:57:16 ÖS »
    Okuduğum bir kitapta bir metod ile karşılaştım. Araştırdığım zaman yeterli bir bilgi bulamadım sadece ne işe yaradığı gibi yüzeysel bilgiler edinebildim. Aşağıda wikipedia yazısından bir alıntı var.(Ne kadar iyi bir kaynak olduğu tartışılır.)

Alıntı
Deney girdileri belirli olmayan, kesin olmayan bir şekilde gelmesi bekleniyorsa ve dağılım bir fonksiyonla hesaplanabilecekse kullanılır. Monte Carlo, rastgele sayıları baz alarak tahmini sistemleri modeller. Hücre Similasyonu, 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 eden simülasyonlar, Deneylerde kullanılan aletlerin simülasyonu (Örneğin bir madde içerisinde x ışınlarının dağılımı).

Yukarıdaki modellerde tahminler yapabilmek için; Rastgele sayı üretilir, bunun için programlama bilgisi gerekmektedir.

Programlama: Temel düzeyde Monte Carlo programları öğrenildikten sonra, Monte Carlo üreteçlerini oluşturabilmek gerekmektedir. Teorik eğitimin yanında örneğin C, C++ gibi bilimsel çalışmalarda sıklıkla kullanılan programları iyi derecede bilmek gerekmektedir.
Teorik: Programlama aşamasına geçmeden önce problemi ya da deney sistemimizin teorisini çok iyi oluşturmamız gerekmektedir.

    Ardından bu yaklaşım ile ilgili bir örnek bulup C'de yazdım. Bir birim kare içerine birim çember yerleştirdiğinizi düşünün. Sonra bu karenin içine rastgele bir şekilde top atıyorsunuz. Çemberin içine gelen topların sayısını toplam topların sayısına böldüğünüz zaman pi/4 sayısına yakın bir sayı elde etmiş oluyorsunuz. Toplam fırlattığınız top sayısı ne kadar fazla olursa bulduğunuz sayı gerçek pi'ye o kadar çok yaklaşıyor. Yazdığım C kodu aşağıda. Yani rastgele davranışlar ile bir yaklaşım yaparak bir sonuç elde ediyorsunuz.(umarım doğrudur bu cümle)

Kod: [Seç]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(){

int counter = 0;
int number_balls = 1000000;//number_balls sayısı ne kadar yüksek olursa PI'ye o kadar çok yaklaşıyoruz.
double x,y;

int i;
srand((unsigned) time (NULL));
for(i = 0 ; i < number_balls ; i++)
{
x = (double) rand() / RAND_MAX;
y = (double) rand() / RAND_MAX;

//printf("%lf -- %lf \n",x,y);
if((x*x) + (y*y) <= 1) counter++;
}

printf("yaklaşık pi : %lf", ((double)counter / number_balls) * 4);

return 0;
}

    Bu metod hakkında daha çok bilgisi olan biri varsa bizi aydınlatabilir mi? ve tabii yanlışlarım varsa düzeltsin lütfen :D
« Son Düzenleme: Ocak 07, 2017, 12:20:29 ÖÖ Gönderen: Muharrem Mandacı »
ESKİ GİRİŞ KOORDİNATÖRÜ

Çevrimdışı Mert Salık

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 656
Ynt: Monte Carlo Benzetimi
« Yanıtla #1 : Ocak 07, 2017, 12:52:25 ÖÖ »
Up

Çevrimdışı Ozan Arkan Can

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 225
Ynt: Monte Carlo Benzetimi
« Yanıtla #2 : Ocak 07, 2017, 09:19:22 ÖÖ »
Çok engin bilgiye sahip değilim ama benim konu hakkında bilgim şöyle:
 
Elinizde olasılıksal bir model var fakat siz bu modeli bilmiyorsunuz. Probleminiz de episodik. Başlangıç ve bitiş noktaları var. Siz bu modeli öğrenmek istiyorsunuz. Mesela bir noktada bir aksiyon alıyorsunuz gideceğiniz bir sonraki adım P(bir_sonraki_nokta | şu_an_bulunulan_nokta, aksiyon) şeklinde modellenmiş. Bu olasılıkları bulmak için sonsuz defa bir adımdan başlayıp belirli aksiyon alıp, bu aksiyon sonucunda nereye vardığınızı saymanız gerekir. Durum uzayınız ve aksiyon uzayınız yeterli sayı da simülasyon yapmak için uygun olmayabilir. Bu durumda ilgili olasılıkları tamamladığınız episodelar üzerinden oluşturursunuz.

Monte-Carlo ismi fantastik dursa da temel olarak simülasyon yapıp, gözlemlediğiniz değerlerden modelinizi oluşturmayı ifade ediyor.
Solve intelligence
Use it to solve everything else

Çevrimdışı Mesut Karaman

  • OTOKON Üyesi
  • *
  • İleti: 31
Ynt: Monte Carlo Benzetimi
« Yanıtla #3 : Ocak 09, 2017, 11:59:51 ÖS »
Deneyi gerçekleseydin! 8)
"Çizge kuraminin fiyAtini kim belirliyor?"
Naz Enginar

Çevrimdışı Mert Salık

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 656
Ynt: Monte Carlo Benzetimi
« Yanıtla #4 : Ocak 10, 2017, 03:05:18 ÖS »

Monte-Carlo ismi fantastik dursa da temel olarak simülasyon yapıp, gözlemlediğiniz değerlerden modelinizi oluşturmayı ifade ediyor.

Teşekkür ederim ^^

Çevrimdışı Orhun Aras Uzun

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 230
  • Mehmet Hoca
Ynt: Monte Carlo Benzetimi
« Yanıtla #5 : Ocak 15, 2017, 09:59:05 ÖS »
Ben devre analizi tarafindan konusabilirim sadece. Bizim calisma alanimizda (VLSI) Monte-Carlo analizinin yeri process dagilimlarini incelemek oluyor genelde. Process'i saglayan foundry genelde belli bir sayida batch transistor uretip bunlarin karakteristigine bakiyor, bunlarin parametrelerinin istatistiksel dagilimini inceliyor ve buna gore model cikariyor. Devre tasarimcisi da bu dagilimlardan etkilenmeyecek devre tasarlarken foundry'nin sagladigi Monte-Carlo modelleriyle Monte-Carlo simulasyonlari kosturuyor.

Hakkinda ne ogrenmek istedigine bagli olarak devam edebilirim.
Obi Wan "Only a Sith deals in absolutes." diyerek elektronikte ilgi alanını belli etmiş.

Çevrimdışı Muharrem Mandacı

  • OTOKON Üyesi
  • *
  • İleti: 493
  • ESKİ GİRİŞ KOORDİNATÖRÜ
Ynt: Monte Carlo Benzetimi
« Yanıtla #6 : Ocak 16, 2017, 02:22:02 ÖÖ »
Herkese cevapları için öncelikle teşekkür ederim. Aslında ben yazılımda farklı rastgelelik algoritmalarına bakarken bu yaklaşımı gördüm ve araştırdığımda çok geniş bir alana yayıldığını fark ettim. Sizin yaptığını yorumlar da bunu destekler nitelikte.
ESKİ GİRİŞ KOORDİNATÖRÜ

Çevrimdışı İsmail ULUTÜRK

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 1386
  • Festina Lente
Ynt: Monte Carlo Benzetimi
« Yanıtla #7 : Ocak 20, 2017, 05:51:22 ÖS »

Monte-Carlo ismi fantastik dursa da temel olarak simülasyon yapıp, gözlemlediğiniz değerlerden modelinizi oluşturmayı ifade ediyor.

Teşekkür ederim ^^

Eğer bir hipotezinizi doğrulamak için monte karlo analizi kullanırsanız, yazdıklarınızı okuyanların aklına aşağıdaki sahne gelecektir. Bu demek değildir ki işe yaramaz, analitik çözüm yapabiliyorsanız bile bu çözümü doğrulamak için monte karlo analizi de yapmak isteyeceksiniz. Ayrıca akılda bulundurmak gerekir ki, çözmeye değer olan çoğu problemi büyük ihtimalle analitik olarak çözemeyeceksiniz :)

Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something.
- Robert Heinlein

Çevrimdışı Ufuk Sevim

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 451
Ynt: Monte Carlo Benzetimi
« Yanıtla #8 : Ocak 24, 2017, 01:03:49 ÖÖ »
Monte Carlo yöntemleri (buna genetik algoritma, karınca kolonisi optimizasyonu, vs. gibi rastgelelik içeren algoritmalar da dahil) problemin özü hakkında bir bilgi vermiyor. Kaldı ki çözümün doğru (ya da optimal) olduğu da garanti değil hiçbir zaman.

Analitik yöntemlerle çözüm bulunamasa bile bazen yaklaşıklıklarla da çözüm hakkında ciddi fikrimiz olabilir (bkz. Hartman-Grobmann Theorem).

Eğer elden başka bir şey gelmezse Monte Carlo simülasyonları faydalı olabiliyor. Yine de Monte Carlo yöntemleri daha çok fizikçi ve mühendislere hitap ediyor. Matematikçiler için bu bir kanıt sayılamaz asla. Kaldı ki bilgisayarlı kanıtlara karşı da ciddi bir direnç mevcut (bkz. Four color theorem).
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.