Artificial Intelligence - هوش مصنوعی

Artificial Intelligence - هوش مصنوعی (http://artificial.ir/intelligence/)
-   الگوریتم ژنتیک(Genetic Algorithm) (http://artificial.ir/intelligence/forum24.html)
-   -   سوال (http://artificial.ir/intelligence/thread2194.html)

fereshte2 ۰۳-۱۸-۱۳۸۹ ۰۷:۲۱ بعد از ظهر

سوال
 
سلام و خسته نباشید
لطفا برای یک الگوریتم ژنتیک که عناصر آن 6 بیتی هستند یک عملگر Crossover پیشنهاد کنید.
ممنون

mardin200 ۰۳-۱۸-۱۳۸۹ ۰۸:۱۲ بعد از ظهر

دوست عزیز شما در crossover از بین جمعیت اولیه دو تا را انتخاب می کنید
حال باید یک نقطه را پیدا کنید که از آن نقطه به بعد سلولهای آن دو با هم جایگزین شوند.
مثلا اگر 110101 و 100110 دو نمونه از جمعیت باشند و ما نقطه crossover را مرکز انتخاب کنیم نتیجه به این صورت در میاد:
اولی: 110110
دومی: 100101
حال اگر بخواهید برای این کار یک عملگر منطقی بسازید
میتوانید اول بوسیله and کردن با صفر سه تا عنصر اول زا که میخواهید جایگزین شوند صفر کرده
و بعدا این عناصر صفر شده را با عناصر دومی or کنید. بیت ها جایگزین می شوند.

alijy ۰۳-۱۹-۱۳۸۹ ۰۶:۳۳ بعد از ظهر

سلام
در تکمیل پاسخ دوست خوبم عرض کنم که این روش به 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.