با معرفی معیار فاصله تراکمی، برای مقایسه دو جواب، عملگری تحت عنوان عملگر مقایسه تراکمی ارائه می شود.
عملگر مقایسه تراکمی[۶۶]
عملگر مقایسه تراکمی برای فرایند انتخابی که در ادامه ذکر می شود، طراحی شده است. فرض می شود که هر جواب i دو ویژگی زیر را دارد:
-
- یک رتبه یا درجه نامغلوب بودن که آن را با ri نشان میدهیم.
-
- یک فاصله تراکمی محلی که آن را با di نمایش میدهیم.
فاصله تراکمی di یک اندازه از فضای جستجو حول جواب i است که توسط هیچ جواب دیگری از جمعیت اشغال نشده باشد. بر پایه دو ویژگی بیان شده، میتوانیم عملگر مقایسه تراکمی را با قاعده زیر تعریف کنیم:
تعریف: جواب i در مقایسه با جواب j پیروز می شود ، اگر و تنها اگر یکی از شرایط زیر برقرار باشد:
-
-
-
- جواب i دارای رتبه بهتری باشد یا .
-
- اگر جوابهای i و j هم رتبهاند ، جواب i فاصله تراکمی بهتری را داشته باشد یا .
-
-
شرط اول این اطمینان را بوجود میآورد که جواب پیروز از درجه نامغلوب بودن بهتری نسبت به حریف خود برخوردار است و شرط دوم که در هنگام همرتبه بودن جوابها با آن روبرو خواهیم شد، این اطمینان را میدهد که جواب پیروز از ناحیه تراکمی بزرگتری برخوردار باشد.
با مطالب ارائه شده در فوق میتوانیم مراحل الگوریتم NSGA-II را گام به گام تشریح سازیم.
۳-۵-۳- مراحل الگوریتم NSGA-II
ابتدا جمعیت اولیه والدین با اندازه N بصورت تصادفی ایجاد می شود. سپس جمعیت تولید شده، مرتبسازی نامغلوب گشته و جوابها در سطوح مختلفی از درجه نامغلوب بودن دستهبندی میشوند. به هر جواب بر حسب اینکه در چه جبههای قرار دارد، ارزش یا رتبهای اختصاص داده می شود (جوابهای جبهه اول که در پایینترین سطح قرار دارند رتبه یک، جوابهای جبهه دوم رتبه دو و به همین ترتیب بقیه رتبه بندی میشوند). در ادامه با بهره گرفتن از روش انتخاب مسابقه دودویی[۶۷] مبتنی بر عملگر مقایسه تراکمی و عملگرهای تقاطع و جهش، جمعیت فرزندان با اندازه N تولید میگردد. از ترکیب دو جمعیت والدین و فرزندان، جمعیت با اندازه ۲N حاصل می شود. از جمعیت به دست آمده نسل بعد انتخاب می شود. از آنجا که الگوریتم رویکردی نخبه گرایانه دارد، مجدداً اعضای با روش مرتبسازی نامغلوب دستهبندی میشوند و پس از ایجاد جبهههای متفاوت از نظر درجه نامغلوب بودن، جمعیت نسل بعد با اندازه N بترتیب از جبهه اول به بعد به طریقی که در ادامه بیان می شود، پر میگردد. با ایجاد همان مراحلی که برای ذکر شد، انجام می شود و این حلقه تا رسیدن به شرط پایان و توقف الگوریتم ادامه مییابد. در نهایت جبهه اول حاصل از مرتبسازی آخرین نسل، بعنوان مجموعه جوابهای بهینه پارتو معرفی می شود.
فرض میکنیم جمعیت حاصل از ترکیب والدین و فرزندان آن ، مرتبسازی نامغلوب شده است و جبهههای برای ایجاد گشته است. اینک جوابهای موجود در جبهه اول بعنوان بهترین جوابهای موجود در نسل حاضر، اولین کاندید برای پیوستن به نسل بعد میباشند. اگر تعداد اعضای کمتر از میباشد، همه آنها به منتقل میشوند. مابقی اعضای از و بعد از آن از و الی آخر انتخاب میشوند. این رویه ادامه دارد تا زمانی که بعنوان آخرین جبههای که قرار است باقیمانده اعضای از آن انتخاب گردد، در نظر گرفته شود. در این هنگام چون تعداد کل اعضای از تعداد مورد نیاز باقیمانده بیشتر است، ابتدا اعضای به ترتیب کاهش فاصله تراکمی مرتب میشوند و سپس تعداد مورد نیاز باقیمانده، از ابتدای این لیست انتخاب میگردند. شکل (۳-۸) این رویه را بهتر نمایش میدهد.
sorting
Crowding-distance
sorting
Rejected
Pt
Qt
Rt
F1
F2
F3
Pt+1
شکل۳-۴ . نمایشی از عملکرد NSGA-II
در ادامه شبهکد تولید نسل بعد و فلوچارت کلیه مراحل الگوریتم آورده می شود.
Procedure of next generation(Pt+1)
combine parent and offspring population
F=fast-non-dominated-sort(Rt) F=(F1,F2,…), all nondominated fronts of Rt
until until the parent population is not filled
crowding-distance-assignment(Fi) calculate crowding-distance in Fi
فرم در حال بارگذاری ...