الگوریتم تکاملی توده ذرات (PSO Algorithm)

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

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

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

ايده Particle Swarm Optimization، براي اولين بار توسط کندي و ابرهارت در سال 1995 مطرح شد. 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 از لینک زیر اقدام کنید و فایل را با 5 هزار تومان خریداری و دانلود کنید

 

 

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

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

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

 

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

 

مطالب مرتبط

دیدگاهتان را بنویسید

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