SIA: Swarm Intelligence Algorithms

الگوریتم های هوش جمعی

SIA: Swarm Intelligence Algorithms

الگوریتم های هوش جمعی

مقاله: بهینه سازی ازدحام ذرات ممتیکی (Memetic-PSO)

مقاله: بهینه سازی ازدحام ذرات ممتیکی (Memetic-PSO)

این مقاله توسط  Y.G. Petalas · K.E. Parsopoulos · M.N. Vrahatis  در سال 2007 در Springer به چاپ رسیده است. در این مقاله یک بهینه سازی ازدحام ذرات ممتیکی پیشنهاد شده است که ترکیبی از الگوریتم های جستجوی محلی با الگوریتم بهینه سازی ازدحام ذرات استاندارد می باشد. به همین دلیل یک روش بهینه سازی کارآمد و موثر خواهد بود که البته از نظر عملی مورد تحلیل قرار می گیرد.

کارائی الگوریتم های مبتنی بر جمعیت وابسته به قابلیت جستجوی سراسری (Exploration) به خوبی جستجوی محلی بهبود یافته (Exploitation) در فضای جستجو می باشد. تعادل در این دو ویژگی باعث افزایش کارائی می شود. در نوع سراسری PSO ، همه ذرات به وسیله بهترین موقعیت سراسری جذب می شوند. و نسبت به نقاط خاص همگرا می شوند. بنابراین این نوع از PSOبه بهره برداری روی اکتشاف اهمیت می دهد. از سوی دیگر، در نوع محلی PSO ، اطلاعات بهترین موقعیت هر همسایه به آرامی به ذرات دیگر جمعیت از طریق همسایگانشان فرستاده می شود. بنابراین، احتمال اینکه به بهترین موقعیت خاصی جذب شود ضعیف تر می باشد.از این طریق از گیر افتادن در بهینه محلی جلوگیری می شود. بنابراین، نوع PSO محلی به اکتشاف (Exploration) روی بهره برداری  (Exploitation) اهمیت می دهد.

انتخاب مناسب اندازه همسایگی روی تعادل بین بهره برداری و اکتشاف تاثیر می گذارد. که این مقدار یک مسئله باز می باشد و براساس تجربه مقدار دهی می شود.

در PSO مقدار دهی اولیه برای اندازه جمعیت (ازدحام) و سرعت به طور تصادفی انجام می شود. 

 

در برخی از انواع PSO به منظور عملکرد بهتر در جستجوی های محلی شان عملگرهای شان را تغییر و بهبود می دهند. ضعف در این بخش از الگوریتم PSO استاندارد باعث می شود که در این مقاله این الگوریتم به شکل ممتیکی ارائه شود. که در آن الگوریتم بهینه سازی ازدحام ذرات با الگوریتم های جستجوی محلی ترکیب می شوند.

  ادامه مطلب ...

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

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

بهینه سازی ازدحام ذرات یک الگوریتم تصادفی و مبتنی بر جمعیت می باشد که در سال 1995 توسط جمیز کندی و راسل ابرهارت معرفی شده است. بعد از آن پژوهش های زیادی روی آن انجام شده است. محبوبیت آن به دلیل سادگی پیاده سازی آن و قابلیت حل مسائل متعددی از علوم مختلف و مهندسی شامل طراحی بهینه از سیستم های برق، انتخاب ویژگی در ارتباط فعالیت - ساختارگرا در سیستم های پژشکی، بهینه سازی عددی، کنترل صنعتی و مانند آن می باشد. PSO از اجتماع الهام گرفته شده است و از طریق اعضای کلونی سازماندهی شده فعالیت می کند.  بنابراین جزو الگوریتم های هوش جمعی محسوب می شود. از طرفی همان طور که در شکل 1 نشان داده شده است مولفه های اصلی در هوش جمعی جمعیت و همکاری است که منجر به ارتباط می شود و سپس تبادل اطلاعات و در نتیجه باعث جریان اطلاعاتی و خود ترتیبی می شود. که الگوریتم PSO از این مسئله مستثنی نمی باشد. الگوریتم PSO اشتراک زیادی با الگوریتم های تکاملی مانند الگوریتم ژنتیک دارند بنابراین در جنبه های زیادی در رفتار آنها مشترک می باشد.

  ادامه مطلب ...

کتاب: برنامه نویسی موازی با کودا

کتاب برنامه نویسی موازی با کودا

 


این کتاب در سال 1397 توسط آقایان علی اکبر اله دانه و پیام کیافر در 994 صفحه نگارش شده است و در انتشارات ناقوس به چاپ رسیده است. این کتاب شامل دوازده فصل و دو پیوست الف و ب می باشد. در هر فصل از این کتاب علاوه بر پرداختن به مفاهیم فصل مربوطه به منظور تفهیم مفاهیم هر فصل چندین مثال عملی نیز راجع به برنامه نویسی کوائی آن آورده شده است. در این کتاب برای برنامه نویسی برای محاسبات موازی با GPU از پلتفرم کودا سی و سی پلاس پلاس استفاده شده است.

استفاده از توان محاسباتی رایانه‌ها در تحقیقات علمی و فعالیت‌های دانشگاهی، مراکز تحقیقاتی و شرکت‌های تجاری، کاربرد روزافزونی پیدا نموده است؛ ازاین‌رو نیاز به پردازش سریع‌تر افزایش یافته و به یک نیاز اساسی تبدیل شده است. سرعت کامپیوترهای شخصی کنونی نسبت به اجداد خود به‌طور سرسام‌آوری افزایش یافته است اما علیرغم وجود این موضوع باز جوابگوی نیازهای مطرح‌شده نیست. ازجمله عرصه‌هایی که احتیاج به کامپیوترهایی با سرعت پردازش بسیار بالا دارند می‌توان به برنامه‌های شبیه‌سازی در تحقیقات هسته‌ای، نانو فناوری محاسباتی، برنامه‌های پیش‌بینی وضعیت هوا، برنامه‌های فیلم‌سازی کامپیوتری، برنامه‌های ساخت انیمیشن حرفه‌ای و بسیاری از زمینه‌های مختلف دیگر که همگی به‌سرعت پردازش بسیار زیاد نیاز دارند تا در یک زمان مناسب به نتیجه برسند اشاره کرد. یک راه‌حل برای این معضل، استفاده از سوپرکامپیوترها است. درست است که سرعت پردازش سوپرکامپیوترها بسیار بالاتر از کامپیوترهای شخصی است اما استفاده از آن‌ها در همه موارد مقرون‌به‌صرفه نیست؛ ضمن آن‌که این فناوری در انحصار بعضی از کشورهای توسعه‌یافته است و سایر کشورها از دسترسی به این تجهیزات استراتژیک محروم هستند. راه‌حل دیگر در دستیابی به سرعت پردازش بسیار بالا، استفاده از روش پردازش موازی است. به بیان ساده در این روش چند پردازنده (در اینجا منظور پردازنده‏های گرافیکی) معمولی با همکاری یکدیگر به اجرای یک برنامه می‌پردازند که طی این همکاری، برنامه با سرعت بالاتری اجرا می‌شود. به عبارت دیگر، پردازش یا محاسبه‏ی موازی، شکلی از پردازش است که در آن دستورالعمل‌های بسیاری در یک زمان و به صورت هم‌زمان انجام می‌شوند و بر اساس این اصل اجرا می‌شوند که مسائل بزرگ را اغلب می‌توان به مسائل کوچک‌تر تقسیم نمود که سپس باهم و به‌صورت موازی اجرا شوند. کودا در نوامبر 2006 توسط انویدیا معرفی گردید، کودا یک پلتفرم محاسبات موازی همه‌منظوره و مدل برنامه‌نویسی است که رابط‌های برنامه‌نویسی را در اختیار برنامه‌نویسان قرار می‌دهد و به طراحان نرم‌افزار اجازه می‌دهد تا از توانایی‌های جی‌پی‌یو (GPU سرواژه Graphics Processing Unit بوده و به معنای واحد پردازش گرافیکی است) در جهت محاسبات همه‌منظوره روی واحد پردازش گرافیکی استفاده کنند. پلتفرم کودا یک لایه نرم‌افزاری است که دسترسی مستقیم به مجموعه دستورالعمل‌های مجازی جی‌پی‌یو و عناصر محاسبات موازی را می‌دهد. این پلتفرم به گونه‌ای طراحی شده است که با زبان‌های برنامه‌نویسی سی، سی‏پلاس‌پلاس، فرترن و متلب کار می‌کند. این قابلیت دسترسی، کار را برای متخصصان برنامه‌نویسی موازی به منظور استفاده از منابع جی‌پی‌یو به همان شکلی که از دایرکت‌ایکس (DirectX) یا اپن‌جی‌ال (OpenGL) استفاده می‌کنند، هموار کرده است. با استفاده از این معماری می‌توان برنامه خود را به زبان سی یا سی‏پلاس‏پلاس نوشته و سپس بر روی پردازنده گرافیکی اجرا کرده و از سرعت آن لذت برد.  ادامه مطلب ...