Upgrading labor
۳-۵- ساختار کلی الگوریتم مرتبسازی نامغلوب ژنتیک (NSGA-II)
در دو دهه اخیر، الگوریتمهای تکاملی[۶۱](EAs) مختلفی برای حل مسائل بهینهسازی چندهدفه پیشنهاد و ارائه شده است. در این میان الگوریتم NSGA-II که بعنوان یک الگوریتم تکاملی جمعیت محور[۶۲] توسط دِب و همکاران [۶۴] ارائه شد، برای حل مسائل مختلف استفاده شده است و کارایی آن در تولید جوابهای بهینه پارتوی متعدد و متنوع به اثبات رسیده است. در ادامه ساختار این الگوریتم شرح داده می شود.
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت nefo.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
۳-۵-۱- رویه مرتبسازی نامغلوب سریع[۶۳]
برای رتبه بندی یک مجموعه از جوابها و قرار دادن آنها در جبهههای مختلف از نظر میزان درجه نامغلوب بودن، ابتدا دو پارامتر زیر برای هر کدام از جوابها محاسبه می شود؛ np که در واقع تعداد جوابهایی است که بر جواب p غلبه کرده اند، و Sp که مجموعه جوابهایی است که توسط جواب p مغلوب شده اند.
تمامی جوابهایی که دارند، رتبه یک را اختیار می کنند و در جبهه اول قرار میگیرند .سپس، برای هر جواب p با رتبه یک، هر عضو (q) از مجموعه Sp ملاقات شده و آن یک واحد کاهش مییابد. با این کار اگر شود، آن گاه جواب q رتبه دو را اختیار می کند و در جبهه دوم قرار میگیرد. به همین ترتیب جبهههای بعدی نیز تشکیل مییابند. در زیرنحوه مرتب سازی نامغلوب سریع به صورت شکل و شبهکد[۶۴] ارائه شده است.
شکل ۳-۱- نحوه مرتب سازی جواب های نامغلوب یک جمعیت
Fast Non-dominated Sorting(P)
for each
for each
if then If p dominates q
Add q to the set of solutions dominated by p
else if then
Increment the domination counter of p
if then p belongs to the first front
rank of solutions in the first front
i=1 Initialize the front counter
while
Used to store the members of the next front
for each
for each
i f then q belongs to the next front
شکل۳-۲٫ شبهکد رویه مرتبسازی نامغلوب سریع
۳-۵-۲- رویه حفظ تنوع و پراکندگی
یکی از فاکتورهای مهم و تأثیرگذار بر عملکرد الگوریتمهای تکاملی، در جهت همگرایی به مجموعه جواب بهینه پارتو، داشتن رویکردی گسترش گرایانه در جستجوی جوابها، در فضای حل است. دستیابی به جوابهای با کیفیت بهتر، به کمک جوابهای متنوعتر امکانپذیر است. در واقع در شرایطی که دو جواب از نظر برازندگی وضعیت یکسانی را دارند، جوابی ترجیح داده می شود که نسبت به دیگر جوابهای جستجو شده جمعیت، از میزان پراکندگی بیشتری برخوردار باشد. از این رو، در الگوریتم NSGA-II نیز رویهای برای این منظور طراحی شده است. جهت تشریح این رویکرد، ابتدا مفهومی را تحت عنوان فاصله تراکمی ارائه میکنیم.
فاصله تراکمی[۶۵]
برای بدست آوردن تخمینی از چگالی جوابهای موجود در کنار یک جواب خاص، مانند جواب i ام در جمعیت، میانگین فاصله دو جواب واقع در طرفین جواب i ام برای هر کدام از M تابع هدف، محاسبه می شود. مقدار عددی di که از محاسبه تقریبی فضای مکعبی اطراف جواب i با بکار بردن نزدیکترین همسایههای آن بدست می آید را فاصله تراکمی مینامیم. در شکل (۳-۲) فاصله تراکمی جواب i ام برابر است با میانگین طول اضلاع مستطیلی که رئوس آن، نقاط مجاور جواب i ام میباشند.
شکل۳-۲٫ فاصله تراکمی
برای محاسبه فاصله تراکمی جوابها، لازم است که ابتدا هر تابع هدف به ترتیب نزولی مرتب شود و بردار اندیسهای مرتب شده جوابها ایجاد گردد. سپس، برای جوابهای ابتدایی و انتهایی بردار اندیسهای مرتب شده، فاصله تراکمی، بینهایت مقداردهی می شود و برای مابقی، فاصله تراکمی هر جواب بر اساس تفاضل مقادیر تابع هدف جواب بعد و قبل آن در بردار اندیس، طبق رابطه زیر محاسبه می شود:
(۳-۳۸)
که در آن و به ترتیب بیشترین و کمترین مقدار بدست آمده برای تابع هدف m ام در جمعیت حاضر است و و بترتیب مقدار تابع هدف m ام برای جواب بعدی و قبلی جواب j ام در بردار اندیس مرتبشده تابع هدف m ام میباشند. ذکر این نکته لازم است که برای هر جواب j ام، دو جواب j+1 ام و j-1 ام بعنوان همسایگان جواب j ام، برای تمام توابع هدف یکسان نمیباشند. به ویژه برای همسایهها متفاوت خواهند بود. بعلاوه با توجه به ناهمسان بودن مقادیر توابع هدف، شکل نرمالیزهشده آنها در نظر گرفته شده است. در ادامه شبهکد مربوط به محاسبه فاصله تراکمی جوابها ارائه میگردد.
Crowding Distance Assignment(P)
number of solutions in P
for each i, set di=0 initialize distance
for each objective m
sort using each objective value
so that boundary points are always selected
for j=2 to (l-1) for all other points
شکل۳-۳٫ شبهکد محاسبه فاصله تراکمی