روش مونته‌کارلو: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Xmha97 (بحث | مشارکت‌ها)
جز اصلاح یک غلط نگارشی کوچک
Xmha97 (بحث | مشارکت‌ها)
جزبدون خلاصۀ ویرایش
خط ۱:
{{Computational physics}}[[پرونده:Monte carlo method.svg|بندانگشتی|چپ|روش مونته مونت-کارلو را می‌توان به بازی [[نبرد کشتی ها|نبرد کشتی‌ها]] تشبیه کرد. ابتدا یکی از بازیکنان شلیک‌های تصادفی را انجام می‌دهد. سپس بازیکن از الگوریتم استفاده می‌کند (مثلاً یک کشتی جنگی به فاصله چهار خانه در جهت عمودی یا افقی قرار گرفته‌است). در نهایت بر اساس خروجی نمونه‌های تصادفی و الگوریتم، بازیگر می‌تواند محل‌های احتمالی کشتی‌های جنگی بازیکن مقابل را حدس بزند]]
 
'''روش مونت-کارلو''' {{به انگلیسی|Monte Carlo method}} (یا تجربه مونت -کارلو) یک [[الگوریتم]] محاسباتی است که از [[نمونه‌گیری]] [[تصادفی]] برای محاسبه نتایج استفاده می‌کند. روش‌های مونت-کارلو معمولاً برای [[شبیه‌سازی]] سیستم‌های [[فیزیک]]ی، [[ریاضی]]اتی و [[علم اقتصاد|اقتصادی]] استفاده می‌شوند.
 
در علوم کامپیوتر روشی است که با پیمایش تمام فضای مسئله جواب را میابد.
 
از طرف دیگر روش مونت -کارلو یک طبقه از الگوریتم‌های محاسبه گر می‌باشند که برای محاسبه نتایج خود بر نمونه گیری‌های تکرار شوندهٔ تصادفی اتکاء می‌کنند. روش‌های مونته مونت-کارلو اغلب زمان انجام شبیه‌سازی یک سامانه ریاضیاتی یا فیزیکی استفاده می‌شوند. به دلیل اتکای آن‌ها بر محاسبات تکراری و اعداد تصادفی یا تصادفی کاذب، روش‌های مونت-کارلو اغلب به گونه‌ای تنظیم می‌شوند که توسط رایانه اجرا شوند. گرایش به استفاده از روش‌های مونته مونت-کارلو زمانی بیشتر می‌شود که محاسبه پاسخ دقیق با کمک الگوریتم‌های قطعی ناممکن یا ناموجه باشد.<ref>Douglas Hubbard «How to Measure Anything: Finding the Value of Intangibles in Business» pg. 46, John Wiley & Sons, 2007</ref> روش‌های شبیه‌سازی مونته مونت-کارلو مخصوصاً در مطالعه سیستم‌هایی که در آن تعداد زیادی متغیر با درجه آزادی‌های دو به دو مرتبط وجود دارد مفید است، از جمله این سیستم‌ها می‌توان به سیالات، جامداتی که به شدت کوپل شده‌اند، مواد بی نظم و ساختارهای سلولی (مدل سلولی پاتز – Potts- را ببیند) اشاره نمود. از آن گذشته، روش‌های مونته مونت-کارلو برای شبیه‌سازی پدیده‌هایی که عدم قطعیت زیادی در ورودی‌های آن‌ها وجود دارد نیز مفید هستند، مثلاً محاسبه ریسک در تجارت. همچنین این روش‌ها به‌طور گسترده‌ای در ریاضیات مورد استفاده قرار می‌گیرند: یک نمونه استفاده سنتی کاربرد این روش‌ها در برآورد انتگرال‌های معین است، به خصوص انتگرال‌های چند بعدی با محدوده‌های مرزی پیچیده. واژه مونته مونت-کارلو در دهه [[۱۹۴۰ (میلادی)|۱۹۴۰]] (دهه [[۱۳۱۰]] شمسی) به وسیله فیزیکدانانی که روی پروژه ساخت یک سلاح اتمی در آزمایشگاه ملی لوس آلاموس آمریکا کار می‌کردند رایج شده‌است.<ref>[The beginning of the Monte Carlo method http://library.lanl.gov/la-pubs/00326866.pdf]</ref>
 
== تاریخچه ==
ریشه نام «مونت‌کارلومونت-کارلو» از [[زبان ایتالیایی]] است و به اصلیت اسم ''شاهزاده کارلو سوم از موناکو'' بر می‌گردد که زیر نفوذ و حمایت دربار ایتالیا قرار داشت. تا قبل از سال [[۱۸۶۱ (میلادی)|۱۸۶۱]] که موناکو به شکلی خودمختار درآمد، زبان رسمی [[زبان ایتالیایی|ایتالیایی]] بود، اما در یکصد سال گذشته، زبان رسمی به [[زبان فرانسوی|فرانسوی]] تغییر داده شد.<ref>[http://www.monte-carlo.mc/index-principality_monaco-en.html About the Principality of Monaco], The Official website of the Principality of Monaco</ref>
 
'''مونت‌کارلومونت-کارلو''' (در [[زبان فرانسوی|فرانسوی]]: Monte-Carlo) نام منطقه‌ای است بسیار مشهور در کشور خودمختار [[موناکو]] واقع در اروپای غربی. جمعیت ساکن در مونت‌کارلومونت-کارلو در حدود ۳۰۰۰ نفر را شامل می‌شود. منطقه مونت‌کارلو،مونت-کارلو، ثروتمندترین منطقه از کشور خودمختار موناکو است.<ref>[http://www.state.gov/r/pa/ei/bgn/3397.htm Monaco (12/08)]</ref>
 
نام '''روش مونت -کارلو''' توسط تحقیقات فیزیکدانانی چون [[استنی‌سواف اولام|استانیسلاو اولام]]، [[انریکو فرمی]] و [[جان فون نیومن]] شهرت فراوان یافت. این اسم مبدأیی به یک [[کازینو]] ای در [[موناکو]] است که عموی اولام برای قمار پول قرض می‌کرده‌است. [[تصادفی]] بودن و تکرار طبیعی فرایندها مشابه فعالیت‌های در کازینوها است.
 
== کاربرد ==
روش‌های تصادفی برای محاسبه و آزمایش (که عموماً به عنوان شبیه‌سازی تصادفی شناخته می‌شوند) را بدون تردید می‌توان تا اولین پیشگامان [[نظریه احتمال]] دنبال کرد ([[سوزن بافون]]، کار جزیی روی نمونه‌ها توسط [[ویلیام گوست]])، ولی به‌طور ویژه می‌توان آن را در دوران قبل از محاسبات [[الکترونیک]]ی دنبال کرد. تفاوت اساسی که معمولاً دربارهٔ روش شبیه‌سازی مونت -کارلو بیان می‌شود این است که به‌طور اصولی نوع روش شبیه‌سازی را وارون می‌کند و نظر مسایل را با یافتن مدل مشابه احتمالی به خود جلب می‌کند.
روش‌های پیشین برای شبیه‌سازی و مدل‌سازی آماری عموماً عکس این کار را انجام می‌دادند: استفاده از شبیه‌سازی برای امتحان کردن مسایل مشخص قطعی.
 
به هر حال همان‌طور که می‌دانیم مثال‌های دیدگاه «[[وارون]]» به صورت تاریخی نیز وجود دارند، آن‌ها تا قبل از آمدن روش مونت -کارلو به عنوان یک روش عمومی در نظر گرفته نمی‌شدند.
 
شاید معروفترین استفادهٔ اخیر از این روش توسط انریکو فرمی در سال[[۱۹۳۰]] باشد، هنگامی که او از یک روش تصادفی برای دستیابی به خواص [[نوترون]] تازه کشف شده، استفاده کرد. همچنین روش‌های مونت -کارلو مرکزیت شبیه‌سازی مورد نیاز در پروژهٔ [[منهتن]] را داشتند اگرچه که در آن زمان در استفاده از ابزارهای محاسباتی در محدودیت جدی قرار داشتند؛ بنابراین مونت -کارلو در زمانی مورد مطالعه و بررسی توسط دانشمندان قرار گرفت که [[کامپیوتر]]های الکترونیکی برای اولین بار پا به عرصه گذاشتند. (از سال ۱۹۴۵ تا امروز)
 
در ۱۹۵۰ در لوس آلاموس برای تحقیقات جدیدی که دربارهٔ [[بمب‌های هیدروژنی]] آغاز شده بود مورد استفاده قرار گرفت و در رشته‌های [[فیزیک]] و [[شیمی فیزیک]] و [[تحقیق در عملیات]] مشهور شد.
 
شرکت [[رند(Rand)]] و [[نیروی هوایی ایالات متحده]] دو سازمان مرتبط برای جمع‌آوری و ارسال اطلاعات دربارهٔ روش‌های مونت -کارلو در طول این زمان بوده‌است، و کاربردهای گستردهٔ این روش را یافته‌اند.
 
استفاده از روش مونت -کارلو نیاز به استفادهٔ مقادیر زیادی اعداد تصادفی دارد و این استفاده باعث کنار رفتن و عدم گسترش زاینده‌های اعداد شبه تصادفی بود.
روش مونت -کارلو را می‌توان برای بسیاری از محاسبات مهندسی، مخصوصاً در بخش برق و تخمین‌های آن استفاده نمود.
 
== نگاه کلی ==
تنها یک روش مونته مونت-کارلو وجود ندارد، بلکه این واژه به گستره وسیعی از روشهایی که بسیار به کار گرفته می‌شوند اطلاق می‌گردد. به هر حال، این رویکردها از الگوی مشخصی پیروی می‌کنند:
# محدوده‌ای از ورودی‌های ممکن را تعریف می‌کنند.
# از آن محدوده ورودی‌های تصادفی را تولید می‌کنند.
خط ۳۶:
# نتایج هر یک از اجراهای محاسباتی را در پاسخ نهایی ادغام می‌کنند.
;مثال:
[[پرونده:Pi 30K.gif|بندانگشتی|چپ|روش مونت -کارلو برای تخمین [[عدد پی]]]]
برای مثال می‌توان مقدار عدد {{پی}}(پی) را با استفاده از روش مونته مونت-کارلو محاسبه نمود.
# یک مربع روی صفحه ترسیم کنید، سپس یک ربع دایره را درون آن [[شکل محاط|محاط کنید]]. در ادامه چندین شکل با اندازه یکسان را روی آن [[توزیع یکنواخت(پیوسته)|به‌طور یکنواخت پخش]] کنید (برای مثال، دانه‌های شن یا برنج) در سرتاسر مربع.
# سپس تعداد اشیاء درون دایره را بشمارید، در چهار ضرب کنید و عدد به دست آمده را بر تعداد کل اشیاء درون مربع تقسیم نمایید.
# نسبت اشیاء درون دایره در مقابل اشیاء درون مربع تقریباً برابر خواهد بود با ۴/π، که همان نسبت سطح دایره‌است به سطح مربع؛ بنابراین شما تخمینی از عدد π را به دست آورده‌اید. توجه داشته باشید که چگونه تخمین عدد π از یک الگوی مشخص شده در روش مونته مونت-کارلو پیروی می‌کند.
 
ابتدا ما یک محدوده از متغیرها را تعریف کردیم که یک مربع بود که دایره ما را احاطه کرده بود. سپس ورودی‌ها را به‌طور تصادفی تولید کردیم (پخش دانه‌ها به‌طور یکنواخت درون مربع)، سپس محاسبات را برای هر ورودی انجام دادیم (بررسی کردیم که آیا دانه درون دایره هست یا نه). در آخر، تمام جوابها را در جواب نهایی ادغام نمودیم. همچنین به این نکته توجه داشته باشید که دو ویژگی مشترک دیگر روش‌های مونته مونت-کارلو این است:
* اتکای محاسبات بر اعداد تصادفی خوب
* همگرایی تدریجی به سمت تخمین‌های بهتر در زمانی که داده‌های بیشتری شبیه‌سازی می‌شوند.
 
== کاربردها ==
شبیه‌سازی مونت -کارلو به‌طور ویژه‌ای در مطالعهٔ [[سیستم]]ها با [[درجه آزادی]] زوج متعدد مورد استفاده قرار می‌گیرد مثل [[مایع]]ات، [[مواد متخلخل]]، [[مایعات شدیداً زوج]] و [[ساختارهای حفره دار]] (مانند [[ساختار حفره دار پات]]). روش‌های مونت -کارلو به صورت وسیعی در مدل‌سازی پدیده‌ها با مقادیر قابل توجهی عدم اطمینان در ورودی‌ها مورد استفاده قرار می‌گیرد مثل:
 
محاسبهٔ [[ریسک]] در تجارت (نمونه کاربرد آن در [[اقتصاد]]، مدل‌سازی تصادفی است) استفادهٔ [[کلاسیک]] از این روش‌ها برای ارزیابی و محاسبهٔ [[انتگرال‌های معین]]، به‌طور خاص برای [[انتگرال‌های چند بعدی]] باشد با [[شرایط مرزی]] پیچیده، استفاده می‌شود.
 
روش‌های مونت -کارلو همچنین برای محاسبهٔ ارزش سرمایه شرکت‌ها، ارزیابی سرمایهٔ پروژه‌ها نیز استفاده می‌شود.
 
همچنین روش‌های مونت -کارلو در [[فیزیک محاسباتی]]، شیمی فیزیک و زمینه‌های مرتبط با این دو کاربرد فراوان دارد.
 
مونت -کارلو علاوه بر این، تحت تأثیر بسزای خود را در حل [[معادله دیفرانسیل]]های زوج انتگرالی در زمینهٔ [[تشعشع]] و [[انتقال انرژی]] ثابت کرده‌است پس بنابراین این روش برای [[آشکارسازی جهانی]] محاسبات که مدل‌های مجازی سه بعدی تصاویر [[فوتوریالیستیک]] را تولید می‌کند، مورد استفاده قرار می‌گیرد.
 
روش‌های مونت -کارلو در زمینه‌های بسیاری نیز در ریاضیات محاسباتی مورد استفاده قرار می‌گیرد، که فقط یک خوش شانس می‌تواند نتیجهٔ صحیح بگیرد. یک مثال کلاسیک، [[الگوریتم رابین]] است که برای آزمایش [[اول]] بودن اعداد مورد استفاده قرار می‌گیرد.
 
همچنین [[الگوریتم لاس وگاس]] نیز به همین موضوع می‌پردازد ولی با ایده‌ای متفاوت.
 
== زمینه‌های کاربرد مونت -کارلو ==
* [[گرافیک]]، به‌طور خاص [[خط اثر پرتو]]
*
* مدل‌سازی جا به جایی نور در [[رشته‌های بیولوژیک]]
* مونت -کارلو در اقتصاد
* [[مهندسی اطمینان]]
* در شبیه‌سازی پیچش برای پیش‌بینی ساختار [[پروتین]]
* در تحقیقات تجهیزات [[نیم رسانا]]، برای مدل‌سازی جا به جایی [[حامل]]های کنونی
* در [[محیط زیست]]، بررسی [[آلاینده]]ها
* کاربرد مونت -کارلو در [[فیزیک استاتیک]]
* در طراحی احتمالاتی برای شبیه‌سازی و درک [[تغییرپذیری]]
* در شیمی فیزیک، به‌طور خاص برای شبیه‌سازی [[قالب‌های اتمهای درگیر]]
خط ۸۱:
 
=== ریاضیات ===
کاربرد روش مونت-کارلو در ریاضیات و آمار بسیار گسترده‌است. با استفاده از این روش، با انتخاب تصادفی یک یا تعداد محدودی پاسخ از میان پاسخهای موجود، تلاش می‌شود تا به راه حل قابل قبولی دست یافت. این تکنیک زمانی ارزش پیدا می‌کند، که مجموعه آلترناتیوهای موجود برای پاسخ یک مسئله بسیار بزرگ باشد و عملاً امکان آزمودن تمامی آن‌ها وجود نداشته باشد؛ یک نمونه کلاسیک در این زمینه، [[الگوریتم رابین]] برای تست اول بودن یک عدد می‌باشد. الگوریتم رابین بیان می‌دارد که با داشتن یک عدد مانند n که غیر اول است، یک عدد تصادفی مانند x، دارای احتمال ۷۵٪ است تا ثابت کند عدد n عددی غیر اول است؛ بنابراین، با داشتن عدد غیر اولی مانند n اگر عددی تصادفی مانند x یافت شود، به‌طوری‌که ثابت کند n احتمالاً عددی اول است، ما موفق به آزمودن گزینه‌هایی شده‌ایم که احتمال رخداد آن‌ها ۱ به ۴ است. حال با یافتن ۱۰ عدد دیگر مانند x که ثابت کند n احتمالاً عددی اول است، موفق به یافتن مجموعه‌ای شده‌ایم که احتمال وقوع آن‌ها ۱ به میلیون است. [[الگوریتم لاس وگاس]] نیز از روش مونت-کارلو بهره می‌برد. یکی از رایج‌ترین کاربرد مونت -کارلو، [[انتگرال گیری]] مونت -کارلو است.
 
==== انتگرال‌گیری ====
خط ۸۹:
 
برای نمونه یک صفحهٔ ۱۰x۱۰ نیاز به ۱۰۰ نقطه دارد. اگر بردار ما ۱۰۰ بعدی باشد، تقسیم‌بندی مورد نیاز روی صفحه، نیاز به {{چپ‌چین}}[[گوگول|۱۰<sup>۱۰۰</sup>]]{{پایان چپ‌چین}}(عدد گوگول) نقطه دارد که برای محاسبه بسیار بزرگ است.
روش مونت -کارلو روشی را برای خروج از این [[رشد نمایی]] پیشنهاد می‌کند.
تا زمانی که تابع مورد سؤال یک تابع خوش رفتار است، به وسیله انتخاب تصادفی نقاط در فضای ۱۰۰ بعدی و گرفتن نوعی [[میانگین]] از مقادیر تابع در این نقاط، می‌تواند تخمین زده شود. با به کارگیری [[قانون اعداد بزرگ]]، این روش [[همگرایی]] به <math>1/\sqrt{N}</math> را نشان می‌دهد.
 
خط ۹۸:
** [[نمونه برداری طبقه به طبقه بازگشتی|نمونه برداری طبقه به طبقهٔ بازگشتی]]
** [[الگوریتم وگاس]]
* [[راه تصادفی مونت کارلو|راه تصادفی مونت-کارلو]] شامل [[زنجیرهای مارکوو]]
** [[الگوریتم متروپولیس-هاستینگ]]
* [[مدل‌سازی گیبس]]
خط ۱۰۸:
همچنین از کاربردهای عملی این روش در دانش شیمی‌فیزیک، می‌توان به ساخت و بررسی مدل مولکولی اشاره نمود که به عنوان جایگزینی برای روش محاسباتی دینامیک مولکولی و شیمی کوانتومی مطرح می‌شود.
 
هدف اصلی روش مونت -کارلو یا دینامیک مولکولی محاسبه خواص تعادلی یک سیستم است. در این روش پس از حصول اطمینان از بودن در حالت تعادل، با تغییر تصادفی موقعیت و جهت‌گیری ذرات موجود در سیستم، پیکربندی‌هایی از سیستم تولید می‌شود. منظور از پیکربندی مجموعه‌ای از موقعیت و جهت‌گیری همهٔ ذرات در یک حالت از تمام حالت‌های ممکن سیستم است. پیکربندی تولید شده در هر مرحله با احتمالی که توسط قوانین ترمودینامیک آماری تعیین می‌گردد، رد یا تأیید می‌شود. این احتمال به انرژی پتانسیل بین دو ذره بستگی دارد. در هر پیکربندی خاصیت ترمودینامیکی مورد نظر اندازه‌گیری می‌شود. با نمونه برداری صحیح از این پیکربندی‌ها و میانگین گیری، می‌توان مقدار آن خاصیت را در حال تعادل به دست آورد.<ref>شبیه‌سازی‌های رایانه‌ای، سیف‌الله جلیلی {{شابک|978-964-8703-39-9}}</ref>
 
مزیت این روش به دینامیک مولکولی، نیاز نداشتن به محاسبهٔ اندازه حرکت برای هر ذره‌است که باعث کاهش زمان محاسبات رایانه‌ای می‌شود. از معایب این روش می‌توان به دست نیاوردن اطلاعات راجع به دینامیک سیستم اشاره کرد.