توابع یک هدفه Single Objective Functions یک معیاریا هدف را به یک مسئله نسبت میدهند. در این حالت، یک فرمول یا تابع برای بهبود یا کمینه کردن آن هدف وجود دارد. به عبارت دیگر،یک جواب به عنوان بهترین گزینه در مقایسه با سایر جوابها بهینه است.
اما در توابع چند هدفه Multi-Objective Functions، معمولاً دو یا بیشتر از یک هدف وجود دارد که همگی باید همزمان برآورده شوند. این اهداف معمولاً متضاد هستند، به طوری که بهبود یک هدف ممکن است منجر به بدتر شدن هدف دیگر شود. این چالش، به دنبال یافتن "پارتو" یا "جواب پارتو" است که بهینهای نزدیک به همهی اهداف باشد و هیچیک را به طور قابل قبولی کاهش ندهد.
الگوریتمهای بهینهسازی چند هدفه براییافتن مجموعهای از جوابها که به عنوان پاسخهای بهینه و بهینهترین نقاط در فضای چندبعدی فضای هدف محسوب میشوند، استفاده میشوند.
الگوریتمهای بهینهسازی تک هدفه برای حل مسائلی طراحی شدهاند که یک هدف یا معیار را بهینه میکنند. این الگوریتمها معمولاً به صورت تکراری عمل میکنند و تغییراتی روی متغیرها اعمال میکنند تا به بهینهسازی هدف برسند.
الگوریتمهای تک هدفه تابعی: این الگوریتمها، مانند روشهای گرادیانی، استفاده از توابع مشتقپذیر برای جستجوی بهینهترین نقطه در فضای مسئله را دارند.
الگوریتمهای تک هدفه فاقد تابع مشتق: الگوریتمهایی مانند الگوریتمهای تکاملی مانند الگوریتم ژنتیک برای مسائلی که توابع آنها مشتقپذیر نیستندیا جستجو در فضای جستجوی پیچیده انجام میدهند.
روشهای جستجوی مبتنی بر جمعیت: این الگوریتمها مانند الگوریتمهای تکاملییا الگوریتمهای مورچگان مبتنی بر مفهوم جمعیت و تلاش متعددی برای بهبود بهترین نقطه را ارائه میدهند.
الگوریتمهای بهینهسازی محلی: این الگوریتمها معمولاً در جستجوی بهینهترین نقطه در اطراف نقطهی فعلی قرار دارند و بر اساس محلیترین تغییرات بهینهسازی انجام میدهند.
انواع الگوریتم های چند هدفه این الگوریتمها معمولاً بسته به نوع مسئلهی بهینهسازی و شرایط محیطی مورد استفاده قرار میگیرند.
الگوریتمهای توابع چند هدفه برای حل مسائلی طراحی شدهاند که بیش از یک هدف را بهینه میکنند. این الگوریتمها به دنبال یافتن مجموعهای از جوابها هستند که به عنوان بهترین نقاط در فضای چندبعدی اهداف فضای هدف محسوب میشوند.
الگوریتمهای تکاملی مبتنی بر جمعیت: این الگوریتمها مثل NSGA-II Non-dominated Sorting Genetic Algorithm IIیاSPEA2 Strength Pareto Evolutionary Algorithm 2 با استفاده از مفهوم جمعیت، مرتبسازی نامتعارف Non-dominated sorting و انتخاب بهترین جوابها به منظور بهبود پارتو ارائه میدهند.
روشهای بهینهسازی چند هدفه مبتنی بر جمعیت: به عنوان مثال، NSGA-III Non-dominated Sorting Genetic Algorithm III که یک نسخه بهبود یافته از NSGA-II است و بهترینها را در فضای هدف بهبود میدهد.
روشهای تکاملی مبتنی بر ارزیابی تنش: مانند MOEA/D Multi-Objective Evolutionary Algorithm Based on Decomposition که بهبود پارتو را با تجزیه و تحلیل فضای هدف به بخشهای کوچکتر انجام میدهد.
الگوریتمهای تطبیقیمانند آنهایی که از هوش مصنوعی مانند شبکههای عصبییا الگوریتمهاییادگیری تقویتی استفاده میکنند: این الگوریتمها ممکن است برای حل مسائل پیچیده چند هدفه به کار گرفته شوند.
این الگوریتمها با توجه به ماهیت مسئله و نیازهای موجود مورد استفاده قرار میگیرند و ممکن است برای هر مسئله مختص بهینهسازی چند هدفه روش مناسب خاص خود را داشته باشند.
الگوریتم های تکاملی چند هدفه چیست
الگوریتمهای تکاملی چند هدفه، الگوریتمهایی هستند که برای حل مسائلی با چندین هدف یا معیار طراحی شدهاند. در این نوع الگوریتمها، تلاش برای بهبود یک معیار نیست، بلکه تلاش برای بهبود چندین معیار همزمان صورت میگیرد.
این الگوریتمها معمولاً بر اساس مفهوم جستجوی پارتوPareto هستند. به این معنا که نتایج بهترین به گونهای انتخاب میشوند که هیچ کدام از آنها نمیتوانند در یک معیار بهبود داشته باشند بدون آنکه در معیار دیگری بهبود کنند.
به عبارت دیگر، در الگوریتمهای تکاملی چند هدفه، به دنبال پیدا کردن جوابهایی هستیم که به نوعی بهترینهای ممکن در همهی معیارها باشند و هیچ کدام از آنها نتوانند به تنهایی بهبود کنند بدون اینکه دیگر معیارها را تحت تأثیر قرار دهند.
الگوریتمهای تکاملی چند هدفه به دنبال پیدا کردن مجموعهای از راهحلهای بهترین ممکن هستند که در آنها هیچیک نمیتوانند به تنهایی بهبود کنند و به این صورت که اگر یکی از آنها بهبود پیدا کند، به نحوی سایر راهحلها نیز باید بهبود پیدا کنند تا در مجموعه بهترین باقی بمانند.
برای مثال، در یک مسئله بهینهسازی با دو یا بیشتر معیار، مانند بهینهسازییک ماشین با هدف حداکثر کارایی و حداقل مصرف سوخت، الگوریتم چند هدفه سعی میکند مجموعهای از راهحلهای ممکن را پیدا کند که همزمان بهترینها در هر دو معیار باشند، به این صورت که هیچیکاز آنها نتواند به تنهایی بهبود کند.
برای حل اینگونه مسائل، الگوریتمهای چند هدفه از تکنیکهایی مثل "فرایند انتخاب پارتو" Pareto Selection استفاده میکنند که بهترین راهحلها را بر اساس پارتو انتخاب میکنند. این الگوریتمها در جستجوی نقاطی هستند که به طور جداگانه در هیچیک از معیارها نمیتوانند بهبود داشته باشند و به آنها به عنوان نقاط پارتو گفته میشود.
پارتو در بهینه سازی
پارتوPareto مربوط به مفهوم پارتو بهینهPareto optimality است که در بهینهسازی چند هدفه به کار میرود. این مفهوم به وجود آمده از نام ویلفردو پارتو، اقتصاددان ایتالیایی است.
در بهینهسازی چند هدفه، پارتو بهینه به وضعیتی اشاره دارد که دیگر نمیتوانیکی از اهداف را بهبود داده بدون این که حداقل یک هدف دیگر کاهش نیابد. به عبارت دیگر، در مسئله بهینهسازی چند هدفه، وقتی که نقطهای به عنوان پارتو بهینه تشخیص داده میشود، به معنای این است که هیچ تغییری در جهت بهبود یک هدف خاص امکانپذیر نیست مگر اینکه حداقل یک هدف دیگر را تضحیک کنیم.
به طور معمول، جمعیت پارتو Pareto Front به مجموعهای از نقاط در فضای هدف اصلی اشاره دارد که هیچ کدام از آنها بهتر از دیگری در همهی معیارها نیستند و هیچ قید بهینهسازی نمیتواندیکی را بهتر از دیگری کند.
استفاده از پارتو بهینه در بهینهسازی چند هدفه، به ما کمک میکند تا درک بهتری از فضای مسئله داشته باشیم و روشهایی را برای انتخاب بهترین جوابها در میان جمعیت پارتو پیدا کنیم.
روش اجرایی
روش اجرایی بهینهسازی با استفاده از مفهوم پارتو بهینه معمولاً به صورت زیر است:
تعریف هدفها و معیارها: ابتدا، هدفها و معیارهای بهینهسازی را مشخص کنید. این معیارها ممکن است متفاوت و متنوع باشند که میتواند به صورت تعدادی از هدفهای متفاوت برای بهینهسازی اشاره کند.
تعریف فضای جستجو: فضایی که الگوریتم به دنبال بهبودهای مختلف در آن میگردد. این فضا میتواند با توجه به مسئله، پارامترها و محدودیتهای موجود تعریف شود.
انتخاب الگوریتم بهینهسازی پارتو: انتخاب یک الگوریتم مناسب مانند NSGA-II، SPEA2، یاMOEA/D که مناسب برای مسائل چند هدفه و پارتو بهینه است، حیاتی است.
پیادهسازی و اجرا: الگوریتم انتخاب شده را بر روی دادهها یا مسئلهی مورد نظر پیادهسازی کرده و اجرا کنید.
پارتو بهینه: پس از اجرا، نتیجههای به دست آمده به عنوان مجموعهای از نقاط در فضای پارتو بهینه خواهند بود که هیچ کدام از آنها بهتر از دیگری در همه معیارها نیستند.
تحلیل و انتخاب: ارزیابی نتایج بدست آمده و انتخاب جوابهای مناسب بر اساس شرایط و نیازهای مسئله مورد بررسی قرار میگیرد.
تطبیق و بهبود: در صورت نیاز، اصلاح یا بهبود فرایند بهینهسازی به صورت مداوم انجام میشود تا به جوابهای بهتر و نزدیکتر به پارتو بهینه برسیم.
این فرآیند معمولاً مرتبط با بهینهسازی چند هدفه است و با توجه به مسئله و نیازهای مختلف، جزئیات بیشتری ممکن است در هر مرحله اضافه یا تغییر کند.
چندین الگوریتم معروف برای حل مسائل بهینهسازی چند هدفه وجود دارند. برخی از این الگوریتمها عبارتند از:
NSGA-II Non-dominated Sorting Genetic Algorithm II: یکی از محبوبترین الگوریتمهای تکاملی چند هدفه است که بر اساس الگوریتم ژنتیک عمل میکند و با استفاده از فرایند انتخاب پارتو، جمعیت را بهبود میبخشد.
MOEA/D Multi-Objective Evolutionary Algorithm based on Decomposition: این الگوریتم بر اساس ایده تجزیه مسئله چند هدفه به زیرمسائل کوچکتر تکیه دارد و به تعدادی از جایگزینهای بهینه میان آنها انتخاب میکند
SPEA2 Strength Pareto Evolutionary Algorithm 2: یک الگوریتم تکاملی مبتنی بر قدرت پارتو است که به منظور بهبود جمعیت پارتویی میپردازد و رویکرد قدرت این نقاط را در نظر میگیرد.
PAES Pareto Archived Evolution Strategy: این الگوریتم بر اساس استراتژیهای تکاملی و نگهدارییک آرشیو از نقاط پارتو عمل میکند.
MOPSO Multi-Objective Particle Swarm Optimization: یک الگوریتم الهام گرفته از شناورهای ذرات است که برای بهینهسازی چند هدفه مورد استفاده قرار میگیرد.
هریک از این الگوریتمها و روشهای دیگر، با استفاده از مفاهیم مختلفی از تکامل و بهرهگیری از مباحث ژنتیک، به دنبال پیدا کردن بهترین جوابهای ممکن در مسائل با چندین هدف میباشند.