تحلیل الگوریتم پیدا کردن ماکزیمم امید اعتصامی پژوهشگاه دانشهاي بنیادي پژوهشکده ریاضیات 1 انگیزه در تحلیل الگوریتم ها تحلیل احتمالاتی الگوریتم ها روشی براي تخمین پیچیدگی محاسباتی یک الگوریتم یا مساله ي محاسباتی در حالت متوسط 1 می باشد. در این نوع تحلیل ما درباره ي توزیع احتمالاتی ورودي الگوریتم فرض هایی می کنیم و سپس تحلیل را بر پایه ي این فرض انجام می دهیم. این با تحلیل بدترین حالت به وضوح متفاوت است. در تحلیل احتمالاتی خود الگوریتم غیرتصادفی است و تنها ورودي تصادفی است. این تحلیل کمی با تحلیل الگوریتم هاي تصادفی فرق می کند: در آنجا ما اجراي تصادفی الگوریتم را روي یک ورودي غیرتصادفی تحلیل می کنیم. الگوریتم پیدا کردن ماکزیمم در الگوریتم ساده ي زیر ماکزیمم مقادیر [1]A A[n]... محاسبه شده و مقدار آن A[j] در متغیر m ذخیره می گردد. 3 مساله ي استخدام m for i 1 to n do if A[i] > m then end if end for j i m A[i] زمان اجراي الگوریتم پیدا کردن ماکزیمم در بهترین و بدترین حالت Θ(n) می باشد پس به نظر می رسد که چیز خاصی براي تحلیل وجود ندارد. اما X را برابر تعداد بار تغییر دادن مقدار m تعریف کنید. مقدار X حداقل 1 و حداکثر n می باشد. می خواهیم استدلال کنیم که براي حداقل یک مساله تحلیل مقدار X مفید است. مساله ي مورد نظر مساله ي استخدام منشی 3 است: فرض کنید می خواهیم از بین n متقاضی براي شغل منشی گري یکی را انتخاب کنیم. ما متقاضیان را یکی یکی مصاحبه می کنیم. فرض کنید در انتهاي مصاحبه هر متقاضی اگر ما خواهان آن متقاضی هستیم باید دقیقا پس از مصاحبه این را به متقاضی اعلام کنیم. در انتهاي مصاحبه ي هر متقاضی اگر آن متقاضی بهتر از تمام متقاضیان مصاحبه شده ي قبلی بود ما خواهان آن متقاضی هستیم. در این روش استخدام بهترین متقاضی به عنوان منشی انتخاب می شود اما ما مجبور هستیم که X بار پیشنهاد کار دهیم و 1 X بار نظرمان را عوض کنیم. چون پیشنهاد و عوض کردن نظر هزینه ي زیادي دارد دانستن مقدار X مهم است. 4 توزیع ورودي همانطور که گفتیم مقدار X در بهترین حالت (وقتی [1]A ماکزیمم باشد) برابر 1 و در بدترین حالت (وقتی آرایه ي A صعودي باشد) برابر n می باشد. براي ساده سازي فرض می کنیم مقادیر [1]A A[n]... همگی متمایز باشند. براي به دست آوردن مقدار متوسط X باید روي توزیع 1 average-case worst-case analysis 3 hiring problem,secretary problem 1
ورودي فرض هایی داشته باشیم. فرضی که ما می کنیم این است که تمام!n جایگشت از مجموعه ي A[n]},[1]A}..., داراي احتمال برابر براي دنباله ي [1]A A[n]... هستند. 5 الگوریتم تصادفی فرض کنید [1]A A[n]... همگی متمایز باشند اما بعضی جایگشت ها از A[n]},[1]A}..., داراي احتمال بیشتري باشند. ما می توانیم با اجراي الگوریتم تصادفی زیر که یک جایگشت کاملا تصادفی تولید می کند مطمي ن باشیم تمام جایگشت ها به احتمال مساوي ظاهر می شوند: for i 1 to n do set k = 1,,..., or i uniformly at random swap A[k] with A[i] end for 6 متغیر تصادفی نشانگر گزاره ي S i را تعریف کنید A[i]» ماکزیمم [1]A A[i]... می باشد.» متغیر تصادفی X i را برابر ] i S] تعریف کنید که در این جا ما از نمادگذاري ایورسون 4 استفاده می کنیم یعنی = 1 ] i S] هر گاه گزاره ي S i صحیح باشد و = 0 ] i S] هرگاه گزاره ي S i غلط باشد. به متغیر X i که تنها مقادیر صفر و یک می پذیرد و این چنین تعریف می شود یک متغیر تصادفی نشانگر 5 می گوییم. داریم X = X 1 +... + X n Pr(X i = 1) = 1/i. و هم چنین 7 خطی بودن امید ریاضی و گاهی واریانس چون امید ریاضی خطی است داریم EX = EX i = Pr(X i = 1) = 1/i = H n. ln(n) + γ + O(1/n) عدد هارمونیک nام H n داراي تقریب می باشد که در آن γ ثابت اویلر است. همچنین وقتی تعدادي متغیر تصادفی از هم مستقل باشند واریانس مجموع این متغیرهاي تصادفی برابر مجموع واریانس آنهاست. توجه کنید که متغیرهاي X n... X 1 از هم مستقلند varx = varx i = Pr(X i = 1)(1 Pr(X i = 1)) = (1/i 1/i ) = ln(n) + O(1). 8 تعداد دورهاي یک جایگشت تصادفی هر جایگشت را می توان به طور یکتا به صورت اجتماع چند دور نمایش داد. مثلا 4 Iverson s notation 5 indicator random variable (, 5, 4)(3, 1)
جایگشتی است که را به 5 5 را به 4 4 را به 3 را به 1 و 1 را به 3 می برد. هر دور را با بزرگترین عضوش آغاز کنید مثلا جایگشت قبلی تبدیل به (5, 4, )(3, 1) می شود. سپس دورها را بر حسب عضو اولشان به صورت صعودي مرتب کنید مثلا (3, 1)(5, 4, ) 3154 و سپس پرانتزها را بردارید مثلا با کمی فکر متوجه می شوید که در این حالت می توان بدون پرانتز هم دورها را تشخیص داد. هم چنین تعداد دورها برابر با مقدار X است وقتی (A[1],..., A[5]) = (3, 1, 5, 4, ). متوسط و واریانس تعداد دورهاي یک جایگشت تصادفی همان متوسط و واریانس محاسبه شده براي X در بخش قبلی است. 9 تابع مولد احتمال اگر p nk تعداد جایگشتهاي n عضوي باشد به طوري که X = k آنگاه p nk = p (n 1)(k 1) + (n 1)p (n 1)k که در آن جمله ي (n 1)(k 1) p مربوط به حالتیست که A[n] عنصر ماکزیمم باشد و n) p(1 (n 1)k مربوط به حالتیست که A[n] عنصر ماکزیمم نباشد. Pr(X = k) = p nk /n! = 1 n p (n 1)(k 1)/(n 1)! + n 1 n p (n 1)k/(n 1)! حال می خواهیم همان متغیر تصادفی X را با روش تابع مولد احتمال تحلیل کنیم. به طور کلی اگر X متغیر تصادفی با مقادیر صحیح نامنفی باشد تابع مولد احتمال آن برابر است با داریم G(z) = Pr(X = k)z k = E z X. k=0 در مساله ي ما که X به n ربط دارد (z) G n را تابع مولد براي X تعریف کنید وقتی جایگشت n عضوي باشد. آنگاه بنابر رابطه ي بازگشتی بالا G n (z) = z + n 1 G n 1 (z), G 0 (z) = 1. n G n (z) = n (z + k 1)/n!. 10 محاسبه ي امید ریاضی و واریانس از روي تابع مولد آنها که با توابع مولد مختلف آشنا هستند شاید بدانند که n (z + k 1) = [ ] n z k, k 3
[ n عدد استرلینگ نوع اول است. اما ما می خواهیم امید ریاضی و واریانس را مستقیما از خود تابع مولد بدست بیاوریم. اگر G(z) تابع k] که در آن EX = G (1), var(x) = G (1) + G (1) G (1). مولد براي متغیر X باشد آنگاه می توان به سادگی دید که اگر تابع مولد متغیرهاي Y X و Z به ترتیب G(z) H(z) و G(z)H(z) باشد آنگاه EZ = (EX) + (EY ), var(z) = var(x) + var(y ). چون متوسط و واریانس متغیر با تابع مولد z) + k k/(1 برابر k/1 و k/1 k/1 می باشد داریم EX = 1/k, var(x) = (1/k 1/k ). 11 گشتاور هاي بالاتر X در این قسمت ما گشتاور rام متغیر تصادفی X را به ازاي 1 r تخمین می زنیم. EX r = (ln n) r (1 + o n (1)). X = X 1 +... + X n. EX r = E(X i1... X is ). 1 i 1,...,i r n قضیه 1 به ازاي 1 r صحیح و ثابت داریم اثبات: با استقرا روي r اثبات می کنیم. داریم وقتی i r... i 1 از هم متمایز هستند داریم 1 i 1,...,i r n E(X i1... X ir ) = E(X i1 )... E(X ir ) E(X i1... X ir ) E(X i1 )... E(X ir ). 1 i 1,...,i r n i 1,...,i r not distinct E(X i1 )... E(X ir ) = ( چون X n... X 1 از هم مستقلند. در حالت کلی یک کران پایین براي EX r عبارتست از EX i ) r = Hn. r میزان اختلاف این کران با مقدار واقعی گشتاور حداکثر برابر است با ( ) r E(X i1... X ir ) EX r 1. X i1 X i... X is = X i... X is. EX r 1 = O(ln r 1 n). چون اگر مثلا i 1 = i آنگاه طبق فرض استقرا 4
EX r = H r n + ( ) r O(ln r 1 n) = (1 + o(1)) ln r (n). توزیع متغیر تصادفی X در [1 ] مطالعه شده است. [1] F. G. Foster and A. Stuart (1954). Distribution-Free Tests in Time-Series Based on the Breaking of Records. Journal of the Royal Statistical Society. Series B (Methodological) 1-. [] P. B. M. Roes (1966). A note on linear programming algorithm design: a combinatorial problem. Communications of the ACM, 9, page 34. مراجع 5