الگوریتم پرندگان یا اجتماع ذرات چیست؟

الگوریتم پرندگان یا اجتماع ذرات چیست؟

ایده Particle Swarm Optimization، برای اولین بار توسط کندی و ابرهارت در سال ۱۹۹۵ مطرح شد. PSO، یک الگوریتم محاسبه ای تکاملی الهام گرفته از طبیعت و براساس تکرار می‌باشد. منبع الهام این الگوریتم، رفتار اجتماعی حیوانات، همانند حرکت دسته جمعی پرندگان و ماهی‌ها بود. از این جهت که PSO نیز با یک ماتریس جمعیت تصادفی اولیه، شروع می‌شود، شبیه بسیاری دیگر از الگوریتم های تکاملی همچون الگوریتم ژنتیک پیوسته و الگوریتم رقابت استعماری است. برخلاف الگوریتم ژنتیک ، PSO هیچ عملگر تکاملی همانند جهش و تزویج ندارد. از این جهت می شود گفت که الگوریتم رقابت استعماری شباهت بیشتری به PSO دارد تا به GA. هر عنصر جمعیت، یک ذره نامیده می‌شود (که همان معادل کروموزوم در GA و یا کشور در الگوریتم رقابت استعماری) است. در واقع الگوریتم PSO از تعداد مشخصی از ذرات تشکیل می-شود که به طور تصادفی، مقدار اولیه می گیرند. برای هر ذره دو مقدار وضعیت و سرعت، تعریف می شود که به ترتیب با یک بردار مکان و یک بردار سرعت، مدل می‌شوند. این ذرات، بصورت تکرارشونده ای در فضای n‌ـ‌بعدی مسئله حرکت می کنند تا با محاسبه مقدار بهینگی به عنوان یک ملاک سنجش، گزینه‌های ممکن جدید را جستجو کنند. بُعد فضای مسئله، برابر تعداد پارامترهای موجود در تابع مورد نظر برای بهینه سازی می باشد. یک حافظه به ذخیره بهترین موقعیت هر ذره در گذشته و یک حافظه به ذخیره بهترین موقعیت پیش آمده در میان همه ذرات، اختصاص می‌یابد. با تجربه حاصل از این حافظه ها, ذرات تصمیم می گیرند که در نوبت بعدی، چگونه حرکت کنند. در هر بار تکرار، همه ذرات در فضای nـ‌بعدی مسئله حرکت می¬کنند تا بالاخره نقطه بهینه عام، پیدا شود. ذرات، سرعت‌هایشان و موقعیت‌شان را بر حسب بهترین جواب‌های مطلق و محلی به‌روز می‌کنند. یعنی
v_{m,n}^{new} = v_{m,n}^{old} + {\Gamma _1} \times {r_1} \times (p_{m,n}^{local\,best} - p_{m,n}^{old}) + {\Gamma _2} \times {r_2} \times (p_{m,n}^{global\,best} - p_{m,n}^{old})
p_{m,n}^{new} = p_{m,n}^{old} + v_{m,n}^{new}

که در آن

  • {v_{m,n}}، سرعت ذره
  • {p_{m,n}}، متغیر‌های ذره
  • {r_1},\,{r_2}، اعداد تصادفی مستقل با توزیع یکنواخت
  • {\Gamma _1},\,{\Gamma _2}\,، فاکتورهای یادگیری
  • p_{m,n}^{local\,best}، بهترین جواب محلی
  • p_{m,n}^{global\,best}، بهترین جواب مطلق
می‌باشند. الگوریتم PSO، بردار سرعت هر ذره را به‌روز کرده و سپس مقدار سرعت جدید را به موقعیت و یا مقدار ذره می‌افزاید. به‌روز کردن‌های سرعت، تحت تأثیر هر دو مقدار بهترین جواب محلی و بهترین جواب مطلق قرار می‌گیرند. بهترین جواب محلی و بهترین جواب مطلق، بهترین جوابهایی هستند که تا لحظه‌ی جاری اجرای الگوریتم، به ترتیب توسط یک ذره و در کل جمعیت به دست آمده‌اند. ثابت‌های {\Gamma _1} و {\Gamma _2}\, به ترتیب، پارامتر ادراکی و پارامتر اجتماعی نامیده می‌شوند. مزیت اصلی PSO این است که پیاده‌سازی این الگوریتم ساده بوده و نیاز به تعیین پارامتر‌های کمی دارد. همچنین PSO قادر به بهینه‌سازی توابع هزینه‌ی پیچیده با تعداد زیاد مینیمم محلی است.

مراحل اجرای الگوریتم توده ذرات (PSO) به صورت زیر  می باشد:

الگوریتم pso

دانلود رایگان کد متلب الگوریتم توده ذرات PSO

دانلود فایل توضیحات خط به خط کد : جهت دریافت فایل توضیحات خط به خط ک الگورتیم pso از لینک زیر اقدام کنید و فایل را با ۵ هزار تومان خریداری و دانلود کنید

 

 

فلوچارت الگوریتم توده ذرات نیز بصورت زیر می باشد:

الگوریتم پرندگان یا اجتماع ذرات چیست؟

فایل آموزشی ای شامل ۵۲ صفحه بصورت اسلاید نیز که در دانشگاه خوارزمی تدریس میشود را نیز میتوانید از  فایل آموزش الگوریتم PSO دانلود کنید.

 

همچنین کد متلب الگوریتم PSO بصورت رایگان برای دانلود بر روی وب سایت قرار گرفته است. همچنین یک فایل توضیحات خط به خط کد نیز بر روی سایت قرار دارد که به فهم کد الگوریتم pso کمک میکند. برای دانلود رایگان کد متلب الگوریتم Pso اینجا را کلیک کنید.

 

نظر خود را اینجا بنویسید!

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

telegramchanel کانال تلگرام  با عضویت در کانال تلگرام از مطالب آموزشی و مطالب جدید وب سایت مطلع شوید

@matlab24Dotir

جهت عضویت کلیک کنید