۲-۱- مقدمه
در سالهای دهه ۱۹۵۰ برنامه نویسی کامپیوترهای اولیه توسط تغییر سیم ها و تنظیم هزاران کلید و سوییچ انجام می شد. بعد از آن افراد به دنبال ابزارهای سریع تر و راحت تری برای برنامه نویسی بودند. در اواخر دهه ۱۹۵۰ مفسرهای زبان های طبیعی و کامپایلرهای پا به عرصه ظهور گذاشتند. در این سال ها بود که زبان های برنامه نویسی به منظور استفاده در دنیای نرم افزارهای تجاری عرضه شدند. این امر باعث شد تا آشنایی با زبان های برنامه نویسی به صورت عام در بین متخصصان رواج پیدا کند. بعد از این رویداد مهم اکثر دانشمندان در زمینه های مختلف علمی سعی کردند از زبان برنامه نویسی استفاده کنند. یکی از موارد استفاده از زبان های برنامه نویسی، علم ریاضی و انجام محاسبات ریاضی بود. زمان حل بسیار کمتر این روش نسبت به حل دستی باعث شد تا سرعت استفاده از برنامه نویسی در شاخه های مختلف ریاضی یه شدت رشد کند. در دهه ۱۹۷۰ برای اولین بار دانشمندان برای حل مسائل بهینه سازی ترکیبیاتی از الگوریتم های فرا ابتکاری استفاده کردند. آن ها برای پیاده سازی الگوریتم ها از زبان برنامه نویسی استفاده کردند. نتیجه این کار بدست آمدن جواب های مناسب در زمان مناسب برای مسائل بهینه سازی ترکیبیاتی با اندازه بزرگ بود. تا آن زمان برای این گونه مسائل به دلیل زمان حل بسیار زیاد جواب مناسبی یافت نشده بود.
۲-۲- مرور ادبیات الگوریتم های فرا ابتکاری
در دهه هفتاد میلادی دانشمندی از دانشگاه میشیگان به نام جان هلند[۱] ایده استفاده از الگوریتم ژنتیک [۲]را در بهینهسازیهای مهندسی مطرح کرد. ایده اساسی این الگوریتم انتقال خصوصیات موروثی توسط ژنهاست. الگوریتم ژنتیک نوع خاصی از الگوریتم های تکاملی است که از تکنیک های زیستشناسی فراگشتی مانند وراثت و جهش استفاده میکند. در واقع الگوریتم های ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیشبینی یا تطبیق الگو استفاده می کنند. الگوریتم های ژنتیک اغلب گزینه خوبی برای تکنیکهای پیشبینی بر مبنای رگرسیون هستند. مختصراً گفته میشود که الگوریتم ژنتیک یک تکنیک برنامهنویسی است که از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده میکند. در طبیعت، فرایند تکامل هنگامی ایجاد میشود که چهار شرط زیر برقرار باشد:
الف) یک موجود توانایی تکثیر داشته باشد (قابلیت تولید مثل).
ب) جمعیتی از این موجودات قابل تکثیر وجود داشته باشد.
پ) چنین وضعیتی دارای تنوع باشد.
ت) این موجودات به وسیله قابلیتهایی در زندگی از هم جدا شوند.
در طبیعت، گونههای متفاوتی از یک موجود وجود دارند که این تفاوتها در کروموزومهای این موجودات ظاهر میشود و باعث تنوع در ساختار و رفتار این موجودات میشود.
این تنوع ساختار و رفتار به نوبه خود بر زاد و ولد تأثیر میگذارد. موجوداتی که قابلیتها و توانایی بیشتری برای انجام فعالیتها در محیط دارند (موجودات متکاملتر)، دارای نرخ زاد و ولد بالاتری خواهند بود و طبعاً موجوداتی که سازگاری کمتری با محیط دارند، از نرخ زاد و ولد پایینتری برخوردار خواهند بود. بعد از چند دوره زمانی و گذشت چند نسل، جمعیت تمایل دارد که موجوداتی را بیشتر در خود داشته باشد که کروموزومهایشان با محیط اطراف سازگاری بیشتری دارد. در طی زمان، ساختار افراد جامعه به علت انتخاب طبیعی تغییر میکند و این نشانه تکامل جمعیت است [۱,۲,۳] .
الگوریتم آنیلینگ شبیهسازی[۳] شده توسط متروپولیس[۴] و همکاران در سال ۱۹۵۳ پیشنهاد شده و جهت بهینهسازی در سال ۱۹۸۳ مورد بازبینی قرار گرفته است. این روش در مسائل تاکسی تلفنی کاربرد دارد.
الگوریتم آنیلینگ شبیهسازی شده در شکل عمومی، بر اساس شباهت میان سرد شدن جامدات مذاب و حل مسائل بهینهسازی ترکیبی به وجود آمده است. در فیزیک مواد فشرده، گرم و سرد کردن فرایندی است فیزیکی که طی آن یک ماده جامد در ظرفی حرارت داده میشود تا مایع شود؛ سپس حرارت آن بتدریج کاهش مییابد. بدین ترتیب تمام ذرات فرصت مییابند تا خود را در پایینترین سطح انرژی منظم کنند. چنین وضعی در شرایطی ایجاد میشود که گرمادهی کافی بوده و سرد کردن نیز به آهستگی صورت گیرد. جواب حاصل از الگوریتم گرم و سرد کردن شبیهسازی شده، به جواب اولیه وابسته نیست و میتوان توسط آن جوابی نزدیک به جواب بهینه به دست آورد. حد بالایی زمان اجرای الگوریتم نیز قابل تعیین است. بنابراین الگوریتم گرم و سرد کردن شبیهسازی شده، الگوریتمی است تکراری که اشکالات روشهای عمومی مبتنی بر تکرار را ندارد.
در روش آنیلینگ شبیهسازی شده، به صورت پی در پی از جواب جاری به یکی از همسایههای آن انتقال صورت میگیرد. این سازوکار توسط زنجیره مارکوف به صورت ریاضی قابل توصیف است. در این روش، یک مجموعه آزمون انجام میگیرد؛ این آزمونها به نحوی است که نتیجه هر یک به نتیجه آزمون قبل وابسته است. در روش آنیلینگ شبیهسازی شده، منظور از یک آزمون، انتقال به نقطه جدید است و روشن است که نتیجه انتقال به نقطه جدید تنها وابسته به مشخصات جواب جاری است.
روش جستجوی همسایه و روش آنیلینگ شبیهسازی شده، هر دو روشهای تکراری هستند. در الگوریتم آنیلینگ شبیهسازی شده، هر بار که شاخص کنترلکننده به مقدار نهایی خود میرسد، در حقیقت یک عملیات تکراری انجام شده است. در الگوریتم جستجوی همسایه، هنگامی که تعداد تکرارها به سمت بینهایت میل میکند، روش به جواب بهینه نزدیک میشود. اما عملکرد الگوریتم آنیلینگ شبیهسازی شده سریعتر است [۴] .
دیکاستر[۵]و و تیمیس[۶]، اولین الگوریتم های ایمنی مصنوعی [۷]را در سال ۱۹۸۶ طراحی کردند. به طور کلی، سیستمهای ایمنی مصنوعی جزء الگوریتم های الهام گرفته شده از بیولوژی هستند. این نوع الگوریتمها، الگوریتم هایی کامپیوتری هستند که اصول و ویژگیهای آنها نتیجه بررسی در خواص وفقی و مقاومت نمونهها بیولوژیکی است. سیستم ایمنی مصنوعی نوعی الگو برای یادگیری ماشین است. یادگیری ماشین، توانایی کامپیوتر برای انجام یک کار با یادگیری دادهها یا از روی تجربه است. سیستم ایمنی مصنوعی توسط کاسترو به این صورت تعریف شده است:
سیستم های وفقی که با الهام از ایمونولوژی نظری و توابع، اصول و مدل های ایمنی سیستم بدن انسان مشاهده شده به وجود آمدهاند و برای حل مسائل مورد استفاده قرار میگیرند [۵] .
الگوریتم جستجوی ممنوعه[۸] برای اولین بار در سال ۱۹۸۶ توسط گلووِر[۹] معرفی شد. روش جستجوی ممنوع همانند روش آنیلینگ شبیهسازی شده بر اساس جستجوی همسایه بنا شده است. در این روش عملکرد حافظه انسان شبیهسازی شده است. حافظه انسان با به کارگیری ساختمانی مؤثر و در عین حال ساده از اطلاعات، آنچه را در قبل رؤیت شده، ذخیره میکند. این مرکز همچنین فهرستی از حرکات منع شده را تنظیم میکند و این فهرست همواره بر اساس آخرین جستجوها منظم میشود. این روش از انجام هر گونه عملیات مجدد و تکراری جلوگیری میکند.
شکل نوین جستجوی ممنوع توسط گلوور مطرح شده است. روش جستجوی مبتنی بر منع، با ایجاد تغییری کوچک در روش جستجوی همسایه به وجود میآید. هدف این روش آن است که بخشهایی از مجموعه جواب که پیش از این بررسی نشده است، مد نظر قرار گیرد. بدین منظور حرکت به جوابهایی که اخیراً جستجو شده، ممنوع خواهد بود.
ساختار کلی روش جستجوی ممنوع بدین صورت است که ابتدا یک جواب اولیه امکانپذیر انتخاب میشود؛ سپس برای جواب مربوط، بر اساس یک معیار خاص مجموعهای از جوابهای همسایه امکانپذیر در نظر گرفته میشود.
در گام بعد، پس از ارزیابی جوابهای همسایه تعیین شده، بهترین آنها انتخاب میشود و جابهجایی از جواب جاری به جواب همسایه انتخابی صورت میگیرد. این فرایند به همین ترتیب تکرار میشود تا زمانی که شرط خاتمه تحقق یابد.
در روش جستجوی ممنوع، فهرستی وجود دارد که جابهجاییهای منع شده را نگهداری میکند و به فهرست تابو معروف است و کاربرد اصلی آن، پرهیز از همگرا شدن به جوابهای بهینه محلی است. به عبارت دیگر، به کمک فهرست تابو جابهجایی به جوابهایی که اخیراً جستجو شدهاند، ممنوع خواهد شد. فقط بخشهایی از مجموعه جواب که پیش از این مورد بررسی قرار نگرفته، مد نظر خواهند بود. در واقع جابهجایی از جواب جاری به جواب همسایه امکانپذیر زمانی انجام میشود که در فهرست تابو قرار نداشته باشد. در غیر این صورت، جواب همسایه دیگری که در ارزیابی جوابهای همسایه در رده بعدی قرار گرفته است، انتخاب شده و جابهجایی به آن صورت میگیرد.
در روش جستجوی ممنوع بعد از هر جابهجایی، فهرست تابو بهنگام میشود، به نحوی که جابهجایی جدید به آن فهرست اضافه شده و جابهجایی که تا n تکرار مشخص در فهرست بوده است، از آن حذف میشود. نحوه انتخاب میتواند با توجه به شرایط و نوع مسأله متفاوت باشد .[۶]
الگوریتم بهینهسازی کلونی مورچهها[۱۰] در سال ۱۹۹۱ توسط دوریگو[۱۱] و همکاران پیشنهاد شده است که در حل مسأله فروشنده دورهگرد و مسائل تخصیص چندوجهی کاربرد دارد. الگوریتم بهینه سازی کلونی مورچهها از عاملهای سادهای که مورچه نامیده میشوند، استفاده میکند تا به صورت تکراری جوابهایی تولید کند. مورچهها می توانند کوتاهترین مسیر از یک منبع غذایی به لانه را با بهرهگیری از اطلاعات فرمونی پیدا کنند. مورچهها در هنگام راه رفتن، روی زمین فرمون میریزند و با بو کشیدن فرمون ریخته شده بر روی زمین راه را دنبال میکنند؛ چنانچه در طی مسیر به سوی لانه به یک دوراهی برسند، از آن جایی که هیچ اطلاعی درباره راه بهتر ندارند، راه را به تصادف برمیگزینند. انتظار میرود به طور متوسط نیمی از مورچهها مسیر اول و نیمی دیگر مسیر دوم را انتخاب کنند.
فرض میشود که تمام مورچهها با سرعت یکسان مسیر را طی کنند. از آنجا که یک مسیر کوتاهتر از مسیر دیگر است، مورچههای بیشتری از آن میگذرند و فرمون بیشتری بر روی آن انباشته میشود. بعد از مدت کوتاهی مقدار فرمون روی دو مسیر به اندازهای می رسد که روی تصمیم مورچههای جدید برای انتخاب مسیر بهتر تأثیر میگذارد. از این به بعد، مورچههای جدید با احتمال بیشتری ترجیح میدهند از مسیر کوتاهتر استفاده کنند، زیرا در نقطه تصمیمگیری مقدار فرمون بیشتری در مسیر کوتاهتر مشاهده میکنند. بعد از مدت کوتاهی تمام مورچهها این مسیر را انتخاب خواهند کرد .[۷]
الگوریتم اجتماع ذرات[۱۲] که به آن الگوریتم پرندگان نیز گفته می شود برای اولین بار توسط کندی[۱۳] و ابرهارت[۱۴] در سال ۱۹۹۵ مطرح شد. این الگوریتم محاسبه ای تکاملی الهام گرفته از طبیعت و براساس تکرار میباشد. منبع الهام این الگوریتم، رفتار اجتماعی حیوانات، همانند حرکت دسته جمعی پرندگان و ماهیها بود. الگوریتم اجتماع ذرات نیز با یک ماتریس جمعیت تصادفی اولیه، شروع میشود. الگوریتم اجتماع ذرات از تعداد مشخصی از ذرات تشکیل می شود که به طور تصادفی، مقدار اولیه می گیرند. برای هر ذره دو مقدار وضعیت و سرعت، تعریف می شود که به ترتیب با یک بردار مکان و یک بردار سرعت، مدل میشوند. این ذرات، بصورت تکرارشونده ای در فضای nبعدی مسئله حرکت می کنند تا با محاسبه مقدار بهینگی به عنوان یک ملاک سنجش، گزینههای ممکن جدید را جستجو کنند.[۸,۹]
تکامل تفاضلی[۱۵] یک روش جست و جوی احتمالی بر پایه جمعیت است که در سال ۱۹۹۵ توسط ستورن [۱۶]و پرایس[۱۷] ابداع گردید. تفاضل تکاملی در حالی که تشابهاتی با سایر الگوریتم های تکاملی دارد اما استفاده از اطلاعات فاصله و جهت از جمعیت فعلی برای پیش بردن عملیات جست و جو آن را از سایر الگوریتم های تکاملی متمایز کرده است. الگوریتم تکامل تفاضلی اولیه برای مسائل فضای پیوسته به وجود آمدند ولی در ادامه برای مسائل فضای گسسته نیز تعمیم یافتند .[۱۰]
الگوریتم جستجوی هارمونی[۱۸] توسط گیم[۱۹] و همکاران در سال ۲۰۰۱ معرفی شد. بعد ها در سال ۲۰۰۷ این الگوریتم توسعه داده شد. این الگوریتم با الهام از نحوه شکل گیری و چگونگی عملکرد یک ارکستر موسیقی به دنبال راه حل بهینه و یا به عبارت ملموس تر، بهترین هماهنگی بین اجزا دخیل در راهبری یک پروسه است. همان طور که نوازنده ها در یک ارکستر قطعات موسیقایی را می نوازند تا از بین آنها بهترین ترکیب، محصول نهایی را پدید آورد الگوریتم هارمونی نیز از بررسی نتیجه عملکرد اجزا به دنبال هماهنگی مطلوب است . الگوریتم هارمونی برای حل مسائل به دنبال یافتن بهترین مسیر است تا بوسیله آن هزینه توابع محاسباتی را کاهش دهد (کوتاهتر) نماید.[۱۱]
روش جستجوی فاخته[۲۰] در سال ۲۰۰۹ توسط یانگ[۲۱] و دب[۲۲] پیشنهاد شده است. این الگوریتم یک روش بهینهسازی فرااکتشافی است که رویکردی تکاملی در جستجوی راهحل بهینه دارد. این روش از رفتار جالب توجه گونههایی از پرندهی فاخته در پرورش تخم الهام گرفته است و آن را با پرواز لووی که نوعی گشت تصادفی است ترکیب میکند. برخی از گونههای فاخته به جای ساختن لانه، تخمهای خود را در لانهی پرندهای از گونههای دیگر میگذارند و آنها را با تقلید از شکل تخمها و جوجههای پرندهی میزبان وادار به مشارکت در بقای نسل خود می کنند.[۱۲]
الگوریتم کرم شب تاب [۲۳]در سال ۲۰۰۹ توسط یانگ[۲۴] معرفی شد. دو کاربرد اساسی پرتوتابی حشره های شب تاب جفتیابی و جذب طعمه است. به علاوه، پرتوتابی ممکن است به صورت مکانیزم هشداری برای محافظت به کار رود. پرتوتابی ریتمیک، نرخ چشمک ها و مدت هر یک از آن ها، سیستم ارتباط جفتها با یکدیگر را شکل می دهد. مادهها به الگوی یکسان نرها در گونههای یکسان پاسخ می دهند، در حالی که در تعدادی از گونهها حشره های شبتاب ماده می توانند الگوی تابشی جفتهای گونههای دیگر را نیز تقلید کنند و با فریب حشره های شبتاب نر که ممکن است اشتباه کنند، آنها را به سمت خود جذب و شکار کنند. شدت تابش نور می تواند به طریقی فرموله شود که با تابع هدف در ارتباط باشد و بدین صورت مقدار این تابع بهینه شود.[۱۳,۱۴]
الگوریتم خفاش[۲۵] نیز در سال ۲۰۱۰ توسط یانگ[۲۶] معرفی شد. این الگوریتم بر مبنای زندگی خفاش ها توسعه داده شده است.[۱۵]
الگوریتم جستجوی گرانشی[۲۷] در سال ۲۰۰۹ توسط راشدی[۲۸] و همکاران معرفی شده است. این الگوریتم که با الهام از قانون گرانش طبیعت، پیشنهاد شده است یک روش جدید از دسته الگوریتم های جستجو ابتکاری میباشد. در این روش عامل های جستجو، اجرامی هستند که با توجه به نیروی جاذبه ای که از سایر اجرام به آنها وارد می شود، درکی از فضای جستجو پیدا می کنند و با توجه به این درک به جستجوی فضای اطراف خود می گردند .[۱۶]
الگوریتم کلونی زنبور عسل[۲۹] در سال ۲۰۰۷ توسط کارابوگ[۳۰] و باشتورگ[۳۱] معرفی شده است. الگوریتم زنبور عسل هر نقطه را در فضای پارامتری، متشکل از پاسخهای ممکن به عنوان منبع غذا تحت بررسی قرار می دهد. زنبورهای دیدهبان، کارگزاران شبیهسازی شده، به صورت تصادفی فضای پاسخها را ساده می کنند و به وسیله تابع شایستگی کیفیت موقعیتهای بازدید شده را گزارش می دهند. جوابهای ساده شده رتبه بندی میشوند و دیگر زنبورها نیروهای تازهای هستند که فضای پاسخها را در پیرامون خود برای یافتن بالاترین رتبه محلها جستجو می کنند که گلزار نامیده میشود. الگوریتم به صورت گزینشی دیگر گلزارها را برای یافتن نقطهی بیشینهی تابع شایستگی جستجو میکند.[۱۷,۱۸]
الگوریتم رقابت استعماری[۳۲] در سال ۲۰۰۷ توسط اتش پز[۳۳] و همکاران معرفی شده است. روشی در حوزه محاسبات تکاملی است که به یافتن پاسخ بهینه مسائل مختلف بهینه سازی میپردازد. این الگوریتم با مدلسازی ریاضی فرایند تکامل اجتماعی، سیاسی، الگوریتمی برای حل مسائل ریاضی بهینه سازی ارائه می دهد. الگوریتم رقابت استعماری نیز مجموعه اولیه ای از جوابهای احتمالی را تشکیل می دهد. الگوریتم رقابت استعماری با روند خاصی جوابهای اولیه (کشور ها) را به تدریج بهبود داده و در نهایت جواب مناسب مسئله بهینه سازی (کشور مطلوب) را در اختیار می گذارد. پایههای اصلی این الگوریتم را سیاست همسان سازی، رقابت استعماری و انقلاب تشکیل می دهند. این الگوریتم با تقلید از روند تکامل اجتماعی، اقتصادی و سیاسی کشورها و با مدلسازی ریاضی بخشهایی از این فرایند، عملگرهایی را در قالب منظم به صورت الگوریتم ارائه می دهد که می توانند به حل مسائل پیچیده بهینه سازی کمک کنند. در واقع این الگوریتم جوابهای مسئله بهینه سازی را در قالب کشورها نگریسته و سعی میکند در طی فرایندی تکرار شونده این جوابها را رفته رفته بهبود داده و در نهایت به جواب بهینه مسئله برساند.[۱۹,۲۰,۲۱]
الگوریتم بهینه سازی فاخته[۳۴] در سال ۲۰۱۱ توسط رجبیون[۳۵] معرفی شده است. همانند سایر الگوریتمهای تکاملی این الگوریتم هم با یک جمعیت اولیه کار خود را شروع می کند. این جمعیت از فاخته ها، تعدادی تخم دارند که آنها را در لانه تعدادی پرنده ی میزبان خواهند گذاشت. تعدادی از این تخم ها که شباهت بیشتری به تخم های پرنده میزبان دارند شانس بیشتری برای رشد و تبدیل شدن به فاخته بالغ خواهند داشت. سایر تخم ها توسط پرنده میزبان شناسایی شده و از بین می روند. میزان تخم های رشد کرده مناسب بودن لانه های آن منطقه را نشان می دهند. موقعیتی که در آن بیشترین تعداد تخمها نجات یابند پارامتری خواهد بود که الگوریتم قصد بهینه سازی آن را دارد. فاخته ها برای بیشینه کردن نجات تخم های خود دنبال بهترین منطقه می گردند. پس از آنکه جوجه ها از تخم در آمدند و تبدیل به فاخته بالغ شدند، جوامع و گروه هایی تشکیل می دهند. هر گروه منطقه سکونت خود را برای زیست دارد. تمام گروه ها به سمت بهترین منطقه موجود فعلی مهاجرت می کنند. هر گروه در منطقه ای نزدیک بهترین موقعیت فعلی ساکن می شود. با در نظر گرفتن تعداد تخمی که هر فاخته خواهد گذاشت و همچنین فاصله فاخته ها از منطقه بهینه فعلی برای سکونت تعدادی شعاع تخم گذاری محاسبه شده و شکل می گیرد. سپس فاخته ها شروع به تخم گذاری تصادفی در لانه هایی داخل شعاع تخم گذاری خود می کنند. این پروسه تا رسیدن به بهترین محل برای تخم گذاری (منطقه با بیشترین سود) ادامه می یابد. این محل بهینه جایی است که بیشترین تعداد فاخته ها در آن گرد می آیند.[۲۲]
الگوریتم دستهی ماهیهای مصنوعی[۳۶] یکی از الگوریتمهای هوش جمعی است که بر اساس جمعیت و جستجوی تصادفی کار میکند. این الگوریتم در سال ۲۰۰۳ توسط لی[۳۷] ارائه گردید. اساس کار این الگوریتم از روی رفتارهای اجتماعی ماهیها برگرفته شده و بر مبنای جستجوی تصادفی، جمعیت و رفتارگرایی کار میکند. این الگوریتم دارای خصوصیاتی از جمله سرعت همگرایی بالا، حساس نبودن به مقادیر اولیهی ماهیهای مصنوعی، انعطافپذیری و تحملپذیری خطا می باشد که آن را برای حل مسائل بهینهسازی قابل قبول میکند. اساس کار این الگوریتم بر پایهی توابعی است که از رفتارهای اجتماعی دستهی ماهیها در طبیعت برگرفته شدهاند. در دنیای زیر آب، ماهیها می توانند مناطقی را پیدا کنند که دارای غذای بیشتری است، که این امر با جستجوی فردی یا گروهی ماهیها محقق میشود. مطابق با این ویژگی، مدل ماهی مصنوعی با رفتارهای حرکت آزادانه، جستجوی غذا، حرکت گروهی و دنبالهروی ارائه شده است که به وسیلهی آنها فضای مسئله جستجو میشود.[۲۳]
۲-۳- جمع بندی
در این فصل به مرور الگوریتم های فرا ابتکاری پرداخته شد. اکثر الگوریتم ها در مرحله اول خود جمعیت تصادفی تولید می کنند. سپس در تکرار های بعد آن جمعیت اولیه را حرکت می دهند. تفاوت الگوریتم ها در همین نوع حرکت دادن جواب ها است. در الگوریتم ژنتیک به وسیله اپراتور های تقاطع و جهش، در الگوریتم جستجوی ممنوعه به وسیله جستجوی تپه نوردی و لیست ممنوعه، در الگوریتم شبیه سازی تبرید به وسیله جستجوی تبه نوردی و تابع احتمالی بولتزمان و برای الگوریتم های دیگر به روش های گوناگون این عمل صورت می گیرد. در انتها نیز همین حرکت هدایت شده جواب ها باعث پیدا شدن جواب بهتر می شود.
فصل سوم
زمینه های علمی تحقیق
۳-۱- مقدمه
بهینهسازی یک فعالیت مهم و تعیینکننده در طراحی ساختاری است. طراحان زمانی قادر خواهند بود طرحهای بهتری تولید کنند که بتوانند با روشهای بهینهسازی در صرف زمان و هزینه طراحی صرفهجویی نمایند. بسیاری از مسائل بهینهسازی در مهندسی، طبیعتاً پیچیدهتر و مشکلتر از آن هستند که با روشهای مرسوم بهینهسازی نظیر روش برنامهریزی ریاضی و نظایر آن قابل حل باشند.
۳-۲- مسائل بهینه سازی
هدف از بهینهسازی یافتن بهترین جواب قابل قبول، با توجه به محدودیتها و نیازهای مسأله است. برای یک مسأله، ممکن است جوابهای مختلفی موجود باشد که برای مقایسه آنها و انتخاب جواب بهینه، تابعی به نام تابع هدف تعریف میشود. انتخاب این تابع به طبیعت مسأله وابسته است. به عنوان مثال، زمان سفر یا هزینه از جمله اهداف رایج بهینهسازی شبکههای حمل و نقل میباشد. به هر حال، انتخاب تابع هدف مناسب یکی از مهمترین گامهای بهینهسازی است. گاهی در بهینهسازی چند هدف به طور همزمان مد نظر قرار میگیرد؛ این گونه مسائل بهینهسازی را که دربرگیرنده چند تابع هدف هستند، مسائل چند هدفی مینامند. سادهترین راه در برخورد با این گونه مسائل، تشکیل یک تابع هدف جدید به صورت ترکیب خطی توابع هدف اصلی است که در این ترکیب میزان اثرگذاری هر تابع با وزن اختصاص یافته به آن مشخص میشود. هر مسأله بهینهسازی دارای تعدادی متغیر مستقل است که آنها را متغیرهای طراحی مینامند که با بردار n بعدی x نشان داده میشوند. هدف از بهینهسازی تعیین متغیرهای طراحی است، به گونهای که تابع هدف کمینه یا بیشینه شود.
مسائل مختلف بهینهسازی به دو دسته زیر تقسیم میشود:
الف) مسائل بهینهسازی بیمحدودیت: در این مسائل هدف، بیشینه یا کمینه کردن تابع هدف بدون هر گونه محدودیتی بر روی متغیرهای طراحی میباشد.
ب) مسائل بهینهسازی با محدودیت: بهینهسازی در اغلب مسائل کاربردی، با توجه به محدودیتهایی صورت میگیرد؛ محدودیتهایی که در زمینه رفتار و عملکرد یک سیستم میباشد و محدودیتهای رفتاری و محدودیتهایی که در فیزیک و هندسه مسأله وجود دارد، محدودیتهای هندسی یا جانبی نامیده میشوند.
معادلات معرف محدودیتها ممکن است به صورت مساوی یا نامساوی باشند که در هر مورد، روش بهینهسازی متفاوت میباشد. به هر حال محدودیتها، ناحیه قابل قبول در طراحی را معین میکنند.
به طور کلی مسائل بهینهسازی با محدودیت را میتوان به صورت زیر نشان داد:
Minimize or Maximize : F(X) (3.1)
Subject to : I = 1,2,3,…,p
j = 1,2,3,…,q
ﻧﮕﺎرش ﻣﻘﺎﻟﻪ ﭘﮋوهشی درباره : الگوریتم تکاملی جستجوگر ، یک الگوریتم جدید برای مسائل بهینه ...