1.1.1 الگوریتم بهینهسازی چندهدفه تکاملی NSGA-II
الگوریتم NSGA[1] یکی از اولین روشهای بهینهسازی تکاملی چندهدفه به شمار میرود که در سال 1995 و توسط سرینیواس و دب[2] ارائه گردید ]36[. کاربرد این الگوریتم بدلیل وجود بعضی مسائل از قبیل پیچیدگی محاسباتی، فقدان نخبه گرایی و عدم وجود رویکردی برای انتخاب مقدار بهینه پارامتر مشارکت، با محدودیت زیادی همراه بود.
یک ورژن جدید الگوریتم NSGA با عنوان NSGA-II در سال 2002 توسط دب[3] توسعه داده شده می باشد که دارای یک الگوریتم رتبهبندی مناسبتری می باشد و از نخبهگرایی در انتخاب جوابها بهره گیری شده می باشد و همچنین نیازی به تعیین پارمتر مشارکت نیز ندارد ]37[.
اجرای NSGA-II همانند الگوریتم ژنتیک معمولی می باشد اما با دو دو بخش اضافی دیگر با نامهای مرتبسازی نامغلوب (Non-dominated Sorting) و فاصله ازدحام جمعیت (Crowding Distance). در شکل4.3 مراحل مختلف عملکرد الگوریتم NSGA-II نشان داده شده می باشد که هر کدام از این مراحل بصورت زیر تشریح می گردد.