PDA

View Full Version : سوال در مورد الگوریتم ژنتیک (روش چرخ گردان)



TheMatrix
پنج شنبه 23 اسفند 1386, 10:54 صبح
سلام دوستان.
جناب whitehat شما در این مقاله (تاپیک) معرفی الگوریتم ژنتیک (http://barnamenevis.org/forum/showthread.php?t=96474), در قسمت عملگر انتخاب گفته بودید که:

یک روش که به طور معمول استفاده می‏شود، روش انتخاب با استفاده از چرخ گردان است. روند اجرای این روش به صورت زیر می‏باشد:
الف – برازندگی همه اعضای جمعیت را جمع کنید و نتیجه را برازندگی کل بنامید
ب- عدد n را به صورت تصادفی تولید کنید، به طوری که آن عددی بین صفر و برازندگی کل باشد. ج- اولین عضو از جمعیت را که برازندگی آن به اضافه برازندگی اعضای پیشین جمعیت بزرگ‏تر یا مساوی n باشد را باز‏گردانید.

حالا من یه سوال داشتم:
در آن قسمت که گفتید:

ج- اولین عضو از جمعیت را که برازندگی آن به اضافه برازندگی اعضای پیشین جمعیت بزرگ‏تر یا مساوی n باشد را باز‏گردانید.
من میخواستم بدونم که آیا منظور از اولین عضو و اعضای پیشین, اولین عضو و اعضای پیشین در حالت مرتب شده است یا حالت معمولی (اولیه). یعنی ما باید در قسمت انتخاب والدین آنها را با توجه به برازندگی مرتب کنیم یا نه؟

ممنون میشم جوابمو بدین.

alibeirami
پنج شنبه 23 اسفند 1386, 11:20 صبح
سلام

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

مخلصم.

TheMatrix
پنج شنبه 23 اسفند 1386, 11:29 صبح
سلام

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

مخلصم.

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

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

BOB
جمعه 24 اسفند 1386, 00:28 صبح
سلام

1- نیازی به مرتب سازی نیست. فرض کن در یک لیست، 70 کارکتر A و 30 کاراکتر B موجود باشد. مسلما، با، و یا بدون مرتب سازی، با انتخاب یک کاراکتر تصادفی، شانس انتخاب A هفتاد درصد و B سی درصد خواهد بود.

2- نرخ Crossover رابطه مستقیمی با نحوه پیاده سازی تابع Selection و روش Crossover دارد. که هر دو تابع ذکر شده در مورد هر مسئله، با توجه به هدف، پیاده سازی متفاوتی خواهند داشت. عجالتا بدون توجه به نوع مسئله، استفاده از نرخی حدود 50 تا 100% مناسب است.

موفق باشید

alibeirami
جمعه 24 اسفند 1386, 15:05 عصر
از جوابتون ممنونم ولی اگه در روش رولت ویل برازندگی ها رو مرتب نکنیم, مطمئن نیستم که شانس برازندگی های بیشتر بالاتر بره. البته شاید من اشتباه میکنم. به هر حال ممنون.

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

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