چکیده
بهینهسازی یک فعالیت مهم و تعیینکننده در طراحی ساختاری است. طراحان زمانی قادر خواهند بود طرحهای بهتری تولید کنند که بتوانند با روشهای بهینهسازی در صرف زمان و هزینه طراحی صرفهجویی نمایند. بسیاری از مسائل بهینهسازی در مهندسی، طبیعتاً پیچیدهتر و مشکلتر از آن هستند که با روشهای مرسوم بهینهسازی نظیر روش برنامهریزی ریاضی و نظایر آن قابل حل باشند. بهینهسازی ترکیبی (Combinational Optimization)، جستجو برای یافتن نقطه بهینه توابع با متغیرهای گسسته (Discrete Variables) میباشد. امروزه بسیاری از مسائل بهینهسازی ترکیبی که اغلب از جمله مسائل با درجه غیر چندجملهای (NP-Hard) هستند، به صورت تقریبی با کامپیوترهای موجود قابل حل میباشند. از جمله راهحلهای موجود در برخورد با این گونه مسائل، استفاده از الگوریتمهای تقریبی یا ابتکاری است. این الگوریتمها تضمینی نمیدهند که جواب به دست آمده بهینه باشد و تنها با صرف زمان بسیار میتوان جواب نسبتاً دقیقی به دست آورد و در حقیقت بسته به زمان صرف شده، دقت جواب تغییر میکند.
مقدمه
هدف از بهینهسازی یافتن بهترین جواب قابل قبول، با توجه به محدودیتها و نیازهای مسأله است. برای یک مسأله، ممکن است جوابهای مختلفی موجود باشد که برای مقایسه آنها و انتخاب جواب بهینه، تابعی به نام تابع هدف تعریف میشود. انتخاب این تابع به طبیعت مسأله وابسته است. به عنوان مثال، زمان سفر یا هزینه از جمله اهداف رایج بهینهسازی شبکههای حمل و نقل میباشد. به هر حال، انتخاب تابع هدف مناسب یکی از مهمترین گامهای بهینهسازی است. گاهی در بهینهسازی چند هدف به طور همزمان مد نظر قرار میگیرد؛ این گونه مسائل بهینهسازی را که دربرگیرنده چند تابع هدف هستند، مسائل چند هدفی مینامند. سادهترین راه در برخورد با این گونه مسائل، تشکیل یک تابع هدف جدید به صورت ترکیب خطی توابع هدف اصلی است که در این ترکیب میزان اثرگذاری هر تابع با وزن اختصاص یافته به آن مشخص میشود. هر مسأله بهینهسازی دارای تعدادی متغیر مستقل است که آنها را متغیرهای طراحی مینامند که با بردار n بعدی x نشان داده میشوند.
هدف از بهینهسازی تعیین متغیرهای طراحی است، به گونهای که تابع هدف کمینه یا بیشینه شود.
مسائل مختلف بهینهسازی به دو دسته زیر تقسیم میشود:
الف) مسائل بهینهسازی بیمحدودیت: در این مسائل هدف، بیشینه یا کمینه کردن تابع هدف بدون هر گونه محدودیتی بر روی متغیرهای طراحی میباشد.
ب) مسائل بهینهسازی با محدودیت: بهینهسازی در اغلب مسائل کاربردی، با توجه به محدودیتهایی صورت میگیرد؛ محدودیتهایی که در زمینه رفتار و عملکرد یک سیستم میباشد و محدودیتهای رفتاری و محدودیتهایی که در فیزیک و هندسه مسأله وجود دارد، محدودیتهای هندسی یا جانبی نامیده میشوند.
معادلات معرف محدودیتها ممکن است به صورت مساوی یا نامساوی باشند که در هر مورد، روش بهینهسازی متفاوت میباشد. به هر حال محدودیتها، ناحیه قابل قبول در طراحی را معین میکنند.
به طور کلی مسائل بهینهسازی با محدودیت را میتوان به صورت زیر نشان داد:
(فرمول در فایل Word قرار دارد.)
که در آن X={ بردار طراحی و رابطههای (1-1) به ترتیب محدودیتهای نامساوی، مساوی و محدوده قابل قبول برای متغیرهای طراحی میباشند.
بررسی روشهای جستجو و بهینهسازی
پیشرفت کامپیوتر در طی پنجاه سال گذشته باعث توسعه روشهای بهینهسازی شده، به طوری که دستورهای متعددی در طی این دوره تدوین شده است. در این بخش، مروری بر روشهای مختلف بهینهسازی ارائه میشود.
شکل 1-1 روشهای بهینهسازی را در چهار دسته وسیع دستهبندی میکند. در ادامه بحث، هر دسته از این روشها مورد بررسی قرار میگیرند.
(شکل در فایل Word قرار دارد.)
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 کمترین مقدار را داشته باشد.
جواب بهینه معیار زیر را ارضا میکند:
= C() = (2-1)
مقدار بهینه نام دارد و وظیفه ما پیدا کردن است.
2-1- روش حل مسائل بهینهسازی ترکیبی
روشن است که شیوه شمارش کامل، نهایتاً به جواب دقیق مسأله منجر میشود؛ اما در عمل به دلیل زیاد بودن تعداد جوابهای امکانپذیر، استفاده از آن بینتیجه است. برای آنکه مطلب روشن شود، مسأله مشهور فروشنده دورهگرد (TSP) را در نظر میگیریم.