![]() |
سوال
سلام و خسته نباشید
لطفا برای یک الگوریتم ژنتیک که عناصر آن 6 بیتی هستند یک عملگر Crossover پیشنهاد کنید. ممنون |
دوست عزیز شما در crossover از بین جمعیت اولیه دو تا را انتخاب می کنید
حال باید یک نقطه را پیدا کنید که از آن نقطه به بعد سلولهای آن دو با هم جایگزین شوند. مثلا اگر 110101 و 100110 دو نمونه از جمعیت باشند و ما نقطه crossover را مرکز انتخاب کنیم نتیجه به این صورت در میاد: اولی: 110110 دومی: 100101 حال اگر بخواهید برای این کار یک عملگر منطقی بسازید میتوانید اول بوسیله and کردن با صفر سه تا عنصر اول زا که میخواهید جایگزین شوند صفر کرده و بعدا این عناصر صفر شده را با عناصر دومی or کنید. بیت ها جایگزین می شوند. |
سلام
در تکمیل پاسخ دوست خوبم عرض کنم که این روش به one-point crossover یا crossover تک نقطه ای معروف هست. نوع پیچیده تر که بر حسب میزان پیچیدگی سیستم و نیازتون میتونید ازش استفاده کنید two-point crossover یا crossover دو نقطه ای هست. مثلا در همون مثال قبل میتونید بجای یک نقطه هر سلول را در دو نقطه قطع کنید و قسمتهای وسط دو سلول رو با هم جابجا کنید: اولی: 110110 دومی: 100101 البته های درجه های بالاتر crossover هم هست که معمولا به واسطه عدم تغییر قابل توجه در نتیجه (در مقایسه با پیچیدگی افزوده شده به الگوریتم) به ندرت در الگوریتم های ژنتیک بکار برده میشه. |
سلام
در انکودینگ بیتی، بهترین روش برای ترکیب، یونیفرم است که اول یک mask بدست آورده و سپس بر مبنای آن ترکیب میکنید. |
زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۱۱:۴۲ بعد از ظهر ميباشد. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.