انجام پروژه و شبیه سازی رشته دانشگاهی و ترجمه مقالات........ شماره تماس: 09906118613
شبیه سازی پروژه برق با متلب انجام پروژه دانشجویی آیدی تلگرام برای سفارش پروژه ترجمه تخصصی مقالات و متون انگلیسی

اطلاعیه فروشگاه

برای انجام پروژه دانشگاهی با ما در ارتباط باشید......................شماره تماس: 09906118613.......... تلگرام و اینستاگرام powerelectronic4u@.......... .. ایمیل : hw.mohammadi@gmail.com........ کانال تلگرام پاورالکترونیک: (دانلود پروژه رایگان) ...... powerelectronic4all@

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

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

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

روش بهینه‌سازی ازدحام ذرات (به انگلیسی: Particle swarm optimization) یا به اختصار روش PSO، یک روش سراسری کمینه‌سازی است که با استفاده از آن می‌توان با مسائلی که جواب آن‌ها یک نقطه یا سطح در فضای n بعدی می‌باشد، برخورد نمود. در اینچنین فضایی، فرضیاتی مطرح می‌شود و یک سرعت ابتدایی به آن‌ها اختصاص داده می‌شود، همچنین کانال‌های ارتباطی بین ذرات درنظر گرفته می‌شود. سپس این ذرات در فضای پاسخ حرکت می‌کنند، و نتایج حاصله بر مبنای یک «ملاک شایستگی» پس از هر بازهٔ زمانی محاسبه می‌شود. با گذشت زمان، ذرات به سمت ذراتی که دارای ملاک شایستگی بالاتری هستند و در گروه ارتباطی یکسانی قرار دارند، شتاب می‌گیرند. علی‌رغم اینکه هر روش در محدوده‌ای از مسائل به خوبی کار می‌کند، این روش در حل مسائل بهینه‌سازی پیوسته موفقیت بسیاری از خود نشان داده است.

 

انواع الگوریتم ازدحام ذرات

الگوریتم ازدحام ذرات پیوسته

مقدمه

الگوریتم PSO یک الگوریتم جستجوی جمعی است که از روی رفتار اجتماعی دسته‌های پرندگان مدل شده‌است. در ابتدا این الگوریتم به منظور کشف الگوهای حاکم بر پرواز هم‌زمان پرندگان و تغییر ناگهانی مسیر آن‌ها و تغییر شکل بهینهٔ دسته به کار گرفته شد. در PSO، ذرات در فضای جستجو جاری می‌شوند. تغییر مکان ذرات در فضای جستجو تحت تأثیر تجربه و دانش خودشان و همسایگانشان است؛ بنابراین موقعیت دیگر توده ذرات روی چگونگی جستجوی یک ذره اثر می‌گذارد. نتیجهٔ مدل‌سازی این رفتار اجتماعی فرایند جستجویی است که ذرات به سمت نواحی موفق میل می‌کنند. ذرات از یکدیگر می‌آموزند و بر مبنای دانش بدست آمده به سمت بهترین همسایگان خود می‌روند اساس کار PSO بر این اصل استوار است که در هر لحظه هر ذره مکان خود را در فضای جستجو با توجه به بهترین مکانی که تاکنون در آن قرار گرفته‌است و بهترین مکانی که در کل همسایگی‌اش وجود دارد، تنظیم می‌کند.

در ادامه کمی به توضیح مفهوم هوش جمعی میپردازیم.

هوش جمعی

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

اولین الگوریتم ازدحام ذرات

در سال ۱۹۹۵ ابرهارت و کندی برای اولین بار PSO به عنوان یک روش جستجوی غیر قطعی برای بهینه‌سازی تابعی مطرح گشت این الگوریتم از حرکت دسته جمعی پرندگانی که به دنبال غذا میباشند، الهام گرفته شده‌است. گروهی از پرندگان در فضایی به صورت تصادفی دنبال غذا میگردند. تنها یک تکه غذا در فضای مورد جستجو وجود دارد. هر راه حل که به آن یک ذره گفته میشود، PSO در الگوریتم معادل یک پرنده در الگوریتم حرکت جمعی پرندگان میباشد. هر ذره یک مقدار شایستگی دارد که توسط یک تابع شایستگی محاسبه میشود. هر چه ذره در فضای جستجو به هدف (غذا در مدل حرکت پرندگان) نزدیکتر باشد، شایستگی بیشتری دارد. همچنین هر ذره دارای یک سرعت است که هدایت حرکت ذره را بر عهده دارد. هر ذره با دنبال کردن ذرات بهینه در حالت فعلی، به حرکت خود در فضای مسئله ادامه میدهد.

به ا ین شکل است که گروهٔ از ذرات در آغاز کار به صورت تصادفی به وجود می‌آیند و با به روز کردن نسلها سعی در یافتن راه‌حل بهینه می‌نمایند. در هر گام، هر ذره با استفاده از دو بهترین مقدار به روز می‌شود. اولین مورد، بهترین موقعیتی است که تاکنون ذره موفق به رسیدن به آن شده‌است. موقعیت مذکور شناخته و نگهداری می‌شود که این بهترین مقدار نوستالژی آن ذره نیز گفته میشود که آن را با pbest نمایش میدهیم. بهترین مقدار دیگری که توسط الگوریتم مورد استفاده قرار میگیرد، بهترین موقعیتی است که تا کنون توسط جمعیت ذرات بدست آمده‌است که آن را gbest میگوییم (هوش جمعی).

پس از یافتن بهترین مقادیر، سرعت و مکان هر ذره با استفاده از رابطه ۶ و ۷به روز می‌شود.

رابطه 6 v ( t + 1 ) = v ( t ) + c 1 ∗ r a n d ( t ) ∗ ( p b e s t ( t ) − p o s i t i o n ( t ) + c 2 ∗ r a n d ( t ) ∗ ( g b e s t ( t ) − p o s i t i o n ( t ) ) {\displaystyle v(t+1)=v(t)+c1*rand(t)*(pbest(t)-position(t)+c2*rand(t)*(gbest(t)-position(t))} {\displaystyle v(t+1)=v(t)+c1*rand(t)*(pbest(t)-position(t)+c2*rand(t)*(gbest(t)-position(t))}

رابطه 7 p o s i t i o n ( t + 1 ) = p o s i t i o n ( t ) + v ( t + 1 ) {\displaystyle position(t+1)=position(t)+v(t+1)} {\displaystyle position(t+1)=position(t)+v(t+1)} سمت راست معادله ۶ از سه قسمت تشکیل شده‌است که قسمت اول، سرعت فعلی ذره است ( v ( t ) {\displaystyle v(t)} {\displaystyle v(t)}) و قسمتهای دوم ( c 1 ∗ r a n d ( t ) ∗ ( p b e s t ( t ) − p o s i t i o n ( t ) ) {\displaystyle c1*rand(t)*(pbest(t)-position(t))} {\displaystyle c1*rand(t)*(pbest(t)-position(t))}) و سوم ( c 2 ∗ r a n d ( t ) ∗ ( g b e s t ( t ) − p o s i t i o n ( t ) ) {\displaystyle c2*rand(t)*(gbest(t)-position(t))} {\displaystyle c2*rand(t)*(gbest(t)-position(t))}) میزان تغییر سرعت ذره و جهت آن به سمت بهترین تجربه شخصی (نوستالژی) و بهترین تجربه گروه (هوش جمعی) را به عهده دارند. اگر قسمت اول را در این معادله درنظر نگیریم ( v ( t ) {\displaystyle v(t)} {\displaystyle v(t)})، آنگاه سرعت ذرات تنها با توجه به موقعیت فعلی و بهترین تجربه ذره و بهترین تجربه جمع تعیین می‌شود و عملاً تأثیر سرعت کنونی و لختی آن حذف می‌شود. به این ترتیب، بهترین ذره گروه، در جای خود ثابت می‌ماند و سایرین به سمت آن ذره حرکت می‌کنند. در واقع حرکت دسته جمعی ذرات بدون قسمت اول معادله ۶، پروسه ای خواهد بود که طی آن فضای جستجو به تدریج کوچک می‌شود و جستجویی محلی حول بهترین ذره شکل می‌گیرد. در مقابل اگر فقط قسمت اول معادله ۶ را در نظر بگیریم، ذرات راه عادی خود را می‌روند تا به دیواره محدوده برسند و به نوعی جستجویی سراسری را انجام میدهند. پارامترهای c1 و c2 (مقدار آن حدود ۲ است) میزان اهمیت و وزن هوش جمعی و نوستالژی را مشخص می‌کنند. پارامتر r a n d ( t ) {\displaystyle rand(t)} {\displaystyle rand(t)}

با صفر قرار دادن یا ندادن پارامترهای c1 و c2 سه حالت مختلف زیر به وجود می‌آید:

  1. هیچ‌کدام از این دو پارامتر را صفر نگذاریم که میشود pso با لختی سرعت، هوش جمعی و نوستالژی.
  2. وزن نوستالژی را صفر کنیم و فقط براساس هوش جمعی و لختی عمل کنیم.
  3. وزن هوش جمعی را صفر کنیم و فقط براساس نوستالژی و لختی عمل کنیم.

برای مقداردهی اولیه توسط رابطه ۸ عمل میکنیم. سرعت اولیه نیز طبق ۹ صفر است.

رابطه 8 x ( 0 ) = x m i n + r a n d ( x m a x − x m i n ) {\displaystyle x(0)=x_{min}+rand(x_{max}-x_{min})} {\displaystyle x(0)=x_{min}+rand(x_{max}-x_{min})}

رابطه 9 v ( 0 ) = 0 {\displaystyle v(0)=0} {\displaystyle v(0)=0}

شبه کد الگوریتم PSO:

For each particle
Initialize particle
End For
Do
For each particle
Calculate fitness value of the particle fp
/*updating particle’s best fitness value so far)*/
If fp is better than pBest
set current value as the new pBest
End For
/*updating population’s best fitness value so far)*/
Set gBest to the best fitness value of all particles
For each particle
Calculate particle velocity according equation
Update particle position according equation
End For While maximum iterations OR minimum error criteria is not attained

اما در مورد شرط توقف باید گفت که راههای زیر موجود است:

  • ‌ تعداد تکرار معین
  • رسیدن به یک شایستگی آستانه
  • یک تعداد تکرار که شایستگی تغییر نکند (مثلاً اگر بعد از ۱۰ تکرار شایستگی ثابت بود و بهتر نشد).
  • راه آخر بر اساس چگالی تجمیع اطراف نقطه بهینه است. به این صورت که میگوییم اگر ۸۰ درصد ذرات در فاصلهای کمتر از ۲۰ درصد بیشترین فاصله نسبت به بهترین جواب قرار داشتند، الگوریتم باید متوقف شود.

روش آخر به این صورت است که طبق رابطه ۱۰ می‌توان را بدست آورد. همان‌طور که گفته شد R n o r m {\displaystyle R_{norm}} {\displaystyle R_{norm}} یک مقدار بین ۰ و ۱ است و همین‌طور F بیشترین فاصله بین دو ذره در حالت کنونی است.

رابطه 10 R n o r m = ( R m a x F ) {\displaystyle R_{norm}=\left({\frac {R_{max}}{F}}\right)} {\displaystyle R_{norm}=\left({\frac {R_{max}}{F}}\right)}

مشکل اساسی اولین الگوریتم ازدحام ذرات

یک مشکل اساسی فرمول ارائه شده برای الگوریتم ازدحام ذرات اولیه اینست که دائماً سرعت افزایش می‌یابد و هیچ برنامه‌ای برای کاهش آن ارائه نشده است، درصورتیکه لازم است هر چه به بهینه سراسری نزدیک می‌شویم سرعت کمتر شود تا ذره ما از بهینه سراسری عبور نکند.

برای این کار چند راه حل ارائه شده‌است.

استفاده از سرعت بیشینه برشی

در این روش برای جلوگیری از زیاد شدن بیش از اندازه سرعت، یک سرعت بیشینه تعریف میشود تا هرگاه سرعت به بیش از آن رسید برش داده شود.

v ′ ( t + 1 ) = { v ( t + 1 ) v ( t + 1 ) < v m a x v m a x v ( t + 1 ) >= v m a x {\displaystyle v\prime (t+1)={\begin{cases}v(t+1)&v(t+1)<v_{max}\\v_{max}&v(t+1)>=v_{max}\end{cases}}} {\displaystyle v\prime (t+1)={\begin{cases}v(t+1)&v(t+1)<v_{max}\\v_{max}&v(t+1)>=v_{max}\end{cases}}}

استفاده از سرعت بیشینه تانژانت هایپربولیکی

در این روش از یک تابع تانژانت هیپربولیک برای محدود کردن سرعت به یک مقدار خاص استفاده می‌شود. تفاوت این حالت با حالت برشی اینست که در این حالت تابع ما مشتق پذیر در همهٔ نقاط است درحالیکه در حالت برشی مشتق پذیری از بین می رود.

v ′ i j ( t + 1 ) = t a n h ( v i j ( t + 1 ) v m a x j ) v m a x j ( t ) {\displaystyle v\prime _{ij}(t+1)=tanh({\frac {v_{ij}(t+1)}{v_{maxj}}})v_{maxj}(t)} {\displaystyle v\prime _{ij}(t+1)=tanh({\frac {v_{ij}(t+1)}{v_{maxj}}})v_{maxj}(t)}

در حالت برشی در نقطه برش مشتق پذیری از بین میرود؛ ولی در تانژانت هیپربولیک این مشکل وجود ندارد.

استفاده از ضریب کاهنده سرعت

در این روش از یک که باید بین ۰ و ۱ باشد، استفاده می‌شود. در غیر این صورت اگر بیش از ۱ باشد، سرعت افزاینده خواهد بود.

۱۴ 

حال تعیین کردن خود این یک مسئله است که روش‌های متعددی برای آن وجود دارد.


اشتراک بگذارید:


پرداخت اینترنتی - دانلود سریع - اطمینان از خرید

پرداخت هزینه و دریافت فایل

مبلغ قابل پرداخت 14,000 تومان
عملیات پرداخت با همکاری بانک انجام می شود

درصورتیکه برای خرید اینترنتی نیاز به راهنمایی دارید اینجا کلیک کنید


فایل هایی که پس از پرداخت می توانید دانلود کنید

نام فایلحجم فایل
Project23_1919965_6154.zip2.4k





الگوریتم بهینه سازی شبیه سازی تبرید

الگوریتم بهینه سازی شبیه سازی تبرید   مقدمه   در روش شبیه‌سازی تبریدی (SA)، هر نقطه s در فضای جستجو مشابه یک حالت از یک سیستم فیزیکی است، و تابع (E(s که باید کمینه شود، مشابه با انرژی داخلی سیستم در آن حالت است. در این روش، هدف انتقال سیستم از حالت اولیه دلخواه، به حالتی است که سیستم در آن کمترین انرژی را داشته باشد.   تکرار پایه‌ای   در هر گام، تبرید شبیه‌سازی‌شده یک حالت همسایه را در نظر می ...

توضیحات بیشتر - دانلود 14,000 تومان

الگوریتم بهینه سازی جست و جوی ممنوعه

الگوریتم بهینه سازی جست و جوی ممنوعه الگوریتم بهینه سازی جست و جوی ممنوعه الگوریتم جستجوی ممنوعه (Tabu Search) (TS) یک الگوریتم بهینه‌سازی فراابتکاری است که برای اولین بار در سال ۱۹۸۶ توسط گلووِر Glover معرفی شد. در سال ۱۹۹۷، اولین کتابی که کاملاً به جستجوی ممنوعه اختصاص داشت توسط گلووِر و لاگونا منتشر شد. واژهٔ تابو از تُنگان زبان مردم جزایر پلینزی در اقیانوس آرام گرفته شده‌است. این واژه به معنای شیء مقدسی است که به دلیل ...

توضیحات بیشتر - دانلود 14,000 تومان

الگوریتم بهینه سازی کلونی مورچگان

 الگوریتم بهینه سازی کلونی مورچگان  الگوریتم بهینه سازی کلونی مورچگان ...

توضیحات بیشتر - دانلود 14,000 تومان

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

الگوریتم بهینه سازی کلونی زنبورها الگوریتم بهینه سازی کلونی زنبورها ...

توضیحات بیشتر - دانلود 14,000 تومان

کدهای متلب الگوریتم بهینه سازی کلونی زنبورهای مصنوعی

کدهای متلب الگوریتم بهینه سازی کلونی زنبورهای مصنوعی کدهای متلب الگوریتم بهینه سازی کلونی زنبورهای مصنوعی ...

توضیحات بیشتر - دانلود 14,000 تومان

کدهای متلب الگوریتم بهینه سازی خفاش

 کدهای متلب الگوریتم بهینه سازی خفاش  کدهای متلب الگوریتم بهینه سازی خفاش ...

توضیحات بیشتر - دانلود 14,000 تومان

کدهای متلب الگوریتم بهینه سازی جغرافیای زیستی

کدهای متلب الگوریتم بهینه سازی جغرافیای زیستی کدهای متلب الگوریتم بهینه سازی جغرافیای زیستی ...

توضیحات بیشتر - دانلود 14,000 تومان

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

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

توضیحات بیشتر - دانلود 14,000 تومان

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

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

توضیحات بیشتر - دانلود 14,000 تومان

دانلود کدهای متلب الگوریتم بهینه سازی رقابت استعماری

دانلود کدهای متلب الگوریتم بهینه سازی رقابت استعماری دانلود کدهای متلب الگوریتم بهینه سازی رقابت استعماری ...

توضیحات بیشتر - دانلود 14,000 تومان

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

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

توضیحات بیشتر - دانلود 14,000 تومان

دانلود کدهای متلب الگوریتم بهینه سازی جست و جوی گرانشی

دانلود کدهای متلب الگوریتم بهینه سازی جست و جوی گرانشی دانلود کدهای متلب الگوریتم بهینه سازی جست و جوی گرانشی ...

توضیحات بیشتر - دانلود 14,000 تومان