۳-۲ الگوریتمهای فراابتکاری
بهینهسازی ریاضی و محاسباتی در مسایل مهندسی با مقیاس بزرگ، سختیهای زیادی را با همراه دارد. به همین دلیل راه حلهای جایگزین و متناوب را بصورت مشارکتی ایجاد کرده اند. روشهای سنتی مانند برنامهنویسیخطی، برنامه نویسی پویا و … هستند که غالبا در این مسایل با شکست روبرو میشوند یا دارای پاسخهای بهینه محلی هستند. این مسایل دارای متغیرهای خیلی زیادی هستند و توابع هدف غیر خطی دارند. الگوریتمهای تقریب[۳۵] رسماً در دهه ۱۹۶۰ به منظور تولید جوابهای نزدیک به بهینه[۳۶] معرفی شدند. این الگوریتمها برای آن دسته از مسائل بهینهسازی بهکار میروند که با روشهای محاسباتی، نمی توان آنها را به صورت اثربخش حل کرد. با ارائه تئوری مسایل با زمان حل غیرچندجملهای کامل[۳۷] در اوایل دهه ۱۹۷۰، این حوزه علمی مهمتر شد، زیرا نیاز به تولید جوابهای نزدیک به بهینه برای مسائل با زمان حل غیرچندجملهای سخت[۳۸] به شدت احساس میشد. الگوریتمهای آن دهه، جواب نزدیک به بهینه در زمان کوتاه به یک مسئله میداد و برای سایر مسائل نیز به سختی جواب زیربهینه[۳۹] تولید میکرد[۱۳]. روش های تقریبی از تکنیکهای موسوم به ابتکاری استفاده می کنند. برخی منابع علمی، تکنیکهای ابتکاری را به دو خانواده ابتکاریهای خاص[۴۰] و فراابتکاریها تقسیم کرده اند[۱۴]. ابتکاریهای خاص برای حل یک مسئله خاص و یا یک مصداق از آن طراحی میشوند، در حالیکه فراابتکاریها الگوریتمهای با منظور عمومی[۴۱] هستند که قابل استفاده در تقریباٌ همه مسائل بهینهسازی هستند و معمولا هدف از آنها ترکیب روشهای ابتکاری در چارچوبهای کلانتر به منظور کاوش کارا و اثربخش فضای جستجو میباشد. واژه متا هیوریستیک برای این الگوریتمها را اولین بار گلوور[۴۲] درسال ۱۹۸۶ به کاربرد که از ترکیب دو واژه یونانی متا و هیوریستیک ساخته شده است. پیشوند متا به معنای فراتر و هیوریستیک به معنای یافتن و مکاشفه است[۱۵]. این الگوریتمها در دستههای مختلفی دستهبندی میشوند که بستگی به معیار مورد نظر مانند مبتنی بر جمعیت، مبتنی بر تکرار، معین و نامعین دارند. براساس پدیده های طبیعی شبیهسازی شده بوسیله الگوریتمها، الگوریتمهای ابتکاری مبتنی بر جمعیت دو گروه مهم دارند: الگوریتمهای تکاملی[۴۳] و الگوریتمهای هوش جمعی[۴۴].
برخی الگوریتمهای تکاملی عبارتند از: الگوریتم ژنتیک[۱۶]، استراتژی تکاملی[۱۷]، برنامه نویسی تکاملی[۱۸]، تکامل تفاضلی[۱۹و۲۰]، بهینهسازی کاوش باکتری[۲۱]، ایمنی مصنوعی[۲۲] و …. از میان همه اینها، الگوریتم ژنتیک بصورت گسترده در برنامه های کاربردی استفاده شدهاست. الگوریتم ژنتیک براساس تئوری بقا داروین و تئوری تکامل تدریجی موجودات زنده عمل می کند. استراتژی تکاملی بر این فرض بنا شده است که قوانین وراثتی در طول دوره تکامل بیولوژیکی با سرعت بیشتری تطابق پیدا می کنند و از تاثیر روالهای ژنتیک روی شکل ظاهری و الگوهای توارث پیروی می کند. برنامهنویسی تکاملی، پدیده های تکاملی طبیعی در سطح الگوها[۴۵] را شبیهسازی می کند. الگوریتم بهینهسازی جستجوی غذای باکتری بوسیله رفتار اجتماعی یک دسته باکتری معده شبیهسازی شدهاست. الگوریتم ایمنی مصنوعی براساس سیستم ایمنی انسان عمل می کند.
برخی الگوریتمهای مبتنی بر هوش جمعی عبارتند از : الگوریتم بهینهسازی ازدحام ذرات[۲۳]، الگوریتم ترکیبی جهش قورباغه[۲۴]، الگوریتم بهینهسازی کلونی مورچگان[۲۵]، الگوریتم کلونی زنبور عسل مصنوعی[۲۶و۲۷و۲۸و۲۹]. در کنار الگوریتمهای مبتنی بر هوش جمعی و الگوریتمهای تکاملی، الگوریتمهای دیگری نیز هستند که براساس پدیده های طبیعی متفاوتی عمل می کنند. برخی از این الگوریتمها عبارتند از:
-
- جستجوی هارمونی که براساس بهبود هماهنگی در پخش موسیقی عمل می کند[۳۰].
-
- الگوریتم جستجوی گرانشی که براساس نیروی کشش بین اجسام عمل می کند[۳۱].
-
- الگوریتم بهینهسازی مبتنی بر جغرافیا، که بر اساس مهاجرت از یک مکان به مکان دیگر و بر اساس تئوری زیست جغرافیا عمل می کند[۳۲].
-
- الگوریتم انفجار نارنجک[۳۳].
تمام الگوریتمهای تکاملی و هوش جمعی، الگوریتمهای احتمالی هستند و نیازمند پارامترهای کنترلی عمومی نظیر اندازه جمعیت[۴۶]، تعداد نسلها[۴۷]، تعداد نخبهها[۴۸] و… هستند. علاوه بر پارامترهای کنترلی عمومی، این الگوریتمها نیاز به پارامترهای اختصاصی خود نیز دارند. مثلا الگوریتم ژنتیک از نرخ جهش[۴۹] و نرخ پوشش[۵۰] استفاده می کند. میزان مناسب بودن پارامترهای اختصاصی هر الگوریتم فاکتوری اساسی است و بر کارایی الگوریتم مربوطه تاثیر دارد. اگر پارامترهای اختصاصی الگوریتم مناسب نباشد، محاسبات الگوریتم افزایش مییابد یا باعث ایجاد پاسخهای بهینه محلی میگردد. در این پایان نامه الگوریتم فراابتکاری مبتنی بر آموزش – یادگیری (TLBO ) برای حل این مسئله استفاده شده است. در ادامه این الگوریتم را تشریح میکنیم.
۳-۳ الگوریتم مبتنی بر آموزش- یادگیری
TLBO یکی از الگوریتمهای مبتنی بر جمعیت است که اخیرا معرفی شدهاست و فرایند آموزش و یادگیری در کلاس درس را شبیهسازی می کند. TLBO بوسیلهRao و همکارانش در سال ۲۰۱۱ و ۲۰۱۲ پیشنهاد گردید و توسعه دادهشد[۳۴و۳۵و۳۶و۳۷و۳۸]. از ویژگیهای این الگوریتم این است که نیازی به پارامترهای کنترلی خاص الگوریتم ندارد و پارامترهای کنترلی عمومی مانند اندازه جمعیت و تعداد نسلها را شامل میگردد. TLBO را می توان الگوریتم بدون پارامتر اختصاصی نیز نامید. الگوریتم مورد استفاده با بکارگیری عملگرهایی که برای مسئله زمانبندی پروژه تحت محدودیت منابع طراحی شده اند، در چارچوب کلی الگوریتم خود، به حل مسئله می پردازد. برای بررسی بهتر کارایی الگوریتم TLBO مفهوم نخبهگرایی نیز در آن تاثیر داده شده است[۳۹]. نخبهگرایی مکانیسمی برای باقی نگهداشتن بهترین افراد از نسلی به نسل دیگر است. با این روش، هرگز بهترین افراد پیدا شده در طول فرایند بهینهسازی از دست نخواهند رفت. نخبهسالاری را میتوان با قرار دادن یک یا بیشتر افراد نخبه در جمعیت نسل بعد، به انجام رساند.
این الگوریتم بر اساس تاثیر معلم (آموزش دهنده) بر فراگیران (یاد گیرندگان) بنا شده است. الگوریتم دو سبک پایهای یادگیری را توضیح میدهد. سبک اول از طریق معلم انجام میگیرد که بعنوان فاز معلم شناخته می شود و تعامل فراگیران با یکدیگر نیز سبک دوم یادگیری است که بعنوان فاز فراگیرنده شناخته می شود. در این الگوریتم بهینهسازی، گروهی از فراگیران بعنوان جمعیت مطرح شده اند. موضوعات مختلفی که به فراگیران عرضه می شود، بعنوان متغیرهای مختلف طراحی مسئله بهینهسازی در نظرگرفته می شود. نتیجه یادگیری فراگیران مشابه مقدار تابع برازندگی[۵۱] مسئله بهینهسازی است. متغیرهای طراحی، پارامترهای درگیر در تابع هدف یک مسئله بهینهسازی معین هستند و بهترین مقدار برای تابع هدف، بهترین راه حل میباشد. در شکل ۳-۱ فلوچارت TLBO نمایش داده شده است[۳۷]. همانگونه که اشاره شد عملکرد TLBO به دو قسمت تقسیم شده است: فاز آموزش دهنده[۵۲] و فاز فراگیر[۵۳]. در ادامه به توصیف این دو فاز میپردازیم.
۳-۳-۱ فاز معلم
در طول این فاز یک معلم سعی می کند که میانگین نتیجه کلاس را در موضوعی که بوسیله او آموزش داده می شود، طبق تواناییش افزایش دهد و آن را از مقدار M1 به سطح خودش یعنی TA برساند. ولی در عمل این تغییر ممکن نیست و معلم می تواند میانگین کلاس را از M1 بهM2 برساند که از M1 بهتر است ولی از سطح معلم کمتر است. حداکثر تعداد مجاز تکرار را با MAXIT مشخص می کنیم. در هربار تکرار مانند i، فرض می شود که m موضوع تدریس و n نفر فراگیر وجود دارند. m تعداد متغیرهای طراحی و n اندازه جمعیت است. Mj,i میانگین نتیجه فراگیران در تکرار i و در یک موضوع بخصوص مانند موضوع j است. (j=1,2,…,m) بهترین نتیجه کلی Xtotal-kbest,i که با توجه به همه موضوعات و بوسیله کل فراگیران بدست می آید را می توان بعنوان نتیجه بهترین فراگیر kbest یعنی معلم در نظر گرفت. فراگیران را با k=1,2,…n مشخص میکنیم. معمولا معلم بعنوان یک شخص در سطح بالایی آموخته است معرفی می شود که فراگیران را آموزش میدهد، بطوریکه نتیجه بهتری را کسب کنند. بهترین فراگیران شناسایی شده بوسیله الگوریتم، بعنوان معلم در نظر گرفته میشوند. تفاوت بین میانگین نتیجه یادگیری هر موضوع در حال حاضر با نتیجه متناظر معلم برای هر موضوع از رابطه (۳-۱) بدست می آید:
Difference_Meanj,k,i = ri ( Xj,kbest,i -TF M j,i ) (۳-۱)
Xj,kbest,i نتیجه بهترین فراگیر یعنی معلم، در موضوع j در تکرار i ام است. ri عددی تصادفی در محدوده [۰,۱] است. TF فاکتور آموزش است که تصمیم گیری در مورد تغییر مقدار میانگین را انجام میدهد. مقدار TF بصورت تصادفی با احتمال برابر بصورت زیر بدست می آید:
TF = round[ 1 + rand( 0,1) {2 -1} (3-2)
مقدار TF بین یک یا دو است. اگر یک باشد یعنی در سطح دانش، افزایشی رخ ندادهاست و اگر دو باشد یعنی دانش بطور کامل منتقل شده است. مقادیر بین یک و دو، میزان سطح انتقال دانش را نشان می دهند. TF پارامتر الگوریتم TLBO نیست. مقدار TF بعنوان ورودی الگوریتم داده نمی شود بلکه بصورت تصادفی بوسیله الگوریتم بدست می آید. پس از انجام آزمایشهای زیادی روی توابع و مسایل مختلف، این نتیجه بدست آمدهاست که الگوریتم زمانی بهتر عمل می کند که مقدار TF بین ۱ و ۲ باشد[۳۶]. برای سادهسازی الگوریتم مقدار TF یک یا دو در نظر گرفته می شود. یک یا دو بودن نیز بستگی به گرد کردن معیار داده شده در فرمول TF دارد. براساس Difference_Mean j,k,i، پاسخ موجود در فاز معلم، بصورت زیر به روز رسانی می شود:
X‘j,k,i = Xj,k,I + Difference_Meanj,k,i (۳-۳)
X‘j,k,i به روز شده مقدار Xj,k,i است. X‘j,k,i در صورتی پذیرش میگردد که مقدار تابع هدف بهتری را نتیجه بدهد. تمام مقادیر قابل قبول تابع در پایان فاز معلم نگهداری می شود و این مقادیر، ورودی فاز فراگیر قرار داده میشوند. فاز فراگیر وابسته به فاز معلم است.
۳-۳-۲ فاز فراگیر
فراگیران دانش خودشان را از طریق تعامل بین خودشان افزایش می دهند. یک فراگیر بصورت تصادفی با دیگر فراگیری تعامل می کند تا دانشش را افزایش دهد. یک فراگیر مطالب جدید را در صورتی خواهد آموخت که دیگر فراگیران دانش بیشتری از او داشته باشند. فرایند یادگیری در این مرحله نیز شبیه مرحله قبل است ولی روابطش متفاوت است. با توجه با اندازه جمعیت n، فرایند یادگیری در این فاز در ادامه آمدهاست. اگر فراگیر فعلی P باشد، بصورت تصادفی فراگیر Q را انتخاب میکنیم بطوریکه
X‘totoal-P,i ≠ X‘total-Q,i (۳-۴)
X“j,P,i را بصورت زیر بدست میآوریم:
If X‘totoal-P,i < X‘total-Q,i X“j,P,i = X’j,P,i + ri ( X’j,P,i - X’j,Q,i ) (۳-۵)
If X ‘ totoal-P,i > X ‘ total-Q,i X “ j,P,i = X’ j,P,i + ri ( X’ j,Q,i - X’ j,P,i) (۳-۶)
در صورتیکه مقدار تابع هدف برای X“j,P,i بهتر باشد، X” پذیرش می شود و جایگزین مقدار قبلی می شود.
۳-۳-۳ الگوریتم TLBO نخبه سالارانه[۵۴]
الگوریتم TLBO اولیه که بوسیله Rao و دیگران در سالهای ۲۰۱۱و ۲۰۱۲ بیان گردید رویکرد نخبهگرایی در آن مطرح نبود و فقط دو پارامتر کنترلی عمومی اندازه جمعیت و تعداد نسل ها را شامل میشد. همچنین تاثیر این پارامترها برکارایی الگوریتم بصورت جزیی بررسی گردیدهاست. با وارد کردن مفهوم نخبه گرایی در الگوریتم TLBO تاثیر پارامترها در اکتشاف و ظرفیت اکتشاف را میتوان شناسایی کرد. فلوچارت TLBO با رویکرد نخبهگرایانه در شکل ۳-۲ نمایش داده شدهاست[۳۹]. محققان مفهوم نخبهسالاری را در غالب الگوریتمهای تکاملی و هوش جمعی استفاده کرده اند. در هر نسل پاسخهای بدتر با پاسخهای نخبه جایگزین میگردند. در TLBO پس از جایگزینی پاسخهای بهتر بجای پاسخهای بدتر در پایان فاز فراگیر، اگر پاسخهای تکراری وجود داشت لازم است تا این پاسخهای تکراری تغییر کنند تا الگوریتم در دام پاسخهای بهینه محلی نیفتد. یک روش برای رفع پاسخهای تکراری به این صورت است که پاسخهای تکراری بوسیله جهش روی اندازه های (ابعاد) انتخابی تصادفی پاسخهای تکراری، تغییر داده میشوند. این کار قبل از اجرای نسل بعد انجام میگیرد. در رویکرد نخبهگرایی، پارامتر کنترلی اندازه نخبه نیز به پارامترها افزوده می شود.
شکل ۳-۱ فلوچارت TLBO[37] |