مقدمه ای بر بهینه سازی و الگوریتم های موجود
هدف از بهينهسازي يافتن بهترين جواب قابل قبول، با توجه به محدوديتها و نيازهاي مسأله است. براي يك مسأله، ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و انتخاب جواب بهينه، تابعي به نام تابع هدف تعريف ميشود. انتخاب اين تابع به طبيعت مسأله وابسته است.
به عنوان مثال، زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد. به هر حال، انتخاب تابع هدف مناسب يكي از مهمترين گامهاي بهينهسازي است.
گاهي در بهينهسازي چند هدف بهطور همزمان مد نظر قرار ميگيرد؛ اين گونه مسائل بهينهسازي را كه دربرگيرنده چند تابع هدف هستند، مسائل چند هدفي مينامند. .
سادهترين راه در برخورد با اين گونه مسائل، تشكيل يك تابع هدف جديد به صورت تركيب خطي توابع هدف اصلي است كه در اين تركيب ميزان اثرگذاري هر تابع با وزن اختصاص يافته به آن مشخص ميشود.
هر مسأله بهينهسازي داراي تعدادي متغير مستقل است كه آنها را متغيرهاي طراحيمینامند كه با بردار n بعدي x نشان داده ميشوند.
هدف از بهينهسازي تعيين متغيرهاي طراحي است، به گونهاي كه تابع هدف كمينه يا بيشينه شود.
مسائل مختلف بهينهسازي به دو دسته زير تقسيم ميشود:
الف) مسائل بهينهسازي بيمحدوديت: در اين مسائل هدف، بيشينه يا كمينه كردن تابع هدف بدون هر گونه محدوديتي بر روي متغيرهاي طراحي ميباشد.
ب) مسائل بهينهسازي با محدوديت: بهينهسازي در اغلب مسائل كاربردي، با توجه به محدوديتهايي صورت ميگيرد؛
محدوديتهايي كه در زمينه رفتار و عملكرد يك سيستم ميباشد و محدوديتهاي رفتاري و محدوديتهايي كه در فيزيك و هندسه مسأله وجود دارد، محدوديتهاي هندسي يا جانبي ناميده ميشوند.
معادلات معرف محدوديتها ممكن است به صورت مساوي يا نامساوي باشند كه در هر مورد، روش بهينهسازي متفاوت ميباشد. به هر حال محدوديتها، ناحيه قابل قبول در طراحي را معين ميكنند.
فرايند بهينه سازي
فرموله كردن مسئله: در اين مرحله، يك مسئله ي تصميم گيري، همراه با يك ساختار كلي از آن تعريف ميشود. اين ساختار كلي ممكن است خيلي دقيق نباشد اما وضعيت كلي مسئله را، كه شامل فاكتورهاي ورودي و خروجي و اهداف مسئله است، بيان مي كند.
شفاف سازي و ساختاردهي به مسئله، ممكن است براي بسياري از مسايل بهينه سازي، كاري پيچيده باشد.
مدل سازي مسئله:
در اين مرحله يك مدل رياضي كلي براي مسئله، ساخته مي شود. مدلسازي ممكن است از مدل هاي مشابه در پيشينه ي موضوع كمك بگيرد. اين گام موجب تجزيه مسئله به يك يا چند مدل بهينهسازي مي گردد.
بهينه سازي مسئله:
پس از مدل سازي مسئله، روال حل، يك راه حل خوب براي مسئله توليد مي كند. اين راهحل ممكن است بهينه يا تقريباً بهينه باشد. نكته اي كه بايد به آن توجه داشت اين است كه راه حل به دست آمده، راه حلي براي مدل طراحي شده است، نه براي مسئله ي واقعي. در هنگام فرموله كردن و مدلسازي ممكن است تغييراتي در مسئله واقعي به وجود آمده و مسئله ي جديد، نسبت به مسئله ي واقعي تفاوت زيادي داشته باشد.
استقرار مسئله:
راه حل به دست آمده توسط تصميم گيرنده بررسي مي شود و در صورتي كه قابل قبول باشد، مورد استفاده قرار مي گيرد و در صورتي كه راهحل قابل قبول نباشد، مدل يا الگوريتم بهينه سازي بايد توسعه داده شده و فرايند بهينه سازي تكرار گردد.
الگوریتم های بهینه سازی
هدف الگوریتم های اکتشافی، ارائه راه حل در چارچوب یک زمان قابل قبول است که برای حل مسئله مناسب باشد، ممکن است الگوریتم اکتشافی، بهترین راه حل واقعی برای حل مسئله نبوده ولی می تواند راه حل نزدیک به بهترین باشد. الگوریتم های اکتشافی با الگوریتم های بهینه سازی برای اصلاح کارایی الگوریتم میتوانند ترکیب شوند. الگوریتم فرا اکتشافی ترکیبی است از الگوریتم های اکتشافی که برای پیدا کردن، تولید یا انتخاب هر اکتشاف در هر مرحله طراحی میشود و راه حل خوبی برای مسائلی که مشکل بهینهسازی دارند ارائه میدهد. الگوریتم های فرا اکتشافی برخی از فرضیات مسائل بهینه سازی که باید حل شود را در نظر می گیرد.
روشهاي فرا ابتكاري برگرفته از طبيعت
الگوريتم هاي فراابتكاري الگوريتم هايي هستند كه با الهام از طبيعت، فيزيك و انسان طراحي شده اند و در حل بسياري از مسايل بهينه سازي استفاده می شوند. معمولاً از الگوريتم هاي فراابتكاري در تركيب با ساير الگوريتم ها، جهت رسيدن به جواب بهينه يا خروج از وضعيت جواب بهينه محلي استفاده ميگردد. در سالهاي اخير يكي از مهمترين و اميدبخشترين تحقيقات، «روشهاي ابتكاري برگرفته از طبيعت» بوده است؛ اين روشها شباهتهايي با سيستمهاي اجتماعي و يا طبيعي دارند. كاربرد آنها برگرفته از روشهاي ابتكاري پيوسته میباشد كه در حل مسائل مشكل تركيبي (NP-Hard) نتايج بسيار خوبی داشته است.
در ابتدا با تعريفي از طبيعت و طبيعي بودن روشها شروع ميكنيم؛ روشها برگرفته از فيزيك، زيستشناسي و جامعهشناسي هستند و به صورت زير تشكيل شدهاند:
– استفاده از تعداد مشخصي از سعيها و كوششهاي تكراري
– استفاده از يك يا چند عامل (نرون،خردهريز، كروموزوم، مورچه و غيره)
– عمليات (در حالت چند عاملي) با يكسازوکار همكاري ـ رقابت
– ايجاد روشهاي خود تغييري و خود تبديلي
طبيعت داراي دو تدبير بزرگ ميباشد:
1- انتخاب پاداش براي خصوصيات فردي قوي و جزا براي فرد ضعيفتر؛
2- جهش كه معرفي اعضای تصادفي و امکان تولد فرد جديد را ميسر میسازد.
به طور كلي دو وضعيت وجود دارد كه در روشهاي ابتكاري برگرفته از طبيعت ديده ميشود، يكي انتخاب و ديگري جهش. انتخاب ايدهاي مبنا براي بهينهسازي و جهش ايدهاي مبنا براي جستجوي پيوسته ميباشد.
از خصوصيات روشهاي ابتكاري برگرفته از طبيعت، ميتوان به موارد زير اشاره كرد:
1- پديدهاي حقيقي در طبيعت را مدلسازي ميكنند.
2- بدون قطع ميباشند.
3- اغلب بدون شرط تركيبي همانند (عاملهاي متعدد) را معرفي مينمايند.
4- تطبيقپذير هستند.
خصوصيات بالا باعث رفتاري معقول در جهت تأمين هوشمندي ميشود. تعريف هوشمندينيز عبارت است از قدرت حل مسائل مشكل؛ بنابراين هوشمندي به حل مناسب مسائل بهينهسازي تركيبي منجر میشود.
برخی الگوریتم های بهینه سازی مهم عبارت انداز:
الگوریتم بهینه سازی ازدحام ذرات
در سال 1995 ابرهارت و کنیدی براي اولینبار PSOبه عنوان یک روش جستجوي غیرقطعی براي بهینه سازي تابعی مطرح گشت اینالگوریتم از حرکت دسته جمعی پرندگانی کهبه دنبال غذا میباشند، الهام گرفته شدهاست. گروهي از پرندگان در فضايي بهصورت تصادفي دنبال غذا ميگردند. تنها يكتكه غذا در فضاي مورد بحث وجود دارد. هيچيك از پرندگان محل غذا را نميدانند. يكياز بهترين استراتژيها ميتواند دنبال كردنپرندهاي باشد كه كمترين فاصله را تا غذاداشته باشد. اين استراتژي در واقع جانمايهالگوريتم است. هر راهحل كه به آن يك ذرهگفته ميشود،PSO در الگوريتم معادل يكپرنده در الگوريتم حركت جمعي پرندگان ميباشد. هر ذره يك مقدار شايستگي دارد كهتوسط يك تابع شايستگي محاسبه ميشود. هرچه ذره در فضاي جستجو به هدف – غذا درمدل حركت پرندگان- نزدیكتر باشد،شايستگي بيشتري دارد. همچنين هر ذرهداراي يك سرعت است كه هدايت حركت ذرهرا بر عهده دارد. هرذره با دنبال كردن ذراتبهينه در حالت فعلي، به حركت خود در فضايمساله ادامه ميدهد.
الگوریتم کرم شب تاب
الگوریتم کرم شب تاب به عنوان الگوریتمذهنی مبتنی بر ازدحام، برای وظایف بهینهسازی محدود، ارائه شده است. در این الگوریتم از رفتار تابشی کرمهای شب تابالهام گرفته شده است. کرمهای شب تاب در طبیعت به طور دسته جمعی زندگی میکنند و همواره کرم کم نورتر به سمت کرم پرنور تر حرکت میکند. این الگوریتم یک رویه تکراریمبتنی بر جمعیت را با عوامل بیشمار (تحتعنوان کرمهای شبتاب) به کار میگیرد. بهاین عوامل امکان داده میشود تا فضای تابعهزینه را به صورت موثرتری نسبت بهجستجوی تصادفی توزیع شده، بررسی کنند.تکنیک بهینهسازی هوشمند، مبتنی بر اینفرضیه است که راهحل یک مشکل بهینهسازی را، میتوان به عنوان عاملی (کرم شبتاب) در نظر گرفت که به صورت متناسب با کیفیت آن در یک محیط تابیده میشود.متعاقباً هر کرم شبتاب، همتایان خود را(صرف نظر از جنسیتشان) جذب میکند کهفضای جستجو را به صورت موثرتری بررسیمیکند. الگوریتمهای کرم شبتاب نورهای ریتمیک و کوتاه تولید میکنند. الگوی نوری هر کدام از کرمهای شبتاب با یکدیگر متفاوت میباشند. الگوریتمهای کرم شبتاب از این نورها به دو منظور استفاده میکنند. 1- پروسه جذب جفتها 2- جذب شکار. به علاوه این نورها میتوانند به عنوان یک مکانیزم محافظتی برای کرمهای شبتاب باشند.
الگوریتم کلونی مورچگان
بهینهسازی گروه مورچهها یا ACO همانطور که می دانیم مسئله یافتن کوتاهترین مسیر، یک مسئله بهینه سازیست که گاه حل آن بسیار دشوار است و گاه نیز بسیار زمانبر. برای مثال مسئله فروشنده دوره گرد را نیز میتوان مطرح کرد. در این روش(ACo)، مورچههای مصنوعی بهوسیلهٔ حرکت بر روی نمودار مسئله و با باقی گذاشتن نشانههایی بر روی نمودار، همچون مورچههای واقعی که در مسیر حرکت خود نشانههای باقی میگذارند، باعث میشوند که مورچههای مصنوعی بعدی بتوانند راهحلهای بهتری را برای مسئله فراهم نمایند. همچنین در این روش میتوان توسط مسائل محاسباتی-عددی بر مبنای علم احتمالات بهترین مسیر را در یک نمودار یافت.
الگوریتم ژنتیک
الگوریتمهای ژنتیک، تکنیک جستجویی در علم رایانه برای یافتن راهحل تقریبی برای بهینهسازی و مسائل جستجو است. الگوریتم ژنتیک نوع خاصی از الگوریتمهای تکامل است که از تکنیکهای زیستشناسی فرگشتی مانند وراثت و جهش استفاده میکند. این الگوریتم برای اولین بار توسط جان هنری هالند معرفی شد. در واقع الگوریتمهای ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیشبینی یا تطبیق الگو استفاده میکنند. الگوریتمهای ژنتیک اغلب گزینه خوبی برای تکنیکهای پیشبینی بر مبنای رگرسیون هستند. در هوش مصنوعی الگوریتم ژنتیک (یا GA) یک تکنیک برنامهنویسی است که از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده میکند. مسئلهای که باید حل شود دارای ورودیهایی میباشد که طی یک فرایند الگوبرداری شده از تکامل ژنتیکی به راهحلها تبدیل میشود سپس راه حلها بعنوان کاندیداها توسط تابع ارزیاب (Fitness Function) مورد ارزیابی قرار میگیرند و چنانچه شرط خروج مسئله فراهم شده باشد الگوریتم خاتمه مییابد. الگوریتم ژنتیک بطور کلی یک الگوریتم مبتنی بر تکرار است که اغلب بخشهای آن به صورت فرایندهای تصادفی انتخاب میشوند.
ثبت ديدگاه
You must be logged in to post a comment.