الگوریتم PSO
الگوریتم PSO یا (Particle swarm optimization) بهینه سازی ازدحام ذرات (PSO) یک روش بهینه سازی تصادفی مبتنی بر جمعیت است که توسط دکتر کندی Dr. Eberhart و دکتر ابراهارت Dr. Kennedy در سال 1995 طراحی شده است که الهام گرفته از رفتار اجتماعی ازدحام پرندگان و پرورش ماهی است. الگوریتم PSO شباهت زیادی با تکنیک های محاسباتی تکاملی مانند الگوریتم ژنتیک (GA) دارد. این سیستم با جمع آوری راه حل های تصادفی و جستجو برای بهینه سازی با به روز رسانی نسل ها آغاز می شود.
با این حال، بر خلاف GA الگوریتم PSO هیچ اپراتور تکاملی مانند CrossOver و جهش ندارد. در PSO، راه حل های بالقوه، ذرات نامیده می شوند که از طریق فضای مشکل با دنبال کردن ذرات بهینه مطلوب پرواز می کنند. اطلاعات دقیق در بخش های زیر داده می شود. در مقایسه با الگوریتم ژنتیک، الگوریتم PSO آسان است و چند پارامتر برای تنظیم آن وجود دارد. این الگوریتم در بسیاری از زمینه ها به طور موفقیت آمیزی مورد استفاده قرار گرفته است: بهینه سازی عملکرد، آموزش شبکه های عصبی مصنوعی، کنترل سیستم فازی و سایر زمینه ها می تواند استفاده شود.
الگوریتم PSO
همانطور که قبلا اشاره شد، الگوریتم PSO رفتارهای ازدحام پرنده را شبیه سازی می کند. تصور کنید سناریوی زیر: گروهی از پرندگان به طور تصادفی در یک منطقه در معرض غذا قرار می گیرند. در منطقه مورد جستجو تنها یک قطعه غذا وجود دارد. همه پرندگان نمی دانند کجا غذا است. اما آنها می دانند که چقدر مواد غذایی در هر تکرار است. بنابراین بهترین استراتژی برای یافتن غذا چیست؟ راه حل این است که دنبال پرنده ای که نزدیکتر به غذا است را دنبال کنید.
طراحان PSO از این سناریو اقتباس کردند و از آن برای حل مشکلات بهینه سازی استفاده کردند. در PSO، هر یک از راه حل یک “پرنده” در فضای جستجو است. ما آن را “ذره” می نامیم. تمام ذرات دارای مقادیر تناسب هستند که توسط تابع تناسب برای بهینه سازی ارزیابی می شوند و دارای سرعت هایی هستند که پرواز ذرات را هدایت می کنند. ذرات از طریق فضای مشکل با ذرات بهینه مطلوب جریان می یابند.
پاورپوینت الگوریتم PSO یا ازدحام ذرات
در این بخش پاورپوینت الگوریتم PSO یا ازدحام ذرات قرار داده شده است. این پاورپوینت در 23 اسلاید در قالب ppt. یا pptx. با قابلیت ویرایش برای ارائه درسی آماده دانلود می باشد.
الگوریتم PSO گرافیکی – سورس کد الگوریتم ازدحام ذرات PSO گرافیکی در متلب
سورس کد الگوریتم PSO گرافیکی در متلب عنوان موضوعی است که در این بخش به آن پرداخته شده است. در این مجموعه جزئیات بهتری از شبیه ساز الگوریتم ازدحام ذرات PSO در GUI متلب ارائه شده است.
نحوه عملکرد PSO
الگوریتم PSO با گروهی از ذرات تصادفی (راه حل) آغاز می شود و سپس با به روز رسانی نسل ها جستجو می کند. در هر تکرار، هر ذره با دو ارزش “بهترین” به روزرسانی می شود. اولین مورد بهترین راه حل ( تابع تناسب ) است که تاکنون به دست آورده است. (ارزش تناسب نیز ذخیره می شود.) این ارزش pbest نامیده می شود. یکی دیگر از “بهترین ها” ارزشی است که تا کنون توسط هر ذره در جمعیت به دست آمده است. این بهترین ارزش جهانی بهترین است و به نام gbest است. هنگامی که یک ذره بخشی از جمعیت را به عنوان همسایگان توپولوژیکی خود می گیرد، بهترین ارزش بهترین محلی است و به نام lbest نامیده می شود.
پس از پیدا کردن بهترین مقادیر pbest و gbest ذره سرعت و موقعیت خود را با معادلات زیر به روز می کند.
Xnew = Xcurrent + Vnew Vnew = Vcurrent + c1 * rand() * (Xpbest - Xcurrent) + c2 * rand() * (Xgbest - Xcurrent)
که در آن V سرعت ذرات است، Xcurrent ذره فعلی (راه حل) است. pbest و gbest قبلا تعریف شده اند. rand یک عدد تصادفی بین (0،1) است. C1، C2 عامل یادگیری هستند. معمولا c1 = c2 = 2 هستند. برای یادگیری کامل این الگوریتم پیشنهاد میکنیم فیلم آموزش الگوریتم PSO را تهیه و دانلود کنید.
آموزش الگوریتم PSO در متلب — مفاهیم تئوری و نحوه پیاده سازی
در فیلم آموزش الگوریتم PSO به آموزش مفاهیم تئوری و نحوه پیاده سازی و کدنویسی آن در Matlab پرداخته شده است. برای اطلاعات بیشتر روی لینک زیر کلیک کنید.
تعیین درخت پوشای مینیمم با الگوریتم PSO در متلب
در این بخش با استفاده از فرآیند تولید جواب الگوریتم PSO، مسئله درخت پوشای مینیمم در نرم افزار متلب ارائه شده است. برای اطلاعات بیشتر روی لینک زیر کلیک کید.
شبه کد الگوریتم PSO
For each particle Initialize particle END Do For each particle Calculate fitness value If the fitness value is better than the best fitness value (pBest) in history set current value as the new pBest End Choose the particle with the best fitness value of all the particles as the gBest For each particle Calculate particle velocity according equation (a) Update particle position according equation (b) End
آموزش الگوریتم PSO در پایتون
در این بخش، فیلم آموزش الگوریتم PSO و نحوه پیاده سازی آن در پایتون Python قرار داده شده است. برای اطلاعات بیشتر روی لینک زیر کلیک کنید.
مراجع نوشته
http://www.engr.iupui.edu/~eberhart/
http://www.alife.org
http://www.aridolan.com
http://www.red3d.com/cwr/boids/
http://iridia.ulb.ac.be/~mdorigo/ACO/ACO.html
درباره امین جلیل زاده رزین
پایه گذار و موسس وب سایت آموزشی پی استور، مدرس دانشگاه فنی و حرفه ای، برنامه نویس و تحلیل گر سیستم، پژوهشگر در حوزه الگوریتم های ابتکاری، فرا ابتکاری، یادگیری ماشین، شبکه و پایگاه داده. ایشان در زبان های برنامه نویسی متعدد، نظیر ++C، سی شارپ، PHP ،Java، متلب MATLAB و Python تسلط و سابقه تدریس فعال دارند.
ممنون مهندس 👏
خیلی خوب بود.
[…] استفاده از الگوریتم های تکاملی همچون الگوریتم ژنتیک، PSO، گرگ خاکستری، الگوریتم وال، الگوریتم زنبور عسل، […]
[…] کنند از جمله مهمترین آنها می توان به الگوریتم ژنتیک، PSO، رقابت استعماری و کرم شب تاب اشاره […]
[…] را می توانید در همین سایت از مقاله ای کامل تحت عنوان الگوریتم PSO مطالعه […]
[…] و الگوریتم های مبتنی بر رفتار اجتماعی ( مانند الگوریتم دسته پرندگان PSO ) را باهم ترکیب کرده است و سعی می کند یک تعادل بین بررسی […]
[…] از آن جمله می توان به الگوریتم های کلونی مورچه، ژنتیک، ازدحام ذرات، الگوریتم زنبور و الگوریتم های پویا اشاره کرد. در این […]