تابع برازش (Finness function)
تعریف ساده از تابع برازش ، تابعی است که راه حل کاندید برای یک مسائله را به عنوان ورودی دریافت میکند و یک خروجی را که میزان خوب بودن راه حل را مشخص میکند ارایه میکند که این کار با توجه به مسائله ای که با آن سر و کار داریم در نظر گرفته می شود..محاسبه مقدار برازش (fitness) مکرراً در یک الگوریتم ژنتیک انجام میشود و بنابراین باید به اندازه کافی سریع باشد.محاسبه آهسته و کند مقدار برازش(Finness) میتواند اثر منفی روی الگوریتم ژنتیک داشته باشد و الگوریتم را فوقالعاده کند نماید.
در اغلب مواقع تابع برازش (fitness function) و تابع هدف(objective function) شبیه یگدیگر هستند و هر دوی آنها تابع مقصود داده شده را کمینه یا پیشنه می کنند.برای مسائل پیچیده با چنید هدف و محدودیت(constraints) طراح الگوریتم ممکن است تابع های برازش مختلفی را انتخاب نماید.
تابع برازش باید دارای ویژگیهای زیر باشد :
- تابع برازش باید به اندازه کافی برای محاسبه سریع باشد.
- تابع برازش باید بصورت کمی چگونگی بدست آوردن راه حل مناسب یا چگونگی تولید افراد مناسب از راه حل بدست آمده را اندازهگیری نماید
در اغلب موارد ، محاسبه تابع برازش به دلیل پیچیدگی ذاتی مشکلی که با آن رو به رو هستیم به صورت مستقیم امکان ندارد.در چنین مواردی از تخیمین برازش (fitness approximation) برای برآورده نمودن نیاز های خود استفاده می کنیم.
در شکل زیر محاسبه برازش برای مسائله کوله پشتی 0-1 نشان داده شده است.این یک تابع برازش ساده است که تنها مقادیر ارزش آیتم هایی که انتخاب شدهاند را جمع می بندد(آنهایی که در کروموزوم با ۱ نشان داده شده اند) ، عناصر از چپ به راست اسکن میشوند تا زمانی که کوله پشتی پر شود.