فصل سوم

Download Report

Transcript فصل سوم

Prepared By R.Ebrahimzade
‫مقدمه‬
‫توليد اعداد تصادفي‪:‬‬
‫‪ -1‬پيش از ظهور كامپيوترهاي رقمي‬
‫‪ 1-1‬ريختن تاس‬
‫‪ 2-1‬استفاده از ابزار هاي فيزيكي مولد‬
‫‪ -2‬پس از ظهور كامپيوتر هاي رقمي‬
‫‪ 1-2‬مولدهاي همنهشتي خطي‬
‫‪ 2-2‬مولدهاي خطي تكرارپذير در پايه عددي دو‬
‫خواص اعداد تصادفي‬
‫• هر دنباله اي از اعداد تصادفي بايد دو خاصيت آماري مهم داشته باشد ‪.‬‬
‫• ‪ -1‬يكنواختي‬
‫• ‪ -2‬استقالل‬
‫• يكنواختي‪ :‬اگر فاصله(‪ )0،1‬به ‪ n‬رده يا زير فاصله مساوي تقسيم شود‪،‬‬
‫انتظار مي رود كه از ‪ N‬مشاهده ‪ N/n‬آنها در هر رده قرار گيرد‪.‬‬
‫• استقالل‪ :‬احتمال حصول يك مشاهده در يك رده خاص مستقل از محل‬
‫قرار گرفتن ساير مشاهده ها است‪.‬‬
‫خطاهاي توليد اعداد تصادفي‬
‫• اعداد تصادفي ممكن است توزيع احتمال يكنواخت نداشته باشند‬
‫• ميانگين اعداد توليد شده ممكن است بيش از حد بزرگ و يا بيش از‬
‫حد متعارف كوچك باشد‪.‬‬
‫• واريانس اعداد تصادفي توليد شده ممكن است تفاوت قابل توجهي از‬
‫مقدار متعارف داشته باشد‪.‬‬
‫• ممكن است دنباله اعداد توليد شده تغييرات تناوبي از خود نشان دهند‬
‫ازجمله‪:‬‬
‫‪ .1‬وجود همبستگي بين اعداد‬
‫‪ .2‬وجود رابطه مقداري بين اعداد مجاور به اين ترتيب كه اعداد مجاور‬
‫روندي صعودي يا نزو لي از خود نشان دهند‪.‬‬
‫‪ .3‬وجود چند عدد بزرگتر از ميانگين و به دنبال آن چند عدد كوچكتر‬
‫ازميانگين‪.‬‬
‫نكاتي كه بايد در توليد اعداد تصادفي مورد توجه‬
‫قرار گيرد‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫الگوريتم بايد سريع باشد‪.‬‬
‫الگوريتم نبايد به مقدار زيادي حافظه نياز داشته باشد‪.‬‬
‫طول دنباله اعداد توليد شده بايد به اندازه كافي بلند باشد‪.‬‬
‫طول دنباله‪ :‬تعداد اعدادي است كه بدون تكرار دنباله در آن قرار مي‬
‫گيرد‪.‬‬
‫اگر عدد تصادفي معيني به طور مكرر توليد گردد‪ ،‬گويند الگوريتم از هم‬
‫پاشيده است‪.‬‬
‫اعداد تصادفي توليد شده توسط يك الگوريتم بايد در صورت نياز تكرار‬
‫پذير باشند‪.‬‬
‫از همه مهمتر بايد اعداد توليد شده تا حدود زيادي از خواص آماري‬
‫روشهاي توليد اعداد تصادفي‬
‫‪ -1‬روش ميان مربعي‬
‫‪ -2‬روش ميان ضربي‬
‫‪ -3‬روش مضرب ثابت‬
‫‪ -4‬روش همنهشتي جمعي‬
‫‪ -5‬روش همنهشتي ضربي‬
‫‪ -1‬روش ميان مربعي‬
‫در اواسط دهه ‪ 1940‬توسط وان نومن و متراپليس ابداع شده‪.‬‬
‫روش كار‪:‬‬
‫هسته را مربع نموده و سپس ارقام مياني آن را تعيين نموده و پس از‬
‫نوشتن صفر‪-‬مميز در سمت چپ ارقام مياني‪ ،‬اولين عدد تصادفي‬
‫توليد شده و براي توليد ساير اعداد بايد از ارقام مياني مرحله قبل‬
‫به عنوان هسته استفاده نمود‪.‬‬
‫‪ -1‬روش ميان مربعي(مثال)‬
‫• فرض كنيد به يك دنباله از اعداد تصادفي ‪4‬رقمي نياز داريم‪.‬‬
‫• هسته را با ‪ X0‬نمادگذاري كرده و مقدار ‪ 5497‬را براي آن در نظر مي گيريم‪.‬‬
‫‪X0=5497‬‬
‫‪X02=(5497)2=30217009 X1=2170 R1=0.2170‬‬
‫‪X12=(2170)2=04708900 X2=7089 R2=0.7089‬‬
‫‪X22=(7089)2=50253921 X3=2539 R3=0.2539‬‬
‫…‬
‫‪ -2‬روش ميان ضربي‬
‫• اين روش مانند روش ميان مربعي است با اين تفاوت كه با انتخاب‬
‫دو هسته ‪ X0‬و ’‪ X0‬كه تعداد ارقامشان مساوي است شروع به كار‬
‫مي كند‪ .‬حاصلضرب اين دو هسته را محاسبه نموده و قسمت‬
‫مياني عدد حاصله را به عنوان عدد تصادفي انتخاب نموده (‪ )X1‬و‬
‫مي توان با قرار دادن مميز در سمت راست آن عدد تصادفي را‬
‫حاصل نمود‪ .‬براي محاسبه عدد تصادفي بعدي محاسبات فوق را با‬
‫‪ X0‬و ‪ X1‬تكرار مي كنيم و اين روال ادامه مي يابد‪.‬‬
‫‪ -2‬روش ميان ضربي (مثال)‬
‫• از دو هسته ‪ X0=7229‬و ‪ X0’=2938‬استفاده و بر اساس روش‬
‫ميان ضربي اعداد تصادفي ‪ 4‬رقمي توليد كنيد‬
‫‪U1=X0’X0=(2938)(7229)=21238802X1=2388‬‬
‫‪R1=0.2388‬‬
‫‪U2=X0X1=(7229)(2388)=17262852X2=2628‬‬
‫‪R2=0.2628‬‬
‫…‬
‫اين روش شباهت بسياري را روش ميان مربعي دارد اما طول دنباله براي اين روش بلندتر و يكنواخت تر است‪ .‬ولي اين روش‬
‫عيب عمده از هم پاشيدن را دارد‪.‬‬
‫‪ -3‬روش مضرب ثابت‬
‫• اين روش شبيه روش ميان ضربي است فقط با اين تفاوت كه يكي‬
‫از اعداد را ثابت درنظر مي گيريم و آنرا معموال ‪ k‬مي ناميم‪ .‬ساير‬
‫موارد كامال شبيه روش ميان ضربي است‪.‬‬
‫** اين روش مزايا و معايب روش ميان ضربي را دارد و نيز اينكه‬
‫عملكرد مناسب اين روش تا حد زيادي به انتخاب مقدار ‪ k‬بستگي‬
‫دارد‪.‬‬
‫‪ -3‬روش مضرب ثابت (مثال)‬
‫• با استفاده از دو هسته ‪ K=3987‬و ‪ X0=7223‬و روش مضرب‬
‫ثابت دنباله اي از اعداد تصادفي چهار رقمي توليد كنيد‪.‬‬
‫‪V1=KX0=(3987)(7223)=28798101X1=7981R1=0.7981‬‬
‫‪V2=KX1=(3987)(7981)=31820247X2=8202R2=0.8202‬‬
‫…‬
‫‪ -4‬روش همنهشتي جمعي‬
‫اين روش با روشهاي گفته شده پيش از اين كامال متفاوت است‪ .‬در اين‬
‫روش دنباله ‪n‬تايي مانند ‪ X1,X2,X3…Xn‬را دريافت و بقيه دنباله‬
‫يعني …‪ Xn+1,Xn+2,‬را توليد مي كند‪ .‬اساس توليد مقدار در اين‬
‫روش استفاده از رابطه‬
‫…‪i=n+1,n+2,‬‬
‫‪XiΞ(Xi-1+Xi-n) mod m‬‬
‫مثال‬
‫فرض كنيد ‪ n‬مساوي ‪ 5‬و دنباله اعداد صحيح تصادفي‬
‫‪ X1,X2,X3,X4,X5‬به ترتيب مساوي ‪ 92 ،89 ،34 ،57‬و ‪ 16‬باشد‪.‬‬
‫براي ‪ m‬مقدار ‪ 100‬را درنظر بگيريد‪ .‬از روش همنهشتي جمعي‬
‫استفاده كنيد و اين دنباله را ادامه دهيد‪.‬‬
‫…‪i=n+1,n+2,‬‬
‫‪mod 100 = 73‬‬
‫‪mod 100 = 7‬‬
‫‪mod 100 = 96‬‬
‫‪mod 100 = 88‬‬
‫‪mod 100 = 4‬‬
‫‪mod 100 = 77‬‬
‫‪mod 100 = 73‬‬
‫‪mod 100 = 107‬‬
‫‪mod 100 = 96‬‬
‫‪mod 100 = 188‬‬
‫‪mod 100 = 104‬‬
‫‪mod 100 = 77‬‬
‫‪XiΞ(Xi-1+Xi-n) mod m‬‬
‫)‪X6 = (X5+X1‬‬
‫)‪X7 = (X6+X2‬‬
‫)‪X8 = (X7+X3‬‬
‫)‪X9 = (X8+X4‬‬
‫)‪X10= (X9+X5‬‬
‫)‪X11= (X10+X6‬‬
‫‪….‬‬
‫مولد همنهشتي خطي‬
‫اگر دنباله اعداد صحيح }‪ {Xi‬طبق رابطه تكرار پذير زير تعريف شود‪،‬‬
‫آنرا مولد همنهشتي خطي نامند‪.‬‬
‫در اين رابطه ضريب ‪ ، a‬ثابت ‪ c‬و پيمانه ‪ m‬همه اعداد صحيح‬
‫هستند‪.‬‬
‫‪XiΞ(aXi-1+c) mod m‬‬
‫…‪i=1,2,‬‬
‫بيشترين دنباله تكرار در اين همنهشتي ‪ m‬است‪.‬‬
‫مثال‬
‫با استفاده ازمقادير ‪ X0=27, a=17, C=43‬و ‪ m=100‬و بر‬
‫اساس روش همنهشتي خطي دنباله اي از اعداد تصادفي توليد كنيد‪.‬‬
‫‪X0=27‬‬
‫‪X1=[17(27)+43] mod 100 = 502 mod 100 =2  R1=0.02‬‬
‫‪X2=[17(2) +43] mod 100 =77 mod 100 =77  R1=0.77‬‬
‫‪X3=[17(77)+43] mod 100 =1352 mod 100 =52  R1=0.52‬‬
‫…‬
‫‪ -5‬روش همنهشتي ضربي‬
‫در روش همنهشتي خطي اگر ‪ c=0‬باشد مولد مزبور را همنهشتي ضربي‬
‫گويند‪.‬‬
‫خطي ‪:‬‬
‫ضربي‪:‬‬
‫…‪i=1,2,‬‬
‫…‪i=1,2,‬‬
‫‪XiΞ(aXi-1+c) mod m‬‬
‫‪XiΞ(aXi-1) mod m‬‬