1 بنام خدا بهینه سازی شبیه سازی Simulation Optimization Lecture 5 مروری بر روش های جستجوی تصادفی A review of random search methods 5- مروری بر روش های جستجوی تصادفی > سر فصل مطالب 2 شماره عنوان فصل 1-5 مفاهیم متداول برای متاهیوریستیک ها 2-5 روش های مبتنی بر یک جواب جستجوی همسایگی Search) (Local 1-2-5 تبرید شبیه سازی شده Annealing) (Simulated 2-2-5 جستجوی ممنوعه Search) (Tabu 3-2-5 3-5 روش های جمعیت محور الگوریتم های تکاملی Algorithms) (Evolutionary 1-3-5 جستجوی پراکنده Search) (Scatter 2-3-5 کلونی مورچگان Colony) (Ant 3-3-5 بهینه سازی ازدحام ذرات Optimization) (Particle Swarm 4-3-5 1
5- مروری بر روش های جستجوی تصادفی > منابع 3 EG Talbi - Metaheuristics: from design to implementation, 2009 - Wiley Online Library 5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها 4 یافتن جواب بهینه برای بسیاری از مسائل بهینه سازی ممکن نیست. برای اینگونه مسائل معموال به جواب های خوب که از الگوریتم های هیوریستیک و متاهیورستیک بدست آمده بسنده می شود. بر خالف الگوریتم های بهینه سازی دقیق متاهیوریستیک ها تضمینی برای بهینگی جواب های بدست آمده ارائه نمی دهند. همچنین بر خالف الگوریتم های تقریبی متاهیوریستیک ها میزان نزدیکی جواب ارائه شده به جواب بهینه را مشخص نمی کنند. 2
5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها 5 برای مسائل پیوسته محدب و کوادراتیک با ابعاد کوچک و متوسط برخی الگوریتم های دقیق قابل بکارگیری هستند. برای مسائل با ابعاد باال مشتق ناپذیر و بهینه سازی ترکیبی متاهیوریستیک ها روش های مناسبی در نظر گرفته می شوند. متاهیوریستیک ها همچنین برای های دقیق استفاده می شوند. الگوریتم برای باال و پایین حدود یافتن 5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها 6 تئوری پیچیدگی: یک الگوریتم به دو منبع برای حل مسائل نیاز دارد: زمان و فضا. پیچیدگی زمانی یک الگوریتم تعداد مراحل مورد نیاز برای حل یک مساله با سایز n است. پیچیدگی معموال در حالت worst-case بررسی می شود. هدف از تعیین پیچیدگی محاسباتی یک الگوریتم یافتن یک حد مجانبی برای تعداد مراحل تا رسیدن به جواب بهینه است. حرف O به معنای آنالیز مجانبی است. 3
5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها 7 تئوری پیچیدگی: الگوریتم با زمان چند جمله ای: یک الگوریتم با زمان چند جمله ای نامیده می یک تابع چند جمله ای باشد که در آن شود اگر پیچیدگی آن از n است. یک تابع چند جمله ای از درجه k به صورت زیر است:. این تابع دارای درجه که در آن و پیچیدگی چند جمله ای است. الگوریتم با زمان نمایی: یک الگوریتم الگوریتم با زمان نمایی نامیده می شود اگر پیچیدگی آن از نوع باشد که در آن c یک ثابت بزرگ تر از 1 است. 5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها 8 تئوری پیچیدگی: آنالیز مجانبی الگوریتم ها نرخ رشد زمان محاسباتی آنها در قالب تابعی از اندازه مساله را بیان می دارد. این آنالیز امکان مقایسه الگوریتم های مختلف در قالب پیچیدگی worst-case را فراهم می دارد. 4
5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها 9 پیچیدگی مسائل: پیچیدگی یک مساله برابر است با پیچیدگی بهترین الگوریتم که آن مساله را حل می کند. یک مساله tractable )یا ساده( نامیده می شود اگر الگوریتم با زمان چند جمله ای برای حل آن وجود داشته باشد. یک مساله intractable )سخت( نامیده می شود اگر الگوریتم با زمان چند جمله ای برای حل آن وجود نداشته باشد. یکی از جنبه های تئوری پیچیدگی دسته بندی مسائل به کالس های پیچیدگی است. یک کالس پیچیدگی دربردارنده مجموعه ای از کلیه کالس هایی است که با استفاده از منابع محاسباتی مشخصی قابل حل هستند. دو کالس مهم شامل P و NP است. 10 5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها پیچیدگی مسائل: کالس P مجموعه مسائلی را در بر می گیرد که با استفاده از یک ماشین قطعی در زمان چند جمله ای قابل حل هستند. کالس NP شامل مسائلی است که بوسیله الگوریتم های غیر قطعی در زمان چند جمله ای قابل حل هستند. یک الگوریتم غیر قطعی شامل یک یا چند نقطه انتخاب است. یک مسئله NP-complete است اگر سایر مسائل کالس NP بصورت چند جمله ای قابل کاهش به مساله Aباشند. مسائل NP-hardمسائل بهینه سازی NP-completeهستند که الگوریتم حل آنها نمایی است. 5
5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها روش های بهینه سازی: 11 روش های دقیق: شامل برنامه ریزی پویا الگوریتم های خانواده branch (Constraint Programming) برنامه ریزی محدودیت and X الگوریتم های جستجو. الگوریتم های تقریبی: شامل الگوریتم های تقریبی و الگوریتم های هیوریستیک. الگوریتم های هیوریستیک جواب های خوب در زمان مناسب ارائه می دهند الگوریتم های تقریبی جواب های قابل اثبات در محدوده زمانی قابل اثبات ارائه می دهند. 12 5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها 6
5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها در طراحی یک متاهیوریستیک دو معیار متناقض مد نظر قرار می گیرد: جستجوی عمومی فضای جواب (exploration) و تمرکز بر همسایگی بهترین جواب یافته شده.(exploitation) به explorationجستجوی رندم نیز گفته می شود زیرا در هر مرحله یک جواب بصورت رندم از کل فضای جواب ایجاد می شود و هیچ حافظه ای مورد استفاده قرار نمی گیرد. در حالی که در exploitation که به آن جستجوی همسایگی نیز گفته می شود در هر تکرار بهترین جواب در همسایگی جواب بهینه جاری که امکان بهبود دارد یافته می شود. 13 14 5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها سایر دسته بندی ها: الهام گرفته شده از طبیعت در مقابل غیر الهام گرفته شده از طبیعت (Nature inspired versus nonnature inspired) روش های مبتنی بر حافظه در مقابل روش های بدون حافظه (Memory usage versus memoryless methods) قطعی در مقابل تصادفی stochastic) (Deterministic versus جمعیت محور در مقابل مبتنی بر یک جواب (Population-based search versus single-solution based search) تکرارشونده در مقابل حریصانه greedy) (Iterative versus 7
5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها 15 چه زمانی متاهیوریستیک ها استفاده می شوند پیچیدگی مساله اندازه مساله ساختار مسئله زمان مورد نیاز برای حل استفاده از متاهیوریستیک ها برای حل مسائلی که قابل حل با روش های دقیق هستند منطقی نیست. یک مثال مسائل در دسته P هست. اگر یک مساله قابل کاهش به مسائل کالسیک یا مسائل حل شده در ادبیات باشد از متاهیوریستیک ها نباید استفاده کرد. 5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها 16 مفاهیم متداول برای متاهیوریستیک ها: نمایش :(Representation) در کلیه به نمایش )کدگذاری( جواب ها است. متاهیوریستیک نیاز تکرارپذیر های 8
5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها 17 مفاهیم متداول برای متاهیوریستیک ها: نحوه برخورد با محدودیت: استراتژی های رد strategies) (reject استراتژی های جریمه strategies) (penalizing استراتژی های مرمت کردن strategies) (repairing استراتژی های حفظ strategies) (preserving 5- مروری بر روش های جستجوی تصادفی > مفاهیم متداول برای متاهیوریستیک ها 18 تنظیم پارامترها TUNING) :(PARAMETER استراتژی ها: Off-Line Parameter Initialization Online Parameter Initialization 9
های مبتنی بر یک جواب متاهیوریستیک های مبتنی بر یک جواب)فرد محور(: 19 متاهیوریستیک های مبتنی بر یک جواب یک جواب منفرد را بهبود می دهند. این الگوریتم ها در همسایگی حرکت کرده یا نواحی مجاور را جستجو می کنند. این جستجو یا حرکت از طریق پروسه تکرارشونده انجام می شود که در آن از جواب فعلی به جواب دیگری در فضای جستجو حرکت می شود. این الگوریتم ها به صورت تکرار شونده پروسه های تولید (generation) و جایگزینی (replacement) از جواب فعلی را به کار می گیرند. در گام تولید یک مجموعه از جواب های کاندید از جواب فعلی s ایجاد می شوند. این مجموعه C(s) به صورت کلی از تبدیل محلی جواب فعلی بدست می آید. در فاز جایگزینی یک انتخاب از مجموعه کاندید C(s) انجام می شود تا جایگزین جواب فعلی شود یعنی یک جواب بعنوان جواب جدید انتخاب می شود. این پروسه تا رسیدن به یک معیار توقف تکرار می شود. های مبتنی بر یک جواب متاهیوریستیک های مبتنی بر یک جواب: 20 دو پروسه ی تولید و جایگزینی ممکن است بدون حافظه باشند. در این حالت دو پروسه تنها بر مبنای جواب فعلی انجام می شوند. در غیر اینصورت تاریخچه ای از جستجو در یک حافظه نگهداری می شود که در دو پروسه بکار گرفته می شود. متاهیوریستیک های متداول مبتنی بر یک جواب شامل جستجوی محلی (local search) تبرید شبیه سازی شده annealing) (simulated و جستجوی ممنوعه search) (tabu هستند. 10
های مبتنی بر یک جواب 21 یک الگوریتم عمومی برای متاهیوریستیک های مبتنی بر یک جواب: های مبتنی بر یک جواب همسایگی: است که به هر جواب تعریف: یک تابع همسایگی N یک تصویر 22 از یک مجموعه از جواب های را تخصیص می دهد. یک همسایه از طریق بکارگیری اپراتور (m) move که یک اغتشاش کوچک برای جواب s ایجاد می کند تولید می شود. در یک فضای پیوسته همسایگی جواب N(s) s یک کره با مرکز s و شعاع برابر با 0<ε است. بنابراین: با استفاده از نرم اقلیدسی: 11
های مبتنی بر یک جواب جواب اولیه: دو استراتژی برای ایجاد جواب اولیه وجود دارد: رویکرد رندم و رویکرد حریصانه. 23 یک موازنه بین کیفیت جواب و زمان محاسباتی در انتخاب بین رویکرد رندم و حریصانه وجود دارد. این موازنه به ساختار متاهیوریستیک نیز بستگی دارد. به عنوان مثال هر چه همسایگی بزرگ تر باشد وابستگی به جواب اولیه کاهش می یابد در این حالت رویکرد رندم برتری دارد. در حالت حریصانه معموال الگویتم نرخ همگرایی سریع تری دارد. روش های ترکیبی نیز وجود دارد. های مبتنی بر یک جواب فضای جواب: فضای جواب معموال بوسیله یک گراف جهت دار G=(S,E) تعریف می شود که در آن مجموعه رئوس S مربوط به جواب های مساله است که بوسیله کدگذاری تعریف می شوند و مجموعه یال های E که مربوط به اپراتور حرکت هستند و برای ایجاد جواب های جدید )در همسایگی جواب فعلی( بکار گرفته می شوند. بین هر دو جواب move از si به 24 sj si و sj یک یال وجود دارد اگر بتوان با استفاده از اپراتور رسید. د ر این حالت si و sj با یکدیگر همسایه هستند. 12
های مبتنی بر یک جواب< جستجوی همسایگی جستجوی همسایگی Search) :(Local 25 الگوریتم از یک نقطه اولیه تعیین شده شروع می شود. در هر تکرار جواب فعلی با یک جواب همسایه که تابع هدف را افزایش می دهد جایگزین می شود. در زمانی که کلیه جواب های کاندید همسایه از جواب فعلی بدتر باشند )یعنی با رسیدن به بهینه محلی( الگوریتم متوقف می شود. های مبتنی بر یک جواب< جستجوی همسایگی جستجوی همسایگی Search) :(Local 26 زمانی که همسایگی بزرگ باشد جواب های کاندید یک زیر مجموعه از جواب های همسایه خواهد بود. هدف اصلی از استراتژی همسایگی محدود شده افزایش سرعت جستجو است. انواع LS بر مبنای نحوه ایجاد همسایه )قطعی/تصادفی( و استراتژی انتخاب از یکدیگر متمایز می شوند. LS می تواند همانند یک الگوریتم تندترین شیب در یک گراف درنظر گرفته شود این گراف به صورت G=(S,V) تعریف می شود که در آن S کلیه جواب های شدنی فضای جواب و V رابطه همسایگی است. 13
های مبتنی بر یک جواب< جستجوی همسایگی جستجوی همسایگی Search) :(Local در گراف G یک یال (i,j) جواب های برای یک جواب مشخص s تعداد یال بود. 27 si و sj را به یکدیگر متصل می کنند. ها N(s) )تعداد همسایه ها( خواهد الگوریتم زیر قالب یک نمونه الگوریتم LS را نشان می دهد: های مبتنی بر یک جواب< جستجوی همسایگی 28 جستجوی همسایگی Search) :(Local با شروع از یک جواب اولیه یک توالی از جواب وجود می آید که دارای مشخصات زیر است: ها به استراتژی های انتخاب همسایه: بیشترین بهبود اولین بهبود انتخاب تصادفی 14
های مبتنی بر یک جواب< تبرید شبیه سازی شده تبرید شبیه سازی شده ANNEALING) :(SIMULATED 29 SA از فرآیند فیزیکی حرارت زیاد دادن و بعد به آرامی سرد کردن فلزات برای رسیدن به ساختار کریستالی مستحکم الهام گرفته شده است. استحکام ساختار وابسته به نرخ سرد کردن فلزات و میزان حرارت اولیه است. الگوریتم SA تغییرات انرژی در یک سیستم قرار گرفته در فرآیند سرد کردن تا رسیدن به وضعیت تعادل را شبیه سازی می کند. SA یک الگوریتم تصادفی است که تحت شرایط خاصی منجر به تنزل یک جواب می شود. هدف فرار از بهینه محلی است و در نتیجه تاخیر در نرخ همگرایی وجود دارد. SA یک الگوریتم بدون حافظه است یعنی از اطالعات بدست آمده در طول جستجو استفاده نمی کند. های مبتنی بر یک جواب< تبرید شبیه سازی شده تبرید شبیه سازی شده ANNEALING) :(SIMULATED 30 SA از یک جواب اولیه شروع می کند و به صورت تکرار شونده در هر مرحله یک همسایه به صورت رندم انتخاب می کند در صورتی که مقدار تابع هدف جواب همسایه بهتر باشد حرکت انجام می شود. در غیر اینصورت با یک احتمال که وابسته به دمای جاری و میزان تنزل تابع هدف است جواب پذیرفته می شود. با پیشروی الگوریتم احتمال رابطه زیر بدست می آید: از احتمال این یابد. می کاهش بدتر جواب پذیرش 15
های مبتنی بر یک جواب > تبرید شبیه سازی شده تبرید شبیه سازی شده ANNEALING) :(SIMULATED در یک سطح مشخص از دما جواب های مختلفی بررسی می شود. زمانی که وضعیت سیستم در نقطه تعادل قرار گیرد دما طبق بک برنامه تدریجا کاهش می یابد. 31 عالوه بر جواب جاری بهترین جواب بررسی شده از آغاز جستجو نگهداری می شود. این الگوریتم پارامترهای کمی دارد که دما و تعداد تکرار در هر دما هستند. های مبتنی بر یک جواب > تبرید شبیه سازی شده 32 تبرید شبیه سازی شده ANNEALING) :(SIMULATED 16
های مبتنی بر یک جواب< تبرید شبیه سازی شده تبرید شبیه سازی شده ANNEALING) (SIMULATED برنامه سرد سازی: برنامه سرد سازی برای هر مرحله i از الگوریتم دما Ti را تعیین می کند. این برنامه تاثیر زیادی بر عملکرد الگوریتم SA دارد. پارامترها برای تعریف یک برنامه سرد سازی دمای اولیه وضعیت تعادل تابع سردسازی و دمای نهایی که معیار توقف را تعیین می کند هستند. 33 های مبتنی بر یک جواب< تبرید شبیه سازی شده تبرید شبیه سازی شده ANNEALING) (SIMULATED دمای اولیه: اگر دمای اولیه خیلی باال باشد جستجو مشابه یک جستجوی محلی تصادفی خواهد بود. همچنین اگر دمای اولیه خیلی کم باشد جستجو مشابه یک الگوریتم جستجوی همسایگی اولین بهبود خواهد بود. بنابراین باید بین این دو پروسه تعادل ایجاد شود. 34 وضعیت تعادل: برای رسیدن به وضعیت تعادل در هر دما تعدادی حرکت )انتقال( باید به کار گرفته شود. پیشنهاد شده است که تعداد حرکت ها در هر دما دارای رابطه نمایی با اندازه مساله داشته و همچنین نسبتی از تعداد همسایگی باشد. تعداد حرکت ها ممکن است استاتیک یا انطباقی باشد. 17
های مبتنی بر یک جواب< تبرید شبیه سازی شده 35 تبرید شبیه سازی شده ANNEALING) (SIMULATED تابع سرد سازی: در الگوریتم SA دما به آرامی کاهش می یابد به نحویکه: و هر چه دما با سرعت کمتری کاهش یابد کیفیت جواب ها بهتر است ولی زمان محاسباتی بیشتر خواهد بود. دما به شیوه های مختلف می تواند به روز شود: خطی: در این حالت دما در مرحله i Ti به صورت زیر بدست می آید: که در آن β یک ثابت از پیش تعیین شده است. های مبتنی بر یک جواب< تبرید شبیه سازی شده 36 تبرید شبیه سازی شده ANNEALING) (SIMULATED هندسی: در این حالت دما با استفاده از رابطه زیر به روز می شود: که در آن 0.99 باید باشد. آزمایش است. ها نشان داده و بین 0.5 که است لگاریتمی: رابطه زیر استفاده می شود: این برنامه بسیار آرام است. 18
های مبتنی بر یک جواب< تبرید شبیه سازی شده تبرید شبیه سازی شده ANNEALING) (SIMULATED شرط توقف: تئوری دمای نهایی برابر با 0 را پیشنهاد می دهد. درعمل می توان الگوریتم را در زمانی که احتمال پذیرش یک حرکت ناچیز باشد متوقف کرد. 37 سایر شرایط توقف به شرح زیراست: رسیدن به یک دمای نهایی از پیش تعیین شده TF رسیدن به تعداد تکرار از پیش تعیین شده بدون بهبود در بهترین جواب رسیدن به یک تعداد از پیش تعیین شده از دفعاتی که درصدی از همسایه در هر دما پذیرفته می شوند. ها های مبتنی بر یک جواب< تبرید شبیه سازی شده 38 تبرید شبیه سازی شده ANNEALING) (SIMULATED مثال: هدف بیشینه سازی تابع پیوسته زیر است: یک جواب با استفاده از یک رشته 5 بیتی نشان داده می شود. یک جواب همسایه از تغییر تصادفی یک بیت ایجاد می شود. مقدار بهینه سراسری این تابع (01010) 10=x و f(x)=4100 است. سناریوی اول از جواب 19=x (11001) و f(x)=2399 با دمای اولیه T0 برابر 500 شروع می شود. سناریوی دوم از همان جواب با T0 برابر با 100 آغاز می شود. 19
های مبتنی بر یک جواب< تبرید شبیه سازی شده 39 تبرید شبیه سازی شده ANNEALING) (SIMULATED مثال)ادامه(: سناریوی اول های مبتنی بر یک جواب > تبرید شبیه سازی شده 40 تبرید شبیه سازی شده ANNEALING) (SIMULATED مثال)ادامه(: سناریوی دوم 20
های مبتنی بر یک جواب< جستجوی ممنوعه جستجوی ممنوعه SEARCH) (TABU جستجوی ممنوعه یک الگوریتم قطعی بسیار محبوب و پرکاربرد است. حافظه مند بودن این الگوریتم ویژگی اصلی آن است. 41 TS همانند یک الگوریتم LS عمل می کند ولی جواب های بدتر را می پذیرد تا از دام بهینه محلی فرار کند. معموال کلیه همسایه ها بررسی می شوند در حالیکه در SA یک همسایه تصادفی انتخاب می شود. همانند LS زمانیکه جواب همسایه بهتر یافت شود جایگزین جواب فعلی می شود. زمانیکه یک بهینه محلی یافت می شود جستجو با انتخاب یک جواب کاندید بدتر از جواب فعلی ادامه می یابد و بهترین جواب در همسایگی انتخاب می شود حتی اگر از جواب فعلی بهتر نباشد. TS در حقیقت یک تبدیل داینامیک از همسایگی است. در این روش ممکن است سیکل ایجاد شود یعنی جواب هایی که قبال بررسی شده اند مجددا بررسی شوند. های مبتنی بر یک جواب > جستجوی ممنوعه جستجوی ممنوعه SEARCH) (TABU 42 با معرفی مفاهیم ویژگی های جواب و حرکت در TS می توان برخی اطالعات درباره حافظه جستجو را از دست داد. در TS می توان برخی جواب هایی که هنوز بررسی نشده اند را رد نمود. اگر یک حرکت خوب ولی ممنوع باشد آیا هنوز باید آن را رد کرد لیست ممنوعه ممکن است خیلی محدود باشد یک جواب بررسی نشده ممکن است ممنوع باشد. برای برخی شرایط که aspiration criteria نامیده می شود جواب های ممنوعه ممکن است پذیرفته شوند. جواب های همسایه ای پذیرفته می شوند که ممنوع نباشند یا معیار aspiration را دارا باشند. 21
های مبتنی بر یک جواب< جستجوی ممنوعه جستجوی ممنوعه SEARCH) (TABU مهم ترین اجزای طراحی الگوریتم TS شامل موارد زیر است: لیست ممنوعه: هدف استفاده از حافظه کوتاه مدت جهت جلوگیری از بازدید مجدد جواب هایی است که قبال بازدید شده اند. زیرا نگهداری کلیه جواب هایی که بررسی شده اند عملی نیست. 43 معیار تنفس criterion) :(Aspiration یک معیار متداول شامل انتخاب یک حرکت ممنوعه است در صورتیکه این حرکت جوابی را ایجاد کند که از بهترین جواب بازدید شده بهتر باشد. معیار دیگر می تواند یک حرکت ممنوعه باشد که یک جواب بهتر از میان مجموعه جواب های پردازش شده با استفاده از یک ویژگی خاص باشد. های مبتنی بر یک جواب< جستجوی ممنوعه جستجوی ممنوعه SEARCH) (TABU برخی مکانیزم های پیشرفته ارائه شده در TS برای مواجهه با :)diversification( و تنوع )intensification ) تمرکز 44 تمرکز)حافظه میان مدت(: حافظه میان مدت جواب های خاص )مثال بهترین جواب( یافته شده در طول جستجو را نگهداری می کند. در این روش اولویت به ویژگی های مجموعه جواب های خاص به صورت احتمال موزون داده می شود. تنوع)حافظه بلند مدت(: حافظه بلند مدت کلیه جواب های بررسی شده در طول جستجو را نگهداری می کند. این حافظه کل فضای جواب را جستجو می کند. 22
های مبتنی بر یک جواب< جستجوی ممنوعه 45 جستجوی ممنوعه SEARCH) (TABU ساختار الگوریتم عمومی :TS های مبتنی بر یک جواب< جستجوی ممنوعه جستجوی ممنوعه SEARCH) (TABU عالوه بر اجزای جستجوی مربوط به الگوریتم های جستجوی محلی نظیر تعریف همسایگی نحوه نمایش جواب جواب اولیه و غیره در متاهیوریستیک TS حافظه جستجو نیز تعریف می شود که شامل لیست ممنوعه )حافظه کوتاه مدت( حافظه میان مدت و حافظه بلند مدت است. 46 23
های مبتنی بر یک جواب< جستجوی ممنوعه جستجوی ممنوعه SEARCH) (TABU 47 حافظه کوتاه مدت: نقش حافظه کوتاه مدت نگهداری تاریخچه اخیر جستجو برای جلوگیری از ایجاد سیکل است. یک حالت ساده نگهداری کلیه جواب های بازدید شده در پروسه جستجو است که در عمل استفاده نمی شود زیرا پیچیدگی نگهداری داده و زمان محاسباتی را افزایش می دهد. در عمل معموال اندازه لیست ممنوعه را محدود می کنند بعنوان مثال لیست شامل k جوابی است که اخیرا بازدید شده اند. یکی از محبوب ترین راه ها نگهداری ویژگی حرکت است. در این حالت لیست ممنوعه شامل حرکت های معکوس است که ممنوع می باشد. بعنوان مثال در صورتیکه حرکت m به جواب si اعمال شده باشد تا جواب sj ایجاد شود آنگاه حرکت عکس آن در لیست ممنوعه قرار می گیرد. های مبتنی بر یک جواب< جستجوی ممنوعه جستجوی ممنوعه SEARCH) (TABU 48 حافظه میان مدت: نقش حافظه میان مدت استخراج اطالعات بهترین جواب های یافته شده جهت هدایت جستجوی تشدید شده در نواحی امید بخش از فضای جواب است. یک رویکرد محبوب شروع مجدد جستجو با بهترین جواب بدست آمده و سپس ثابت کردن بهترین اجزای بدست آمده از جواب های خوب است. یکی از رویکردهای استفاده شده برای حافظه میان مدت حافظه تاخری memory) (recency است. ابتدا اجزای مربوط به یک جواب باید مشخص شوند )وابسته به مساله(. حافظه تاخری برای هر جزء تعداد تکرارهای متوالی که در آنها این جزء در جواب های بازدید شده حاضر است را نگهداری می کند. متداول ترین رویداد برای شروع پروسه تشدید یک بازه مشخص یا بعد از تعداد مشخص تکرار بدون بهبود است. 24
های مبتنی بر یک جواب< جستجوی ممنوعه جستجوی ممنوعه SEARCH) (TABU 49 حافظه بلند مدت: حافظه بلند مدت در TS جهت تقویت جستجوی سراسری diversification ارائه شده است. نقش آن سوق دادن جستجو به سمت نواحی جستجو نشده از فضای جواب است. مهم ترین نمایش استفاده شده برای حافظه بلند مدت حافظه فراوانی memory) (frequency است. همانند حافظه میان مدت اجزای مرتبط با یک جواب باید نخست تعریف شوند. حافظه بلند مدت برای هر جزء تعداد دفعاتی که جزء در کلیه جواب های بازدید شده حضور داشته است را به حافظه می سپارد. پروسه diversification به صورت دوره ای یا پس از تعداد مشخصی تکرار بدون بهبود می تواند اعمال شود. پروسه های متداول شامل شروع مجدد و نوسان استراتژیک هستند. های مبتنی بر یک جواب< جستجوی ممنوعه 50 جستجوی ممنوعه SEARCH) (TABU مثال: TS برای مساله TSP برای حل این مساله با استفاد از TS نیاز به لیست ممنوعه )حافظه کوتاه مدت( حافظه میان مدت و حافظه بلند مدت است. حافظه کوتاه مدت شامل لیستی از t یال است که برای تعداد l حرکت از انتخاب آنها جلوگیری می شود. پس از این تعداد حرکت یال ها قابل انتخاب هستند. می توان از ماتریس Boolean 2D برای تصمیم گیری درباره ممنوعه بودن با نبودن یک لبه استفاده کرد. حافظه بلند و میان مدت شامل یک لیست از t یال است که در آن آخرین k بهترین جواب ها درنظر گرفته شده است. این فرآیند انتخاب آنها در جواب های آتی را بر مبنای فراوانی حضور در مجموعه جواب های خوب و کیفیت آنها تشویق می کند. معیار تنفس معمول پذیرش حرکت های ممنوعه ای است که جواب های بهتر از بهترین جواب بازدید شده ایجاد نماید. 25
های مبتنی بر یک جواب< سایر متاهیوریستیک های مبتنی بر یک جواب سایر متاهیوریستیک های مبتنی بر یک جواب: 51 جستجوی محلی تکرارشونده SEARCH) (TERATED LOCAL جستجوی همسایگی SEARCH) متغیر (VARIABLE NEIGHBORHOOD جستجوی محلی هدایت شده SEARCH) (GUIDED LOCAL GRASP های جمعیت محور متاهیوریستیک های جمعیت محور 52 فاز تولید :(generation) در این فاز یک جمعیت جدید از جواب ها ایجاد می شود. فاز جایگزینی :(replacement) در این فاز انتخاب از جمعیت جاری و جمعیت جدید انجام می شود. این دو پروسه ممکن است بدون حافظه باشند یعنی دو پروسه تنها بر مبنای جمعیت جاری انجام شوند. در غیر اینصورت تاریخچه ای از جستجو در یک حافظه ذخیره می شود و می تواند در تولید جمعیت جدید و جایگزینی با جمعیت قدیمی استفاده شود. 26
های جمعیت محور 53 الگوریتم عمومی برای متاهیوریستیک های جمعیت محور: اختالف الگوریتم های جمعیت محور در پروسه های جستجو که در طی جستجو استفاده می کنند هست. حافظه و انتخاب تولید های جمعیت محور حافظه جستجو: حافظه یک متاهیوریستیک جمعیت محور شامل مجموعه اطالعاتی است که در طول جستجو نگهداری شده است. محتوای آن برای الگوریتم های مختلف متفاوت است. 54 27
های جمعیت محور تولید: 55 در این مرحله یک جمعیت جدید از جواب ها ایجاد می شود. بر مبنای پروسه تولید الگوریتم ها به دو دسته تقسیم می شوند: تکامل محور based) :(Evolution در این پروسه جواب های تشکیل دهنده جمعیت انتخاب شده و با استفاده از اپراتورهای دگرگونی )مانند mutation و )recombination تولید مجدد می شوند. تخته سیاه محور based) :(Blackboard در این دسته جواب های جمعیت در ساخت یک حافظه مشترک شرکت دارند. این حافظه مشترک مهم ترین ورودی در ساخت جمعیت جدید از جواب ها است. های جمعیت محور انتخاب: آخرین مرحله در الگوریتم های جمعیت محور شامل انتخاب جواب های جدید از مجموعه جمعیت جاری و جمعیت تولید شده است. 56 در استراتژی های قدیمی جمعیت تولید شده بعنوان جمعیت جدید انتخاب می شد. برخی استراتژی ها از نخبه گرایی استفاده کرده و بهترین جواب ها را از هر دو مجموعه انتخاب می کنند. در الگوریتم های بر مبنای تخته سیاه هیچ انتخاب صریحی وجود ندارد و تنها جمعیت جدید جواب ها حافظه جستجوی مشترک را به روز رسانی می کند که تولید جمعیت جدید را تحت تاثیر قرار می دهد. 28
های جمعیت محور جمعیت اولیه: 57 به دلیل تنوع زیاد جمعیت اولیه الگوریتم های جمعیت محور بیشتر الگوریتم های جستجوی exploration هستند در حالیکه الگوریتم های فرد محور بیشتر الگوریتم های جستجوی exploitation هستند. معیار اصلی در ایجاد جمعیت اولیه تنوع diversification است. اگر جمعیت اولیه به خوبی متنوع نباشد همگرایی نادرست رخ می دهد. استراتژی های مورد استفاده در ایجاد جمعیت اولیه به چهار دسته تقسیم می شوند: تولید تصادفی تنوع گرایی ترتیبی تنوع گرایی موازی و ایجاد جمعیت بصورت هیوریستیک. های جمعیت محور معیار توقف: پروسه های ایستا: در این پروسه ها پایان جستجو از پیش مشخص است. بعنوان مثال تعداد تکرار مشخص تعریف محدودیت بر منابع CPU و یا حداکثر تعداد ارزیابی تابع هدف 58 پروسه های انطباقی: در این پروسه ها پایان جستجو از پیش مشخص نیست. بعنوان مثال تعداد مشخص تکرار بدون بهبود رسیدن به یک جواب رضایت بخش)زمانی که حد پایین مشخص است(. برخی معیارهای توقف خاص یک الگوریتم تنوع به زیر یک آستانه مشخص برسد. معیار زمانیکه مثال بعنوان هستند 29
های جمعیت محور< الگوریتم های تکاملی الگوریتم های تکاملی ALGORITHMS) :(EVOLUTIONARY 59 هر یک از اعضا در جمعیت یک جواب کدگذاری شده است. تابع هدف برای هر جواب نشان دهنده شایستگی و سازگاری عضو مربوطه است. در هر مرحله اعضای جمعیت بعنوان والدین انتخاب می شوند و اعضا با شایستگی بیشتر با احتمال باالتری انتخاب می شوند. آنگاه اعضای انتخاب شده با استفاده از اپراتورهای متفاوتی نظیر ترکیب ( crossover )و جهش (mutation) اوالد جدید ایجاد می کنند. در نهایت با استفاده از طرح جایگزینی مشخص می شود کدام اعضا از والدین و اوالد باقی خواهند ماند. های جمعیت محور< الگوریتم های تکاملی 60 الگوریتم های تکاملی: یک الگوی عمومی برای الگوریتم های تکاملی 30
های جمعیت محور< الگوریتم های تکاملی مفاهیم مشترک برای الگوریتم های تکاملی: 61 نمایش جواب جمعیت اولیه تابع هدف استراتژی انتخاب: کدام والدین برای تولید نسل بعد انتخاب شوند استراتژی بازتولید: طراحی اپراتورهای crossover و mutation برای تولید اوالد استراتژی جایگزینی: اعضای جدید با اعضای قدیمی برای قرار گیری در جمعیت آتی )بقاء( رقابت می کنند. معیار توقف های جمعیت محور< الگوریتم های تکاملی 62 استراتژی انتخاب: استراتژی انتخاب تعیین می کند کدام اعضا برای بازتولید انتخاب شوند تعداد اوالد هر یک ایجاد کنند. استراتژی های اصلی به شرح زیر است: انتخاب چرخ قمار: احتمال انتخاب نسبتی از مطلوبیت نسبی عضو است: چه و نمونه گیری یکنواخت تصادفی: در این روش به صورت همزمان μ عضو انتخاب می شوند. انتخاب مسابقه ای: در این روش k عضو به صورت رندم انتخاب می شود و سپس یک تورنمنت به k عضو اعمال می شود تا بهترین عضو تعیین گردد. انتخاب بر مبنای رتبه: به جای میزان مطلوبیت رتبه عضو برای انتخاب در نظر گرفته می شود. 31
های جمعیت محور< الگوریتم های تکاملی 63 استراتژی بازتولید: یک ترکیب :(crossover) بر دو عضو اعمال می شود. وابسته به نمایش جواب است. ترکیب تک نقطه و دو نقطه: بصورت رندم )یا دو( محل انتخاب می شود و دو اوالد از طریق تغییر می شوند. اجزای والدین از آن محل ایجاد ترکیب یکنواخت: هر عضو از ولد بصورت رندم از یکی از والدین انتخاب می شود. :Intermediate crossover از طریق میانگین وزنی گرفتن از والدین اعمال می شود. های جمعیت محور< الگوریتم های تکاملی استراتژی بازتولید: جهش :(Mutation) این اپراتور بر یک عضو عمل می کند. این اپراتور با احتمال pm یک تغییر کوچک در هر عضو ایجاد می کند. 64 در حالت باینری جهش با استفاده از اپراتور flip operator انجام می شود. در حالت گسسته جهش با تغییر مقدار یک عضو به مقدار دیگری از بازه انجام می شود. در جایگشت جهش با استفاده از اپراتورهای تعویض شود. چرخش و.. انجام می 32
های جمعیت محور< الگوریتم های تکاملی استراتژی جایگزینی: این استراتژی شامل تعیین اعضا از جمعیت والدین و جمعیت اوالد برای بقاء در جمعیت بعد است. دو استراتژی حدی شامل موارد زیر است: 65 جایگزینی نسل: کلیه اعضای نسل والد توسط اعضای نسل اوالد جایگزین می شوند. جایگزینی :steady-state در هر تکرار تنها یک ولد ایجاد شده و جایگزین بدترین عضو جامعه والدین می شود. سایر استراتژی ها بین این دو استراتژی حدی قرار ارند یعنی در آنها λ عضو از جامعه والدین با اوالد جایگزین می شود که اغلب بر مبنای نخبه گزینی است. استراتژی هایی نیز وجود دارند که اعضای بد را با احتمالی انتخاب می کنند. های جمعیت محور< الگوریتم های تکاملی الگوریتم ژنتیک :GENETIC ALGORITHM الگوریتم ژنتیک یک نوع محبوب از الگوریتم های تکاملی است. GA از پروسه انتخاب احتمالی استفاده می کند یعنی انتخاب بر مبنای نسبت است. 66 در GA اپراتور crossover به دو جواب اعمال می شود همچنین اپراتور mutation به صورت رندم جواب ایجاد شده را به جهت ارتقای تنوع اصالح می نماید. اپراتور crossover بر مبنای n نقطه یا بصورت یکنواخت است. احتمال ثابت pm به اپراتور mutation اعمال می شود. پروسه جایگزینی بر مبنای جمعیت است بدین معنا که والدین با ولدها جایگزین می شوند. 33
های جمعیت محور< الگوریتم های تکاملی 67 Initial Population مثال-الگوریتم ژنتیک: (5,3,4,6,2) (2,4,6,3,5) (4,3,6,5,2) (2,3,4,6,5) (4,3,6,2,5) (3,4,5,2,6) (3,5,4,6,2) (4,5,3,6,2) (5,4,2,3,6) (4,6,3,2,5) (3,4,2,6,5) (3,6,5,1,4) های جمعیت محور< الگوریتم های تکاملی 68 Select Parents (5,3,4,6,2) (2,4,6,3,5) (4,3,6,5,2) (2,3,4,6,5) (4,3,6,2,5) (3,4,5,2,6) (3,5,4,6,2) (4,5,3,6,2) (5,4,2,3,6) (4,6,3,2,5) (3,4,2,6,5) (3,6,5,1,4) Try to pick the better ones. 34
های جمعیت محور< الگوریتم های تکاملی 69 Create Off-Spring 1 point (5,3,4,6,2) (2,4,6,3,5) (4,3,6,5,2) (2,3,4,6,5) (4,3,6,2,5) (3,4,5,2,6) (3,5,4,6,2) (4,5,3,6,2) (5,4,2,3,6) (4,6,3,2,5) (3,4,2,6,5) (3,6,5,1,4) (3,4,4,6,2) های جمعیت محور< الگوریتم های تکاملی 70 Create More Offspring (5,3,4,6,2) (2,4,6,3,5) (4,3,6,5,2) (2,3,4,6,5) (4,3,6,2,5) (3,4,5,2,6) (3,5,4,6,2) (4,5,3,6,2) (5,4,2,3,6) (4,6,3,2,5) (3,4,2,6,5) (3,6,5,1,4) (3,4,4,6,2) (5,4,6,3,5) 35
های جمعیت محور< الگوریتم های تکاملی 71 Mutate (5,3,4,6,2) (2,4,6,3,5) (4,3,6,5,2) (2,3,4,6,5) (4,3,6,2,5) (3,4,5,2,6) (3,5,4,6,2) (4,5,3,6,2) (5,4,2,3,6) (4,6,3,2,5) (3,4,2,6,5) (3,6,5,1,4) (3,4,4,6,2) (5,4,6,3,5) های جمعیت محور< الگوریتم های تکاملی 72 Mutate (5,3,4,6,2) (2,4,6,3,5) (4,3,6,5,2) (2,3,4,6,5) (2,3,6,4,5) (3,4,5,2,6) (3,5,4,6,2) (4,5,3,6,2) (5,4,2,3,6) (4,6,3,2,5) (3,4,2,6,5) (3,6,5,1,4) (3,4,4,6,2) (5,4,6,3,5) 36
های جمعیت محور< الگوریتم های تکاملی 73 Eliminate (5,3,4,6,2) (2,4,6,3,5) (4,3,6,5,2) (2,3,4,6,5) (2,3,6,4,5) (3,4,5,2,6) (3,5,4,6,2) (4,5,3,6,2) (5,4,2,3,6) (4,6,3,2,5) (3,4,2,6,5) (3,6,5,1,4) (3,4,4,6,2) (5,4,6,3,5) Tend to kill off the worst ones. های جمعیت محور< الگوریتم های تکاملی 74 Integrate (5,3,4,6,2) (2,4,6,3,5) (5,4,6,3,5) (3,4,4,6,2) (2,3,6,4,5) (3,4,5,2,6) (3,5,4,6,2) (4,5,3,6,2) (5,4,2,3,6) (4,6,3,2,5) (3,4,2,6,5) (3,6,5,1,4) 37
های جمعیت محور< الگوریتم های تکاملی 75 Restart (5,3,4,6,2) (2,4,6,3,5) (5,4,6,3,5) (3,4,4,6,2) (2,3,6,4,5) (3,4,5,2,6) (3,5,4,6,2) (4,5,3,6,2) (5,4,2,3,6) (4,6,3,2,5) (3,4,2,6,5) (3,6,5,1,4) های جمعیت محور< الگوریتم های تکاملی سایر انواع الگوریتم های تکاملی: 76 استراتژی های تکامل Strategies) crossover :(Evolution ندرتا استفاده می شود جایگزینی بر مبنای نخبه گرایی است و از اپراتور mutation خاص با توزیع نرمال استفاده می کنند. برنامه ریزی تکاملی Programming) :(Evolutionary تاکید آن بر mutation است و از recombination استفاده نمی کند. از اپراتور mutation با توزیع نرمال و قانون self-adaptation برای پارامترها استفاده می کنند. پروسه انتخاب والدین قطعی است. پروسه جایگزینی احتمالی است. برنامه ریزی ژنتیک: نمایش اعضای جمعیت بر مبنای ساختار درختی است. اپراتور crossover بر مبنای جابجایی زیر درخت و mutation بر مبنای تغییر تصادفی در درخت انجام می شود. 38
های جمعیت محور< جستجوی پراکنده جستجوی پراکنده :SCATTER SEARCH 77 SSیک متاهیوریستیک تکاملی و جمعیت محور است که جواب های انتخاب شده از یک مجموعه مرجع را ترکیب دوباره می کند تا جواب های جدید تولید کند. در این روش کار با ایجاد یک جمعیت اولیه که معیار تنوع و کیفیت را تامین می کند آغاز می شود. مجموعه مرجع با انتخاب جواب های خوب از جمعیت ساخته می شود. جواب های انتخاب شده ترکیب می شوند تا جواب های اولیه برای یک پروسه بهبود بر مبنای متاهیوریستیک فرد محور را فراهم کنند. بر مبنای نتیجه چنین پروسه ای مجموعه مرجع و جمعیت جواب ها به روز رسانی می شوند تا جواب های متنوع با کیفیت باال را ترکیب کنند. این پروسه تکرار می شود تا یک شرط توقف تامین شود. های جمعیت محور< جستجوی پراکنده 78 جستجوی پراکنده :SCATTER SEARCH 39
های جمعیت محور< جستجوی پراکنده 79 جستجوی پراکنده :SCATTER SEARCH های جمعیت محور< جستجوی پراکنده جستجوی پراکنده :SCATTER SEARCH طراحی یک الگوریتم جستجوی پراکنده بر مبنای 5 روش زیر است: روش ایجاد تنوع: پروسه ی حریصانه جهت متنوع کردن جستجو و انتخاب جواب های با کیفیت باال بکار گرفته می شود. روش بهبود: در این روش یک جواب با استفاده از متاهیوریستیک های فرد محور )جستجوی همسایگی( به یک یا چند جواب بهبود یافته تبدیل می شود. روش به روز رسانی مجموعه مرجع: مجموعه مرجع برای اطمینان از تنوع گرایی ضمن حفظ جواب های با کیفیت باال ساخته می شود. می توان RefSet1 )جواب ها با بهترین مقادیر تابع هدف( را انتخاب و RefSet2 )جواب ها با بیشترین تنوع( را به آن اضافه کرد. 80 روش ایجاد زیر مجموعه: در این روش یک زیر مجموعه از مجموعه مرجع برای ایجاد جواب های ترکیبی ایجاد می کند. در این روش معموال کلیه زیر مجموعه ها با اندازه ثابت r انتخاب می شوند. روش ترکیب جواب: یک زیر مجموعه از جواب های ایجاد شده بوسیله روش ایجاد زیر مجموعه ترکیب مجدد می شوند. این پروسه می تواند به عنوان حالت عمومی اپراتور crossover در EAs دیده شود که در آن بیش از دو جواب با یکدیگر ترکیب می شوند. 40
های جمعیت محور< جستجوی پراکنده 81 جستجوی پراکنده :SCATTER SEARCH مثال: الگوریتم جستجوی پراکنده برای مساله :p-median مساله p-median یک مساله جانمایی-تخصیص است. از m محل بالقوه برای p تسهیالت و مجموعه از n مشتری در دست است. همچنین مجموعه که نشان دهنده فاصله جهت تامین یک ماتریس. از تسهیالت قرار گرفته در محل تقاضای مشتریان قرار گرفته در محل این مساله شامل تعیین جانمایی p تسهیالت در محل های L و است.. به یک تسهیالت جهت کمینه کردن تابع هدف که تخصیص هر مشتری نشان دهنده مجموع فاصله بین مشتری ها و نزدیک ترین تسهیالت مربوطه آنها است. های جمعیت محور< جستجوی پراکنده جستجوی پراکنده :SCATTER SEARCH مثال)ادامه(: بدون از دست دادن کلیت فرض می کنیم مساله شامل انتخاب یک مجموعه S از p محل از U تسهیالت است. و برای 82. جایگذاری رمزگذاری: یک جواب برای مساله p-median می تواند در قالب یک بردار با اندازه n که نشان دهنده چیدمان کلیه مشتریان. U است باشد. متغیر یک تسهیالت در S را برای تعریف می کند و برای یک نقطه غیرتسهیالت است. همسایگی: همسایگی یک جواب بوسیله مجموعه ای از حرکت ها برای یک جابجایی بصورت تعریف می شود همسایگی یک جواب برابر است با: 41
های جمعیت محور< جستجوی پراکنده جستجوی پراکنده :SCATTER SEARCH مثال)ادامه(: 83 جمعیت اولیه: مجموعه L از نقاط به زیرمجموعه هایی افراز می شود. یک الگوریتم حریصانه به هر زیر مجموعه به صورت زیر اعمال می شود: یک نقطه اولیه u از به صورت اختیاری انتخاب می شود و 1-p تکرار از انتخاب دورترین نقطه به نقاط انتخاب شده انجام می شود. این الگوریتم حریصانه از نقاط اولیه متفاوت بکار گرفته می شود تا جواب های متفاوت برای هر زیر مجموعه بدست آید. برای هر جواب بدست آمده یک روش بهبود انجام می شود. برای بیشینه کردن تنوع نیاز به تعریف فاصله بین دو نقطه است. این فاصله بصورت زیر تعریف می شود: که در آن: های جمعیت محور< جستجوی پراکنده جستجوی پراکنده :SCATTER SEARCH مثال)ادامه(: با تعریف اندازه جمعیت Pop پارامتر α مشخص کننده نسبتی از جواب های انتخاب جواب های باقی شده با استفاده از تابع هدف است. برای مانده انتخاب با استفاده از تابع امتیاز دهی تنوع h انجام می شود: 84 و β یک پارامتر ثابت است. که در آن ایجاد مجموعه مرجع: جواب های RefSet1 بر مبنای برابری تابع هدف انتخاب می شوند. جواب های RefSet2 با استفاده از معیار تنوع انتخاب می شوند. زمانی که بهترین جواب ها از RefSet1 در RefSet قرار گرفتند دورترین نقاط از نقاط موجود در مجموعه مرجع بصورت تکرار شونده داخل می شوند. این پروسه به تعداد RefSet2 بار تکرار می شود. 42
های جمعیت محور< جستجوی پراکنده جستجوی پراکنده :SCATTER SEARCH مثال)ادامه(: 85 روش تولید زیر مجموعه: کلیه زیرمجموعه ها با اندازه 2=r انتخاب می شوند. تکرار از طریق ذخیره کردن اطالعات در ترکیب های انتخاب شده تاکنون جلوگیری می شود. روش ترکیب جواب ها: یک اپراتور crossover شامل دو جواب می تواند اعمال شود. ابتدا نقاط مشترک X برای هر دو جواب انتخاب می شود. ساخت مجموعه انجام می شود:. آنگاه نقطه و که در آن و یک نقطه رندم نحویکه. می شوند. این پروسه اعمال می شود تا زمانیکه به انتخاب های جمعیت محور< جستجوی پراکنده جستجوی پراکنده :SCATTER SEARCH مثال)ادامه(: 86 روش بهبود: یک جستجوی همسایگی با استفاده از کدگذاری و همسایگی تعریف شده اعمال می شود. هر جستجوی همسایگی نظیر جستجوی ممنوعه و گداختگی شبیه سازی شده قابل بکارگیری هستند. خروجی آن ImpSolSet نامیده می شود. روش به روز رسانی مجموعه مرجع: پروسه ایجاد مجموعه مرجع به مجموعه متشکل از RefSet و مجموعه جواب های بهبود یافته ImpSolSet اعمال می شود. 43
های جمعیت محور< کلونی مورچگان کلونی مورچگان :ANT COLONY 87 این روش بر مبنای تقلید رفتار جمعی مورچگان در کارهای پیچیده ای نظیر یافتن منابع غذا یافتن کوتاهترین مسیر و انتقال غذا توسعه داده شده است. در این روش با استفاده از مکانیزم ارتباطی خیلی ساده کوتاهترین مسیر بین دو نقطه تعیین می شود. برای این منظور یک ماده شیمیایی (pheromone) بر زمین به جا گذاشته می شود که با استفاده از آن سایر مورچه ها محل غذا را شناسایی می کنند. این ماده به مرور تبخیر می شود. همچنین مقدار ماده بر جا مانده با مقدار غذا رابطه مستقیم دارد. های جمعیت محور< کلونی مورچگان کلونی مورچگان :ANT COLONY این الگوریتم از دو بخش اصلی تشکیل شده است: ساخت جواب به روز رسانی فرومون. 88 44
های جمعیت محور< کلونی مورچگان کلونی مورچگان :ANT COLONY ساخت جواب: جواب ها می توانند با استفاده از پروسه های حریصانه تصادفی که در آنها یک جواب به شیوه احتمالی ایجاد می شود ساخته شوند. مساله بهینه سازی می تواند در قالب یک گراف تصمیم گیری که در آن مورچه ها یک مسیر ایجاد می کنند دیده شود. معموال در این پروسه موارد زیر در نظر گرفته می شود: 89 فرومون: در واقع فرومون حافظه ای است که ویژگی های جواب های خوب ایجاد شده را به حافظه می سپارد. و ساخت جواب های جدید توسط مورچه ها را هدایت می کند و این ماده بصورت داینامیک در طول پروسه جستجو تغییر می کند. اطالعات مساله: اطالعات مربوط به مساله به مورچه ها در تصمیم گیری شان کمک می کند. های جمعیت محور< کلونی مورچگان کلونی مورچگان :ANT COLONY به روز رسانی فرومون: به روز رسانی فرومون با استفاده از جواب های ایجاد شده انجام می شود. قانون به روز رسانی در دو مرحله اعمال می شود: 90 مرحله تبخیر :(evaporation) در این مرحله فرومون در هر مرحله به صورت زیر به اندازه یک ضریب ثابت کاهش می یابد. مرحله تقویت :(reinforcement) در جواب های ایجاد شده به روز می شود. مرحله این از استفاده با فرومون 45
های جمعیت محور< کلونی مورچگان کلونی مورچگان :ANT COLONY مهم ترین نکات در طراحی یک ACO تعیین موارد زیر است: 91 اطالعات فرومون: مدل فرومون بخش اصلی الگوریتم ACO است. که شامل تعریف یک بردار از پارامترهای مدل با عنوان پارامترهای فرومون است که هر جزء از آن نشان دهنده اطالعات مربوطه در ساخت یک جواب برای یک مساله است. ساخت جواب: در ساخت جواب مهم ترین موضوع تعریف هیوریستیک محلی برای هدایت فرآیند جستجو با کمک فرومون است. به روز رسانی فرومون: باید تعریف شود. استراتژی باید اطالعات برای تقویت یادگیری فرومون های جمعیت محور< کلونی مورچگان کلونی مورچگان :ANT COLONY 92 مثال: در این مثال به کارگیری الگوریتم ACO برای مساله TSP بررسی می شود. فرض می کنیم گراف ورودی باشد. فرومون: یک فرومون با هر لبه از گراف G مرتبط است. اطالعات فرومون بوسیله یک ماتریس که در آن هر عضو ماتریس میزان تمایل برای حضور ضلع در تور را نشان می دهد. ماتریس فرومون در زمان شروع دارای مقادیر یکسان است. در طول پروسه فرومون ها برای براورد مطلوبیت یک ضلع از گراف به روز رسانی می شوند. ساخت جواب: هر مورچه یک تور را به شیوه تصادفی ایجاد می کند. با در دست داشتن یک شهر اولیه i یک مورچه شهر بعدی j را با احتمال زیر انتخاب می کند: 46
های جمعیت محور< کلونی مورچگان 93. هر کلونی مورچگان :ANT COLONY مثال)ادامه(: یک هیوریستیک وابسته به مساله با در نظر گرفتن برابر که در آن نشان دهنده فاصله بین شهر i و j است تعریف می شود. چقدر مقدار بیشتر باشد فاصله بین دو شهر کوتاه تر است. محاسبه احتمال انتقال به صورت زیر محاسبه می شود: سپس پروسه به روز رسانی فرومون باید مشخص شود. بعنوان مثال هر مورچه مقدار فرومون را بسته به یال های انتخاب شده افزایش می دهد به نحویکه مقدار افزایش نسبتی از کیفیت جواب بدست آمده از تور π باشد: های جمعیت محور< کلونی مورچگان کلونی مورچگان :ANT COLONY مثال)ادامه(: سپس پروسه کالسیک تبخیر برای فرومون ها به کار گرفته می شود. برای هر یال فرومون با استفاده از رابطه زیر به روز رسانی می شود: 94 47
های جمعیت محور< کلونی مورچگان 95 کلونی مورچگان :ANT COLONY مثال)ادامه(: های جمعیت محور< بهینه سازی اردحام ذرات بهینه سازی ازدحام ذرات :PARTICLE SWARM OPTIMIZATION 96 این الگوریتم شامل یک جمعیت با N ذره در حال حرکت در یک فضای جستجوی D نشان داده می شود. بعدی است. هر ذره i یک جواب کاندید است و بوسیله بردار هر ذره دارای یک بردار موقعیت و یک بردار سرعت است که نشان دهنده جهت حرکت و مرحله ذره است. هر ذره به صورت تکرار شونده موقعیت خود را به سوی بهینه سراسری با استفاده از دو فاکتور: بهترین موقعیت بررسی شده توسط خودش به روز رسانی و بهترین موقعیت مشاهده شده بوسیله کلیه ذرات می کند. نشان دهنده اختالف بین موقعیت فعلی ذره i و بهترین موقعیت بردار همسایه آن است. 48
های جمعیت محور< بهینه سازی اردحام ذرات بهینه سازی مسیر ذرات :PARTICLE SWARM OPTIMIZATION به روز رسانی سرعت: سرعت که به معنای میزان تغییر اعمال شده به ذرات است به صورت زیر تعریف می شود: 97 که در آن ρ1 و ρ2 دو متغیر تصادفی در بازه [0,1] هستند. ثابت های C1 و C2 فاکتورهای یادگیری هستند. سرعت جهت و اندازه حرکت را نشان می دهد. است. جزء سرعت محدود به بازه های جمعیت محور< بهینه سازی اردحام ذرات بهینه سازی مسیر ذرات :PARTICLE SWARM OPTIMIZATION 98 گاهی اوقات ی پارامتر w در ضرب می شود تا تاثیر سرعت قبلی را کنترل کند. 49
های جمعیت محور< بهینه سازی اردحام ذرات بهینه سازی مسیر ذرات :PARTICLE SWARM OPTIMIZATION به روز رسانی موقعیت: موقعیت هر ذره در فضای جواب با استفاده از رابطه زیر به روز رسانی می شود: 99 به روز رسانی بهترین جواب یافته شده: هر ذره استفاده از رابطه زیر به روز رسانی می کند: با را محلی جواب بهترین همچنین بهترین جواب سراسری به صورت زیر به روز رسانی می شود: های جمعیت محور< بهینه سازی اردحام ذرات 100 بهینه سازی مسیر ذرات :PARTICLE SWARM OPTIMIZATION 50