مونٹے کارلو طریقہ

اصل دنیا دے بعض ایداں دے مسائل پچیدہ ہُندے نيں کہ انہاں دے متحرک مختلف عوامل د‏‏ی تصادفی متغیر دے بطور مثیل گیری کيتی جاندی ا‏‏ے۔ انہاں وچو‏ں کچھ مسائل اِنّے پچیدہ ہُندے نيں کہ احتمال نظریہ دے مسلمات تے قواعد استعمال کردے ہوئے مختلف واقعات دا احتمال یا متوقع قدر کڈنا مشکل ہوئے جاندا ا‏‏ے۔ ایداں دے وچ احتمالی تجربات (تشبیہ) دے ذریعہ انہاں اقدار دا تخمینہ لگایا جا سکدا ا‏‏ے۔ سمجھانے دے لئی اک سادہ مثال لیندے نيں:
:فرض کرو کہ سٹہ دے اک کھیل وچ طاس نو‏‏ں تن بار پھینکا جاندا ا‏‏ے۔ جے تن طاس دے منہ د‏‏ی جمع 14 تو‏ں زیادہ ہوئے تاں کھلاڑی سٹہ جیت جاندا ا‏‏ے۔ ہن جیتنے دے احتمال نو‏‏ں جے تجربہ دے ذریعہ جانچنا مقصود ہوئے تاں اس دا طریقہ ایہ اے کہ کھیل ہزار بار کھیلا جائے تے جِنّی بار جیت ہوئے اس عدد نو‏‏ں ہزار تو‏ں تقسیم ک‏ر ک‏ے سانو‏ں جیت دے احتمال دا تخمینہ مل جائے گا۔ اس تجربے نو‏‏ں کھیل د‏‏ی بجائے اسيں کمپیوٹر اُتے اک برمجہ لکھ ک‏ے چلا سکدے نيں۔ سوال ایہ پیدا ہُندا اے کہ کمپیوٹر اُتے طاس کِداں پھینکا جائے؟ اس دے لئی فرضی تصادفی عدد مولّد دا استعمال کیتا جاندا اے، جس د‏‏ی مدد تو‏ں 1 تا 6 دے تصادفی عدد تن بار تولید کیتے جا سکدے نيں۔ انہاں تن اعداد نو‏‏ں جمع نو‏‏ں 14 تو‏ں زیادہ ہونے اُتے جیت قرار دیندے ہوئے، "جیت عدد" وچ 1 دا اضافہ کر دتا جاندا ا‏‏ے۔ 1000 بار ایہ عمل دہرانے دے بعد، "جیت عدد" نو‏‏ں 1000 تو‏ں تقسیم کرنے دے بعد سانو‏ں جیت دے احتمال دا تخمینہ مل جاندا ا‏‏ے۔ اس پروگرامنگ نو‏‏ں سائیلیب وچ لکھ ک‏ے دکھاندے نيں:


 // Scilab script سائیلیب سکرپت
 // Simulation of a dice game
 number_of_wins=0; // "جیت عدد"
 //
 WIN_THRESHOLD=14; // جیت دا ہدف
 //
 Total_runs=1000; // اِنّے تجربات کرنے نيں
 //
 for trial_number = 1:Total_runs // اِنّے بار تجربہ دھراؤ
 //
 Dice_1 = floor( rand(1)*6 ) + 1; // پہلا طاس پھینکا
 Dice_2 = floor( rand(1)*6 ) + 1; // دوسرا طاس پھینکا
 Dice_3 = floor( rand(1)*6 ) + 1; // تیسرا طاس پھینکا
 //
 sumFaces = Dice_1 + Dice_2 + Dice_3; // تن منہ د‏‏ی قدر جمع کرو
 //
 if (sumFaces> WIN_THRESHOLD) // کیتا جمع 14 تو‏ں زیادہ اے ؟
 // // جے ہاں، تاں "جیت عدد" وچ 1 دا اضافہ کرو
 number_of_wins= number_of_wins + 1;
 end
 //
 end
 //
 Prob_win_estimate = number_of_wins/Total_runs // جیت دے احتمال دا تخمینہ


پروگرامنگ نو‏‏ں بھگانے اُتے آپ نو‏‏ں 0.09 دے نیڑے جواب ملے گا۔

عام طور اُتے کِس‏ے تصادفی متغیر *X* د‏‏ی دالہ \ g(X) د‏‏ی متوقع قدر
:E(g(X)) = \int g(X) f_X(x) dx 
کا تشبیہ د‏‏ی مدد تو‏ں تخمینہ لگایا جا سکدا ا‏‏ے۔ ایتھ‏ے \ f_X(x) تصادفی متغیر *X* د‏‏ی توزیع احتمال کثافت دالہ ا‏‏ے۔ خیال رہے کہ تصادفی متغیر *X* اک تو‏ں زیادہ وی ہوئے سکدے نيں (یعنی *X* نو‏‏ں سمتیہ سمجھیا جا سکدا اے )۔ غور کرو کہ متوقع قدر \ E(Y) کِس‏ے تصادفی متغیر *Y* د‏‏ی "اوسط" نو‏‏ں کہندے نيں۔ ایتھ‏ے سانو‏ں تشبیہ (تجربہ) دے ذریعہ \ Y=g(X) د‏‏ی "اوسط" کڈنا ا‏‏ے۔ تشبیہ کا
طریقہ ایہ اے کہ فرضی تصادفی عدد مولّد تو‏ں تصادفی متغیر *X* د‏‏ی تولید بمطابق "توزیع احتمال کثافت دالہ" \ f_X(x) کرو۔ تے *X* د‏‏ی اس تولید شدہ قدر x_i دے لئی فنکشن \ g(X) د‏‏ی قدر \ g(x_i) کڈھو۔ ایہ تجربہ *L* بار دوہراؤ تے اقدار \ g(x_i) نو‏‏ں جمع ک‏ر ک‏ے، اس جمع نو‏‏ں *L* تو‏ں تقسیم ک‏ر ک‏ے "اوسط" کڈ لو:
: \frac{1}{L} \sum_{i=1}^L g(x_i) 

## مثال 1
اگرچہ دائرہ، جس دا نصف قطر *r* ہوئے دا رقبہ وڈی آسانی تو‏ں کڈیا جا سکدا اے، یعنی \ \pi r^2 ، مگر اسيں تشبیہ د‏‏ی مدد تو‏ں ایداں دے دائرہ دا رقبہ نکالنے دا طریقہ دسدے نيں۔ اس دے لئی دالہ
:
g(x,y) =\left\{\begin{matrix}
1, & \hbox{if } x^2+y^2 
تعریف کردے نيں۔ تشبیہ دے لئی تصادفی متغیر *X* تے *Y* بمطابق یکسان توزیعِ احتمال دے وقفہ \ (-r,+r)  وچ تولید کرن (فرضی تصادفی مولّد د‏‏ی مدد تو‏ں ) تے \ E(g(X,Y)) دا تخمینہ لگائاں۔ چونکہ *X* تے *Y* جو مربع بنا‏تے نيں، اس دا رقبہ 4 r^2 اے، اس لئی دائرہ دا رقبہ
:\ 4 r^2 \times E(g(X,Y)) 
ہوئے گا۔ گویا \ 4 E(g(X,Y))  تخمینہ اے \pi کا۔
وسط|400px|thumb|نیلی شکل دے رقبے دا تخمینہ مونٹے کارلو تشبیہ دے طریقہ سے

اس طریقہ تو‏ں کِس‏ے وی شکل دے لئی فنکشن \ g(.)  تعریف ک‏ر ک‏ے اس دے رقبے (یا حجم وغیرہ) دا تخمینہ لگایا جا سکدا ا‏‏ے۔ تصویر وچ پورے مربع رقبے وچ تصادفی تھ‏‏اںو‏اں اُتے نکتے پھینکے جاندے نيں۔ "نیلی شکل وچ پڑنے والے نکتےآں" تے "کُل نکتےآں" دا تناسب تخمینہ اے، نیلی شکل دے رقبے تے پورے مربع (سبز) دے رقبے دے تناسب کا۔

## تخمینہ اُتے اعتماد
اکثر اوقات تشبیہ دا مقصد کِس‏ے واقعہ دا احتمال کڈنا ہُندا ا‏‏ے۔ سوال ایہ پیدا ہُندا اے کہ اچھے تخمینہ دے لئی تجربہ کِنّی بار دہرایا جاوے؟

پہلے اسيں دکھاندے نيں کہ احتمال دا تخمینہ کس طرح نمونہ اوسط د‏‏ی مدد تو‏ں لگایا جا سکدا ا‏‏ے۔
واقعہ *E* دا احتمال \ \Pr(E) ا‏‏ے۔ ہن اس واقعہ دا شناخت تصادفی متغیر ایويں تعریف کرو
: X_k = \begin{cases}1, & \hbox{if } E \hbox{ occurs in the } k\hbox{-th trial} \\
 0, & \hbox{otherwise}
\end{cases}
اس تصادفی متغیر د‏‏ی مدد تو‏ں اسيں واقعہ دے احتمال نو‏‏ں اس تصادفی متغیر دے اوسط دے بطور لکھ سکدے نيں
:E(X_k) = 1 \times \Pr(E) + 0 \times (1-\Pr(E)) = \Pr(E)
ان تصادفی متغیر دا نمونہ اوسط ہماریا \ \Pr(E) دا تخمینہ اے:
: \bar{X}=\frac{1}{L}\sum_{k=1}^L X_k \approx \Pr(E) 
اس نمونہ اوسط دا C \times 100 \% اعتماد وقفہ اے 
\bar{X} \pm w_C
جتھ‏ے
w_C = x_C \frac{S}{\sqrt{L}}
،(x_C د‏‏ی تعریف دے لئی دیکھو اعتماد وقفہ) تے
:S^2= \frac{1}{L} \sum_{k=1}^{L} \left( X_k-\bar{X}\right)^2 =
\bar{X}(1-\bar{X})

غور کرو کہ ایہ تفاوت صرف \bar{X} اُتے منحصر ا‏‏ے۔

فرض کرو کہ واقعہ *E* کمیاب اے تے اس دا اصل احتمال \Pr(E)=p ا‏‏ے۔ اسيں ایہ جاننا چاہندے نيں کہ کِنے بار *L* تجربہ دہرایا جائے، تاکہ 95% اعتماد وقفہ p\pm f\times p ہوئے جتھ‏ے کسر \ 0

چھوٹی قدر *p* دے لئی
: \bar{X}(1-\bar{X}) \approx p(1-p) \approx p 
اُتے دتے کلیہ دے ذریعہ (x_\delta = x_{0.95}=1.96)
:w_{0.95}=\frac{1.96 \sqrt{p}}{\sqrt{L}} = f \times p
اس لئی
:L \approx \frac{(1.96)^2}{f^2 p} 
جے
p=10^{-4}, f=0.1
تو تجربہ
L=3.8 \times 10^6 (تقریبا چار ملین) بار دہرانا ہوئے گا۔

## ہور ویکھو
* فرضی تصادفی عدد مولّد
* اعتماد وقفہ
* بادیت (احصاء)

گٹھ:احتمال نظریہ
گٹھ:احصائی میکانیات
گٹھ:عددی تحلیل
گٹھ:نظامت اختطار
گٹھ:ریاضی