PDA

View Full Version : سوال: سوال در مورد الگوریتم pso



quantomquery
جمعه 20 آذر 1388, 21:52 عصر
همونطور که می دونید در pso بردارحرکت به صورت زیر محاسبه می شه :
vt=(vt-pbest)A+(vt-gbest)B
من خیلی از مقالات زبان اصلی رو مطالعه کردم ولی هنوز نتونستم جوابم رو بگیرم
سوالم اینه که می گن ضریب الفا و بتا (یا A,B ) باید بین 1.5 تا 2.5 باشه و اگه بالاتر یا پایین تر بره بهینه نیست و تا حالا هم کسی جوابی قانع کننده به من نداده .
چرا بین 1.5 تا 2.5 بیشتر هم می گن عدد 2 خیلی عالی هست و عدد 1 کارامد نیست البته جوابو بدست میاره و لی بهینه بهینه نیست

از دوستان خواهش می کنم اگه اطلاعاتی در این زمینه دارن بهم کمک کنن ، چون واقعا توش موندم ؟

با تشکر

mehdib64
سه شنبه 01 دی 1388, 13:56 عصر
تا اونجا که من میدونم این پارامترها بستگی به نوع برنامه دارند و هیچ موقع نمی تونی بگی کدوم عدد بهینه ی بهینست.از تجربه های قبلی و عددایی که پیشنهاد میشه استفاده کن.کتاب Swarm intelligence مال Eberhart اینجوری گفته :چشمک:

xxxxx_xxxxx
سه شنبه 15 دی 1388, 08:26 صبح
سلام،
دقيقاً اين ضرايب بستگي به نوع مسئله شما دارد و شما به عنوان کسي که از مسئله آگاه هست تصميم ميگيريد که اين ضرايب چه مقداري داشته باشند. حتي ميتونند متغير هم باشند و بسته به شرايط زماني و مکاني ذرات تغيير کنند.

مثلاً اگر ضريب الفا رو بيشتر از بتا درنظر بگيريد، ذرات (پرندگان) شبيه الگوريتم Hill Climbing عمل مي کنند. و يا اگر ضريب بتا را که با تجربه جمعي ذرات در ارتباط هست بيش از حد افزايش بديد ممکن هست دچار همگرايي زودرس بشيد.

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

در کل هرچه A بيشتر باشه ذرات به صورت خودمختار به جستجو مي پردازند و پراکنده مي شوند. و هرچه B بيشتر باشه ذرات حالت جمعي خودشون رو حفظ مي کنند. بايد سعي کنيد يک توازن بين اين دو ايجاد کنيد.

موفق باشيد/