در این رابطه، پارامتری دلخواه میباشد که افزایش آن باعث افزایش جستجوی اطراف امپریالیست شده و کاهش آن نیز باعث میشود تا مستعمرات تا حد ممکن، به بردار واصل مستعمره به استعمارگر، نزدیک حرکت کنند. با در نظر گرفتن واحد رادیان برای ، عددی نزدیک به /۴π، در اکثر پیادهسازیها، انتخاب مناسبی بوده است [۳].
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
شکل ۳‑۸: حرکت واقعی مستعمرات به سمت امپریالیست [۳]
انتقال قدرت بین استعمارگر و مستعمره
گاهی در حرکت مستعمرات به سمت امپریالیست ممکن است یکی از کشورهای تحت سلطه به جایی برسد که قدرتش در آن جایگاه از امپریالیست بالاتر باشد، که در این صورت جایگاه این دو کشور با هم عوض شده و کشور استعمارگر به مستعمره تبدیل خواهد شد و در مرحله بعدی حرکت، مستعمرات به سمت استعمارگر جدید حرکت خواهند کرد.
رقابت استعماری
تمامی استعمارگرها تلاش میکنند تا بتوانند کنترل مستعمرات بقیه امپریالیستها را به دست بگیرند. رقابت استعماری به مرور، قدرت ضعیفترین امپراطوری را کمتر کرده و قدرت قویترها را افزایش میدهد. در رقابت استعماری تعدادی از کشورهای تحت سلطه ضعیفترین امپراطوری (به طور معمول یک کشور) جدا شده و برای تصاحب آنها بقیه استعمارگرها به رقابت میپردازند. این رقابت بر مبنای کل قدرت یک امپراطوری انجام میگیرد و امپراطوری قویتر شانس بیشتری برای تصاحب این کشورها دارد.
قدرت یک امپراطوری برابر است با قدرت کشور استعمارگر، به اضافه درصدی از قدرت کل مستعمرات آن. بدین ترتیب برای قدرت کل یک امپراطوری داریم:
[۳-۲۴]
که در آن ارزش کل امپراطوری jام و عددی مثبت است که معمولاً بین صفر و یک و نزدیک به صفر در نظر گرفته میشود. کوچک در نظر گرفتن ، باعث میشود که ارزش کل یک امپراطوری، تقریباً برابر با ارزش حکومت مرکزی آن (کشور امپریالیست)، شود و افزایش نیز باعث افزایش تاثیر میزان هزینه مستعمرات یک امپراطوری در تعیین ارزش کل آن میشود. مقدار در اکثر پیادهسازی به جوابهای مطلوبی منجر شده است.
برای مدلسازی رقابت میان امپراطوریها برای تصاحب این مستعمرات، ابتدا احتمال تصاحب هر امپراطوری (که متناسب با قدرت آن امپراطوری میباشد)، با در نظر گرفتن ارزش کل امپراطوری محاسبه میشود. ابتدا باید از روی هزینه کل امپراطوری، ارزش کل نرمالیزه شده آن را تعیین شود که برای این منظور از رابطه زیر استفاده میشود:
[۳-۲۵]
در این رابطه ، ارزش کل نرمالیزه شده امپراطوری j ام میباشد. هر امپراطوری که کمتری داشته باشد بیشتری خواهد داشت. در حقیقت معادل هزینه کل یک امپراطوری و معادل قدرت کل آن میباشد. امپراطوری با کمترین هزینه، دارای بیشترین قدرت است. با داشتن هزینه کل نرمالیزه شده، احتمال (قدرت) تصاحب مستعمره رقابت، توسط هر امپراطوری، به صورت زیر محاسبه میشود [۲].
[۳-۲۶]
سقوط امپراطوریهای ضعیف
در جریان رقابتهای امپریالیستی، خواه ناخواه، امپراطوریهای ضعیف به تدریج سقوط کرده و مستعمراتشان به دست امپراطوریهای قویتر میافتد. یک امپراطوری زمانی حذف شده تلقی میشود که مستعمرات خود را از دست داده باشد. شکل ۳-۹ این مسأله را به خوبی نشان میدهد. در شکل ۳‑۹ امپراطوری شماره ۴ به دلیل از دست دادن کلیه مستعمراتش باید حذف شود.
شکل ۳‑۹: سقوط امپراطوری ضعیف؛ امپراطوری شماره ۴، به علت از دست دادن کلیه مستعمراتش باید از میان بقیه امپراطوریها حذف شود [۲۲].
شرط پایان عملیات
الگوریتم مورد نظر تا برآورده شدن شرط همگرایی، و یا تا اتمام تعداد کل تکرارها، ادامه مییابد. پس از مدتی، همه امپراطوریها، سقوط کرده و تنها یک امپراطوری خواهیم داشت و بقیه کشورها تحت کنترل این امپراطوری واحد، قرار میگیرند. در چنین موقعیتی رقابت امپریالیستی به پایان رسیده و به عنوان یکی از شروط توقف الگوریتم متوقف میشود. در شکل ۳‑۱۰ فلوچارت مربوط به الگوریتم ICA نشان داده شده است. در این شکل کلیه مراحل اجرایی این الگوریتم به صورت گرافیکی نشان داده شده است.
شکل ۳‑۱۰: فلوچارت الگوریتم رقابت استعماری [۳]
چند مثال از بهینهیابی با بهره گرفتن از الگوریتم ICA
برای درک بهتر الگوریتم فرا ابتکاری ICA ، مسئلهی مینیمم سازی تابع ریاضی زیر را در نظر بگیرید :
تابع هدف در این مسئله تابع روزنبراک است که دارای دو متغیر x1 و x2 است که هیچ قیدی ندارد. یعنی بهینه یابی این تابع فقط پیدا کردن مقادیری برای x1 و x2 است که مقدار تابع f(x) را مینیمم کند:
این تابع به عنوان بهترین تابع برای تست یک الگوریتم بهینه یابی شناخته شده است.
شکل ۳‑۱۱: تابع روزنبراک
در شکل ۳‑۱۱ نمودار این تابع نشان داده شده است که مسلماً برای رسیدن به مقدار مینیمم آن، برنامه نیازمند تکرارهای زیادی است . جواب مینیمم مطلق این تابع در x*=(1,1) است و مقدار تابع در این نقطه برابر f*(x)=0.0 است. این مسئله با الگوریتم ICA حل شده به این صورت که متغیرها مجاز به انتخاب مقادیر پیوسته ای در بازه ی ( ۱۰و ۱۰- ) بودند. به اصطلاح باند متغیرها بین ۱۰- و ۱۰ بود. تعداد امپریالیستهای اولیه برابر۵ وتعداد کشورها برابر ۸۰ کشور انتخاب شد . الگوریتم ICA بعد از ۲۴۰۰ تکرار که ۱.۱۳۷۲۷۳ ثانیه یک رایانه شخصی با پردازشگر ۴ هستهای Cori5 طول کشید به جواب بهینه x=(1.000006808061408,1.000010011992775) رسید که در این نقطه مقدار تابع هدف برابر f(x)= 1.345358444834678e-9 بود.
بهینهیابی اندازه یک خرپای ۷۲ عضوی ۳ بعدی
شکل ۳‑۱۲: خرپای سه بعدی ۷۲ عضوی [۲]
خرپای ۷۲ عضوی نشان داده شده در شکل ۳‑۱۲ تاکنون توسط محققان زیادی با روشهای بهینهیابی ریاضی حل شده است. که خلاصهی نتایج آنها در جدول ۳‑۱ آمده است. چگالی مصالح خرپا ۰.۱lb/in3 است و مدول الاستیسته ۱۰۰۰۰ksi است . محدوده ی تنش ±۲۵ksi و محدوده ی تغییر مکان ۰.۲۵in± کلیه ی نقاط به عنوان قیود طراحی هستند. [۲]
جدول ۳‑۱: جوابهای بهینهی خرپای سهبعدی ۷۲ عضوی بهدست آمده توسط محققان مختلف [۲]
ابزارهای تحلیل
تمامی مراحل بهینهیابی و آنالیز سازه توسط کدهای نوشته شده در نرم افزار متلب انجام شده است. برای آنالیز قابهای مورد بررسی در حین طراحی بهینه از روش عددی اجزا محدود استفاده شده است و تمام مراحل اعمال این روش در محیط نرم افزار متلب کد نویسی شد. لازم به ذکر است که در این پروژه تمامی کدهای نوشته شده در متلب اعم از کدهای الگوریتمها و روش عددی اجزاء محدود و کدهای ملزومات طراحی قاب بر اساس AISC-LRFD توسط شخص نگارنده نوشته شده است و حتی یک سطر هم از کدهای آماده استفاده نشده است.
آشنایی با نرم افزار MATLAB
نرم افزار متلب برنامه کامپیوتری است که برای کسانی که با محاسبات عددی، و بویژه جبر خطی سر و کار دارند، تهیه شده است. نرم افزار متلب از جمله نرم افزارهای معروف محاسبات ریاضی و رسم نمودارها می باشد. واژه MATLAB هم به معنی محیط محاسبات رقمی و هم به معنی خود زبان برنامه نویسی مربوط است که از ترکیب دو واژه MATrix و LABoratory ایجاد شده است. این نام حاکی از رویکرد ماتریس محور برنامه است، که در آن حتی اعداد منفرد هم به عنوان ماتریس در نظر گرفته میشوند. هدف اولیه آن قادر ساختن مهندسین و دانشمندان به حل مسائل شامل عملیات ماتریسی بدون نیاز به نوشتن برنامه در زبآنهای برنامه نویسی متداول همچون FORTRAN و C بود. با گذشت زمان قابلیتهای بسیار بیشتری به این نرم افزار افزوده شده اند بطوری که در حال حاضر MATLAB به ابزار پر قدرتی برای ترسیم دادهها، برنامه نویسی و انجام محاسبات مهندسی و پژوهشی تبدیل شده است.
کاربر به آسانی قادر خواهد بود تا در محیط این برنامه عملیاتهای پچیده ی محاسبات ریاضی را انجام داد. همچنین هسته این نرم افزار برای سرعت و کارایی بالا به زبان C نوشته شده ولی رابط گرافیکی آن به زبان جاوا پیاده سازی شده است. علاوه بر این مهندسان رشتههای مختلف مانند برق، الکترونیک، مکانیک، کامپیوتر و … برای انجام محاسبات ریاضی خود حتما به این نرم افزار نیاز دارند و در برخی از دانشگاهها کار با این برنامه جز واحدهای درسی آن رشته نیز محسوب میگردد. برنامههای متلب اکثرآ متن باز هستند و در واقع متلب (مانند بیسیک) مفسر است نه کامپایلر. قدرت متلب از انعطاف پذیری آن و راحت بودن کار با آن ناشی میشود آما باید به این نکته توجه داشته باشید که به دلیل مفسر بودن این برنامه حجم زیادی پردازش را بر روی پردازنده قرار میدهد و سرعت معمولی دارد. اما انجام هرگونه محاسبه و پردازش، حل انواع مسائل از الگوریتم ژنتیک گرفته تا محاسبات نقاط در نقشه برداری را شامل میشود.
همچنین شرکت سازنده و گروههای مختلف، از جمله دانشگاههای سراسر جهان و برخی شرکتهای مهندسی هر ساله جعبه ابزارهای خاص و کاربردی به آن می افزایند که باعث افزایش کارآیی و محبوبیت این نرم افزار شده است.
علاوه بر این یکی دیگر از ویژگیهای بسیار خوب این برنامه داشتن راهنمای کامل کار با آن همراه با کدهای مختلف است که کاربر با داشتن چنین راهنمای کاملی نیازی به حفظ کردن کدها نخواهد داشت. در واقع با داشتن کمی توانایی زبان انگلیسی، در هر رشتهای میتوان از قابلیتهای این برنامه استفاده کرد. چرا که انواع پروژههای آماده این برنامه نیز در اینترنت موجود میباشد و به کمک Help برنامه میتوان کدهای بسیار مختلف، چارتها و دیاگرامهای سه بعدی و حتی نقشه عوارض زمین را رسم کرد.
متلب امروزه دارای جعبهابزارهای متنوعی برای انجام محاسبات مختلف است که از جمله آنها میتوان به جعبهابزارهای پردازش سیگنال، پردازشهای آماری، شبکههای عصبی، دریافت تصویر، پردازش تصویر، سیستمهای کنترل، طراحی فیلتر، منطق فازی، الگوریتمهای ژنتیک و … اشاره کرد.
مختصری در مورد کاربرد نرم افزار MATLAB در این پروژه
جهت استفاده از الگوریتم رقابت استعماری در حل مسائل بهینهیابی اولین قدم پیاده سازی الگوریتم مورد نظر در قالب یک برنامه کامپیوتری است. برنامهی مراحل مختلف الگوریتم رقابت استعماری را میتوان به خوبی در هر محیط برنامه نویسی نوشت.
در این میان نرم افزار MATLAB برای نوشتن کد الگوریتم رقابت استعماری انتخاب شد. چراکه این نرم افزار به نسبت دیگر محیطهای برنامه نویسی مسیر مشخصتری را برای مسائل مهندسی فراهم میکند. به علاوه، امکانات گرافیکی این نرم افزار به ما کمک میکند که خروجیهای مختلف را در قالب نمودارهای دو بعدی و سه بعدی به سادگی بدست آوریم.و در عین حال وجود ساختار گرافیکی نرمافزار سبب تسهیل کدنویسی و تسریع انجام عملیات توسط برنامه میشود.
برای شروع کار برنامه نویسی در MATLAB باید با حداقلهای مربوط به برنامه نویسی و الگوریتم آشنا بود مانند مفهوم الگوریتم و یا روش فلوچارت نویسی. در ادامه برای پیاده کردن کد برنامه باید با syntaxهای کد نویسی در محیط MATLAB آشنا شد. با دانستن این موارد میتوان شروع به نوشتن کد مورد نظر در محیط MATLAB کرد.
نکتهای که محیط MATLAB را از دیگر محیطهای برنامه نویسی برای اهداف مهندسی مناسب تر میکند این است که در نرم افزار MATLAB انواع توابع ریاضی موجود است و برای استفاده از تابع مورد نظر خود تنها کافیست از نام آن تابع استفاده کنیم. در صورتی که در سایر محیطهای برنامه نویسی مثل Cو C++ و Fortran و Basic و … در صورت نیاز به یک تابع ریاضی باید کد آن تابع را خود برنامه نویس بنویسد. البته علاوه بر توابع موجود در نرم افزار MATLAB ما میتوانیم هر تابعی را که خودمان میخواهیم با هر گونه ورودی و خروجی در یک فایل تعریف کنیم و در هر قسمت از برنامه تنها با فراخوانی نام آن تابع، عملیات ذخیره شده در آن تابع را بر روی اطلاعاتی که تا مرحلهی فراخوانی آن تابع در برنامه بدست آمده است انجام دهیم.
معرفی روش اجزا محدود
افزایش روز افزون نیازهای بشر و تلاش برای برآورده ساختن آنها، منجر به خلق مسائل تازه و پیچیده ای در در همه زمینههای علمی و فنی شده که حوزه مهندسی مکانیک و سازه نیز از این امر مستثنی نبوده است. در اغلب موارد، نیاز به طراحی و تحلیل قطعات با هندسه و اخیرا خواص پیچیده تحت بار گذاریهای نامنظم است که بکار گیری روشهای کلاسیک موجود (به عنوان مثال تئوری الاستیسیته در مورد توزیع تنش ) منجر به یافتن معادلات حاکم بسیار پیچیده با شرایط مرزی و اولیه متنوع است که عملا حل این معادلات از روش تحلیلی را غیرممکن میسازد.
از همین روست که روشهای عددی متنوعی برای حل معادلات دیفرانسیل حاکم به سیستمها ایجاد و امروزه به طرز وسیعی مورد استفاده قرار می گیرند.
بسته به نوع روش عددی مورد استفاده و نوع المان بندی، روشهای مختلفی نظیر حجم محدود، اجزاء محدود، تفاضل محدود و … حاصل شده است. هر کدام از روشهای فوق الذکر، در قالب نرم افزارهای متنوع به کاربران عرضه می شوند. روشی که در اغلب مسائل مکانیک جامدات مورد استفاده قرار می گیرد روش اجزاء محدود است که در قالب نرم افزارهایی چونNastran، Abaqus، Ansys و … قابل استفاده است.
آشنایی با روش اجزا محدود
معمولا مهندسان و فیزیکدانها یک پدیده فیزیکی را به وسیله دستگاهی از معادلات دیفرانسیل معمولی و یا جزئی که در محدوده خاصی صادق است و شرایط مرزی و آغازین مناسبی را تامین می کند توصیف می کنند.
در واقع یک معادله دیفرانسیل با شرایط مرزی و اولیه مورد نیاز خود یک مدل ریاضی کامل از یک پدیده است. برای یافتن توزیع متغیرهای مورد نظر که ارتباط آنها در فرم دیفرانسیلی توسط معادله حاکم بیان می گردد، می بایست معادله مذکور حل گردد تا بتوان مقادیر عددی هر کمیت مرتبط را در نقاط دلخواه بدست آورد. اما با توجه به اینکه تنها می توان اشکال بسیار ساده این معادلات آن هم در ناحیههای هندسی بسیار ساده را با روشهای تحلیلی حل نمود، در حل اغلب معادلات حاکم به روش تحلیلی با مشکل بزرگی مواجه هستیم.
برای مقابله با چنین مشکلاتی و نیز جهت استفاده از قدرتمند ترین وسیله موجود در قرن حاضر یعنی کامپیوتر، ضروری است که مساله مورد نظر در یک قالب کاملا جبری ریخته شود تا حل آنها تنها نیازمند عملیات جبری باشد. برای دستیابی به چنین هدفی می توان از انواع مختلف روشهای گسسته سازی یک مساله پیوسته تعریف شده به وسیله معادلات دیفرانسیل استفاده نمود. در این روشها تابع و یا توابع مجهول که می توان آنها را با مجموعه ای نا متناهی از اعداد نشان داد، به وسیله تعداد متناهی از پارامترهای مجهول جایگزین می گردند که طبیعتا در حالت کلی نوعی تقریب را در بر دارد.
روش اجزاء محدود یک دستورالعمل عددی جهت حل مسایل فیزیکی می باشد که توسط معادله دیفراانسیل توصیف می شوند. این روش دارای دو ویژگی است که آن را از سایر روشهای عددی متمایز می سازد: