مزايا و ويژگي‏هاي الگوريتم بهينه ‏سازي ازدحام ذرات

particle swarm optimization MATLAB code free

 بهره‏مندي از حافظه:

الگوريتم بهينه‏سازي ازدحام ذرات PSO داراي حافظه است به گونه‏اي که دانش راه‏حل‏هاي خوب توسط همه ي ذرات حفظ مي‏شود. به عبارتي در الگوريتم بهينه‏سازي ازدحام ذرات هر ذره از اطلاعات گذشته خود سود مي‏برد، در حاليکه چنين رفتار و خصيصه‏اي در ساير الگوريتم‏هاي تکاملي وجود ندارد، به عنوان مثال در الگوريتم ژنتيک چنين حافظه‏اي وجود ندارد و دانش قبلي مسئله يکباره با تغيير جمعيت از بين مي‏رود.

همکاري و اشتراک گذاري اطلاعات بين ذرات:

در الگوريتم بهينه‏ سازي ازدحام ذرات PSO هر عضو جامعه موقعيت خود را باتوجه به تجربيات شخصي و تجربيات کل جامعه تغيير مي‏دهد.اشتراک اجتماعي اطلاعات بين اعضاي يک جامعه يکسري مزيت‏هاي تکاملي را در پي دارد و اين فرضيه پايه و اساس الگوريتم بهينه‏سازي ازدحام ذرات و توسعه آن محسوب مي‏شود و در نتيجه همکاري سودمند بين ذرات وجود دارد و ذرات در گروه، اطلاعاتشان را با همديگر به اشتراک مي‏گذارند.

سرعت همگرايي بالا :

در الگوريتم بهينه سازي ازدحام ذرات، اعضاي جمعيت با هم ارتباط دارند و از طريق تبادل اطلاعات، به حل مسئله مي‏رسند از سرعت همگرايي بالايي برخوردار مي باشد. حرکت جمعي ذرات يک تکنيک بهينه‏سازي است که هر يک از ذرات سعي مي‏کنند به سمتي حرکت کنند که بهترين تجريه‏هاي شخصي و گروهي در آن نقاط روي داده است.

انعطاف پذيري بهتر در برابر مشکل بهينه محلي:

الگوريتم بهينه‏سازي ازدحام ذرات نسبت به استراتژي‏هاي بهينه‏سازي ديگر با بهره‏گيري از تعداد فراوان ذرات ازدحام کننده در برابر مشکل بهينه محلي انعطاف بيشتري نشان مي دهد.

راحتي پياده‎سازي و اجرا:

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

علاوه برمزاياي و ويژگي‏هايي که الگوريتم بهينه ‏سازي ازدحام ذرات دارد، اين الگوريتم داراي يکسري محدوديت‏ها و معايب مي‏باشد که بر کارايي عملکرد اين الگوريتم موثر است .

همگرايي زودرس :

عمده ‏ترين مسئله الگوريتم بهينه‏سازي ازدحام ذرات همگرايي زودرس مي باشد. در اين الگوريتم ذرات به تدريج در فضاي جستجو در نزديکي بهترين نقطه بهينه عمومي سير مي‏کنند و بقيه فضا را مورد کاوش قرار نمي‏دهند، و به عبارتي ذرات همگرا مي‏گردند. چرا که سرعت ذرات با افزايش تکرار کاهش مي‏يابد و بنابراين الگوريتم مجبور مي‏باشد به بهترين موقعيتي که تاکنون کشف کرده، همگرا شود و تضميني نيست که بهترين راه حل سراسري باشد. اين مسئله حاصل مکانيزم نامناسب تعادل ميان جستجوي سراسري و محلي مي‏باشد. درالگوريتم بهينه‏سازي ازدحام ذرات ، در تکرارهاي اول جستجوي سراسري ، ترجيح داده مي‏شود و به بهبود عملکرد کمک مي‏کند و در تکرارهاي آخر، جستجوي سراسري کاهش، و جهت بهره‏گيري بيشينه از اطلاعات به دست آمده جستجوي محلي ترجيح داده مي‏شود.

گرفتار شدن دربهينه محلي :

در طول فرايند جستجو ممکن است برخي ذرات در جمعيت در بهينه محلي گرفتار شوند و دراکتشافات بعدي شرکت ننمايند. اين مسئله در بهينه‏سازي توابع مولتي با ابعاد بالا کاملا رايج است. ذرات گيرافتاده در بهينه محلي موجب همگرايي زودرس و راه‏حل ضعيف مي‏شوند.

کاهش تنوع جمعيت:

در الگوريتم بهينه‏ سازي ازدحام ذرات پس ازمقداردهي اوليه به ذرات، ذرات در جمعيت معمولا در کل تکرار پي‏درپي فرايند جستجو به بهينه‏ محلي ياسراسري در فضاي جستجو همگرا مي‏شوند و ذرات جمعيت تحت تاثيرپذيري و تبعيت از بهترين ذره کشف شده در کل جمعيت اطراف آن ذره جمع مي‏شوند و يا به عبارتي منقبض مي‏گردند، در نتيجه در الگوريتم بهينه‏سازي ازدحام ذرات تنوع جمعيت به مرور زمان کاهش مي‏يابد. با اين شرايط براي محيط‏هايي همچون پويا که در آن با محيط ديناميک روبرو هستيم و امکان تغيير بهينه سراسري وجود دارد، ديگر ذرات همگرا شده از توانايي جستجوي سراسري مناسبي جهت دنبال کردن بهينه برخوردار نخواهند بود.

particle swarm optimization MATLAB code free 2

فلوچارت الگوریتم بهينه ‏سازي ازدحام ذرات :

particle swarm optimization MATLAB code free 3

کد متلب و فیلم آموزشی الگوريتم بهينه ‏سازي ازدحام ذرات

کدهای اماده الگوریتم بهينه ‏سازي ازدحام ذرات به همراه یک فیلم آموزشی فارسی از این الگوریتم توسط گروه ایران متلب آماده شده است که شما می‌توانید تقاضای این کد و فیلم آموزش فارسی را از برای ما ارسال کنید.

 

بعد از واریز هزینه کدها آماده متلب MATLAB ، الگوریتم بهينه ‏سازي ازدحام ذرات به همراه یک فیلم آموزشی فارسی برای شما ارسال و می‌توانید آنها را دانلود کنید و در پروژه یا پایان نامه خود استفاده کنید.


product image Evolutionary algorithm training video

Bee Colony Algorithm MATLAB training video

Genetic Algorithm MATLAB code video download

Cuckoo search Algorithm MATLAB training video

11 نظر در “مزايا و ويژگي‏هاي الگوريتم بهينه ‏سازي ازدحام ذرات”

  1. سلااام روزتون بخیر خسته نباشید
    ببخشید من این مطلبی که در مورد الگوریتم توده ذرات گذاشتین رو میخوام چطور میتونم کپی کنم ؟؟؟
    با تشکر

  2. با سلام
    آیا باید عیناً از همین الگوریتم MOPSO می توان برای مسئله LRP خودم استفاده کنم؟ ممنون میشم راهنمایی بفرمایید.
    با تشکر

  3. با عرض سلام بنده یک سیستم تشخیص بیماری نوشتم که بر پایه منطق فازی هست
    دارای 14 متغیر که هر کدام 5 توابع عضویت با درجات مختلف دارد البته در همگی متغیر ها یکسان هستند (تمامیه دیتاها از 98 بیمار در فایل اکسل موجود است به همراه ی فایل اکسل جداگانه برای خروجی و یا تشخیص)
    سیستم فازی را اکنون می خواهم با PSO بهینه کنم ولی متاسفانه نمی توانم چگونه و چطور تابع PSO را در بازه ی فازی بنویسم که در نهایت PSO را صدا بزنم
    ممنون می شوم راهنمایی بفرمایید و لطف کنید.
    نمونه ای از سیستم فازی بنده:

    Name=’Rama-fis’
    Type=’mamdani’
    Version=2.0
    NumInputs=14
    NumOutputs=1
    NumRules=36
    AndMethod=’min’
    OrMethod=’max’
    ImpMethod=’min’
    AggMethod=’max’
    DefuzzMethod=’centroid’

    [Input1]
    Name=’FEV’
    Range=[0 1]
    NumMFs=5
    MF1=’VML’:’trapmf’,[0 0 0.1 0.2]
    MF2=’MLD’:’trimf’,[0.1 0.35 0.6]
    MF3=’MOD’:’trimf’,[0.4 0.6 0.8]
    MF4=’SEV’:’trimf’,[0.6 0.8 1]
    MF5=’VSE’:’trapmf’,[0.8 0.9 1 1]

    [Input2]
    Name=’HDA’
    Range=[0 1]
    NumMFs=5
    MF1=’VML’:’trapmf’,[0 0 0.1 0.2]
    MF2=’MLD’:’trimf’,[0.1 0.35 0.6]
    MF3=’MOD’:’trimf’,[0.4 0.6 0.8]
    MF4=’SEV’:’trimf’,[0.6 0.8 1]
    MF5=’VSE’:’trapmf’,[0.8 0.9 1 1]

    [Input3]
    Name=’AP’
    Range=[0 1]
    NumMFs=5
    MF1=’VML’:’trapmf’,[0 0 0.1 0.2]
    MF2=’MLD’:’trimf’,[0.1 0.35 0.6]
    MF3=’MOD’:’trimf’,[0.4 0.6 0.8]
    MF4=’SEV’:’trimf’,[0.6 0.8 1]
    MF5=’VSE’:’trapmf’,[0.8 0.9 1 1]

    [Input4]
    Name=’SP’
    Range=[0 1]
    NumMFs=5
    MF1=’VML’:’trapmf’,[0 0 0.1 0.2]
    MF2=’MLD’:’trimf’,[0.1 0.35 0.6]
    MF3=’MOD’:’trimf’,[0.4 0.6 0.8]
    MF4=’SEV’:’trimf’,[0.6 0.8 1]
    MF5=’VSE’:’trapmf’,[0.8 0.9 1 1]
    .
    .
    .
    .

    [Output1]
    Name=’RESULT’
    Range=[0 1]
    NumMFs=5
    MF1=’VML’:’trapmf’,[0 0 0.1 0.2]
    MF2=’MLD’:’trimf’,[0.1 0.35 0.6]
    MF3=’MOD’:’trimf’,[0.4 0.6 0.8]
    MF4=’SEV’:’trimf’,[0.6 0.8 1]
    MF5=’VSE’:’trapmf’,[0.8 0.9 1 1]

    [Rules]
    1 1 1 1 1 1 2 2 2 2 1 2 1 1, 1 (1) : 2
    1 1 1 2 2 2 2 2 3 3 3 2 2 1, 2 (1) : 2
    0 0 2 4 3 2 2 3 4 3 4 3 2 3, 3 (1) : 1
    0 0 2 2 2 3 3 2 2 0 3 2 2 3, 2 (1) : 1
    2 0 3 3 2 3 1 1 2 3 2 3 2 3, 2 (1) : 1
    2 2 3 3 2 4 5 1 4 3 2 2 1 1, 3 (1) : 1
    3 2 3 3 2 3 1 4 3 1 3 1 5 4, 3 (1) : 1
    3 3 3 2 1 4 2 4 3 1 3 2 4 2, 3 (1) : 1
    3 4 5 3 4 4 5 5 5 4 3 3 5 4, 5 (1) : 1
    4 3 4 5 3 3 5 3 4 5 4 3 5 5, 4 (1) : 1
    4 4 3 4 2 5 5 3 5 3 3 4 5 5, 4 (1) : 1
    3 4 5 2 5 5 3 3 5 4 4 2 3 3, 4 (1) : 1
    4 3 3 1 2 3 1 3 2 2 3 2 1 1, 2 (1) : 1
    2 5 3 2 3 3 2 4 4 4 2 2 3 4, 3 (1) : 1
    3 2 2 3 4 3 4 5 3 2 4 4 5 1, 4 (1) : 1
    3 3 2 2 1 2 2 1 4 1 2 1 3 1, 2 (1) : 1
    5 5 3 2 3 4 4 4 5 4 4 5 3 5, 5 (1) : 1
    3 4 3 5 2 4 5 2 1 1 2 3 2 1, 3 (1) : 1
    3 4 3 5 2 4 5 2 1 1 2 3 2 1, 3 (1) : 1
    2 2 3 3 2 2 1 3 2 5 1 2 3 1, 2 (1) : 1
    .
    .
    .

    با تشکر فراوان

    1. ایران متلب

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

  4. حامد مولایی

    با سلام و عرض خسته نباشید
    من فیلم آموزشی الگوریتم بهینه سازی ازدحام ذرات رو می خوام از سایت شما تهیه کنم . هزینه و نحوه خرید رو اعلام میفرمائید؟

  5. عرض سلام وادب
    ممنون بابت نتلاشی که درراه نشردانش دارید
    اگرامکانش هست فایل ورد ورفرنستون روبرام ایمیل بفرماییدتادررساله بتونم باذکرمنبع ورفرنس استفاده کنم

پیام بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

− one = 9