کامپیوتر و IT و اینترنت

الگوریتم PSO (ازدحام ذرات یا بررسی رفتار پرندگان / ماهی ها)

صفحه 1:

صفحه 2:
الگوریتم 60 5 ۳( ازدحام ذرات یا برررسی رفتارپررندگان/ماهی ها )

صفحه 3:
PSO ساختار الگوریتم الهام گرفته شده از زندگی موجوداتی است که بصورت گروهی زندگی می کنند. همه پرندگان دنبال پرنده اول هستند با یک انحراف. ۱6/2 ها با ذرلشپ رندگانبه سم ولحی‌موفق‌میلمی ‎ans‏ (نّازجمله هیوریستیک های بسیار ۴ ۱/۲۱۷( است.

صفحه 4:
ايده يايه در ‎PSO‏ أهر ذره در حال جابجابي است (در غير اینصورت نمي‌تواند جستجو کندا) ‎all‏ دليل اين جابجابى؛ داراى سرعت ابست. ‎al‏ ذره در هر مرحله موقعيتى را كه بهترين نتبجه رادر آن داشته به خاطر می‌سپارد. (بهشرين موقعييت فردی هر ذره) قط دلايل فوق بتنهايى خبلى خوب نبستند. ذرات به اين كمك احتياج دارند كه بدانند در كجا به جستجو ai لأذرات در روه ذرات با هم هميارى مىكنند. ذرات اطلاعاتى كه دربرة موقعيتى كه در أن هستند را باهم تبادل م كنئدء

صفحه 5:
هر ذره چه کارهایی را انجام می دهد؟ ایک ذره در هر مرحلة زمانی (۲11068160) باید به یک موقعیت جدید جابجا شود. این جابجایی با تنظيم سرعت ذره انجام می‌شود. #لاتنظيم سرعت بقرار زير است: -سرعت فعلی - سیم وزنيافتة تصادفی در جهت بهترین موقعیت منفرد هر ذره - سهم وزن‌یافتة تصادفی در جهت بهترین موقعیت موجود در همسایگی ذره #اننظيم موقعیت بشکل زي الامقدار قديمى موقعيت -سرعت جدید

صفحه 6:
جستجوی نا آگاهانه یا کور جستجوی آگاهانه با هیورستیک ‏ 6 ۳ ‎wt‏ جستجوی متاهیوریستیک ‎Jee.‏ ‏5 ۲۰

صفحه 7:
الگوریتم‌های فرا ابتکاری با فراتکاملی یا فرااکتشافی * نوعی از الگوریتم‌های تصادفی هستند که برای یافتن پاسخ بهینه به کار می‌روند. روش‌ها و الگوریتم‌های بهینه‌سازی الف.الگوریتمهای دقیق( 62261 ) قادر به یافتن جواب بهینه به صورت دقیق هستند اما در مورد مسائل بهینه‌سازی سخت کارایی کافی ندارند و زمان اجرای آن‌ها متناسب با ابعاد مسائل به صورت نمایی افزایش می‌یابد. ب. الگوریتم‌های تقریبی ‎9G approximate algorithms))‏ « یافتن جواب‌های خوب (نزدیک به بهینه) در زمان حل کوتاه براى مسائل بهینه‌سازی سخت هستند.

صفحه 8:
انواع الگوریتم های تقریبی * الگوریتم‌های ابتکاری (516ز۳6۲) ‎(meta-heuristic),¢ (cu1|,3 °‏ ۶ فوق ابتکاری ‎Chyper heuristic)‏ الگوریتم‌های فراابتکاری. یکی از انواع الگوربتم‌های بهینه‌سازی تقریبی هستند که دارای راهکارهای برونرفت از نقاط بهینه محلی هستند و قابلیت کاربرد در طیف گسترده‌ای از مسائل را دارند.

صفحه 9:
دسته‌بندی الگوریتم‌های فراابتکاری * مبتنی برسیک جواب و مبتنی بر جمعیت: الگوربتم‌های مبتنی بر یک جواب در حین فرایند جستجو یک جواب را تغییر می‌دهند. در حللی که در الگوریتم‌های مبتنی بر جمعیت در حین جستجو یک جمعیت از جواب‌ها در نظر گرفته می‌شوند. * الهام گرفته شده از طبیعت و بدون الهام از طبیعت: بسیاری از الگوریتم‌های فراابتکاری از طبیعت الهام گرفته شده‌لند. در این میان برخی از الگوریتم‌های فراابتکاری نیز از طبیعت الهام گرفته نشده‌اند.

صفحه 10:
۰ با حافظه و بدون حافظه * برخی از الگوربتم‌های فرابتکاری فاقد حافظه می‌باشند. به اين معنا كه. اين نوع الكوريتمها از اطلاعات بدست امده در حين جستجو استفاده نمی کنند (به طور مثال تبرید شبیه‌سازی شده). * برخی از الگوریتم‌های فراابتکاری نظیر جستجوی ممنوعه از حافظه استفاده مى كنند. اين حافظه اطلاعات بدست آمده در حين جستجو را در خود ذخيره مى ‎WS‏

صفحه 11:
۰ قطعی و احتمالی یک الگوریتم فراابتکاری قطعی نظیر جستجوی ممنوعه. مسئله را با استفاده از تصمیمات قطعی حل می‌کند. اما در الگوریتم‌های فراابتکاری احتمللی نظیر تبیید شبیه‌سازی شده.یک سری قوانین احتمالی در حین جستجو مورد استفاده قرار می‌گیرد.

صفحه 12:
انواع الگوریتم‌های فر اابتکاری بر پایه جمعیت الگوریتم‌های تکاملی(الگوریتم ژنتیک. برنامه‌ریزی ژنتیک ...4 بهینه‌سازی کلونی مورچگان؛ کلونی زنبورهاء روش بهینه‌سازی ازدحام ذرات. الگوریتم قهرمانی در لیگهای ورزشی. بهینه‌سازی ملهم از فیزیک نور الگوریتم ريشه -پاجوش و الگوریتم چکه آبهای هوشمند

صفحه 13:
انواع الگوریتم‌های متداول فراابتکاری مبتنی بر یک جواب * الگوریتم جستجوی ممنوعه * الگوریتم تبرید شبیه‌سازی شده

صفحه 14:
نکات کلیدی ۳50 خاصیت هوش جمعی هوش ذرات کنترل ۳۴5۵ تعداد ذرات محدوده ذرات شرایط توقف

صفحه 15:
هو ش حمء ‎Swarm Intelligence‏ هوش جمعی خاصیتی است سیستماتیک که در این سیستم؛ عامل هابه طور محلی با هم همکاری می نمایند و رفتار جمعی تمام عامل هاء باعث یک همگرایی در نقطه ای نزدیک به جواب بهینه سراسری می شود. نقطه قوت این الگوریتم عدم نیاز به یسك کنترل سراسری می باشد. هر ذره(عامل) خود مختاری نسبی دار که می تواند در سراسر فضای جواب ها ‎OS >‏ کند و می بایست با سایرذرات(عامل ها) همکاری داشته باشد. یکی از الگوریتم های مشهور هوش جمعی بهینه سازی توده ذرات می باشند

صفحه 16:
هو ش حمه ‎Swarm Intelligence‏ در کاربردهای محاسباتی, از موجودلتی مانند مورچه هاء زنبورهاء موربلنه هاء دسته های ماهیان و دسته ی پرند گان» الگو برداری هی شود. در این نوع اجتماعات. هر یکت از موجودات ساختار نستباً ساده ای دارند ولی رفتار جمعی آنها بی نهایت پیچیده است. برای مثال در کولهنی مورچه هاء هر یکت از مورچه ها یک کار ساده ی مخصوص را انجام می دهد ولی به طور جمعی عمل و رفتار مورچه هاء ساختن بهینه ی لایه محافظت از ملکه و نوزادانء تمیزکردن لانه» یافتن بهترین منابع غذایی و بهینه سازی استراتژی حمله را تضمین می کند.

صفحه 17:
هوش جمعی ‎Swarm Intelligence‏ مثال همیاری: >) god) go

صفحه 18:
هوش ذرات * بر پایه یکسری رفتار جمعی * بصورت غیر متمرکز و خود سازمان یافته * تاکید برروی کنش متقابل ما بین عامل ها که رفتار عمومی می باشد.

صفحه 19:
کنترل ۳50 هنگامیکه 50 به مسایل بهینه سازی اعمال می شود دو مرحله کلیدی دارد: الف. نمایش راه حل ب. تابع ۴۱۲۳6۵55

صفحه 20:
تعداد و محدوده ذرات ‎٠‏ ۳۵۲۱06 معمولذرلندر محدودم۲۰-۴۰لستدر برخیمسلیل خاص۱۰۰ تا۲۰۰ هم‌در نظر گرفته می‌شسود. ‏* با توجه به مساله ای که بهینه سازی می شود متفاوت است.

صفحه 21:
شرایط توقف تعداد تکر ار زمان عدم بهبود همگرایی جوابها

صفحه 22:
PSOsLI jo * قابلیت حل اکثر مسایل بهینه سازی( توابع ریاضی, مسیریابی, آموزش شبکه های عصبی, کنترل حرکت روبات ها و..) . _ * تنها الگوریتم تکاملی که در آن اعضای جمعیت در طول اجرا حذف نمی شوند, فقط مقدار هر ذره ‎٠‏ نیاز به عملیات سنگین ریاضی مانند گرادیان گیری ‏ندارد.

صفحه 23:
یک روش مرتبه صفر است. تقریب مرتبه صفر (همچنین مرتبه 0*8) اصطلاحی است که دانشمندان برای اولین حدس تحصیل شده برای یک پاسخ استفاده می‌کنند. بسیاری از پیش فرض‌های ساده ساخته می‌شود و زملنی که یکی مورد نیاز باشد. اغلب مرتبه ای از مقادیر پاسخ‌ها ارلئه می‌شود. برای مثال شما ممکن است بگویید «لين شهر چند هزار سکنه دارد» در حالیکه تعداد سکنه در حقیقت ۳۹۹۱۴ نفر در وآقعیت است. لین مسئله گاهی اوقات به عنوان مرتبه بزرگی تقریب عنوان می‌شود. منظور از صفر در «مرتبه صفر» نشان دهنده لین وآقعیت است که تنها بیان عدد توصیف ضعیفی از «چند» است. مرتبه صفرییک تلبع (تلبع: فرم ریاضیلتی که بر روی چندین نقطه قلبل تنظیم باشد) یک تلبع ثلبت یاییک ‎be‏ صاف بدون شیب خواهد بود:ییک چند جمله ای از مرتبه صفر. به عنوان مثال: zx =(0,1,2] y = (3,3, 5] y~ f(z) = 3.67

صفحه 24:
0 حافظه دار است. * علاوه بردانستن مهمترین مقدار بدست آمده از مکان لن نیز آگاه است(حافظه داربودن). * در050جمعیت یا گروه تنها به پارامترهای کیفیت]0-065و-9 51پاسخ می دهد(کیفیت)و جمعیت تنها زملنی حالتش را تغییر می دهد که]0-065 تغییر کند(پایداری) و زمانیکه9-0651 تغییر کند جمعیت خودش را با آن تطبیق می دهدروفق پذیری) * همه ذرات در طول اجرا باقی می مانند و در اجرای الکوریتم دخیل

صفحه 25:
سس ابداع كنندة ‎:١‏ Russell Eberhart eberhart@engr.iupui.edu

صفحه 26:
APRS ابداع کننده ۲: James Kenned Kenntdy_Jim@bls.gov

صفحه 27:
تار دخجه اولين مقاله در زمينة ‎PSO‏ در سال 1116 براى اولين بار ارائه شد Kennedy, J. and Eberhart, R., “Particle Swarm Optimization,” Proceedings of the IEEE International Conference on Neural Networks, Perth, Australia 1995, pp. 1942-1945.

صفحه 28:
دار یحج هت ابن الگوریتم اولین بار توسط ۵۲۳۵۵۷ و ۲ مطرح شد. آنها نام این الگوریتم را 0 نهادند. یکت الکوربتم جستجوی اجتماعی است که از روی رفتار اجتماعی دسته های پرند گان مدل شده است. در ابندا لین الگوریتم به منظور کشف الگوهای حاکم بر پرواز همزمان پرند گان و تغییر ناگهلنیی مسیرها در فضای جستجو بود.

صفحه 29:
در دسته پرندگان هميشه حرکت هر پرنده متمایل به سمت سردسته پرندگان است. اگر سردسته. انحرافی داشته باشد. بقیه هم همان انحراف را دارند. سردسته بهترین موقعیت را دارد.

صفحه 30:
مقدمه اين الكوريتم از يك سو به حیات مصنوعی خصوصا تئوری های گروهی و از سوی دیگربه الگوربتم های پردازش تکاملی وبه طور خاص به استراتژی تکاملی مرتبط است که از رفتار دسته جمعی ماهی ها یا پرندگان برای یافتن غذا الهام می گیرد. گروهی از پرندگان یا ماهی ها در یک فضای تصادفی دنبال غذا می گردند و تنهایک تکه غذا وجود دارد و هیچ یک از پرندگان از محل غذا اطلاعی ندارد و فقط فاصله خودتا غذا راحی داند. یکی از بهترین استراتژی ها دنبال کردن پرنده ای می باشد که به غذا نزییک تر است.

صفحه 31:
مقدمه الكوريتم (250 بك الكورينم جستجوى اجتماعى است كه از روى رفتار اجتماعى دستدهاى برندكان مدل شده است. در ابتدا ابن الكوربتم به منظور كشف الكوهاى حاكم بر برواز همزمان يرندكان و تغبير ناكهانى مسير أنها و تغبير شكل ببيندى دسته به كار كرفته شد. در ۳90 00101016ها در فضای جستجو جارى می‌شوند. تغيير مكان 035]1616ها در فضاى جستجو تحت تأثير تجربه و دانش خودشان و همسايكانشان است. بنابراين موقعیت دیگر 00110016‌های ۹0۱۵111 روی چگونگی جستجوی یک 0011010 اثر می‌گذارد. نتیجه‌ی مدل‌سازی این رفتار اجتماعی فرایند جستجویی است که 18ع021/1ها به سمت نواحی ‎he Gye‏ مىكنند. ‎laParticle‏ در 5150150 از یکدیگر می‌آموزند و بر مبنای دانش بدست آمده به سمت بهترین همسایگان خود ast

صفحه 32:
مقدمه ۴ هر ذره در حال جستجو برای نقطة بهینه است. ۴ به همین ‎Wo‏ در حال جابجایی است " به دليل این جابجایی. دارای سرعت است. مانند سایر الگوربتم های جمعیتی, الگوربتم ‎PSO‏ از مجموعه ای از پاسخهای ممکن استفاده می کند که لین پاسخها تا زمانیکه یک پاسخ بهینه بافت شود و یا شرالیط پابان الگوریتم محقق شود به حر کت خود ادامه می دهد. در این روش هر پاسخ ‏ به صورت یک ذره نمایش داده می شود. (همچنانکه در الگوریتم ژنتیک به هر پاسخ. کروموزم گفته می شود)

صفحه 33:
مقدمه مانند بقيه الكوريتم ها بايد يك جمعيت اوليه تشکیل گردد. در لین روش معادله سرعت. ضامن حرکت ذرات به سمت ناحيه بهينه است. اين معادله معمولا براساس سه عنصر اصلی ارائه می شود که عبار تند از: * مولفه شناختی 0065: بهترین وضعیت ذره مولفه جمعی 0065: بهترین ذره ای که تابحال داشتیم ‎one‏

صفحه 34:
مقدمه در شبیه سازی این الگوریتم. رفتار هر ذره می تواند تحت تاثیر بهترین ذره محلی (865 ۳۵۲۵۳۸۵۱)(در داخل يك همسایگی مشخص یا همان بهترین وضعیتی که آن ذره تابحال داشته است) و یا بهترین ذره عمومی(865 6100۱)(بهترین ذره در میان ذرات) باشد.

صفحه 35:
وبا وضعیرنجد پد( ینده) ذیدلست اگر مابه وضعیت فعلی مقدار سرعت آبنده را اضافه کنیم به وضعیت جدید(آینده) می رسیم ,۷ سرعتآینده از میزلن‌تصاهفی‌سه مولفه (سرعت قسیم( ف علیل و ‎wy [cw (pbest 9 gbest‏

صفحه 36:
الگور هو عمللا + ‎Prew = Poa‏ ‎Vaew=W ota+ C14R1*( Procat est -Pota)+ C2*R2*(Pogtovat vest -Prota)‏ © و © مقاهير تابرو مثسو ,]و ر؟العداد تصامفی هستند كد به صوونفرماإدر بازم|ا,١|‏ توليد مى براى قابليت بهتر جستجوء بارامترى به نام وزن اينرسى به شكل زير و به صورت ضریبی در پارامتر سرعت الكوريتم اضافه مى كردد: ‎vest-Poia)‏ دحمو 2*)18 لخد ن) جروو تأسوود بوه 8)ختخأعدن) بوه لا+ لالا-س.. لا

صفحه 37:
الگور هو وزن اینرسی تأثیر سرعت ذرات در گام قبل را بر سرعت فعلی تعیین می نمایدسبه این ترتیب کهبا مقادیر بزرگی از وزن اینرسی» قابلیت جستجوی عموصی الگوریتم بهبود يافته و فضای بیشتری مورد بررسی قرار می گیرد. حال آنکه‌با مقادیر کوچک وزن اینرسی فضای مورد بررسی محدود شده و جستجو در لین فضای محدود شده صورت مى كيرد.

صفحه 38:
الكوريتم سبه همين دلميل» معمولا الكوريتمبا مقدار بزركى از وزن اینرسی شروع به حركت عى كند كه سبب جستجوى كسترده فضا در ابتداى اجراى الكوريتم شده ولمين وزن به مرور در طول زمان كاهش عى يلبد كه سبب تمركز جستجو در فضاى كوجك در كام هاى يايانى مى شود.

صفحه 39:
الگوره ی همه الگوریتم ها از دو مکانیسم تنوع و تمر کز استفاده می کنند تنوع يعنى ما دوست داریم در ابتدای الگوریتم فضای بیشتری از فضای جستجوء موردجستجو قراردهیم و هرچه به پایان الگوریتم نزدیکتر حی شهیم لین تنوع راکم کنیم و به سمت ناحيه بهینه تم رکز پیدا كنيم. ۷(وزن اینرسی) همان میزان تنوع است که در ابتدا زياد و در مراحل پایانی میزان آن کم و کمتر می شود.

صفحه 40:
الكورش_0 ‎SS‏ ‏در ابتدا ذراتبه صورت تصادفی در سرتاسر فضای جستجو مقداردهی عی شهند که لین موقعیت های اولیه به عنوان بهترین تجربه شخصی ذرات نیز شناخته می ‎(pest) wigs‏ در گام بعد بهتیین ذره از میان ذرات موجود انتخاب و به عنوان بهترین پاسخ شناخته می شود.(0065) سپس گروه ذرات در فضای جستجو حرکت حی نمایند» تا زمانیکه شرلیط پایان محقق شود. لین حرکت شامل اعمال معادله سرعت‌به گروه ذرات‌عی باشد که موقعیت هر ذره براساس آن تغییر می کند.

صفحه 41:
الكوريتم مقدار برازش جدید حاصل از ذره با مقدار 065 ذره مقایسه‌عی گردد. لگر موقعیت جدید ذره دارای برازش بهتری باشد» اين موقعيت جدید جایگزین موقعیت ۵651 می شود. روالی مشابه نیز برای 251 دا انجام می گیرد.

صفحه 42:
بارامترها ۲ تعداد ذرات (تعداد کل ذراتی که در فضای جستجو ) نشان داده شده است که ۵۰-۱۰ کافی می‌باشد. ۴ 21) (لهمییتربوط به بهتوین‌هر فد) " 02 (لمسعربوط به بهتيينهسليكوها) به دلايل تجربى معمولاً 4 - 01+02 درنظر گرفته شود. ve * معیار خاتمه

صفحه 43:
Pseudo code Algorithm gbest PSO (Initialize) gbest=X, for i=0 to No onicies dO pbest=X,;, (initialize randomly) fitness,=f(X;) if fitness, < f(gbest) then gbest=X, end if end for

صفحه 44:
Pseudo code Algorithm gbest PSO (Main loop) repeat for i=0 to Ny sicies dO V.=W*V,+c,*r,*(pbest,-X,)+c,*r,*(gbest-x,) 1۶۷ Vacceptavie then correct V; end if X=X+V, fitness, = f(X,) if fitness, < f(pbest,) then pbest=X, end if if fitness, < f(gbest) then gbest=X, end if end for untill terminate criteria

صفحه 45:
ae PSO Algorithm

صفحه 46:
46 معادلات توصیف کننده رفتار ذرات

صفحه 47:
47 معادلات توصیف کننده‌ی رفتار ذرات v'ft+lj=wv'[r] ۱ 1-۲ ( 6 عم

صفحه 48:
+ PSO parameters: — Swarm Size = 30 — Inertia, w = 0.5 (static) in? 5 +sin? x,) = Self Confidence, ¢, = 1.5 ~ Swarm Confidence, ¢) = 1.5 — Stopping Tolerance, € = 0,001 S(x)= x7 +23 +25)

صفحه 49:
۴تا متغیر 1 6اتا64اداریم.حد پابین را ١٠-و‏ حد بالا را ۱۰ در نظر می گیریم و بین این دو حد ۴ تا عدد بصورت تصادفی انتخاب می کنیم.هر عدد را به توان دو رسانده سپس باهم جمع می

صفحه 50:
پارامتر های اولیه % Number of Variables nvar=5; lb=-10*ones(1,nvar); % Lower Bound ub= 10*ones(1,nvar); % Upper Bound % Lower Bound of Velocity % Upper Bound of Velocity lb.v=-0.8; ub.v= 0.8; ۰

صفحه 51:
۰ ۷۷ 9۵ ۱86۲۵ ۷۷6۱9۲ ‏وزن يا اهمیت تجربه‎ * W_RF=0.99; % Inertia Weight KeaUction tractor ۱ ضریب کاهنده ‎Yo versonal Best Learning‏ 0-27 ۰ ‎Coefficient‏ ‏وزن با اهمیت بهترین تجربه شخصی ‎C2=2; % Global Best Learning‏ * وزن یا اهمیت بهترین تجربه ‎Coefficient‏ ‏كروهى 5 تعدادتکرار یا * Npar=100; % Population Siz~ “3ysrun + Maxiter=1000; % Max Iteration Ps!

صفحه 52:
ویز گی های یک ذره 4 موقعيت سرعت(در جمء سر ر جمعيت | ۲ 1 ولیه صفر در نظر گرفته می شود) ۰ بهترین تجربه ذره

صفحه 53:
بهترین تجربه ذره 502 90 35 25 25 25 25 25 35 30 29 soll 100 90 95 92 89 87 80 85 84 84 iter1 iter2 iter3 iter4 iter5 iter6 iter7 iter8 iter9 iter10

صفحه 54:
بهترین تجربه ذره soll sol2 iter1 100 90 iter2 90 35 iter3 95 iter4 92 25 iter5 89 25 iter6 87 25 | 1۳677 ۳78071 25 | iter8 85 35 iter9 84 30 iter10 84 29

صفحه 55:
جمعیت | وليه به صورت تصادفی ‎٠‏ موقعيت : حد پایین و بالا تبرعتا صفر در نظر گرفته میشو ۳۹ محاسبه مية ‏به ميشود ‏بهترين تجربه ذره - ذ 59

صفحه 56:

صفحه 57:
شروع حلقه اصلی

صفحه 58:
به ازای هر ذره خواهیم داشت گفتیم که هر ذره تمایل دارد به سمت هدفی حرکت کند

صفحه 59:
۷/۵ سرعت جدید موقعیت قبلی/قدیم موقعیت جدید

صفحه 60:
۱- موقعیت قدیم ¥~ فا 7 ع ۱ فاصله ات تا بهشرین تج ‎eee‏ ‎Fe, ۱ ۱‏ جربه ش< ۰ فاصله اش تا بهترین 7 : ین تجربه کل

صفحه 61:
Fal ل swarm influence patticle memory influence a oy ‘étintent motion influence

صفحه 62:
فاصله تا بهترین تسیر تجربه ۷) =w*V;, (¢-1) wan + c, + rand, * (P; nese — Xi (t-1)) ( 6-10 بل ‎(Po nese‏ * قرو ‎+e‏ ‏\ عدد تصادقی برای ایجاد شیب در حرکت فاصله تا ‎rong‏ (ع),۷ + (6-1) رز < رز

صفحه 63:
if cost(X (1) < cost (F, pest) _, (COSt (P.best) = cost (Xi), _ 12,3, 4 else Not change P. best = Xi(t) آگر آهمیت موقعیت جدید ذره آز آهمیت بهترین تجربه شخصی ذره کمتر باشد درنتیجه اهمیت/وزن موقعیت جدید , ۱ / {" (Qbest) = cost XO), ‏قل ققدت‎ [tess )0( < cost (Best) _, 9 dost = 0 else Not change آگر اهمیت موقعیت جدید ذره از آهمیت تجربه گل ذره ها موه اود تجن ۰( کمتر باشد درنتیجه اهمیت/وزن موقعیت جدید .۱ بهترین تجریه کل :مج شود

صفحه 64:
پایان یک دور از حلقه اصلی

صفحه 65:
تا زمان برقراری شرط توقف این فرایند ادامه پیدا میکند: شرط های توقف تعداد تکرار زمان عدم بهبود همگرایی جوابها

صفحه 66:
فلوچارت الگوریتم

صفحه 67:
مقایسه ی ۳50 با الگوریتم ژنتیک * برخلاف الگوریتم ژنتیک در ‎PSO‏ عملیات انتخاب وجود ندارد. * عمل ترکیب جواب ها 0۷6۷ ۲۵55 در 500 وجود ندارد. * در 2500 نيز عمل جهش(00 هل به نوعی وجود دارد. * می‌توان در ۴50 نسبت بین جستجوی محلی و سراسری رابه کمک وزن ها مشخص کرد. 6%7

صفحه 68:
68 + ل شبه کد الکورت, 959 12 واه ده ‎Initialize randomly 3‏ ‎Xpbest; ~ X,‏ مد و ‎Vax‏ ‎fess, = F(X)‏ tases, if fimess, < zbest then, for repeat Tor i=1 to Nya 10 NIE WV,F ep Stee XI OH Sates 35) ‏رک‎ fitness, = £ (X)) it imess, < phest, then ‏سه 26 رسد‎ pest, = fimess, enait it himess, < ghost then Xuron =X, and ghest = fimess, enait end for until Termination criteria

صفحه 69:
مراحل اجرای الگوریتم توده ذرات ۱) مقدار دهی به پارامترهای الگوریتم ) ساخت جمعيت اولية ؤرات به صورت تصادفی ۳( ارزيابى هر ذره و محاسبه شليستكى آن ۴) موقعیت فعلی هر ذره را بعنوان بهترین تجربه آن در نظر میگیریم و همچنین بهترین ذره در بین همه ذرات را بعنوان بهترین کلی در نظر میگیریم * تا زمانی که شرط توقف برقرار نشده است مراحل ۶ تا ۱۲ را تکرار کن

صفحه 70:
۶ برای هر ذره مراحل ۱ تا ۷ را تکرارکن. ۷) بردار سرعت ذره را بروزرسانی کن. ۸)موقعیت ذره را با توجه به سرعت آن بروزرسانی کن. )شایستگی /1655] ذره را محاسبه کن. ۰)گر میزان شایستگی ذره جدید بهتر از بهترین تجربه شخصی آن شده ات. موقعیت جدید را بعنوان بهترین تجربه شخصی آن ذره در نظر ب ۱ذره جدید را با پهترین ذره کلی مقایسه ‎OF‏ و اگر بهتر است آن را جایگزین بهترین کلی کن. اگر شرط توقف برقرار نشده است به مرحله ۵ برو و گرنه پایان. 70

صفحه 71:

صفحه 72:
ميخواهيم با الكوريتم ©05] ‎Sphere at‏ را يبدا كنيم' ‎Sphere ati‏ تابع شناخته شده و به اصطلاح بنج مارك در مسائل بهينه سازى مى باشد و از جمله توابعى هست كه براى محك كردن ميزان قدرت الگوریتم های تکاملی مورد استفاده قرار میگیرد . ‏فرم ریاضی این تابع بصورت زیر می باشد ‏ ‎ ‎

صفحه 73:
توضیحات کد فاز اول: مقدار دهی پارامترهای الگوریتم

صفحه 74:
مرحله اول: مقداردهی به پارامترها يندا محيط نرم افزار متلب را اماده ميكنيم ‎ones (1, varNum) ;‏ حد بابين با کمترین مقدار مجاز برای هر متغیر ‎upperBound=100 *‏ ‎ones(1,varNum);‏ ‏شترین مقدار مجاز برای هر متغیر ۸ ‎

صفحه 75:
تنظیم پا رامترهای الگوریتم ۳50 اد برندوتها با تعداد راه.حل.ها ‎particlelNum=100;‏ 96حداکترتعداد تکرار الگوریتم ‎maxLoop=100;‏ پارامتر مقدار سرعت سکون ذره | ۶ ۷۲-1 لهمیشجرنه شقصت ]پارانتر شناعتی 60122۶ پارامتر ترکیب کننده ‎C2=2;"*‏ alpha=0.05; ضریب کاهش ۷ در هر بار اجرای برنامه

صفحه 76:
مرحله دوم و سوم: ساخت ع 9 بصورت تصادفی و ارزیابی بعد از مقدار دهى بارامتر ها ء الكوريتم ابتدا يك سرى ذرات را بصورت تصادفى توليد ميكند. و اين كاررا به تعداد افراد جمعيت تكرار ميكند يعنى بصورت خلاصه: 11 تا ذره را بصورت تصادفى ايجاد ميكند . در اولين كام در اين مرحله ما ابتدا يك ساختار يا ©1لا]506ا9 براى نمايش هر ذره بصورت زیر تعریف میکنیم؛ در خط زير در جلوى عبارت 8 نام آن قرار كرفته است را قرار ميدهيم. همانطور كه د اين مثال : هدف ما خل تابع 300626 می باشد که کد آن را در فابلی نرشته ایم؛ costFunction=@SphereFun;

صفحه 77:
ادامه مرحله دوم و سوم هر ذره یا راه حل طبق الگوریتم ۳500 سه مقدار باید داشته باشد؛ solution=[]; solution.Position=[]; solution.Cost: solution.Velocity=[]; ت ذره می باشد. که ما در کد موقعیت را با متفیر 240 091ظ مشخص میکنيم. - دومین مقدار » میزان تطایق یا شایستکی هر ذره است که ان را با 009۶ نشان داد ایم - سومین مقدار هم سرعت می باشد كه ان را یا 7۵100421 نشان میدهیم.

صفحه 78:
ادامه مرحله دوم و سوم هر ذره يا راه حل طبق الكوريتم 550 سه مقدار بايد داشته باشدة solution=[]; solution.Position=[]; solution,Cost=[]; solution .Velocity=[]7 اولین مقدار موقعیت ذره مى باشد كه ما در كد موقعيت را با متفير 2051107 مشخص ميكنيم . - دومین مقدار . میزان تطابق یا شایستگی هر ذره است که آن را با 00۵۶ نشان داد ایم - سومین مقدار هم سرعت می باشد که آن را با 1 ۲۵1063 نشان میدهیم.

صفحه 79:
ادامه مرحله دوم و سوم بنابراین با توجه به این تعریف هر ذره یک سه تایی است یعنی سه مقدار دارد که ما برای فهم بهتر هر ذره را بصورت یک 8الالا ناگ یا همان ساختار در نظر میگیریم و به شکل زیر آن را در متلب نمایش داده میشود: solution <tx1 struct> Field « Value Position 1 Cost a Velocity 1

صفحه 80:
تولید ذره بطور تصادفی به تعداد 0۵۲۲۱۱6۱۱۱۰۳ ابتدا يك آرايه به تعداد ذره هاء از ساختاری که در بالا تعريف كرده بوديم را ايجاد ميكنيم كه اين كار با استفاده از تابع 29۳۳026 انجام میگیرد: آرایه ای بنام 22۲61016 که نشان دهنده هر ذره در الگوریتم می باشد. Particle=repmat (solution, [particlelNum,1]); ‏همچنین یک آرابه نیز نام 10021368 تعريف كرده ايم تا هر ذره در هر مرحله از الگوریتم بهترین تجربه‎ ‏شخصی خود را در آن قرار دهد؛‎ LocalBest=repmat (solution, [particle1Num, 1]); 20

صفحه 81:
ایجاد موقعیت هر ذره بطور تصادفی و تعیین برازندگی هر ذره سرعت اولیه صفرفرض شده است ‎for i=1: particlelNum‏ یک حلقه است یعنی از 1 تا تعداد ذره ها که در 0181171210 ۳31 قرار دارد کارهای زير را تکرار کن ‎Particle (i) .Position =unifrnd(lowerB, upperB) ;‏ كد فوق ميكويد كه برای ذره ام موقعیت ذره را بصورت تصادفی در بازه قابل قبول ايجاد كن. يعنى هر ذره منوا مثال در حالتى كه دو متغير تصميم در نظر ميكيرم داراى دو بعد است . و هر بعد ان هم يك حدبالاو يك حد پاپین دارد که ما انها را به ترتیب در متغبر های 106180050 و ‎qe oals ,|,5 upperBound‏

صفحه 82:
ایجاد موقعیت هر ذره بطور تصادفی بنابراین برای تولید موقعیت ذره بصورت تصادفی کد زیر را داریم: ‎unifrnd(lowerBound, upperBound) ;‏ بنابراین با استفاده از تابع ۵1222۳۵ بصورت تصادفی و با توزیع یکنواخت در بازه مورد نظر موقعیت ذره ‏بصورت تصادفی تولید می شود. ‎82

صفحه 83:
تعیین برازندگی هر ذره برای تعیین برازندگی هر ذره از تابعی با نام ‎Cost FUNCTION‏ استفاده می شود که میزان شایستگیابرازندگی را محاسبه می کند.م ثلا برای برنامه9/۱6۲6 این تابع مقدار تابع 50/۱616 را به ازای مقادیر این ذره محاسبه می کند. مقدار محاسبه شده را بعنوان مقدار شایستگی ذره در متغیر ‎COST‏ مربوط به این ذره قرار می دهیم. Particle(i).Cost=costFunction(particle(i).posation, varNum); 83

صفحه 84:
تعیین برازندگی هر ذره Particle (i) .Velocity=0; ‏حال كه موقعیت هر ذره ایجاد شد و شایستگی آن محاسبه شد. همین تجربه فعلی ذره را بعنوان بهترین تجربه‎ فعلى ان ذره در متغير 110681165 قرار میدهیم درواقع برای شروع کار مقدار هر ذره را بعنوان بهترين تجربه شخصی آن در نظر میگیریم 100218691 )1( 22۵ ۶ End

صفحه 85:
مرحله چهارم: مقداردهی بهترین جواب عمومی بعنوان آخرین کار از بخش اول الگوریتم باید مقدار بهترین جواب عمومی یعنی 91021265۲ را باید پیدا کنیم که بهترین جواب عمومی ان جوابی است که میزان شایستگی ان از همه کمتر باشد چون ما در اینجا به دنبال پیدا کردن مینیمم تابع هستیم پس بهترین جواب [ن هست که کمترین مقدار تابع را نتیجه میدهد بنابراین برای بدست آوردن بهترین جواب شخصی و بهترین جواب عمومی کدهای زیر نوشته شده است: ‎[value,index]=min((particle.cost]);‏ کد فوق در مقدار 0051 تماكردره ها كمترين ‎bday Ly jladde‏ میکند که اين کار با دستور ۲۳8 در متلب انجام ae 85

صفحه 86:
مرحله چهارم: مقداردهی بهترین جواب عمومی ‎globalBest=Particle(index);‏ تمام ذرات پیدا کرده لبا دستور ‎MIN‏ ور متلب)و فوق کمترین مقدار05) یا اهمیت را در متغیر 31116 ۷قرار می دهد و شماره ذرهای که کمترین مقدار 05 را داشته باشد در متغیر ۱016 أقرار می دهد.ذره شماره(006 را در متغیر01001065 (بهترین جواب عمومی) قرار می دهیم: :alobalBest=Particle(index) ‏بس ما تا اینجا ذره ها را بصورت تصادفی ایجاد کردیم و ارزیابی کردیم و بعد هم بهترین جواب شخصی و‎ بهترین جواب عمومی اولیه را هم مقدار دهی کردیم . حالا نوبت حلقه اصلی الگوریتم مى باشد كه بايد بصورت تکراری انجام شود 86

صفحه 87:
a7 مرحله پنجم: تا وقتی شرط پایان برقرار نشده مراحل 6 تا 12 را انجام بده 08 ۶20۲ شرط بايان الكوريتم را حداكثر تعداد تكرار در نظر كرفته ايم و اين حلقه در واقع تا رسيدن به حداكثر دفعات تكرار, الكوريتم را اجرا ميكدند.

صفحه 88:
مرحله ششم : به ازای تمام ذره ها مراحل 7 تا 11 را تکرار کن: for i=1:particlelNum مراحل /اتا١١‏ الكوريتم بليد اجرا شود يعنى به ازای هر ذره ابتدا سرعت ن و سپس موقعیت آن بروز شودو بعد هم شایستگی آن محاسبه شودو بهترین جواب شخصی و بهترین جواب عمومی نیز بروز شود.

صفحه 89:
مرحله هفتم: بروزرسانی سرعت ذره Viz WV + ‏کیره بل سرت‎ X) %Update velocity particle(i).velocity=W*particle(i).velocity +C1*rand(1,varNum).*(localBest(i).position- particle(i).posation) +C2*rand(1,varNum).*(globalBest.position- particle(i).posation); پش با کد فوق مقدار سرفت ذره ‎pl‏ محاسبه مؤكتهم

صفحه 90:
مرحله هشتم: بروزرسانی موقعیت ذره + رل بن معنی که موقعبت جدید مساوی لست با موقعیت قبلی بعلاوه مقدار سرعت. ما همین کار را در متلب انجام داده یم و کد ان بصورت زیر می باشد؛ SUpcate Posation particle (i) .posatio: icle(i).posationtparticle (i) .velocity; (globalBest. poiation-particle(i).position) 90

صفحه 91:
بررسی مجاز بودن مقدار هر متغیر حال بررسی میکنیم که ایا مقدار موقعیت جدید در بازه حد بالا و حد پایینی که برای هر متفیر تصمیم در نظر كرفته بوديم صدق ميكند يا خير و اكر مقدار ان از حد بالاى مجاز بيشتر شد ان را مساوى حد بالا قرار ميدهيم وهمجنين اكر مقدار ان از حد بايين مجاز كمتر شد ان را مشاوى حد يايين مجاز قرار ميدهيم: 202 1117 if particle )1( ‏قنعممنا <(3) 165غ53ه5.‎ )3( 91

صفحه 92:
بررسی مجاز بودن مقدار هر متغیر اگ مقدا متغیر [ ام بیشتر از حد بالا یعنی ( 3 particle(i).posation(j)=upperB(j); مقدار آن را مساوى [[6 6112010411 لاقرار بده End if particle(i).position(j)< lowerB(j) ‏اگر مقدار ام کمتر ازحدپایین با () 0۷۷6۲۳8 |است آنگاه:‎ jparticle(i).position(j)=lowerB(j) ‏مقدار آن را برابر () 0۷۷6۲8 قرار بده.‎ End End

صفحه 93:
مرحله نهم: محاسبه شایستگی /655]]]ذره پروز شده در این مرحله باید میزان شایستگی هر ذره را محاسبه کنیم که در شبه كد به صورت زیر نشان داده شده است ‎fitness, = f (X;)‏ و ما در برنامه این کار را با کد زیر و فراخوانی تابع 22006۴10 205 که قبلا توضیح داده شد انجام داده ایم: particle(i).cost=costFunction (particle(i) .posation, varNum) ; 93

صفحه 94:
مرحله دهم و بازدهم: بروزرسانی بهترین تجربه شخصی و بهترین جواب عمومی در اخر نیز باید مقدار بهترین شخصی و بهترین عمومی را بروزرسانی کنیم که شبه کد این عمل را بصورت زیر نشان داده است: if fitness, < pbest, then Xpvesti= Xi and — pbest, = fitness, end if if fitness, < gbest then Xypest = XG ‏مضه‎ gbest = fitness, end if 94

صفحه 95:
مرحله دهم و بازدهم: بروزرسانی بهترین تجربه شخصی و بهترین جواب عمومی %Update local and global best solution if particle(i).cost<localBest(i).cost برای بدست اوردن بهترین تجربه شخصی می گوییم اگر مقدار شایستگی یعنی 605۴ مقدار 605۴ مربوط به تجربا يعنى ۶ 06۵1 است آنگاه بهترین تجربه شخصی را با کد زیر بروز رسانی ‎jlocalBest(i)=particle(i)‏ ‏یعنی مقدار فعلی ذره را جایگزین مقدار قبلی بهترین تجربه شخصی می کنیم.

صفحه 96:
بروزرسانی بهترین تجربه عمومی اگر مقدار بهترین شایستگی شخصی ذره فعلی از مقدار شایستگی عمومی کمتر است یعنی اين جواب بهتر از جواب عمومی شده. پس جواب عمومی را مساوی این جواب قرار می دهیم. if localBest(i).cost<globalBest.cost ‏اگر شایستگی بهترین تجریه شخصی ذره فعلی از بهترین عمومی بهتر بود انگاه؛‎ ۱ بهترین تجربه شخصی ذره فعلی را در بهترین عمومی بریز 96

صفحه 97:
بروزرسانی پارامتر الا پارامتر ۷۸ را با كد زیر بروزرسانی می کنیم و بهترین جواب این مرحله را در متغیری با نام 065150۴3۲ قرار می دهین(۱۷-۷۷*)1-۵۱002 bestSoFar(it)=globalBest.cost; ‏در هربار اجرای الگوریتم بررسی می کنیم که چه جوابی بدست آمده است. کد زیر‎ ‏نمایش بهترین جواب را انجام می دهد:‎ disp([‘In Iteration= ' num2str(it) ' Best Cost=' num2str(globalBest.Cost)]); 97

صفحه 98:
مرحله آخر: نمایش نتایج جواب پیدا شده را با کد زیر چاپ می کنیم. ابتدا بهترین جواب پیدا شده برای تابع را نمایش می دهیم: ‎num2str(globalBest.cost)]);‏ ' = disp (['best disp(' '); در خط زیر نیز راه حلی که بهترین جواب را تولید کرده است را نمایش میدهیم ' num2str( lobalBest.posation)]) disp(['best so. خروجی برنامه برای تابع 50616 به صورت زیر می باشد: best fitness = 2.5483e-49 best solution found is: 4.4526e-25 2.3785e-25 98

صفحه 99:
99 مرحله آخر: نمایش نتایج همانطور که در ابتدا گفته شد. مقدار بهینه این تابع مساوی 0 می باشد و مقداری که برنامه پیدا کرده نیز 4 به توان منفی 49 است که یک عدد خیلی کوچک و تقریبا صفر است. بهترین راه حل نیز 1120 و 220 بود که الگوریتم جوایهای ۹۰۹5266725 و 2.37856-25 را بيدا کردهاست كه خیلی خيلى اعداد كوجكى هستند و تقريبا صفر مى باشند

صفحه 100:
نمایش نمودار پیشرفت الگوریتم در حین اجرا pso ot progress of maxLoop; plot (x,bestSoFar) ‏با دستور]00بهترین نتیجه هر مرحله الگوریتم را که در متفیر 065050۴۲ قرار داده بودیم را نمایش‎ ‏عنوان محورا‎ ‏عنوان محورلا‎ می دهیم. xlabel (" ylabel(* عنوان نمودار title('Pso Result For Ackley Function’) 100

صفحه 101:
خروجی کد

صفحه 102:
ما 1. فیلم و اسلاید آموزشی ‎http://en.wikipedia.org/wiki/Swarm_intelligence‏ .2 3. http://en.wikipedia.org/wiki/Particle_swarm_optimization 4. http://www.swarmintelligence.org. 5. Venter, G. and Sobieski, J., “Particle Swarm Optimization,” Structural Dynamics, and Materials Conference, Denver, CO., April 2002. 6. Kennedy, J. and Eberhart, R., Swarm Intelligence, Academic Press, 1st ed., San Diego, CA, 2001.

39,000 تومان