۱- در این روش از یک فرمولبندی انتگرالی جهت ایجاد یک دستگاه معادلات جبری استفاده می شود.
۲- در این روش از توابع هموار به طور قطعه ای پیوسته جهت تقریب کمیات مجهول استفاده می شود.
مشخصه دوم، روش اجزاء محدود را از سایر روشهای عددی که فرمولبندی انتگرالی دارند، متمایز می کند. روش اجزاء محدود را می توان به پنج مرحله اصلی تقسیم کرد:
۱- تقسیم ناحیه مورد بحث به تعداد زیادی زیر ناحیه کوچک موسوم به المان ۱ نقاط اتصال المآنها به یکدیگر، گره ۲ نامیده می شود.
۲- تعیین تقریب اولیه برای حل به صورت یک تابع با ضرایب ثابت مجهول که همواره یا خطی ۳ است و یا مرتبه دوم ۴. پس از تعیین شدن مرتبه تقریب اولیه، معادله حاکم در هر گره نوشته می شود.
۳- استخراج دستگاه معادلات جبری. در صورت استفاده از روش گالرکین، تابع وزنی برای هر گره مشخص شده و سپس انتگرال باقیمانده وزنی تشکیل می گردد. با انتگرال گیری، برای هر گره یک معادله جبری ایجاد می گردد که پس استخراج معادلات همه گرهها، دستگاه معادلات بوجود می آید.
۴- حل دستگاه معادلات ایجاد شده
۵- محاسبه سایر کمیات از روی مقادیر گرهی
در مرحله اول همانگونه که اشاره گردید، هندسه مساله به نواحی کوچکی موسوم به المان تقسیم می گردد. نقاط اشتراک المآنها، گرهها می باشند. به مجموعه یک المان و گرههایش یک مش گفته می شود. المآنها می توانند یک، دو و یا سه بعدی باشند. همچنین بسته به بعد المان، اشکال مختلف برای یک المان قابل تصور است. یک المان دو بعدی می تواند به شکل مثلث، مربع و یا شکل دلخواه دیگری باشد. از طرفی یک المان سه بعدی نیز می تواند اشکالی مانند چهار وجهی، هرم، منشور ویا مکعب داشته باشد. مش بندی هندسه مساله از مراحل مهم مدل سازی می باشد که مستلزم دقت و مهارت مناسب می باشد.
در مرحله دوم، در واقع تقریب اولیه برای جواب مساله به صورت یک تابع با ضرایب ثابت مجهول در نظر گرفته می شود. این تقریب در محدوده یک المان زده می شود و برای کل شکل مساله انجام نمی گیرد به عنوان مثال u = c1x + c2 یک تقریب خطی برای توزیع جابجایی در یک المان یک بعدیست. در خصوص مسایلی که توسط نرم افزار حل می شوند، چون می توان ابعاد المآنها را بسیار ریز انتخاب کرد، هیچ گاه تقریبی با درجه بیشتر از دو زده نمی شود. به عبارت دیگر تقریب اولیه برای جواب همواره در نرم افزارها یا خطی است و یا سهموی.
در مرحله بعد معادله حاکم برای تک تک گرهها نوشته شده و پس از انتگرال گیریهای لازم، به فرم یک معادله جبری تبدیل می شود. برای روشن تر شدن موضوع به معرفی مفهوم تابع شکلی می پردازیم.
همانگونه که ذکر شد در یک تحلیل اجزاء محدود ابتدا مقادیر گرهی کمیت مد نظر محاسبه می گردد و سپس با میان یابی در هر نقطه دلخواه می توان مقدار کمیت مجهول را بدست آورد. بنا براین می بایست مرتبه میان یابی معلوم باشد که همانگونه که در مرحله قبل اشاره گردید، یا خطی و یا مرتبه دو است.
پیدایش روش اجزاء محدود به حل مسائل پیچیده الاستیسیته و تحلیل سازهها در مهندسی عمران و هوا فضا برمیگردد. این روش حاصل کارالکساندرهرنیکوف (۱۹۴۱) و ریچارد کورانت (۱۹۴۲) میباشد. با این که روش کار این دو دانشمند کاملاٌ متفاوت بود، اما یک ویژگی مشترک داشت: تقسیم یک دامنه پیوسته (ماده) به یک سری زیردامنه (قطعات کوچکتر ماده) به نام المان.
فصل چهارم
الگوریتمهای پیشنهادی
الگوریتم پیشنهادی EICA - الگوریتم اصلاح شدهی رقابت استعماری
مقدمه:
یکی از معایب الگوریتم رقابت استعماری این است که در برخی مسائل که بهینههای نسبی زیاد دارند امکان گیر افتادن الگوریتم در یک اکسترمم نسبی وجود دارد. و براساس بررسیهای مکرر نگارنده در مورد مسائل مختلف به این نتیجه رسیدیم که در برخی مسائل با متغیرهای زیاد، وقتی که الگوریتم به اصطلاح در یک اکسترمم نسبی گیر میکند، بیرون آمدن آن امری محال به نظر میرسد. به این خاطر تلاشهای خود را در جهت خارج کردن الگوریتم از این چالهها (بهینههای نسبی) متمرکز کردیم. در این راستا با اعمال اصلاحاتی بر نحوهی حرکت کشورها و به خصوص در نحوه انتخاب بدترین کشور در هر کلونی به الگوریتم جدیدی رسیدیم که در ادامه معرفی میشود.
الگوریتم پیشنهادی EICA
همان طور که در فصل قبل بیان گردید، در الگوریتم رقابت استعماری به هنگام انتخاب بدترین کلونی در بین مستعمرات ضعیفترین استعمارگر ملاک انتخاب مقدار تابع هدف میباشد. یعنی که تنها به استناد مقدار تابع هدف عملیات انتقال انجام میشود. با توجه به شکل ۴‑۱، در مسائلی که بهینههای نسبی زیادی دارند ممکن است ناحیهای در فضای جستجو وجود داشته باشد که بهینههای نسبی با مقادیر نزدیک به هم در آن زیاد باشند و بر اساس نحوه انتخاب بدترین کلونی در الگوریتم، این احتمال وجود دارد که امپریالیست یک دسته از جوابها در اکسترمومهای نسبی گیر افتاده باشد و بدترین مستعمره در نقطهی به دور از آن ها باشد که به این معنیست که با حرکت و جستوجو میتواند یک اکسترمم دیگر که چه بسا نقطهی بهینه کلی تابع باشد را پیدا کند، که با توجه به قانون انتقال الگوریتم این احتمال تا حدی از آن سلب میشود زیرا ممکن است به دستهای تبعید شود که به امپریالیست نزدیک بوده و امکان جست و جوی فضا را از دست بدهد، از طرف دیگر در بررسیهای انجام شده مشاهده شد که همین عضو منتقل شده در بسیاری از مورد در مرحله بعد دوباره به امپریالیست دیگری منتقل میشود که در این حالت عملا این عضو در جست جوی کلی فضا تاثیر چندانی ندارد.
شکل ۴‑۱:مدل شماتیک یک فضای جستجو با نواحی دارای اکسترمم نسبی [۲۳]
با توجه به توضیحات داده شده میتوان به این نتیجه رسید که تعیین بدترین عضو یک دسته علاوه بر مقدار تابع هدف به فاصله آن نقطه از امپریالیست هم وابسته است. بدین ترتیب که اگر مقدار تابع هدف بدترین نقطه از همه اعضا کلونی کمی بدتر باشد ولی فاصلهی آن نسبت به امپریالیست دسته زیاد باشد، نشان دهندهی این است که در ناحیهی دیگری از فضای جستجو قرار دارد و با حرکت خود به سمت امپریالیست میتواند مناطق مختلف و وسیعی را جست و جو کند.
بنابراین در الگوریتم پیشنهادی EICA ملاک انتخاب و انتقال بدترین عضو از بدترین کلونی مقداری تغییر پیدا کرده است. در این الگوریتم برای وارد کردن فاصله تمامی نقاط در محاسبات مقدار تابع هدف تمامی آنها را بر مقدار فاصله آنها از امپریالیست دسته خودشان تقسیم کردیم. و پس از این عملیات بیشترین آنها را به دسته دیگر منتقل کردیم، با این کار نقاط دور اگر تابع هدف کمی بدتر از نقاط نزدیکتر داشته باشند در دسته میمانند و به جستوجو در اطراف آن امپریالیست ادامه میدهند.
فلوچارت الگوریتم پیشنهادی EICA :
شکل ۴‑۲ فلوچارت الگوریتم رقابت استعماری اصلاح شده را نشان میدهد.
شکل ۴‑۲: فلوچارت الگوریتم رقابت استعماری اصلاح شده
مراحل الگوریتم پیشنهادی EICA :
قدم ۱: شکلدهی جمعیت اولیه.
قدم ۲: حرکت مستعمرها به سمت امپریالیستهای مربوط به خودشان
قدم ۳: انتقال قدرت بین استعمارگر و مستعمره در صورت کمتر بودن مقدار تابع هدف مستعمره
قدم ۴: محاسبه قدرت تمامی دسته ها و انتخاب بدترین دسته
قدم ۵: انتخاب بدترین عضو دسته با اعمال اصلاحات مذکور و قرار دادن در دستهای دیگر
قدم ۶: از بین رفتن امپراطوریهای که در آنها هیچ مستعمره باقی نمانده باشد
قدم ۷: تکرار قدمهای ۲ تا ۶ تا زمان رسیدن به جواب و یا پایان الگوریتم
این روش ممکن است برای تمامی مسائل عملکرد مناسبی نداشته باشد و برای مسائل مختلف با درجههای متفاوت و دامنه پاسخهای مختلف مناسب نباشد. برای مثال ممکن است در مسائلی که نقاط بتوانند به مقدار زیادی به هم نزدیک شوند نزدیک شدن بسیار زیاد یک نقطه به امپریالیست دسته باعث کم شدن مخرج و میل کردن کسر به سمت بی نهایت و در نتیجه انتخاب شدن یکی از بهترین اعضای دسته به عنوان بدترین عضو و نتیجتا اخراج آن شود، که البته این اتفاق در بسیاری از مسائل میتواند مفید و مطلوب هم باشد ولی این مساله برای آنکه الگوریتم در تمامی مسائل، با دامنه عدد مختلف قابلیت استفاده داشته باشد باید قابل کنترل باشد. به همین دلیل در صورت کسر ضریبی لحاظ کرده و نام آن را ضریب سازگاری (Compatibility Factor) گذاشته و با CF نمایش میدهیم.
مقدار ضریب سازگاری میتواند بنا بر طبیعت مساله از عددی کوچک تا عددی بسیار بزرگ باشد. این ضریب باعث میشود که الگوریتم آن گونه که ما از آن توقع داریم عمل کند. به بیان دیگر الگوریتم را با خواسته و شرایط ما سازگار میکند. به عنوان مثال بزرگ کردن این ضریب میتواند باعث شود که دامنه انتخاب اعضا برای اخراج از دسته بزرگتر شود تا آنجایی که میتواند باعث اخراج بهترین عضو دسته بعد از امپریالیست شود که در بسیاری از مسائل میتواند به سرعت نزدیک شدن ما به جواب بسیار کمک کند ولی به نسبت طبیعت مساله میتوان با بسیار کوچک کردن این ضریب الگوریتم EICA را به الگوریتم ICA تبدیل کرد. به گونهای که همیشه بدترین عضو دسته انتخاب شود بدون توجه به فاصله آن از امپریالیست.
مقدار بهینه این ضریب برای مسائل مختلف باید با انجام آنها به دفعات زیاد و پیدا کردن بهترین حالت برای هر مساله پیدا شود.
مزایای الگوریتم پیشنهادی EICA
مزیّت اصلی الگوریتم رقابت استعماری اصلاح شده این است که از درگیری با بهینههای نسبی فرار میکند، اما این فرار کاملا محافظه کارانه است یعنی الگوریتم آن منطقه از فضای جستوجو را رها نمیکند و فقط با آن درگیر نمیشود و به نحوی مفیدتر اطراف آن را میگردد.
شاید اولین اشکالی که از این الگوریتم به ذهن برسد این است که اگر نقطهای خیلی خیلی به امپریالیست نزدیک باشد الگوریتم حتما آن را انتخاب کرده و از دسته خارج میکند در حالی که نقطهی خوبی در دسته به شمار میرود. در پاسخ باید گفت که اولا این اتفاق در مسائل گسسته مانند بهینه یابی سازه بسیار نادر است و ثانیا در صورت وجود چنین نقطهای باید گفت، از آنجا که فاصله این نقطه تا امپریالیست بسیار کم است، شعاع جستوجوی آن نیز به همان میزان کم میشود و آن نقطه عملا در عملیات نقشی پیدا نمیکند پس بهتر است تا به دستهای دیگر منتقل شود تا با شعاع بیشتری فضا را جستجو کند.
نحوه استفاده از الگوریتم EICA در مسائل گسسته مانند طراحی سازه
الگوریتمهای بهینه سازی می توانند به صورت متغیرهای مجزا (گسسته) یا پیوسته، تفکیک گردند. متغیرهای مجزا تنها شامل یک عدد محدود از مقادیر ممکن می باشند در حالی که متغیرهای پیوسته دارای اعداد نامحدودی از مقادیر ممکن هستند. از جمله الگوریتمهای پیوسته میتوان به الگوریتمهای PSO ، ACO و ICA اشاره کرد.
یک مسئله بهینهیابی گسسته مسئله ای است که در آن متغیرهای مسئله در یک بازه معین تغییرات گسسته دارند. در حالی که در یک مسئله پیوسته متغیرها در بازه معین تغییرات پیوسته دارند. مثالی از یک مسئله بهینهیابی پیوسته به صورت زیر است. این تابع به تابع راسریجین معروف است و نقطه بهینه این تابع نقطه (۰,۰) است.
حال به عنوان مثالی از یک مسئله بهینهیابی گسسته، همان تابع فوق را بصورت گسسته در نظر میگیریم.
مسائل بهینهیابی مقاطع سازهها نیز جز مسائل بهینهیابی گسسته محسوب میگردد. ولی از آنجا که الگوریتم ICA و به تبع آن الگوریتم EICA برای مسائل پیوسته نوشته شده اند برای استفاده از آنها در مسائل گسسته نیازمند تغییراتی است که بتوان آن را با مساله سازگار کرد. حال که میخواهیم از الگوریتم EICA برای بهینهیابی مقطع در سازه استفاده کنیم باید در آن تغییراتی ایجاد کنیم که در ادامه به طور کامل به آنها میپردازیم. برای بررسی تفاوتهای الگوریتم ICA و EICA در محیط پیوسته و گسسته تک تک مراحل الگوریتم ICA را که قبلا بحث شده اند را با هم مرور میکنیم.
شکل دهی جمعیت اولیه
برای شروع الگوریتم باید تعداد مشخصی کشور اولیه را به صورت تصادفی انتخاب کنیم که تعداد آنها با Ncountry مشخص میگردد. در مسائل بهینهیابی سازهها، کشورهای الگوریتم همان سازههای ما هستند که تکتک اعضای آنها به صورت شانسی و اتفاقی انتخاب میشوند. پس از مشخص شدن سازهها میزان ارزش هر کدام را به وسیله رابطه ]۳- ۵[ مشخص میکنیم که میزان این عدد وابسته به وزن سازه و مقدار انحراف آن از شرایط استاندارد مساله است. برای انتخاب امپریالیست از بین سازههای موجود تعدادی مشخص از آنها را که مقدار تابع هدف آنها از بقیه کمتر است را انتخاب میکنیم، که تعداد آنها برابر با Nimp خواهد بود، باقیمانده سازهها که تعداد آنها برابر با Ncol است به عنوان مستعمره به نسبت قدرت امپریالیستها بین آنها تقسیم میشوند. که روابط تقسیم بندی و تخصیص ضریب قدرت برای هر امپریالیست در شرح الگوریتم ICA توضیح داده شده است.
حرکت مستعمرهها به سمت امپریالیست
این قسمت از الگوریتم ICA یکی از قسمتهای این الگوریتم است که باعث تفاوت آن در اجرا با متغیرهای پیوسته و گسسته میشود. در زمانی که متغیر مساله از نوع پیوسته باشد با فضای جوابی دو بعدی مواجه هستیم ولی در مسائلی مانند بهینه یابی سازه که تنها متغیر ما وزن قاب میباشد مساله ما فقط یک بعد دارد که همان وزن سازه مورد نظر ما است.
یکی از تفاوتهایی که یک بودی بودن فضا در الگوریتم و نحوه حرکت کشورها ایجاد میکند این است که دیگر پارامتر زاویه حرکت برای مساله معنا ندارد. این پارامتر و تصادفی بودن آن یکی از مهمترین عواملی است که سبب میشود الگوریتم رقابت استعماری به یک الگوریتم فرا ابتکاری تبدیل شود، به بیان دیگر وجود فاصلهای تصادفی از خط واصل بین مستعمره و استعمارگر باعث خروج الگوریتم از نقاط بهینه محلی میگردد.
بنابراین حذف این پارامتر از الگوریتم عملی نیست و باعث تضعیف شدید الگوریتم میشود و باید روشی دیگر را جایگزین آن کرد. روشی که در این تحقیق جایگزین حذف انحراف زاویه شد، تعریف مفهومی به نام انقلاب (Revolution) بود. که آن را با rev نشان میدهیم. مفهوم انقلاب این گونه تعریف میشود که هر کشور در هر مرحله حرکت به سوی امپریالیست دسته خود به مقداری که پارامتر rev مشخص میکند احتمال دارد تا به جای حرکت به سوی امپریالیست به مکانی دیگر انتقال یابد. به این معنا که مثلا در یک سازه، کل سازه و یا تعدادی از اعضای آن مجددا به صورت اتفاقی انتخاب شوند.
پارامتر rev میتواند از ۰ تا ۱ تغییر کند. این عدد هر چه به ۱ نزدیک شود احتمال انقلاب بیشتر میشود و اگر برابر با ۱ قرار گیرد الگوریتم عملا دیگر تابع هیچ قاعده و قانونی نیست و کشورها فقط به صورت اتفاقی حرکت میکنند. مقدار بهینه این پارامتر باید با توجه به طبیعت مساله تعریف شود و این عدد ممکن است برای هر مساله متفاوت باشد. با توجه به بررسیهای انجام شده بهترین بازه برای این متغیر بین ۱۵/۰ تا ۳/۰ میباشد.