نمايش پست تنها
قديمي ۰۶-۱۷-۱۳۹۲, ۰۳:۳۸ قبل از ظهر   #4 (لینک دائم)
mahdiii
Active users
 
آواتار mahdiii
 
تاريخ عضويت: اسفند ۱۳۸۸
محل سكونت: مشهد
پست ها: 355
تشكرها: 27
167 تشكر در 131 پست
My Mood: Khoshhal
پيش فرض

اگه آشنایی با الگوریتم ژنتیک دارین
در این الگوریتم گام اول کد کردن و ساختن جمعیت اولیه هست
خوب برای کد کردن به این صورت میتونین عمل کنین که مثلا در شکل بالا که چهار تکه دارین برای تاکردن خط کش به این صورت عمل می کنین که باید جهت اونها تعیین بشه. مثلا اول بخش 7 هست. بسته به دقت بازه 0 تا 360 درجه رو به بازه هایی گسسته می کنین مثلا 8 بازه 45 درجه ای که به سه بیت نیازه داره. خوب بعدش برای تکه بعدی یعنی سه دوباره برای تعیین زاویه اش به سه بیت نیازه و برای بعدیام به همین صورت.
پس کلا به 4*3==12 بیت نیاز هست که میشه برای افزایش دقت تقسیم بازه 0 تا 360 بیشتر بشه و خوب تعداد بیتهایی که اونهارو کد میکنه هم بیشتر میشه. خوب جمعیت اولیه ساخته میشه مثلا 100 تا کد 12 بیتی صفر و یک. بر اساس جمعیت تصادفی از صفر و یکها و برای هر کدوم . بعدش برای هر کدوم مقدار طول اونها به دست میاد (تابع ارزیاب) و بر اساس بهتر بودن هر کدوم (در اینجا کمترین بهترین است)با احتمال بیشتری برای تولید فرزندان و نسل بعدی اون کروموزوم انتخاب میشه. سپس عمل جهش و تقاطع برای ساختن جمعیت بعدی و نسل بعدی اعمال میشه و این اعمال تکرار میشه.
اگه وقت داشتم کدشو میزدمموفق باشین
mahdiii آفلاين است   پاسخ با نقل قول