بهينهسازي يك فعاليت مهم و تعيينكننده در طراحي ساختاري است. طراحان زماني قادر خواهند بود طرحهاي بهتري توليد كنند كه بتوانند با روشهاي بهينهسازي در صرف زمان و هزينه طراحي صرفهجويي نمايند. بسياري از مسائل بهينهسازي در مهندسي، طبيعتاً پيچيدهتر و مشكلتر از آن هستند كه با روشهاي مرسوم بهينهسازي نظير روش برنامهريزي رياضي و نظاير آن قابل حل باشند. بهينهسازي تركيبي (Combinational Optimization)، جستجو براي يافتن نقطه بهينه توابع با متغيرهاي گسسته (Discrete Variables) ميباشد. امروزه بسياري از مسائل بهينهسازي تركيبي كه اغلب از جمله مسائل با درجه غير چندجملهاي (NP-Hard) هستند، به صورت تقريبي با كامپيوترهاي موجود قابل حل ميباشند. از جمله راهحلهاي موجود در برخورد با اين گونه مسائل، استفاده از الگوريتمهاي تقريبي يا ابتكاري است. اين الگوريتمها تضميني نميدهند كه جواب به دست آمده بهينه باشد و تنها با صرف زمان بسيار ميتوان جواب نسبتاً دقيقي به دست آورد و در حقيقت بسته به زمان صرف شده، دقت جواب تغيير ميكند.
-
مقدمه
هدف از بهينهسازي يافتن بهترين جواب قابل قبول، با توجه به محدوديتها و نيازهاي مسأله است. براي يك مسأله، ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و انتخاب جواب بهينه، تابعي به نام تابع هدف تعريف ميشود. انتخاب اين تابع به طبيعت مسأله وابسته است. به عنوان مثال، زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد. به هر حال، انتخاب تابع هدف مناسب يكي از مهمترين گامهاي بهينهسازي است. گاهي در بهينهسازي چند هدف به طور همزمان مد نظر قرار ميگيرد؛ اين گونه مسائل بهينهسازي را كه دربرگيرنده چند تابع هدف هستند، مسائل چند هدفي مينامند. سادهترين راه در برخورد با اين گونه مسائل، تشكيل يك تابع هدف جديد به صورت تركيب خطي توابع هدف اصلي است كه در اين تركيب ميزان اثرگذاري هر تابع با وزن اختصاص يافته به آن مشخص ميشود. هر مسأله بهينهسازي داراي تعدادي متغير مستقل است كه آنها را متغيرهاي طراحي مینامند كه با بردار n بعدي x نشان داده ميشوند.
هدف از بهينهسازي تعيين متغيرهاي طراحي است، به گونهاي كه تابع هدف كمينه يا بيشينه شود.
مسائل مختلف بهينهسازي به دو دسته زير تقسيم ميشود:
الف) مسائل بهينهسازي بيمحدوديت: در اين مسائل هدف، بيشينه يا كمينه كردن تابع هدف بدون هر گونه محدوديتي بر روي متغيرهاي طراحي ميباشد.
ب) مسائل بهينهسازي با محدوديت: بهينهسازي در اغلب مسائل كاربردي، با توجه به محدوديتهايي صورت ميگيرد؛ محدوديتهايي كه در زمينه رفتار و عملكرد يك سيستم ميباشد و محدوديتهاي رفتاري و محدوديتهايي كه در فيزيك و هندسه مسأله وجود دارد، محدوديتهاي هندسي يا جانبي ناميده ميشوند.
معادلات معرف محدوديتها ممكن است به صورت مساوي يا نامساوي باشند كه در هر مورد، روش بهينهسازي متفاوت ميباشد. به هر حال محدوديتها، ناحيه قابل قبول در طراحي را معين ميكنند.
به طور كلي مسائل بهينهسازي با محدوديت را ميتوان به صورت زير نشان داد:
-
بررسي روشهاي جستجو و بهينهسازي
پيشرفت كامپيوتر در طي پنجاه سال گذشته باعث توسعه روشهاي بهينهسازي شده، به طوري كه دستورهاي متعددي در طي اين دوره تدوين شده است. در اين بخش، مروري بر روشهاي مختلف بهينهسازي ارائه ميشود.
شكل 1-1 روشهاي بهينهسازي را در چهار دسته وسيع دستهبندي ميكند. در ادامه بحث، هر دسته از اين روشها مورد بررسي قرار ميگيرند.
شكل 1 ـ 1: طبقهبندي انواع روشهاي بهينهسازي
1-1-1- روشهاي شمارشي
در روشهاي شمارشي (Enumerative Method)، در هر تكرار فقط يك نقطه متعلق به فضاي دامنه تابع هدف بررسي ميشود. اين روشها براي پيادهسازي، سادهتر از روشهاي ديگر ميباشند؛ اما به محاسبات قابل توجهي نياز دارند. در اين روشها سازوکاری براي كاستن دامنه جستجو وجود ندارد و دامنه فضاي جستجو شده با اين روش خيلي بزرگ است. برنامهريزي پويا (Dynamic Programming) مثال خوبي از روشهاي شمارشي ميباشد. اين روش كاملاً غيرهوشمند است و به همين دليل امروزه بندرت به تنهايي مورد استفاده قرار ميگيرد.
1-1-2- روشهاي محاسباتي (جستجوي رياضي يا- Based Method Calculus)
اين روشها از مجموعه شرايط لازم و كافي كه در جواب مسأله بهينهسازي صدق ميكند، استفاده ميكنند. وجود يا عدم وجود محدوديتهاي بهينهسازي در اين روشها نقش اساسي دارد. به همين علت، اين روشها به دو دسته روشهاي با محدوديت و بيمحدوديت تقسيم ميشوند.
روشهاي بهينهسازي بيمحدوديت با توجه به تعداد متغيرها شامل بهينهسازي توابع يك متغيره و چند متغيره ميباشند.
روشهاي بهينهسازي توابع يك متغيره، به سه دسته روشهاي مرتبه صفر، مرتبه اول و مرتبه دوم تقسيم ميشوند. روشهاي مرتبه صفر فقط به محاسبه تابع هدف در نقاط مختلف نياز دارد؛ اما روشهاي مرتبه اول از تابع هدف و مشتق آن و روشهاي مرتبه دوم از تابع هدف و مشتق اول و دوم آن استفاده ميكنند. در بهينهسازي توابع چند متغيره كه كاربرد بسيار زيادي در مسائل مهندسي دارد، كمينهسازي يا بيشينهسازي يك كميت با مقدار زيادي متغير طراحي صورت ميگيرد.
يك تقسيمبندي، روشهاي بهينهسازي با محدوديت را به سه دسته برنامهريزي خطي، روشهاي مستقيم و غيرمستقيم تقسيم ميكند. مسائل با محدوديت كه توابع هدف و محدوديتهاي آنها خطي باشند، جزو مسائل برنامهريزي خطي قرار ميگيرند. برنامهريزي خطي شاخهاي از برنامهريزي رياضي است و كاربردهاي فيزيكي، صنعتي و تجاري بسياري دارد.
در روشهاي مستقيم، نقطه بهينه به طور مستقيم جستجو شده و از روشهاي بهينهيابي بيمحدوديت استفاده نميشود. هدف اصلي روشهاي غيرمستقيم استفاده از الگوريتمهاي بهينهسازي بيمحدوديت براي حل عمومي مسائل بهينهسازي با محدوديت ميباشد.
در اكثر روشهاي محاسباتي بهينهيابي، از گراديان تابع هدف براي هدايت جستجو استفاده ميشود. اگر مثلاً به علت ناپيوستگي تابع هدف، مشتق آن قابل محاسبه نباشد، اين روشها اغلب با مشكل روبهرو ميشوند.
1-1-3- روشهاي ابتكاري و فرا ابتکاری (جستجوي تصادفي)
يك روش ناشيانه براي حل مسائل بهينهسازي تركيبي اين است كه تمامي جوابهاي امكانپذير در نظر گرفته شود و توابع هدف مربوط به آن محاسبه شود و در نهايت، بهترين جواب انتخاب گردد. روشن است كه شيوه شمارش كامل، نهايتاً به جواب دقيق مسأله منتهي ميشود؛ اما در عمل به دليل زياد بودن تعداد جوابهاي امكانپذير، استفاده از آن غيرممكن است. با توجه به مشكلات مربوط به روش شمارش كامل، همواره بر ايجاد روشهاي مؤثرتر و كاراتر تأكيد شده است. در اين زمينه، الگوريتمهاي مختلفي به وجود آمده است كه مشهورترين نمونه آنها، روش سيمپلكس براي حل برنامههاي خطي و روش شاخه و كرانه براي حل برنامههاي خطي با متغيرهاي صحيح است. براي مسائلی با ابعاد بزرگ، روش سيمپلكس از كارايي بسيار خوبي برخوردار است، ولي روش شاخه و كرانه كارايي خود را از دست ميدهد و عملكرد بهتری از شمارش كامل نخواهد داشت. به دلايل فوق، اخيراً تمركز بيشتري بر روشهاي ابتكاري (Heuristic) يا فرا ابتکاری (Metaheuristic) يا جستجوی تصادفی (Random Method) صورت گرفته است. روشهاي جستجوي ابتكاري، روشهايي هستند كه ميتوانند جوابي خوب (نزديك به بهينه) در زماني محدود براي يك مسأله ارائه كنند. روشهاي جستجوي ابتكاري عمدتاً بر مبناي روشهاي شمارشي ميباشند، با اين تفاوت كه از اطلاعات اضافي براي هدايت جستجو استفاده ميكنند. اين روشها از نظر حوزه كاربرد، كاملاً عمومي هستند و ميتوانند مسائل خيلي پيچيده را حل كنند. عمده اين روشها، تصادفي بوده و از طبيعت الهام گرفته شدهاند.
2- مسائل بهينهسازي تركيبي (Optimization Problems Combinational)
در طول دو دهه گذشته، كاربرد بهينهسازي در زمينههاي مختلفي چون مهندسي صنايع، برق، كامپيوتر، ارتباطات و حمل و نقل گسترش يافته است.
بهينهسازي خطي و غيرخطي (جستجو جهت يافتن مقدار بهينه تابعي از متغيرهاي پيوسته)، در دهه پنجاه و شصت از اصليترين جنبههاي توجه به بهينهسازي بود.
بهينهسازي تركيبي عبارت است از جستجو براي يافتن نقطه توابع با متغيرهاي گسسته و در دهه 70 نتايج مهمي در اين زمينه به دست آمد. امروزه بسياري از مسائل بهينهسازي تركيبي (مانند مسأله فروشنده دورهگرد) كه اغلب از جمله مسائل NP-hard هستند، به صورت تقريبي (نه به طور دقيق) در كامپيوترهاي موجود قابل حل ميباشند.
مسأله بهينهسازي تركيبي را ميتوان به صورت زوج مرتب R,C نمايش داد كه R مجموعه متناهي از جوابهاي ممكن (فضاي حل) و C تابع هدفي است كه به ازاي هر جواب مقدار خاصي دارد. مسأله به صورت زير در نظر گرفته ميشود:
يافتن جواب به گونهاي كه C كمترين مقدار را داشته باشد.