مباحث الگوریتمی

کامنت خصوصی نگذارید چون من با ایمیل جواب سوال نمی‌دهم. اگر سوالی دارید کامنت بگذارید من همانجا جواب می‌دهم.

حل تمرین‌های کتاب لینچ فصل ۳

يكشنبه, ۱۶ اسفند ۱۳۹۴، ۰۹:۰۹ ق.ظ

۳.۱ جزئیات دقیق‌تر اثبات درستی الگوریتم LCR را بنویسید.

الگوریتم LCR برای انتخاب رهبر در یک حلقه در مدل سنکرون است. اسم الگوریتم از اول اسم آدمهایی که پیدایش کردند می‌آید و معنی خاصی ندارد. این الگوریتمی است که با O(n^2) پیام رهبر را پیدا می‌کند.

اولین جای خالی که در اثبات کتاب هست استقرا برای اثبات این است که در راند r پردازنده‌ی (i_max+r) mod n شناسه‌ی u_max را دارد.

پایه استقرا: در راند ۰ شناسه‌ی u_max در i_max است پس حکم برقرار است.

فرض استقرا: برای راند r حکم برقرار است.

حکم استقرا: برای راند r+1 که r+1<n است حکم برقرار است.

اثبات: در راند r پردازنده‌ی (i_max+r) mod n شناسه بزرگترین را داشته است که در آن راند روی خروجی خودش قرار داده است. پس در شروع راند r+1 در ورودی پردازنده‌ی بعدی آن یعنی (i_max+r+1) mod n هست. در راند r+1 این پردازنده ورودی‌اش را دریافت می‌کند پس شناسه‌ی ماکسیمم در این پردازنده خواهد بود.

البته فکر کنم منظورش فرمال بوده که در این صورت:

incoming = u_max است. طبق تابع انتقال مقدار آن با u پردازنده (i_max+r+1) mod n مقایسه می‌شود چون u_max است حتماً بزرگتر خواهد بود پس send این پردازنده مقدار u_max را می‌گیرد.

اثبات قسمت دیگر: در راند r=n-1 چه اتفاقی می‌افتد که باعث می‌شود در راند n جواب پیدا شده باشد.

طبق لم ۲ (که الآن اثبات کردیم) در راند n-1 پردازنده‌ی (i_max+n-1( mod n شناسه‌ی ماکسیمم را در send اش دارد. در راند n پردازنده‌ی (i_max+n-1+1( mod n یعنی همان i_max شناسه‌ی u_max را دریافت می‌کند. طبق تابع transition با تشخیص مساوی بودن این شناسه با شناسه‌ی خودش، خودش را به عنوان رهبر انتخاب می‌کند (status خودش را leader می‌کند).

لم ۳: پس از r راند، اگر i <> i_max باشد و j هر پردازنده در بازه‌ی [i_max,i) باشد (بازه برعکس افتاد به دلیل تایپ، ولی مساوی i_max می‌تواند باشد و شامل i نیست)، آنگاه send پردازنده j شامل u_i نیست.

اثبات با استقرا.

پایه استقرا: در راند ۰، هیچ پردازنده‌ای به جز i مقدار u_i در send اش نیست. (شناسه‌ها متمایزند)

فرض استقرا: برای راند r

حکم استقرا: برای راند r+1

طبق فرض استقرا در راند r هیچ پردازنده‌ j در بازه‌ی [i_max,i) در send اش u_i نبوده است. در راند r+1 در send هر پردازنده [i_max,i+1

موافقین ۰ مخالفین ۰ ۹۴/۱۲/۱۶
سپیده آقاملائی

نظرات  (۲)

سلام وقت بخیر
می خواستم بپرسم که شما solution manual الگوریتم های توزیع شده لینچ رو دارید
پاسخ:
سلام
من نمی‌دانستم وجود داره. ولی جزو آثار باستانی است:
https://www.abebooks.com/9781558605428/Distributed-Algorithms-Instructrs-Mnl-Tx-1558605428/plp?cm_sp=plped-_-1-_-image
بله متاسفانه در حال حاضر شریف داره اینو تدریس میکنه
ببخشید از این لینک امکان دانلود وجود نداره اگه ممکنه فایلش رو بزارید یا اینکه یه لینک مستقیم بزارید ممنون میشم
پاسخ:
متأسفانه نداره. هیچ استادی کتابی که حل‌المسائلش موجود باشد را درس نمی‌دهد یا اگر بدهد از آن سوال نمی‌دهد.
آن لینک برای دانلود نبود، صرفاً مشخصات کتاب بود. من لینک دانلودش را ندارم. اگر پیدا کردید به من هم بدهید.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی