290 likes | 506 Views
بهينه سازي گروه ذرات ( PSO ). Russell Eberhart. eberhart@engr.iupui.edu. ابداع كنندة 1:. James Kennedy. Kennedy_Jim@bls.gov. ابداع كنندة 2:. اولين مقاله در زمينة PSO :. در سال 1995 براي اولين بار ارائه شد.
E N D
Russell Eberhart eberhart@engr.iupui.edu ابداعكنندة 1:
James Kennedy Kennedy_Jim@bls.gov ابداعكنندة 2:
اولين مقاله در زمينة PSO: در سال 1995 براي اولين بار ارائه شد. Kennedy, J. and Eberhart, R., “Particle Swarm Optimization,” Proceedings of the IEEE International Conference on Neural Networks, Perth, Australia 1995, pp. 1942-1945.
ايدة پايه: • هر ذره در حال جستجو براي نقطة بهينه است. • هر ذره در حال جابجايي است (در غير اينصورت نميتواند جستجو كند!) • به دليل اين جابجايي، داراي سرعت است. • هر ذره در هر مرحله، موقعيتي را كه بهترين نتيجه را در آن داشته به خاطر ميسپارد. (بهترين موقعيت فردي هر ذره) • دلايل فوق بتنهايي خيلي خوب نيستند. ذرات به اين كمك احتياج دارند كه بدانند در كجا به جستجو بپردازند.
ايدة پايه 2: • ذرات در گروه ذرات با هم همياري ميكنند. ذرات اطلاعاتي كه دربارة موقعيتي كه در آن هستند را با هم تبادل ميكنند. • اين همياري بايد خيلي ساده باشد. همياري در PSO پايه بشكل زير ميباشد: - يك ذره داراي همسايگيهاي منتسب به خودش است. - يك ذره تطابق ذراتي را كه در همسايگيش هستند، ميداند و از موقعيت ذرهاي كه بهترين تطابق را دارد استفاده ميكند (بهترين موقعيت سراسري). - از اين موقعيت بسادگي براي تنظيم سرعت ذره استفاده ميشود.
ويژگيها و كاربردها: • مزايا: • يك روش مرتبة صفر است و نيازي به عمليات سنگين رياضي مثل گراديانگيري احتياج ندارد. • يك روش مبتني بر جمعيت است. • از مشاركت ذرات استفاده ميكند. • كاربردها: • آموزش شبكه عصبي • بهينهسازي تابع • بازشناسي الگو
مقداردهي اولية موقعيتها و سرعتها:
يك ذره چه كارهايي را انجام ميدهد؟ • يك ذره در هر مرحلة زماني (Timestep) بايد به يك موقعيت جديد جابجا شود. اين جابجايي با تنظيم سرعت ذره انجام ميشود. • تنظيم سرعت بقرار زير است: - سرعت فعلي بعلاوة - سهم وزنيافتة تصادفي در جهت بهترين موقعيت منفرد هر ذره بعلاوة - سهم وزنيافتة تصادفي در جهت بهترين موقعيت موجود در همسايگي ذره • تنظيم موقعيتبشكل زير است: • مقدار قديمي موقعيت بعلاوة - سرعت جديد
همسايگيها: geographical social
همسايگيها: Global
1 2 8 3 7 4 6 5 همسايگيهاي دايرهاي: همسايگيهاي ذرة 1 دايرة مجازي
Particles Adjust their positions according to a ``Psychosocial compromise’’ between what an individual is comfortable with, and what society reckons بهترين موقعيت منفرد i-proximity pi بهترين موقعيت همساية من x من در اينجا هستم! pg g-proximity v
شبه-كد كامپيوتري: http://www.swarmintelligence.org/tutorials.php Equation (a) v[] = c0 *v[] + c1 * rand() * (pbest[] - present[]) + c2 * rand() * (gbest[] - present[]) در روش اصليc1=1است ولي در بسياري از الگوريتمهاي مطرح شده اين مقدار را ثابت نميگيرند و آنرا تغيير ميدهند. Equation (b) present[] = present[] + v[] جابجايي فعلي اثر حافظة ذره اثر گروه ذرات
شبه-كد كامپيوتري: http://www.swarmintelligence.org/tutorials.php For each particle Initialize particleENDDo For each particle Calculate fitness value If the fitness value is better than its peronal best set current value as the new pBest End Choose the particle with the best fitness value of all asgBest For each particle Calculate particle velocity according equation (a) Update particle position according equation (b) End While maximum iterations or minimum error criteria is not attained
شبه-كد كامپيوتري: http://www.swarmintelligence.org/tutorials.php سرعت ذرات در هر بعد را به Vmax محدود ميكنيم. بدين معني كه اگر سرعت در يك جهت بخواهد از اين مقدار بيشتر شود، آنگاه سرعت در آن بعد به Vmax محدود ميشود. دليل: از جابجايي سريع ذرات در فضاي جستجو ميتوانيم جلوگيري كنيم.
نحوة پايان الگوريتم: 1- اجراي تعداد ماكزيمم دفعاتي كه براي اجراي الگوريتم در نظر گرفته شده است. 2- عدم تغيير مقدار تابع تطابق در تعداد معيني تكرار پشت سر هم. 3- كاهش ميزان خطا از يك حد معين.
الگوريتم پايه: At each time step t مقادير تصادفي در داخل حلقه for each particle بروزرساني سرعت بروزرساني موقعيت then move
پارامترها: • تعداد ذرات • C1(اهميت مربوط به بهترين هر ذره) C1 (importance of personal best) • C2(اهميت مربوط به بهترين همسايگيها) C2 (importance of neighbourhood best) • Vmax
The right way اين راه ... Or this way پارامترها را چگونه انتخاب بكنيم؟
پارامترها: • تعداد ذرات نشان داده شده است كه 10-50 معمولاً كافي ميباشد. • C1(اهميت مربوط به بهترين هر ذره) • C2(اهميت مربوط به بهترين همسايگيها) معمولاً C1+C2 = 4. فقط بدلايل تجربي انتخاب شده است. • Vmax: خيلي كم- سرعت پايين خيلي زياد- ناپايدار
تعيين تطبيقي تعداد ذرات: I try to kill myself There has been enough improvement although I'm the worst I try to generate a new particle I'm the best but there has been not enough improvement
ضرايب تطبيقي: rand(0…b)(p-x) av هر چقدر من بهتر باشم، بيشتر مسير خودم را دنبال ميكنم. اگر همساية من بهتر باشد، بسمت همساية خودم تمايل پيدا ميكنم.
مراجع: • Kennedy, J. and Eberhart, R., “Particle Swarm Optimization,” • Proceedings of the IEEE International Conference on Neural Networks, • Perth, Australia 1995, pp. 1942-1945. • Venter, G. and Sobieski, J., “Particle Swarm Optimization,” • Structural Dynamics, and Materials Conference, Denver, CO., • April 2002. • Kennedy, J. and Eberhart, R., Swarm Intelligence, • Academic Press, 1st ed., San Diego, CA, • 2001.