الگوریتم فراابتکاری NSGA II یکی از پرکاربردترین و قدرتمندترین الگوریتم های موجود برای حل مسائل بهینه سازی چند هدفه است و کارایی آن در حل مسائل مختلف، به اثبات رسیده است. اسرینیباس و دِب در سال ۱۹۹۵ روش بهینه سازی NSGA را برای حل مسائل بهینه سازی چند هدفه معرفی نمودند. نکات برجسته ای که در مورد این روش بهینه سازی وجود دارند، عبارتند از :

  • جوابی که هیچ جواب دیگری، به طور قطع بهتر از آن نباشد، دارای امتیاز بیشتری است. جواب ها بر اساس این که چند جواب بهتر از آن ها وجود داشته باشند، رتبه بندی و مرتب می شوند.
  • شایستگی (برازندگی) برای جواب ها، بر حسب رتبه آن ها و عدم غلبه سایر جواب ها، اختصاص می یابد.
  • از شیوه اشتراک برازندگی برای جواب های نزدیک استفاده می شود تا به این ترتیب پراکندگی جواب ها به نحو مطلوبی تنظیم شود و جواب های به طور یکنواخت در فضای جستجو پخش شوند.

با توجه به حساسیت نسبتا زیادی که نحوه عملکرد و کیفیت جواب های الگوریتم NSGA به پارامترهای اشتراک برازندگی و سایر پارامترها دارند، نسخه دوم الگوریتم NSGA با نام الگوریتم فراابتکاری NSGA-II توسط دِب و همکارانش در سال ۲۰۰۰ معرفی گردید. در کنار تمام کارایی هایی که الگوریتم فراابتکاری NSGA-II دارد، می توان آن را الگوی شکل گیری بسیاری از الگوریتم های بهینه سازی چند هدفه دانست. این الگوریتم و شیوه منحصر به فرد آن در برخورد با مسائل بهینه سازی چند هدفه، بارها و بارها توسط افراد مختلف برای ایجاد الگوریتم های بهینه سازی چندهدفه جدید تر، مورد استفاده قرار گرفته است. بدون شک این الگوریتم یکی از اساسی ترین اعضای کلکسیون الگوریتم بهینه سازی چندهدفه تکاملی است که می توان آن ها را نسل دوم این گونه روش ها نامید. ویژگی های عمده این الگوریتم عبارتند از :

  • تعریف فاصله تراکمی به عنوان ویژگی جایگزین برای شیوه هایی مانند اشتراک برازندگی
  • استفاده از عملگر انتخاب تورنومنت دو-دویی
  • ذخیره و آرشیو کردن جواب های نامغلوب که در مراحل قبلی الگوریتم به دست آمده اند (نخبه گرایی)

جهت سفارش کدنویسی الگوریتم فراابتکاری NSGA II اینجا کلیک کنید