مجله علوم رایانشی

چکیده مقاله افزایش شتاب الگوریتم ذرات با استفاده از چارچوب کودا

الگوریتم بهینه‌سازی ذرات از جمله روش‌های فراابتکاری است که به‌صورت گسترده در حل مسائل بهینه‌سازی به‌کار گرفته می‌شود. الگوریتم بهینه‌سازی ذرات از رفتار پرندگان در پرواز الگوبرداری شده است و به‌عنوان یک روش فراابتکاری با همگرایی و دقت مناسب شناخته شده است. یکی از چالش‌های مهم الگوریتم‌های فراابتکاری از جمله الگوریتم بهینه‌سازی ذرات زمان اجرای آن در حل مسائل بهینه‌سازی پیچیده است و در این مسائل به علت تعداد ابعاد مسئله و پیچیدگی تابع هدف زمان یافتن جواب بهینه توسط روش‌های فراابتکاری و از جمله الگوریتم ذرات قابل توجه است. این مشکل زمانی بیشتر می‌شود که برای توابع هدف پیچیده نیاز است اندازه جمعیت به قدر کافی بزرگ در نظر گرفته شود تا فضای مسئله پیمایش مناسب شده و نقاط بهینه محاسبه شوند و این مستلزم محاسبات بیشتر بوده و زمان اجرای الگوریتم را افزایش می‌دهد. ماهیت الگوریتم‌های نظیر بهینه‌سازی ذرات موازی است زیرا اعضای جمعیت تا حدود زیادی به‌صورت مستقل فضای جستجوی مسئله را مورد پیمایش قرار می‌دهند. در این پژوهش یک روش موازی‌سازی جدید برای تسریع محاسبات الگوریتم بهینه‌سازی ذرات ارایه شده است که از ریزهسته‌های پردازنده گرافیکی و در چارچوب کودا استفاده می‌نمایند. روش پیشنهادی یک اشاره‌گر یا آرایه از جمعیت اولیه را از حافظه اصلی به حافظه سراسری منتقل نموده تا زمان انتقال کمینه شود و از طرفی از یک هسته (هسته) برای به روزرسانی سرعت و موقعیت ذرات استفاده می‌نمایند تا سوئیچ‌های بین ریسه ‌ها به حداقل ممکن کاهش و کارایی الگوریتم موازی افزایش یابد. نتایج ارزیابی ما بر روی مجموعه‌ای از توابع ارزیابی نشان می‌دهد حداکثر شتاب به‌دست آمده در روش پیشنهادی و با پردازنده گرافیکی Geforce 710M در حدود 26 برابر پردازنده اصلی است.