این نکته قابل ذکر بوده است که متغیرهای تصادفی را می توان قبل از هیچ ذکری از احتمال آنها بر یک فضای نمونه ای تعریف نمود. در واقع انها توزیع های احتمال خود را از طریق یک اندازه احتمال که بر فضای نمونه ای اعمال می شود کسب می نمایند.
از آنجا که تهیه اعداد تصادفی حقیقی بسیار دشوار بوده است، به ندرت از آنها در کاربردهای روزمره استفاده می شود. افزون بر این از آنجا که این اعداد قابل دوباره تولید شدن نبوده اند، آزمایش و اشکال زدایی برنامه های مربوطه را بسیار دشوار می سازند. از این رو در برنامه های رایانه ای از دنباله های شبه تصادفی به جای اعداد تصادفی حقیقی بهره برده می شود.
به یک مفهوم اعداد تصادفی را می توان اعدادی دلخواه و غیرقابل پیش بینی مطرح نمود. از انجایی که ما با رایانه ها کار می کنیم، اعداد تصادفی را می توان به صورت بیت ها یا دنباله ای از بیت های تصادفی تعریف کرد که با گروه بندی آنها می توان به اعدادی در محدوده دلخواه دست یافت.
در تعریف استاندارد ریاضی، رشته ای تصادفی بوده که با هیچ رشته کوتاه تر از خود قابل بیان شدن نباشد. یا به زبان ساده تر قابل فشرده سازی نباشد. توجه کنید که بر طبق تعریف پیش گفته فشرده سازی یک فرایند تصادفی ساز بوده است.
در علم آمار نیز در تعریف، بیت های تصادفی به این صورت مطرح می شود که در آنها صفرها باید به اندازه یک ها تکرار شوند. یک جفت صفر باید شانسی برابر یک صفر و نیز برابر یک جفت یک داشته باشد. در این صورت اگر نموداری از بیت های تصادفی رسم نماییم، نباید توده ها یا الگوهای مشخصی در آنها دیده شوند.
با توجه به آنکه در شبیه سازی لازم است تا تغییرات تصادفی سیستم به وسیله رایانه مدل گرد، بنابراین لازم است تا روش های تولید اعداد تصادفی مورد بررسی قرار گیرد. در این خصوص باید توجه نمود که یک عدد تصادفی یک حالت از مجموعه کلی حالت های ممکن بوده که در طی یک پیشامد تصادفی انتخاب می گردند، در حالیکه رشته اعداد تصادفی دنباله ای از اعداد تصادفی بوده که دارای دو خاصیت مهم ذیل می باشند:
-
- دنباله اعداد تصادفی از یک عدد تصادفی اولیه که اصطلاحا seed یا هسته نامیده می شود شروع می گردد و طبق یک الگوریتم ریاضی مشخص، دیگر اعداد این دنباله تولید می گردند.
-
- هر عددی در دنباله اعداد تصادفی از اعداد دیگر مستقل بوده است، به عبارتی تولید شدن یک مقدار، هیچ ارتباطی به تولید شدن مقادیر دیگر نداشته است. ( معارفیان، ۱۳۸۹، ص۵۵-۵۷)
۲-۵-۳٫ تولید کننده های اعداد تصادفی
روش شبیه سازی مونت کارلو با فرموله نمودن فرآیندی تصادفی به دنبال استفاده از تولیدکننده های اعداد تصادفی بوده که در نهایت با بهره گرفتن از آنها بتواند جواب مسئله مشخصی را بدست آورد. این روش توسط محققین متعددی مانند لوس آلاموس، متروپلیس و یولام مطرح و مورد استفاده واقع شده است. ارتقا و بهبود عملکرد رایانه ها در خصوص انجام محاسبات فراوان و تکراری موجب توجه و عنایت بیشتر به این روش شده است. به دلیل آنکه در روش شبیه سازی مونت کارلو از اعداد تصادفی استفاده می شود آشنایی با تولید کننده های متنوع اعداد تصادفی در این روش از اهمیت ویژه ای برخوردار بوده است.
در زمان های قدیم به منظور تولید اعداد تصادفی از روش های دستی مانند پرتاب سکه، پرتاب تاس و بهم زدن کارت ها استفاده می شده است. در زمان های بعدی از ابزارهای فیزیکی مانند نشانگرهای صوتی که قابلیت اتصال به رایانه را نیز دارا بودند جهت تولید اعداد تصادفی استفاده می شده است. با وجود مزیت هایی که استفاده از ابزارهای فیزیکی در زمان خویش به همراه داشتند بنا به دلایل ذیل استفاده از آنها جهت مقاصد شبیه سازی رایانه ای در طول زمان محدود و ناچیز گردید:
-
- روش های فیزیکی از سرعت بسیار پایینی جهت تولید اعداد تصادفی برخوردار بودند.
-
- اعداد تصادفی که با بهره گرفتن از این روش ها تولید می شدند از قابلیت بازتولید برخوردار نبودند.
با وجود آنکه در زمان های اخیر روش های تولید فیزیکی پیشرفته ای جهت تولید اعداد تصادفی بوجود آمده است که قابلیت تولید اعداد تصادفی را با سرعتی بسیار بالا دارا بوده اند اما ایراد مربوط به عدم بازتولید اعداد تصادفی تولیدی با بهره گرفتن از این روش ها همچنان به قوت خویش باقی مانده است.
در حال حاضر معمولا از روش ها و الگوریتم های ساده ای جهت تولید اعداد تصادفی استفاده می شود که به آسانی توسط رایانه ها قابل اجرا بوده اند. این الگوریتم های ساده علاوه برآنکه سرعت بالایی جهت تولید اعداد تصادفی دارا بوده حجم پایینی را در رایانه ها اشغال نموده و قابلیت بازتولید اعداد تصادفی تولیدی را نیز دارا بوده اند.
تولیدکننده های اعدادتصادفی مناسب و مطلوب بایستی تمامی مشخصات و ویژگی های آماری مربوط به اعداد تصادفی را دارا باشند اما با این وجود روش ها و الگوریتم هایی که برای تولید اعداد تصادفی از آنها استفاده می شود بدلیل آنکه توانایی ارضای تمامی مشخصات مربوطه را دارا نبوده اند، در بیشتر مواقع اعداد تصادفی تولیدی بوسیله این تولیدکننده ها را اعداد شبه تصادفی می نامند.
تمامی تولیدکننده های اعداد تصادفی در مورد تولید اعداد تصادفی مطلوب و مناسب برای شبیه سازی های رایانه ای بایستی از ویژگی ها و خصوصیات مشخصی برخوردار باشند که در ادامه به این مشخصه های کلیدی اشاره می نماییم:
-
- طول دوره: هر تولیدکننده ای برای تولید اعداد تصادفی بایستی طول دوره مشخصی داشته باشد. منظور از طول دوره، تعداد اعدادی بوده است که بازتولید می شوند یعنی پس از تولید چند عدد تصادفی دوباره چرخه اعداد تصادفی تولیدی تکرار شده و اعداد باز تولید می شوند.
-
- بازتولید: منظور از بازتولید آن بوده که اعداد تصادفی که تولید شده اند را می توان بار دیگر به همان صورت کنونی تولید مجدد نمود یا خیر. به بیان دیگر آیا تولیدکننده اعداد تصادفی می تواند در طی چند مرتبه تولید اعداد تصادفی با ملحوظ نمودن ورودی های یکسان خروجی های یکسانی تولید نماید یا خیر.
-
- سرعت: یکی دیگر از ویژگی های تولیدکننده های اعداد تصادفی سرعت تولید اعداد تصادفی بوسیله آنها بوده است. در این خصوص اینگونه مطرح می شود که به دنبال تولیدکننده هایی بوده ایم که این توانایی را دارا باشند که اعداد تصادفی را با سرعت بیشتری تولید نمایند و بدین وسیله بتوانند در زمان کوتاه تری اعداد تصادفی بیشتری تولید نمایند.
-
- قابلیت جابجایی: منظور از قابلیت جابجایی این بوده که تولیدکننده های اعداد تصادفی از این قابلیت برخوردار بوده باشند که بر روی انواع رایانه ها قابل اجرا بوده و قابلیت انتقال و جابجایی و اجرا را بر روی انواع سیستم های رایانه ای دارا باشند.
-
- تصادفی بودن: یکی دیگر از خصیصه های تولیدکننده های اعداد تصادفی قابلیت آنها در تولید اعدادی بوده که در آنها هیچ الگوی مشخصی وجود نداشته و کاملا تصادقی باشند که در این مورد ویژگی های تئوریک تولیدکننده ها و آزمایشات آماری مختلف به انجام می رسد تا میزان تصادفی بودن اعداد تولید شده توسط تولیدکننده های اعداد تصادفی مشخص گردد.
یکی از مباحث مهم و مطرح در مورد شبیه سازی مونت کارلو که به منزله هسته اصلی این روش نیز شمرده می شود، تولید اعداد تصادفی و الگوریتم های مربوط به آنها بوده است. قبل از مطرح نمودن روش های مختلف تولید اعداد تصادفی به دو نکته ذیل که در ادامه برای تولید دنباله ای از اعداد تصادفی مورد توجه بوده است اشاره می نماییم:
-
- هر عدد تصادفی تولیدی به صورتی پیوسته در دامنه ای بین ۰ و ۱ قرار گرفته است.
-
- اعداد تصادفی تولیدی به صورت دو به دو از هم مستقل می باشند. بنابراین پیش بینی دنباله اعداد تصادفی غیرممکن بوده است. ( معارفیان، ۱۳۸۹ ، ص۵۷-۵۹)
۲-۵-۴٫ روش های تولید اعداد تصادفی
روش های تولید اعداد تصادفی در مجموع به دو گروه کلی قابل تقسیم بندی بوده اند که این دو گروه عمده عبارتند از: روش هایی که برای تولید اعداد تصادفی نیازمند شناسایی تابع توزیع مربوطه بوده اند و روش هایی که برای تولید اعداد تصادفی نیازی به شناسایی تابع توزیع نداشته اند. در گروه اول روش هایی مانند روش تبدیل معکوس[۶۹]، روش نام مستعار[۷۰]، روش ترکیبی[۷۱] و روش رد-پذیرش[۷۲] قابل طرح بوده است و در گروه دوم نیز روش های مبتنی بر روابط بازگشتی مطرح بوده که مهمترین آنها روش مولد متجانس خطی بوده است. ( معارفیان، ۱۳۸۹ ،ص۵۹)
۲-۵-۵٫ فرایند شبیه سازی مونت کارلو
برخی از دانشمندان علم آمار، این علم را به دو شاخه نظری و تجربی تقسیم بندی نموده اند. آمار تجربی به روش هایی اطلاق می شود که با بهره گرفتن از روش های شبیه سازی، خواص برآورد کننده ها مطالعه می شوند. این روش ها به شبیه سازی مونت کارلو مرسوم شده است. روش های مونت کارلو، به روش هایی اطلاق می شود که بر اساس دنباله ای از اعداد تصادفی به بررسی مسائل می پردازد. نام مونت کارلو اولین بار توسط متروپلیس به دلیل شباهت شبیه سازی آماری به بازی های شانسی و به دلیل اینکه شهر مونت کارلو مرکز ناحیه کوچک موناکو، مرکز بازی های شانسی بود، به کار گرفته شد. امروزه این روش در بسیاری از علوم مورد استفاده قرار می گیرد.
عموما شبیه سازی مونت کارلو زمانی مورد استفاده قرار می گیرد که یا روش های تحلیلی در دسترس نبوده و یا به قدری پیچیده بوده اند که با بهره گرفتن از این روش می توان به راه حلی ساده تر دست یافت. بنابراین به طور کلی می توان گفت که با افزایش پیچیدگی و یا ابعاد مسائل، جذابیت استفاده از شبیه سازی مونت کارلو نیز به مقدار قابل توجهی افزایش می یابد.
ایده شبیه سازی مونت کارلو بر مبنای شبیه سازی مکرر فرایند تصادفی حاکم بر قیمت و یا بازده ابزار مالی موردنظر بوده است. ( معارفیان، ۱۳۸۹، ص۶۵-۶۶)
۲-۵-۶٫ روش های شبیه سازی مونت کارلو
روش مونت کارلو از اعداد تصادفی برای شبیه سازی پدیده ها استفاده می نماید. اعداد تصادفی اغلب بر اساس الگوریتم های خاصی تولید می شوند. البته آنچه که امروزه به عنوان اعداد تصادفی مصطلح بوده، اعداد شبه تصادفی بوده است که توسط الگوریتم های ریاضی خاصی توسط رایانه ها تولید می شوند. همه الگوریتم های موجود در این مورد نیز دقیق و مناسب نبوده اند. برای مثال یک الگوریتم ممکن است در بیشتر موارد اعداد بزرگ تولید کند یا نوعی همبستگی در دنباله اعدادش مشاهده شود. مثلا ممکن است هر پنجمین عددش بزرگ باشد.
برای تشخیص کیفیت تصادفی بودن اعداد تولید شده توسط یک الگوریتم، می توان زوج های تصادفی از این اعداد را در دستگاه محور مختصات دکارتی رسم نمود. اگر تجمع در یک قسمت از صفحه مختصات بیشتر باشد نشان دهنده کیفیت پایین این اعداد بوده است. اگر اعداد تولید شده تقریبا همان خواص اعداد تصادفی را دارا باشند در عمل عنوان تصادفی به آنها اطلاق می شود.
تنها یک روش مونت کارلو وجود نداشته است، بلکه این واژه به گستره وسیعی از روش هایی اطلاق می گردد که از الگوی مشخصی همانند الگوی ذیل تبعیت می نمایند:
- محدوده ای از ورودی های ممکن را تعریف نمایند.