الگوریتم پرش قورباغه S HUFFLED F ROG L EAPING A LGORITHM رئوس مطالب  تاریخچه  دید بیولوژیکی  مقدمه  الگوریتم اصلی SFLA  بهبود الگوریتم SFLA  کاربردهای الگوریتم  حل مسئله TSP با این الگوریتم  مقایسه.

Download Report

Transcript الگوریتم پرش قورباغه S HUFFLED F ROG L EAPING A LGORITHM رئوس مطالب  تاریخچه  دید بیولوژیکی  مقدمه  الگوریتم اصلی SFLA  بهبود الگوریتم SFLA  کاربردهای الگوریتم  حل مسئله TSP با این الگوریتم  مقایسه.

Slide 1

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 2

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 3

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 4

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 5

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 6

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 7

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 8

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 9

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 10

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 11

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 12

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 13

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 14

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 15

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 16

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 17

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 18

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 19

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 20

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 21

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 22

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 23

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 24

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 25

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 26

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 27

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 28

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 29

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 30

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 31

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 32

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 33

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 34

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 35

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 36

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 37

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 38

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 39

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 40

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 41

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 42

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43


Slide 43

‫الگوریتم پرش قورباغه‬
S HUFFLED F ROG L EAPING
A LGORITHM

‫رئوس مطالب‬
‫‪‬‬

‫تاریخچه‬

‫‪‬‬

‫دید بیولوژیکی‬

‫‪‬‬

‫مقدمه‬

‫‪‬‬

‫الگوریتم اصلی ‪SFLA‬‬

‫‪‬‬

‫بهبود الگوریتم ‪SFLA‬‬

‫‪‬‬

‫کاربردهای الگوریتم‬

‫‪‬‬

‫حل مسئله ‪TSP‬با این الگوریتم‬

‫‪‬‬

‫مقایسه با الگوریتم های فرا‪-‬مکاشفه ای‬

‫‪‬‬

‫نتایج‬

‫‪‬‬

‫منابع‬

‫‪2‬‬

‫تاریخچه‬
‫‪ ‬این الگوریتم درسال ‪ 2003‬توسط ‪ Eusuff‬و ‪ Lansey‬ارائه شده‬
‫است‪.‬‬
‫‪ ‬درسال ‪ 2006‬نیز ارائه کنندگان ‪ ,SFLA‬این الگوریتم را برای مسائل‬
‫بهینه سازی گسسته نیز استفاده کردند‪.‬‬
‫‪ ‬در سال ‪ 2009‬بهبود این الگوریتم برای مسائل بهینه سازی پیوسته‬
‫توسط ‪ Zhen‬ارائه شده است‪.‬‬

‫‪3‬‬

‫بحث زیستی‬
‫‪ ‬الهام گرفتن از حرکت دسته جمعي گروهي از موجودات زنده مثل‬
‫پرواز پرندگان‪ ,‬پرش قورباغه ها و ‪...‬‬
‫‪ ‬ویلسون(‪ ,)1975‬یک جامعه شناس‪ " :‬حداقل در تئوري‪ ,‬هر فردي‬
‫از این دسته ميتواند از اکتشافات و تجربیات گذشته افراد دیگر براي‬
‫پیدا کردن غذا سود ببرد“‪.‬‬
‫‪ ‬پایه و اساس الگوریتم جهش قورباغه‪ ,‬تکامل از طریق اطالعاتي که‬
‫بین افراد جمعیت به اشتراک گذاشته ميشود ميباشد‪.‬‬

‫‪4‬‬

‫مقدمه‬
‫ت پیدا کردن ‪ MIN‬و ‪ MAX‬یک تابع درعلوم مهندسی‪.‬‬
‫‪ ‬اهمی ِ‬
‫‪ ‬روش جستجوی فرا‪-‬کاشفه ای (آگاهانه‪ ,‬کورکورانه)‪.‬‬
‫‪ ‬فرا‪-‬مکاشفه ای‪ :‬الگوریتمهاي مکاشفهاي که از توابع کشف کننده در‬
‫استراتژي جستجوي خود استفاده ميکنند‪.‬‬
‫‪ ‬فرا‪-‬مکاشفهايها بر پایه انواع مختلفي از پدیدههاي طبیعي هستند‪.‬‬

‫‪5‬‬

‫نمونه هاي فرا ‪ -‬مکاشفه‬
‫‪ ‬نمونههایي از فرا‪-‬مکاشفهايهاي معمول‪:‬‬
‫‪o‬‬

‫بهینهسازي مستعمره مورچگان)‪,(ACO‬‬

‫‪o‬‬

‫الگوریتمهاي ژنتیک)‪,(GA‬‬

‫‪o‬‬

‫شبکههاي عصبي مصنوعي)‪,(ANN‬‬

‫‪o‬‬

‫بهینهسازي ازدحام ذرات)‪,(PSO‬‬

‫‪o‬‬

‫الگوریتم تکامل پیچیده به هم آمیخته شده)‪,(SCE‬‬

‫‪o‬‬

‫حرارت شبیهسازي شده)‪.(SA‬‬

‫‪6‬‬

‫مفاهیم الگوریتم ممتیک‬
‫‪ ‬الگوریتم ممتیک(‪ )MA‬یک روش بر پایه جمعیت براي جستجوي‬
‫مکاشفهاي در مسائل بهینهسازي ميباشد‪.‬‬
‫‪ ‬شکست فرا‪-‬مکاشفه ای های دیگر در مقابل ‪.MA‬‬
‫‪ ‬مم یک الگوي اطالعات واگیرداري ميباشد که همانند یک انگل ذهن‬
‫بشر یا حیوان را آلوده ميکند‪.‬‬
‫‪ ‬مفهوم واقعي یک مم‪ ,‬مموتیپ نامیده ميشود‪.‬‬
‫‪ ‬مم = ژن‬

‫و‬

‫مموتیپ = کروموزوم‬

‫‪7‬‬

‫مقایسه مم ها و ژن ها‬
‫‪ ‬ممها براي افزایش قابلیت ارتباط در بین موجودات (قورباغهها در‬
‫‪ )SFLA‬انتخاب ميشوند‪ .‬ژنها براي قابلیت تکثیر سلولي انتخاب‬
‫مي شوند‪.‬‬
‫‪ ‬تکامل ممتیک و ژنتیک در اصول کار مشابه هم هستند‪ ,‬ولی تکامل‬
‫ممتیک یک مقداري مکانیزم انعطاف پذیرتري دارد‪.‬‬

‫‪ ‬ژنها فقط ميتوانند توسط والدینشان به فرزندان منتقل شوند‪.‬‬
‫‪ ‬مم ها مي توانند در حالت کلي بین دو فرد از جمعیت منتقل شوند در‬
‫حالیکه ژن ها بین دو نسل منتقل می شوند‪.‬‬

‫‪8‬‬

‫مقایسه مم ها و ژن ها ( ادامه )‬
‫‪ ‬تکرار ژن توسط نسبت کوچک تعداد فرزندان تولید شده از یک والد‬
‫محدود ميشود‪.‬‬
‫‪ ‬تعداد افرادي که ميتوانند یک مم را از یک فرد خاص بدست آورند‬
‫معمولا بینهایت است‪.‬‬
‫‪ ‬ممها توسط شخصي که دارنده آنهاست بهبود ميیابند چیزي که در‬

‫ژنها هیچ وقت اتفاق نميافتد‪.‬‬

‫‪9‬‬

‫خصوصیات مهم ‪SCE‬‬
‫‪ ‬الگوریتم ‪ SCE‬به جستجوي سراسري به عنوان یک پروسه تکامل‬
‫طبیعي نگاه ميکند‪.‬‬
‫‪ ‬هر عضوي از یک گروه‪ ,‬یک والد محسوب ميشود که میتواند در‬
‫پروسههاي تکثیر سهیم شود‪.‬‬
‫‪ ‬والدین بهتر با احتمال بیشتري براي تولید نسل بعدي توزیع می شوند‪.‬‬
‫‪ ‬فرزندان در محلهاي تصادفي ایجاد ميشوند‪.‬‬
‫‪ ‬هر فرزند جدید با بدترین مکان در زیر گروه فعلي جایگزین ميشود‪.‬‬

‫‪10‬‬

‫قالب فرا ‪ -‬مکاشفه براي ‪SFLA‬‬
‫‪ ‬بهبودالگوریتم فرا‪-‬مکاشفهاي با استفاده از ترکیب ایده های ‪ SCE‬و‬
‫‪PSO‬‬
‫‪ ‬این فرا‪-‬مکاشفه جدید الگوریتم جهش درهم قورباغه(‪ )SFLA‬نامیده‬
‫شده است و بر پایه ممتیک موجودات زنده مي باشد‪.‬‬
‫‪ ‬جستجو بر پایه تکامل ممها ميباشد که در تعامل بین افراد‪ ,‬و یک‬

‫تغیر سراسري بین اطالعاتشون بدست ميآید‪.‬‬

‫‪11‬‬

‫جمعیت مجازي از قورباغه ها‬

‫‪ ‬الگوریتمهاي تکاملي سنتي بر روي مفهوم جمعیت تکیه دارند‪.‬‬
‫‪ ‬در ‪ ,SFLA‬افراد جامعه مهم نیستند و به جمعیت به عنوان دستهاي از‬
‫ممها نگاه ميشود‪.‬‬
‫‪ ‬هر فردي یک مم تکي را در اختیار دارد(شامل مموتیپ ميشود)‪.‬‬
‫‪ ‬الگوریتم ‪ SFL‬تعداد افراد را نميشمارد؛ بلکه از یک مدل انتزاعي‬
‫به نام جمعیت مجازي استفاده ميکنند‪.‬‬

‫‪12‬‬

‫جزئیات الگوریتم‬
‫‪ ‬الگوریتم ‪ SFL‬ترکیبي از روشهاي تصادفي و قطعي مي باشد‪.‬‬
‫‪ ‬استراتژيهاي قطعي به الگوریتم اجازه ميدهند که از اطالعات‬
‫سطحي واکنش به عنوان راهنمایي براي جستجوي مکاشفهاي استفاده‬
‫کنند‪ ،‬مانند اتفاقي که در ‪ PSO‬ميافتد‪.‬‬
‫‪ ‬تصادفي بودن این الگوریتم انعطاف پذیري و قدرت الگوي جستجو‬

‫را تضمین ميکند‪.‬‬
‫‪ ‬انتخاب جمعیت ‪ Ω‬از قورباغهها توسط عمل جستجو‪.‬‬
‫‪ ‬تقسیم جمعیت اولیه به گروه های موازی‪.‬‬

‫‪13‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪ ‬عملیات انتقال اطالعات در ممها به صورت رقابتي است‬
‫قورباغههاي با بهترین مم را با احتمال بیشتري براي تولید ایدههاي بعدي‬
‫توزیع می کنیم‬
‫انتخاب قورباغهها با توزیع احتمال مثلثي رقابتي بین ایدهها ایجاد می کند‪.‬‬
‫مم جدید‬

‫مکان جدید بعد از پرش‬

‫مموتیپ جدید‬

‫اندازه پرش در هر مرحله‬

‫‪14‬‬

‫جزئیات الگوریتم ( ادامه )‬
‫‪‬‬

‫بعد از تعداد مشخصي تکرار تکامل ممتیک‪ ،‬درهم ميشوند و‬
‫گروههاي جدید شکل ميگیرد‪.‬‬

‫‪ ‬درهم کردن باعث ميشود کیفیت ممها بعد از اینکه قورباغهها در‬
‫نواحي مختلف ایدههایشان را به یکدیگر انتقال دادند‪ ,‬بال برود‪.‬‬

‫‪15‬‬

‫مراحل ‪SFLA‬‬
‫‪ ‬استراتژي فرا‪-‬مکاشفهاي ‪SFLA‬‬
‫‪ .A‬اکتشاف سراسری‬

‫‪ .B‬اکتشاف محلی ‪ :‬الگوریتم جهش قورباغه‬

‫‪16‬‬

‫‪ . A‬اکتشاف سراسری‬
‫• ‪(m‬تعداد گروهها) و ‪(n‬تعداد قورباغهها در هر گروه)‬

‫• )‪ U(1),U(2),…,U(F‬در فضاي‬
‫• محاسبه )‪f(i‬‬

‫‪17‬‬

‫‪F=m.n‬‬

‫‪.1‬مقدار دهی‬
‫اولیه‬

‫‪ ,‬که ‪ :d‬تعداد متغیرهاي تصمیم گیري‬

‫• ‪ F‬قورباغه را به ترتیب نزولي مقادیر کارایيشان مرتب مي کنیم‪.‬‬
‫• آرایه }‪ ،X={U(i),f(i),i=1,2,…,F‬مکان بهترین قورباغه )‪Px=U(1‬‬

‫‪.2‬تولید یک‬
‫جمعیت مجازي‬

‫‪.3‬رتبه بندي‬
‫قورباغهها‬

‫‪.4‬گروهبندي‬
‫قورباغهها‬

‫‪ . A‬اکتشاف سراسری ( ادامه )‬
‫• هر گروه بر طبق الگوریتم جهش قورباغه که در‬
‫ادامه توضیح داده خواهد شد تکامل ميیابد‪.‬‬

‫• مرتب کردن ‪ X‬به ترتیب نزولی و بروزرسانی ‪Px‬‬
‫• اگر حداقل یک قورباغه بتواند در تعداد تکرار‬
‫مشخص شده بهترین ممتیک را بدون تغییر حمل کند‬
‫آنگاه الگوریتم به جواب همگرا شده است‬

‫‪18‬‬

‫‪.5‬تکامل ممتیک‬
‫در هر گروه‬

‫‪.6‬درهم کردن‬
‫گروهها‬

‫‪.7‬تست‬
‫همگرایي‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه‬
‫‪im=0‬‬
‫• متغیر ‪ im‬تعداد گروهها را ميشمارد‬
‫• متغیر ‪ iN‬تعداد مراحل تکامل را ميشمارد ‪iN=0‬‬

‫• ‪im=im+1‬‬

‫• ‪iN=iN+1‬‬

‫‪19‬‬

‫‪.0‬مقدار دهی‬
‫اولیه‬

‫‪.1‬افزایش‬
‫متغیرها‬

‫‪.2‬افزایش‬
‫متغیرها‬

‫• به قورباغههاي کاراتر وزنهاي بیشتري داده ميشود‪.‬‬

‫• ‪ q‬قورباغه تصادفی انتخاب می شود و‪ Z‬را تشکیل می دهند‬

‫‪.3‬ایجاد‬
‫زیرگروه‬

‫‪ B.‬اکتشاف محلی ‪:‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• زیر گروه ‪Z‬به ترتیب نزولی مرتب شده‬
‫• بهترین قورباغه در ‪ PB‬و بدترین قورباغه در ‪PW‬‬

‫‪20‬‬

‫‪.4‬مرتب نمودن‬
‫‪Z‬‬

‫‪.5‬تغییر مکان‬
‫‪PW‬‬

‫‪6‬‬

‫اکتشاف محلی ‪B. :‬‬
‫الگوریتم جهش قورباغه ( ادامه )‬
‫• اگر مکان جدید قورباغه بهبود پیدا نکرد آنگاه تکامل مم قطع می شود و یک قورباغه‬
‫تصادفی ایجاد می شود‬

‫• هرگاه بدترین قورباغه در زیر گروه بهبود یافت آنگاه ‪ Z‬را در مکان اصلی خود در‬
‫جانشین کن و آنرا مرتب کن‬
‫گروه‬

‫• اگر ‪ iN
‫• اگر ‪ im
‫‪21‬‬

‫‪.7‬سانسور‬

‫‪.8‬بهبود‬
‫گروه‬

‫‪9‬‬

‫‪10‬‬

‫مفهوم گروه و زیر گروه‬

‫‪22‬‬

‫اندازه جهش‬

‫‪23‬‬

‫فلوچارت اکتشاف سراسری‬

‫‪24‬‬

‫فلوچارت اکتشاف محلی‬

‫‪25‬‬

‫فضای جستجوی محلی و سراسری‬

‫‪26‬‬

‫پیشرفت ‪ SFLA‬بر روی‬
‫تابع ‪D E J ONG ’ S‬‬

‫‪27‬‬

28

29

‫پارامترهای بهینه سازی ‪SFLA‬‬
‫‪ ‬در ‪ SFLA‬شبیه به الگوریتم های مکاشفه ای دیگر انتخاب پارامترها‬
‫حیاتی می باشد‪.‬‬
‫‪ SFLA ‬پنج پارامتر اساسی دارد‪m,n,q,N,Smax:‬‬
‫‪ ‬در تجربه ثابت شده است که ‪ F=m.n‬مهمترین پارامتر می باشد‪.‬‬
‫‪ ‬مقدار ‪ F‬به پیچیدگی مسئله بستگی دارد‪.‬‬

‫‪ ‬احتمال بدست آوردن بهینه سراسری با افزایش نمونه ها افزایش می‬
‫یابد‪ ،‬اما بار محاسباتی نیز افزایش می یابد‪.‬‬

‫‪30‬‬

‫پارامترهای بهینه سازی‬
‫( ادامه ) ‪SFLA‬‬
‫‪ ‬اگر تعداد قورباغه ها در هر دسته کم باشد مزایای استراتژی تکاملی‬
‫ممتیک نیز کاهش می یابد‪.‬‬
‫‪ ‬متغیر ‪ q‬با زمان همگرایی رابطه غیر مستقیم دارد‪.‬‬
‫‪ ‬اگر ‪ N‬کوچک باشد ایده بین گروه ها کمتر منتقل می شود و بیشتر‬
‫گروه ها درهم می شوند‪.‬‬
‫‪‬‬

‫اگر ‪ Smax‬کوچک باشد توانایی اکتشاف سراسری الگوریتم‬
‫پایین می آید و اگر بزرگ باشد الگوریتم به بهینه واقعی‬
‫همگرا نخواهد شد‪.‬‬

‫‪31‬‬

‫بهبود ‪SFLA‬‬
‫‪ ‬در الگوریتم ‪ SFLA‬موقعیت جدید بدترین قورباغه در امتداد خطی‬
‫قرار می گیرد که بین ‪ XW‬و ‪ XB‬می باشد‪.‬‬

‫‪‬‬

‫در این روش موقعیت جدید بدترین قورباغه نمی تواند در اطراف این خط‬
‫باشد‪.‬‬

‫‪ ‬وجود این محدودیت باعث کاهش سریع سرعت همگرایی و یا‬
‫همگرا شدن به جواب های غلط می شود‪.‬‬

‫‪32‬‬

‫‪ SFLA‬بهبود ( ادامه )‬

‫‪ Rand ‬عدد تصادفی بین ‪0‬و‪1‬‬
‫‪‬‬

‫‪ C‬یک عدد ثابت بین ‪1‬و‪ 2‬و ‪ Ri‬اعداد تصادفی بین ‪1-‬و‪1‬‬

‫‪‬‬

‫‪ Wi,max‬ماکزیمم محدوده ای که قورباغه در بعد ‪i‬ام می بیند‪.‬‬

‫‪‬‬

‫‪ Dmax‬بیشترین جابجایی که قورباغه می تواند داشته باشد‪.‬‬

‫‪33‬‬

‫حل مسئله ‪ TSP‬با ‪SFLA‬‬
‫‪ TSP ‬یک محکی برای الگوریتم های فرا‪-‬مکاشفه ای است‪.‬‬
‫‪ ‬بردار مکان هر قورباغه به عنوان یک راه حل برای ‪ TSP‬می باشد‪.‬‬
‫‪i ‬امین قورباغه به صورت زیر می باشد‪:‬‬
‫‪ ‬پارامترهای‬

‫برچسب های ‪ N‬شهر می باشد‪.‬‬

‫‪ ‬تابع ارزیابی )‪ f(i‬اندازه هر تور می باشد‪.‬‬
‫‪ ‬طبق رابطه زیر قوباغه های با بیشترین مقدار برازندگی احتمال‬
‫بیشتری برای انتخاب در زیر گروه را دارند‪:‬‬

‫‪34‬‬

‫‪ SFLA‬با ‪ TSP‬حل مسئله ( ادامه )‬
‫‪ ‬برای بهبود بدترین قورباغه )‪ U(q‬در زیرگروه ‪ ،‬یک رشته متوالی‬
‫تصادفی از ‪ PB‬را انتخاب نموده و در مکان های متناظر در‪ PW‬آنرا‬
‫جانشین می کنیم‪ .‬اگر محدودیت های ‪TSP‬به خطر افتاد مکان های باقیمانده‬
‫را به طور تصادفی جانشین می کنیم‪.‬‬

‫‪35‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬

‫‪36‬‬

‫نتایج عملی ‪ TSP‬با استفاده از ‪SFLA‬‬
‫( ادامه )‬

‫‪37‬‬

‫مقایسه ‪ SFLA‬با روش های دیگر‬

‫‪38‬‬

39

‫منابع‬

40



Eusuff, M. M. and K. E. Lansey (2001). Water
Distribution Network Design Using the Shuffled Frog
Leaping Algorithm, Orlando, Florida, USA, ASCE.



Eusuff, M., K. Lansey, et al. (2006). "Shuffled frogleaping algorithm: a memetic meta-heuristic for
discrete optimization." Engineering Optimization



Elbeltagi, E., T. Hegazy, et al. (2005). "Comparison
among five evolutionary-based optimization
algorithms." Advanced Engineering Informatics

) ‫منابع ( ادامه‬

41



Elbeltagi, E., T. Hegazy, et al. (2007). "A modified
shuffled frog-leaping optimization algorithm:
applications to project management." Structure and
Infrastructure Engineering: Maintenance,
Management, Life-Cycle Design and Performance



Xue-hui, L., Y. Ye, et al. (2008). Solving TSP with
Shuffled Frog-Leaping Algorithm.



Zhen, Z. Y., D. B. Wang, et al. (2009). Improved
shuffled frog leaping algorithm for continuous
optimization problem.

42

43