بهینه سازی توابع ریاضیاتی با کمک الگوریتم فاخته در متلب همراه راهنما
بهینه سازی توابع ریاضیاتی با کمک الگوریتم فاخته در متلب همراه راهنما :پروژه متلب
پروژه متلب : در این پروژه از تابع هدف زیر استفاده شده که می توان تابع هزینه را عوض کرد و در هر مساله ای استفاده نمود.
y = 10.0 * size(x,2) + sum(x .^2 – 10.0 * cos(2 * pi .* x),2);
پروژه متلب جستجوی فاخته (به انگلیسی: Cuckoo search)، جستجوی کوکو یا جستجوی بلبل، الگوریتم بهینهسازی است که زین–شی یانگ و سوآش دب در سال ۲۰۰۹ طراحی کردند. این الگوریتم برگرفته از ملزوم کردن تخم انگلی بعضی گونههای بلبل به قرار دادن تخمهایش در آشیانه پرندگان میزبان دیگر (از گونههای دیگر) است. بعضی پرندگان میزبان میتوانند با فاختههای سربار و مزاحم جنگ و دعوا کنند. برای مثال اگر پرنده میزبان تخمهایی را پیدا کند که متعلق به آنها نیست، او این تخمهای بیگانه را دور میاندازد یا آشیانه اش را به راحتی ترک میکند و جای دیگر آشیانه جدیدی میسازد. بعضی گونههای فاخته همچون تخم- انگلی دنیای جدید- تاپیرا(tapera) به همان شیوهای شکل میگیرد که فاختههای مؤنث انگلی اغلب خیلی در تقلید در رنگها و الگوی تخمهای تعدادی از گونههای انتخابی میزبان متخصص میشوند. جستجوی فاخته بر اساس چنین شیوه پرورشی شکل میگیرد و بنابراین میتواند برای انواع مسایل بهینهسازی اجرا شود. به نظر میرسد این شیوه میتوان برای الگوریتمهای دیگر متاهو-یستیک بهطور عملی انجام شود. از قرار معلوم الگوریتم مربوطه دیگر از هر نظر برای حوزههای مختلف اجرایی بازیافت فاخته (cuckoo hashing) نامیده میشود که راس موس پاگ و فلمینگ فریچ رودلدر در سال ۲۰۰۱ طراحی کرد.
جستجوی بلبل
پروژه متلب جستجوی بلبل (cs) از نمونههای زیر استفاده میکند:
هر تخم در آشیانه نمایانگر یک راه حل است و تخم بلبل یک راه حل جدید را نشان میدهد. هدف آن است تا از راه حلهای بهتر و جدید بالقوه (بلبلها) استفاده شود تا راه حل نه خیلی ایدهآلی در اشیانهها جایگزین شود. در سادهترین شکل، هر آشیانه یک تخم دارد. الگوریتم میتواند برای بیشتر موارد پیچیدهای طراحی شود که در آن هر آشیانه چند تخم دارد که یک سری از راه حلها را نمایش میدهد. Cs بر اساس سد قانونی تأیید شدهاست:
- هر بلبل یکی یکی بر روی یک تخم میخوابد و تخم خود را در آشیانه تصادفی انتخاب شده میاندازد
- بهترین اشیانهها با بهترین کیفیت تخمها به تولید بعدی واگذار میشود.
- تعداد اشینههای میزبان موجود ثابت است و پرنده میزبان با احتمال (اوه) έ pa تخمی را پیدا میکند که بلبل بر روی آن خوابیدهاست.
یانگ و دب با کشف عملکرد تعدادی از بهترین اشیانهها و کشف راه حلهایی با احتمال (اوه) έ pa کشف کردند که دسته پرندگان لری (lery) جستجوی نحوه راه رفتن اتفاقی را در مقایسه با راه رفتن ساده تصادفی بهتر انجام میدهند.
کد
پروژه متلب کد ساختگی میتواند به شکل زیر خلاصه بندی شود: تابع هدف: f(x) و x=(x1 و x2و …و xd)و
:جمعیت اولیه n اشیانه میزبان را ایجاد کنید (توقف ضابطه) یا (بیشترین مقدار تولید> t) در حالیکه
یک بلبل را بهطور تصادفی انتخاب کنید (بگویید، I) و با اجرای دسته پرندگان لری راه حل آن را جایگزین کنید.
کیفیت و ثبات fi را ارزیابی کنید و {(xi)f α. fi و برای بیشترین) و اشیانهای را در بین n (بگویید، j) بهطور تصادفی انتخاب کنید و (fj <fi) اگر j را جانشین راه حل جدیدی کنید
و اگر یک کسر (pa) از بدترین اشانهها ترک میشود و یک اشیانه جدید ساخته میشود:
بهترین راهئ حل / اشیانه را انتخاب کنید. راه حلها / اشیانهها را طبقهبندی کنید و بهترین نمونه فعلی را پیدا کنید: بهترین راه حلهای فعلی را به تولید بعدی انتقال دهید و حال انکه پایان.
برترین امتیاز این الگوریتم سادگی ان است در حقیقت مقایسه با الگوریتمهای؟ جمعیت محور یا عامل محور همچون بهینهسازی انبوه ذرات و جستجوی هماهنگ، در این جا ضرورتاً فقط یک پارامتر pa در cs وجود دارد (جدای تعداد جمعیت n). بنابراین انجام ان کار سادهای است.
راه رفتن تصادفی و تعداد قدم
پروژه متلب موضوع مهم اجرای دسته پرندگان لری و راه رفتن تصادفی در معادله کلی برای تنظیم راه حلهای جدید است.
Xt+1 = xt+ sEt در حالیکه Et از نمودار معمول استاندارد همراه با میانگین صفر و انحراف معیار واحد برای راه رفتن تصادفی است یا برای دسته پرندگان لوی از نمودار لوی برداشت میشود. بدیهی است، راه رفتن تصادفی میتوان به شباهت بین تخم بلبل و تخم میزبان ارتباط داده شود که میتواند در عمل سخت و مشکل باشد. در این جا اندازه قدم s تعیین میکند راه پیمای تصادفی چگونه بیشتر میتواند برای تعداد ثابتی iteration راه رود. ایجاد اندازه قدم لوی اغلب سخت و دشوار است و یک الگوریتم مناسب، الگوریتم مانتیگ نا است. اگر خیلی بزرگ باشد، سپس راه حل جدید ایجاد شده خیلی متفاوت از راه حل قدیم خواهد بود (یا حتی به لبه نوارها میپرد). سپس، چنین حرکتی بعید است که پذیزفته شود. اگر s خیلی کوچک باشد، تغییرات آنقدر اندک و ناچیز است که چشمگیر و قابل ملاحظه باشد و بنابراین چنین جستجویی مؤثر نیست. زیرا اندازه صحیح گام لازم است تا مقدار جستجو را تا حد کافی کار آمد و مؤثر حفظ کند. بر اساس یک مثال، برای گام برداشتن تصادفی ایزوتروپیک ساده، ما میدانیم میانگین فاصله r که به فضای d – بعدی حرکت میکند معادل رابطه زیر است: r2 = 2dDt در حالیکه d=22/2J ضریب مناسب انتشار است. در این جا s اندازه قدم یا فاصله طی شده در هر پرش است و J زمان صرف شده برای هر پرش است. معادله بالا اشاره بر ان دارد: S2=τr2/td برای L مقیاس طول نمونه از بعد مورد نظر، جستجوی محلی بهطور نمونه در منطقه r=L/10 محدود میشود. برای ۱=τ و ۱۰۰۰ تا ۱۰۰=t، ما L01/0= s را برای d=۱ و L001 /0 =s را برای d=۱۰ داریم؛ بنابراین ما میتوانیم برای اغلب مسایل از ۰۱/۰ تا ۰۰۱/۰ = s/L استفاده کنیم. اگر چه انحراف واقعی ممکن است به تجزیه و تحلیل دقیق رفتار دسته پرندگان لوی داشته باشد.
تحلیل و بررسی الگوریتم و همگرایی سودمند خواهد بود، زیرا مسایل باز زیادی در رابطه با متاهریستیک وجود دارد. اجرا: کد ساختگی به شکل ترتیبی داده شد، اما یانگ و دب به شکل برداری اجرا کردند که روش بسیار مؤثر و کارامدی است. در دنیای واقعی، اگر تخم بلبل مشابه تخم میزبان باشد، سپس این تخم بلبل کمتر احتمال دارد که کشف شود، بنابراین قابلیت باید تفاوت در راه حلها ارتباط داشته باشد؛ بنابراین خوب است تا با مقداری از اندازههای گام تصادفی، به روش از پیش داوری شده، راه رفتن تصادفی را انجام دهیم. برای اجرای مطلب (matLab)، این راه رفتن از پیش داوری شده تصادفی میتواند تا حدی به وسیله رابطه زیر بدست آید: Stepsize= rand (nest (randperm(n)و)-nest(randperm(n)و))و New- nest= nest+stepsize. *k؛ در حالیکه k=rand(size(nest))> pa و pa سرعت کشف کردن است. یک مطلب cs استاندارد میتواند در این جا تعریف شود. نرم افراز شی- تنظیم شده اجرای جستجوی بلبل را با سانین طراحی کرد. به عبارت دیگر، الگوریتم تشریحی بلبل همچنین میتواند برای مسایل بهینهسازی غیرضروری انجام شود. اجرای منبع باز جستجوی بلبل شرح داده شده میتواند .
جستجوی بلبل شرح داده شده:
پروژه متلب والتون و همکارانش با هدف سرعت بخشیدن به همگرایی، جستجوی بلبل استاندارد را توصیف کردند: توصیف شامل گام اضافی اطلاعاتی میشود که در بین تخمهای بالایی مبادله میشود. نشان داده شدهاست که جستجوی بلبل شرح داده شده (mcs)، در اصطلاح سرعتهای همگرایی، هنگام اجرای یک سری از توابع هدف benchmark بهینهسازی استاندارد، جستجوی بلبل استاندارد و الگوریتمهای دیگر را اجرا میکند.
سپس، جستجوی بلبل شرح داده شده اجرا شدهاست تا شبکه بدون شکل و ساختاری را اصلاح کند که از هزینه محاسباتی به طرز قابل ملاحظهای بکاهد. علاوه بر این، بهینهسازی دیگر جستجوی بلبل به اصطلاح جستجوی بلبل مقدار معینی با نتایج متقاعدکنندهاست.
جستجوی بلبل چند منظوره (mocs):
روش جستجوی بلبل چند منظوره (mocs) فرمولسازی شدهاست تا با مسایل بهینهسازی چند معیاری روبرو شود. این روش از وزنهای تصادفی استفاده میکند تا اهداف چند گانه را با یک هدف تکی ترکیب کند. همچنین وزنها بهطور تصادفی متفاوت هستند. حوزههای پاریتو میتوانند پیدا شوند بنابراین نقاط میتوانند بهطور معکوس در سراسر حوزهها پراکنده شوند.
ترکیبسازی
پروژه متلب اگر چه جستجوی بلبل یک الگوریتم بر پایه انبوه هوش است، اما هنوز میتواند با الگوریتمهای دیگر بر پایه انبوه همچونpso ترکیب شود. برای مثال به نظر میرسد الگوریتم ترکیبی cs-pso نقص pso را اصلاح میکند. موارد استفاده: موارد استفاده جستجوی بلبل در مسایل بهینهسازی مهندسی در بازده پیشبینی شده آن نشان داده شدهاست. برای مثال، هم برای طرح پزیدن و هم برای مسایل طرح پرتوهای یکی شده، cs در مقایسه با راه حلهای مقاله، راه حلهای بهتری کسب کرد. الگوریتم جستجوی بلبل گسسته پیشبینی شده به تازگی طراحی میشود تا مسئله زمانبندی پرستاری را حل کند. روش محاسباتی مؤثر بر پایه جستجوی بلبل که برای انتشار اطلاعات در شبکههای حسگیری سیم فرض شدهاست. جستجوی بلبل بر پایه مقدار معین انجام شد تا مسایل کی تاپ سک (knapsack) را حل کند که تأثیر ان را نشان دهد. از جستجوی بلبل همچنین میتوان استفاده کرد تا مسیرهای آزمایشی مستقل را برای آزمایش نرمافزار ساختاری و برای ایجاد اطلاعات آزمایشی به وجود آورد.
پروژه متلب مقایسه مفهومی جستجوی بلبل با pso, dE, abc نشان میدهد که الگوریتمهای cs و dE در مقایسه با pso و abc دقیق تری ارائه میدهند. مطالعه دقیق گسترده بر روی انواع مسایل بهینهسازی ساختاری نشان میدهد جستجوی بلبل در مقایسه با الگوریتمهای دیگر نتایج بهتری به دست میدهد. علاوه بر این، رروش آزمایش نرمافزار جدید بر اساس جستجوی بلبل شکل گرفتهاست. علاوه بر این جستجوی بلبل به خصوص برای حل مسایل بزرگ مقیاس مناسب است. همانطور که در مطالعه اخیر نشان داده شدهاست جستجوی بلبل اجرا شدهاستتا شبکههای عصبی با عملکرد اصلاح شدهای پرورش یابند. علاوه بر این cs به شکل موفقیتآمیز اجرا میشود تا الگوهای عصبی spiking شکل گیرند. همچنین از جستجوی بلبل استفاده میشود تا فرایند ترکیب خدماتا و طراحی گرافها بهینهسازی شود. جستجوی بلبل روش مطمئنی برای طرح سیستم کار گذاشته و بهینهسازی طرح از جمله مناسبترین طرح ساختارهای فولادسازی است. مطالعات جدیدتر نشان میدهد که جستجوی بلبل میتواند در الگوریتمهای دیگر در استفادههای نورد سازی، ساخت برنامه زمانبندی و موارد دیگر اجرا شود. یک استفاده جالب از جستجوی بلبل حل مسایل محدوده ارزش است.
الگوریتم فاخته اولین بار توسط استاد رامین رجبیون ارائه شد. الگوریتم فاخته از سری الگوریتم های فراابتکاری است که از زندگی یک خانواده از پرندگان به نام فاخته ها، الهام گرفته است. الگوریتم بهینه سازی فاخته (COA) با یک جمعیت اولیه آغاز می شود. فاخته های بالغ و تخمها تلاش فاخته ها برای زنده ماندن اساس الگوریتم بهینه سازی فاخته را تشکیل می دهد. در طول مسابقه برای زنده ماندن، برخی از فاختهها یا تخم های آنان از بین می روند. جامعه فاختگان نجات یافته به یک محیط بهتر مهاجرت می کنند، و دوباره شروع به تکثیر و تخم گذاری می کنند.
پروژه متلب در این مقاله، ما یک الگوریتم تکاملی بهینه سازی جدید را معرفی می کنیم که از زندگی یک خانواده از پرندگان به نام “فاخته” الهام گرفته است. نحوه خاص تخم گذاری و زاد و ولد فاخته ها، اساس این الگوریتم بهینه سازی نوین است. فاخته هایی که در این مدل از آن ها استفاده می شود، بر دو نوع اند: فاخته های بالغ و تخم ها. فاخته های بالغ در لانه های پرندگان دیگر تخم گذاری می کنند و اگر این تخم ها توسط پرنده های میزبان شناسایی و نابود نشوند، رشد می کنند و به فاخته های بالغ تبدیل می شوند. امید می رود، خصوصیات زیست محیطی و مهاجرت جوامع (گروه های فاخته ها آن ها را به سمت همگرایی و یافتن بهترین محیط برای زاد و ولد و تکثیر هدایت کند. این بهترین محیط، ماکزیمم مطلق توابع هدف است. این مقاله نشان می دهد که چگونه شیوه حيات فاخته ها مدل سازی و اجرا می شود. بخش ۲ پرندگانی به نام فاخته را مورد بررسی قرار می دهد و ویژگی های شگفت انگیز زندگی آن ها را مرور می کند. در بخش ۳، الگوریتم بهینه سازی فاخته ارائه می شود و قسمت های مختلف آن با جزئیات مورد مطالعه قرار می گیرد. در بخش ه الگوریتم پیشنهاد شده با چند تابع محک و نیز با طراحی کنترل کننده یک فرآیند چند ورودی – چند خروجی (MIMO) به عنوان یک مطالعه موردی واقعی، آزموده می شود. سرانجام در بخش ۵ نتیجه گیری انجام می شود.
پروژه متلب مزایای اصلی الگوریتم های تکاملی عبارتند از:
(۱) مقاوم بودن به تغییرات پویا: روش های سنتی بهینه سازی نسبت به تغییرات پویا در محیط زیست قوی نیستند و برای تهیه راه حل نیاز به راه اندازی مجدد کامل دارند. در مقابل ، محاسبه تکاملی می تواند برای انطباق راه حل ها با شرایط تغییر یابد.
(۲) کاربرد گسترده: الگوریتم های تکاملی می تواند برای هر مساله ای که می تواند به عنوان مسائل بهینه سازی عملکرد مورد استفاده قرار گیرد ، اعمال شود.
(۳) هیبریداسیون با روش های دیگر: الگوریتم های تکاملی را می توان با تکنیک های بهینه سازی سنتی تر ترکیب کرد.
(۴) مشکلاتی را حل می کند که هیچ راه حلی ندارند: مزیت الگوریتم های تکاملی شامل توانایی رسیدگی به مشکلاتی است که برای آنها تخصص انسانی وجود ندارد. حتی اگر تخصص انسانی باید در هنگام نیاز و در دسترس استفاده شود. غالباً برای روال های خودکار حل مسئله مشکل کمتری دارد.
فاخته ها و روش منحصر به فرد آن ها در تکثیر
پروژه متلب همه ۹۰۰۰ گونه پرندگان شیوه یکسانی برای والد شدن دارند: روش تخم گذاری. هیچ پرنده ای نوزاد به دنیا نمی آورد. پرندگان به سرعت یک تخم درون یک پوسته محافظ تشکیل می دهند و روی آن می خوابند. اندازه بزرگ تخم ها، این را برای پرنده مؤنث دشوار می کند که در یک زمان، از بیش از یک تخم نگهداری کند. به همراه داشتن تخم ها، پرواز را سخت تر می کند و به انرژی بیشتری نیاز دارد. و چون یک تخم، غنیمتی پر از پروتئین و مغذی برای همه شکارچیان است، پرندگان باید جایی امن برای تخم گذاری بیابند. یافتن مکانی برای تخم گذاری به صورت ایمن و پرورش جوجه شان تا رسیدن به استقلال، چالشی است که پرندگان آن را با راه های هوشمندانه ای حل کرده اند. آن ها از هنر، طراحی و مهندسی پیچیده استفاده می کنند. تنوع ساختاري لانه ها هیچ معادلی در دنیای جانوران ندارد. بسیاری از پرندگان، الانه های منفرد و ناپیدای پنهان شده لابلای پوشش گیاهی می سازند تا از شناسایی توسط شکارچیان دور بمانند. بعضی از آنان چنان در پنهان کردن لانه هایشان موفق اند که حتی چشم های جست و جو گر انسان هم به ندرت آن ها را دیده است.
پروژه متلب پرندگانی هم هستند که تمام عرف های لانه سازی و والدي را رها می کنند و برای پروراندن خانواده شان به حیله گری متوسل می شوند. این ها “جوجه های انگلی” هستند، پرندگانی که هرگز لانه خودشان را نمی سازند و در عوض در لانه گونه های دیگر تخم گذاری می کنند و نگه داری از جوجه شان را به والدین آن گونه می سپارند. فاخته، شناخته شده ترین انگل جوجه است و ماهر در فریب ظالمانه. رویکرد او شامل پنهان کاری، غافل گیری و سرعت است. فاخته مادر تخم پرنده گونه میزبان را بر می دارد، تخم خودش را به جای آن در لانه قرار می دهد و با تخم میزبان روی منقارش لانه را ترک می کند. کل این فرآیند کم تر از ۱۰ ثانیه طول می کشد. فاخته ها انگل لانه های انواع زیادی از گونه های پرندگان می شوند و با دقت رنگ و شکل تخم های خود را با تخم های گونه های میزبان تطبیق می دهند. هر فاخته مؤنث روی یک گونه میزبان خاص، تخصص دارد. این که چگونه فاخته قادر است طوری تخم گذاری کند که دقیقا از تخم های هر میزبان تقلید کند، یکی از معماهای اصلی طبیعت است. بسیاری از پرندگان یاد می گیرند که یک تخم فاخته قرار گرفته در لانه خودشان را شناسایی کنند و یا این تخم عجیب را به بیرون پرتاب کنند یا آن لانه را رها کنند و از نو لانه بسازند. الگوریتم فرا ابتکاری فاخته در شکل زیر آورده شده است.
سبک فاخته برای تخم گذاری
هر فاخته شروع به تخم گذاری به طور تصادفی در لانه های پرندگان میزبان دیگر در ELR خود می کند. شکل ۲ نمای روشنی از این مفهوم ارائه می دهد.
تخم گذاری تصادفی در تخم مرغ ELR ، ستاره قرمز مرکزی زیستگاه اولیه فاخته با ۵ تخم است. ستاره های صورتی لانه جدید تخم ها هستند.
شبه کد الگوریتم بهینه سازی فاخته
- به محل زندگی فاخته ها با چند نقطه تصادفی روي تابع سود، مقدار بدهید.
- به هر فاخته تعدادي تخم اختصاص دهید.
- ELR را براي هر فاخته مشخص کنید.
- به فاخته ها اجازه دهید در ELR مربوط به خود، تخم گذاري کنند.
- تخم هایی که توسط پرندگان میزبان شناسایی می شوند را از بین ببرید.
- اجازه دهید جوجه ها به دنیا بیایند و رشد کنند.
- محل زندگی هر فاخته بالغ جدید را ارزیابی کنید.
- تعداد حداکثر فاخته ها در محیط را محدود کنید و آنهایی که در بدترین محل ها زندگی می کنند را از بین ببرید.
- فاخته ها را دسته بندي کنید و بهترین گروه را بیابید و محل زندگی هدف را برگزینید.
- به جمعیت جدید فاخته ها اجازه مهاجرت به محل زندگی هدف بدهید.
خروجی متلب :
دیدگاه ها