معین اوحدی کارشک اردیبهشت 1391 فهرست    .1 .2 .3 .4 .5 اهداف بهینه سازی بهینه سازی : الهام از طبیعت الگوریتم رقابت استعماری مفاهیم نمای کلی فلوچارت مزایا معایب   .1 .2 .3  .1 .2 .3 الگوریتم ژنتیک مفاهیم ویژگی ها کارکرد عملگر های الگوریتم ژنتیک درالگوریتم رقابت استعماری جستجوی.

Download Report

Transcript معین اوحدی کارشک اردیبهشت 1391 فهرست    .1 .2 .3 .4 .5 اهداف بهینه سازی بهینه سازی : الهام از طبیعت الگوریتم رقابت استعماری مفاهیم نمای کلی فلوچارت مزایا معایب   .1 .2 .3  .1 .2 .3 الگوریتم ژنتیک مفاهیم ویژگی ها کارکرد عملگر های الگوریتم ژنتیک درالگوریتم رقابت استعماری جستجوی.

Slide 1

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 2

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 3

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 4

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 5

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 6

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 7

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 8

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 9

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 10

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 11

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 12

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 13

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 14

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 15

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 16

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬


Slide 17

‫معین اوحدی کارشک‬
‫اردیبهشت ‪1391‬‬

‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬

‫اهداف بهینه سازی‬
‫بهینه سازی‪ :‬الهام از طبیعت‬
‫الگوریتم رقابت استعماری‬
‫مفاهیم‬
‫نمای کلی‬
‫فلوچارت‬
‫مزایا‬
‫معایب‬

‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪‬‬

‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫الگوریتم ژنتیک‬
‫مفاهیم‬
‫ویژگی ها‬
‫کارکرد‬
‫عملگر های الگوریتم ژنتیک درالگوریتم‬
‫رقابت استعماری‬
‫جستجوی کامل تر محیط‬
‫رفع همگرایی سریع‬
‫باز گردن قفل الگوریتم‬

‫اهداف بهینه سازی‬

‫‪‬‬

‫‪ ‬هدف از بهينهسازي يافتن بهترين جواب قابل قبول‪ ،‬با توجه به محدوديتها و نيازهاي‬
‫مسأله است‪.‬‬
‫‪ ‬براي يك مسأله‪ ،‬ممكن است جوابهاي مختلفي موجود باشد كه براي مقايسه آنها و‬
‫انتخاب جواب بهينه‪ ،‬تابعي به نام تابع هدف تعريف ميشود‪ .‬انتخاب اين تابع به طبيعت‬
‫مسأله وابسته است‪.‬‬
‫‪ ‬مثال‪:‬‬
‫زمان سفر يا هزينه از جمله اهداف رايج بهينهسازي شبكههاي حمل و نقل ميباشد‪.‬‬

‫بهینه سازی‪ :‬الهام از طبیعت‬

‫‪‬‬
‫الگوریتم های بهینه سازی الهام گرفته شده از طبیعت‪:‬‬
‫‪ ‬الهام گرفته شده از فرآیند های بیولوژیکی و فیزیولوژیکی‪ .‬مانند‪ :‬الگوریتم ژنتیک – الگوریتم‬
‫بهینه سازی کلونی مورچه ها‪.‬‬
‫‪ ‬الگوریتم های الهام گرفته شده از پدیده های فیزیکی‪ .‬مانند‪ :‬الگوریتم تبرید شبیه سازی‬
‫شده‪.‬‬
‫‪ ‬الهام از نمود های انسانی و پدیده های اجتماعی‪ ,‬فرهنگی‪ ,‬سیاس ی و ‪ . ...‬مانند‪ :‬الگوریتم‬
‫رقابت استعماری‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬

‫‪ ‬الگوریتم رقابت استعماری مانند سایر الگوریتم های تکاملی با یک جمعیت اولیه شروع می‬
‫شود‪.‬‬
‫‪ ‬هر عنصر جمعیت یک کشور نامیده می شود‪.‬‬
‫‪ ‬کشور ها به دو دسته ی استعمارگر و مستعمره تقسیم می شوند‪.‬‬
‫‪ ‬هسته ی اصلی الگوریتم را سیاست جذب و رقابت های استعماری تشکیل می دهد‪.‬‬
‫سیاست جذب‪ :‬کشور های استعمارگر با روش هایی چون احداث مدارس به زبان خود‪ ,‬مردم‬
‫کشور های مستعمره را از هویتشان دور کرده و به سمت فرهنگ خود متمایل می سازند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬مفاهیم‬

‫‪‬‬
‫‪ ‬اگر قدرت مستعمره از کشور استعمارگر بیشتر شود‪ ,‬جای این دو عوض می شود‪.‬‬
‫‪ ‬قدرت امپراطوری عبارت است از مجموع قدرت کشور استعمارگر و درصدی از میانگین قدرت‬
‫کشورهای مستعمره‪ .‬بنابر این هرکشور استعمار گر سعی دارد تا با جذب مستعمراتش آن ها ره‬
‫پیشرفت دهد‪ .‬اما این پیشرفت با اندکی انحراف (و نه به صورت مستقیم) صورت می گیرد‪ .‬در‬
‫واقعیت نیز چنین است که همیشه سیاست جذب کشور استعمار گر مطابق پیش بینی ها انجام نمی‬
‫شود‪.‬‬

‫‪ ‬امپراطوری های ضعیف به تدریج قدرت خود را از دست داده و در نهایت از بین می روند‪ .‬در نهایت‬
‫حالتی بوجود می اید که تنها یک امپراطوری قدرتمند باقی مانده و بقیه از بین می روند‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬نمای کلی‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬فلوچارت‬

‫‪‬‬

‫الگوریتم رقابت استعماری‪ :‬مزایا‬

‫‪‬‬

‫الگوریتم رقابت استعماری نسبت به سایر روش های الهام گرفته شده از طبیعت مزایای زیادی‬
‫دارد‪ .‬از جمله‪:‬‬
‫‪ ‬نو بودن ایده‪.‬‬
‫‪ ‬مبتنی بر رفتار اجتماعی انسان که هوشمندانه تر از رفتار های بیولوژیکی اوست‪.‬‬
‫‪ ‬سرعت همگرایی باال‪.‬‬
‫‪ ‬توانایی بهینه سازی توابعی با تعداد متغیر های بسیار زیاد‪.‬‬

‫الگوریتم رقابت استعماری‪ :‬معایب‬

‫‪‬‬

‫الگوریتم رقابت استعماری اگر چه الگوریتمی بسیار قدرتمند برای بهینه سازی توابع چند متغیره‬
‫است اما ایراداتی نیز دارد که از آن جمله موارد زیر قابل ذکر است‪:‬‬
‫‪ ‬ضعف در جستجوی کامل محیط‪ :‬وقتی ابعاد مساله بسیار زیاد شود‪ ,‬الگوریتم از‬
‫جستجوی کامل فضای حالت عاجز خواهد شد‪.‬‬
‫‪ ‬همگرایی بسیار سریع‪ :‬الگوریتم‪ ,‬بسیار سریع به نقاط بهینه ی محلی میل می کند و بنابراین‬
‫باید بارها دوباره اجرا شود‪.‬‬
‫‪ ‬قفل کردن‪ :‬گاهی وضعیتی بوجود می آید که تغییراتی که توسط عملگر الگوریتم اتفاق می‬
‫افتد (جا به جایی کشور ها بین امپراطوری ها) در یک حلقه ی بسته بارها و بارها تکرار می‬
‫شود و تنها راه حل این خواهد بود که الگوریتم دوباره اجرا شود‪.‬‬

‫الگوریتم ژنتیک‪ :‬مفاهیم‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫الگوریتم ژنتیک برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید‬
‫می کند‪.‬‬
‫هر یک از این راه حلها با استفاده از یک “ تابع تناسب ”مورد ارزیابی قرار می گیرد‪.‬‬
‫تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی می شوند ‪.‬که اینکار باعث‬
‫تکامل راه حلها می گردد‪.‬‬
‫بدین ترتیب فضای جستجو در جتهی تکامل پیدا میکند که به راه حل مطلوب برسد‪.‬‬
‫در صورت انتخاب صحیح پارامترها‪ ،‬این روش میتواند بسیار موثر عمل نماید‪.‬‬

‫الگوریتم ژنتیک‪ :‬ویژگی ها‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند بکار‬
‫گرفته شود‪.‬‬
‫در مسایلی با فضای فرضیه پیچیده که تاثیر اجزا آن در فرضیه کلی ناشناخته باشند‬
‫می توان از الگوریتم ژنتیک برای جستجو استفاده نمود‪.‬‬
‫برای بهینه سازی گسسته بسیار مورد استفاده قرار می گیرد‪.‬‬
‫الگوریتم ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو می توان کامپیوترهای‬
‫ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد‪.‬‬
‫امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست‪.‬‬
‫از لحاظ محاسباتی پرهزینه هستند‪.‬‬
‫تضمینی برای رسیدن به جواب بهینه وجود ندارد‪.‬‬

‫الگوریتم ژنتیک‪ :‬کارکرد‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫در ابتدای الگوریتم تعداد زیادی کروموزوم تصادفی تولید می شود‪.‬‬
‫هر کروموزوم برابر یکی از جوابهای حل مسئله است ‪.‬‬
‫فرض کنید ‪ N‬کروموزوم تولید شده باشد ‪.‬‬
‫مراحل زیر تا حل کامل مسئله ادامه می یابد ‪:‬‬
‫هر کروموزوم را تست کنید و ببینید تا چه حدی برای حل مسئله جواب می دهد و یک عدد‬
‫‪ fitness score‬به آن نسبت دهید‪.‬‬
‫دو تا از کروموزوم ها انتخاب کنید – انتخاب شدن بستگی به ‪ fitness-score‬دارد – روش‬
‫معروف ‪.Roulette wheel:‬‬
‫با توجه به ‪ crossover rate‬بیتهای دو کروموزون را در نقاط تصادفی جابجا کنید‪.‬‬
‫در کروموزون های انتخاب شده بعض ی بیت ها را با توجه به ‪ mutation rate‬بر عکس کنید‪.‬‬
‫مراحل مرحله قبل را تا وقتی جمعیت جدیدی به اندازه ‪ N‬بوجود نیامده ادامه دهید ‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫جستجوی کامل تر محیط‬
‫همان طور که اشاره شد الگوریتم رقابت استعماری در جستجوی محیط ضعیف عمل‬
‫می کند‪ .‬اگر از عملگر اصلی الگوریتم ژنتیک (برش) و الگوریتم رقابت استعماری (حرکت‬
‫مستعمره به سمت استعمارگر و جا به جایی کشور ها بین امپراطوری ها) همزمان‬
‫استفاده شود جستجو بسیار کامل تر انجام خواهد شد‪ .‬عملگر برش باعث افزایش‬
‫انحراف از معیار در هر امپراطوری می شود و از این طریق باعث جستجوی کامل تر‬
‫خواهد شد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫رفع همگرایی سریع‬
‫هنگامی که با استفاده از عملگر برش محیط کامل تر جستجو شود سرعت همگرایی نیز‬
‫کاهش خواهد یافت‪ .‬اما در صورتی که باز هم سرعت همگرایی از حد انتظار بیشتر باشد‬
‫می توان از عملگر جهش نیز بهره برد‪ .‬به این صورت که یکی از کشور های یک امپراطوری‬
‫به صورت تصادفی انتخاب شده و در یک امپراطوری دیگر قرار می گیرد‪.‬‬

‫عملگر های الگوریتم ژنتیک درالگوریتم رقابت‬
‫استعماری‬

‫‪‬‬

‫باز گردن قفل الگوریتم‬
‫از عملگر جهش می توان برای باز کردن قفل الگوریتم نیز بهره برد‪ .‬پس از انتخاب تصادفی‬
‫یک کشور یک کپی از آن در امپراطوری دیگر قرار می گیرد‪ .‬حال در صورتی که محدودیت‬
‫جا به جایی کشور ها بین امپراطوری ها از بین برود نرخ تغییرات به شدت زیاد شده و در‬
‫نتیجه الگوریتم اصطالحا باز خواهد شد‪.‬‬

‫قدردانی‬

‫‪‬‬