کد فروشنده دوره گرد با الگوریتم فاخته
روش جستجوی فاخته (CS) یک روش بهینهسازی فرااکتشافی است که رویکردی تکاملی در جستجوی راهحل بهینه دارد و در سال 2009 توسط Yang و Deb پیشنهاد شده است. این روش از رفتار جالب توجه گونههایی از پرندهی فاخته در پرورش تخم الهام گرفته است و آن را با پرواز لووی که نوعی گشت تصادفی است ترکیب میکند.
برخی از گونههای فاخته به جای ساختن لانه، تخمهای خود را در لانهی پرندهای از گونههای دیگر میگذارند و آنها را با تقلید از شکل تخمها و جوجههای پرندهی میزبان وادار به مشارکت در بقای نسل خود میکنند.
پرواز لووی نوعی گشت تصادفی است که طول گام آن از یک توزیع مشخص پیروی میکند. با استفاده از این روش اغلب، راهحلهای مشابه با راهحل فعلی و به ندرت راهحلهای دور از آن در مرحلهی بعدی جستجو تولید میشود. با توجه به این ویژگی میتوان با بهرهگیری از پرواز لووی جستجوی محلی و سراسری را تنها با یک ساختار پیادهسازی کرد. بنابراین تعداد پارامترهای مورد نیاز برای اجرای الگوریتم کاهش مییابد. الگوریتم CS از سه قانون زیر تبعیت میکند:
1- هر فاخته در هر زمان یک تخم میگذارد و آن را در یک لانهی تصادفی قرار میدهد.
2- بهترین لانهها با کیفیت بالای تخم، نسل بعدی را تشکیل میدهند.
3- تعداد لانههای میزبان ثابت است و تخمی که توسط فاخته گذاشته شده است، با احتمال توسط پرندهی میزبان کشف میشود. در این حالت پرندهی میزبان میتواند تخم را دور بیاندازد یا لانه را ترک کرده، لانهای جدید بسازد. برای سادگی، میتوان کسرPa از n تعداد لانهها را با لانههای (راهحلهای) جدید جایگزین نمود.
کد فروشنده دوره گرد با الگوریتم فاخته
شرح مسئله بدین شکل است:
- تعدادی شهر داریم و هزینه رفتن مستقیم از یکی به دیگری را میدانیم. مطلوب است کمهزینهترین مسیری که از یک شهر شروع شود و از تمامی شهرها دقیقاًٌ یکبار عبور کند و به شهر شروع بازگردد.
تعداد کل راهحلها برابر است با برای n>۲ که n تعداد شهرها است.
جهت دریافت کد متلب فروشنده دوره گرد با الگوریتم فاخته بصورت بصورت انلاین از بخش زیر اقدام کنید
[parspalpaiddownloads id=”43″]
ایمیل : matlab24ir@gmail.com و یا info@matlab24.ir