مونٹے کارلو تشبیہ

اصل دنیا کے بعض ایسے مسائل پچیدہ ہوتے ہیں کہ ان کے متحرک مختلف عوامل کی تصادفی متغیر کے بطور مثیل گیری کی جاتی ہے۔ ان میں سے کچھ مسائل اتنے پچیدہ ہوتے ہیں کہ احتمال نظریہ کے مسلمات اور قواعد استعمال کرتے ہوئے مختلف واقعات کا احتمال یا متوقع قدر نکالنا مشکل ہو جاتا ہے۔ ایسے میں احتمالی تجربات (تشبیہ) کے ذریعہ ان اقدار کا تخمینہ لگایا جا سکتا ہے۔ سمجھانے کے لیے ایک سادہ مثال لیتے ہیں:
:فرض کرو کہ سٹہ کے ایک کھیل میں طاس کو تین بار پھینکا جاتا ہے۔ اگر تین طاس کے منہ کی جمع 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|تصغیر|نیلی شکل کے رقبے کا تخمینہ مونٹے کارلو تشبیہ کے طریقہ سے

اس طریقہ سے کسی بھی شکل کے لیے فنکشن \ 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 (تقریبا چار ملین) بار دہرانا ہو گا۔

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

زمرہ:احتمال نظریہ
زمرہ:احصائی میکانیات
زمرہ:عددی تحلیل
زمرہ:نظامت اختطار
زمرہ:کامنز زمرہ جس کا ربط ویکی ڈیٹا پر ہے
زمرہ:ہندسہ
زمرہ:شمارندگی کیمیاء
زمرہ:شماریات