تبليغاتX
ما ... - از زرافه تا الگوریتم ﮋنتيك!

سلام

خوبيد؟

تا حالا به تكامل بر اثر جهش هاي ﮋنتيكي فكر كرديد؟

تا حالا در مورد الگوريتم ﮋنتيك -یه الگوریتم برای جستجو و بهینه سازی تصادفی  - چيزي شنيدين؟

 

اگه نه٬ اين مطلب مي تونه كسل كننده نباشه!!!

 

يكي بود٬ يكي نبود! زير گنبد كبود هيچكي نبود. زرافه هم نبود! اون قديما يه حيووني بود که توي دشتهاي پر از علف زندگي مي كرد. چرندگان دشت هميشه با آرامش تمام مشغول چرا و حال و حول بودند. چرا ؟ چون هيچ حيوون گوشت خواري بنود كه اونا رو شكار كنه.

زندگي اونا به خوبي سپري مي شد تا اينكه چمعييت اونا خيلي زياد شد. كم كم مقدار علوفه به خاطر چراي زياد كمتر و كمتر شد. يه سري از حيوونا كه ميتونستن از درختا بالا برن شروع كردن به خوردن برگ درختا. يه سري رﮋيم غذاييشون رو تغيير دادند و به ريشه ها روي آوردن.

اين وسط سر جد زرافه هاي امروزي بي كلاه مونده بود و چند گونه ي ديگه كه همون سالا منقرض شدن.

 

يه روز مامان زرافه كه چند سالي مي شد بچه دار نمي شد و به دوا و دكتر و دعا و ... روي آورده بود يه 4 قلو زاييد! اول همه خوشحال شدن ولي وقتي بچه ها همه سر پا وايسادن ...

اولي پاهاش دراز تر از حد معمول بود! دومي تنش دراز تر بود! سومي گردنش و چهارمي هم گردن و هم پاهاش دراز بودن!

واي خواهر نبودي ببيني صغري خانم –مادرشون- چه شيوني مي كرد!

...

ماهي گذشت و بچه ي اول چون نميتونست به راحتي سرش رو به جوي آب برسونه و آب بخوره از تشنگي مرد... صغري خانم شيون مي كرد!

فصلي گذشت و بچه دومي از بس تنش دراز بود يه شب توي خواب گره خورد و مرد! صغري خانم شيون مي كرد!...

سالي گذشت و بچه سومي گردنش اونقدر دراز تر از پاهاش شد كه نه تونست از علف روی زمين بخوره و نه از برگ درخت توی آسمون! صغري خانم شيون مي كرد!

و اما بچه چهارمي كه پاها و گردنش هر دو دراز بود: هم مي تونست آب بخوره٬ هم مي تونست از برگ درخت بخوره و هم اينكه توي خواب گره نمي خورد! اين شد كه نمرد و صغري خانم ديگه شيون نمي كرد!

...

بچه بزرگ شد و قوي... ازدواج كرد... سه تا بچه به دنيا تقديم كرد كه دوتاشون مثل خودش بودن...

و سال ها گذشت و .... و ما الان زرافه داريم!

اوه. صغري خانم رو فراموش كردم. علف كم شد. بچش براش برگ مي كند و...  يه روز مرد ...

...

...

 

                           

...

حالا ببينيم چي شد كه اينطوري شد:

يه جهش ﮋنتيكي!

فرض كنيد كه توي DNA اونا سه تا کروموزم بوده كه با هم طول پا ها و سه تا ديگه طول گردن و سه تا ديگه طول تنه رو مشخص ميكردن.

 

فرض كنيد يه DNA مثل يه عدد مبناي 2 باشه. حالا ببينيم چي شده:

 

                               

 

 مقدار عددي هر دسته كروموزم زيرشون نوشته شده.

 

جهش ها يا به عبارت ديگه تغييرات تصادفي توي مقدار ۰ و ۱ هر كروموزم نسبت به كروموزم مادر يا موجود شماره ۰ (صفر) با رنگ قرمز دورش مشخص شده. توي هر مرحله از زاد و ولد اگر اين جهش مطلوب بوده باشه (مثل بچه چهارمي) تغيير توي نسل بعد هم باقي مي مونه و اگر مطلوب نبوده باشه به نسل بعد انتقال داده نمي شه يا درصد كوچيكي از اون انتقال داده مي شه.

 

توي Genetic Algorithm هم همين اتفاق مي افته. متغيير هايي كه قراره توي اونا جستجو صورت بگيره رو مثل يه رشته باينري در ميارن و شروع ميكنن به جهش دادن اين DNA و به عبارت دیگه تولید مثل همراه با اندکی تغییر نسبت به مادر (والد) و اگه جهش باعث تغییر مطلوبی بشه اون رو به نسل بعد انتقال می دن...

 

اگه حسش بود بعدا تو یه پست دیگه یه کد (برنامه) آماده میگذارم ...

 

+ نوشته شده در  دوشنبه بیست و هفتم خرداد 1387ساعت 15:9  توسط مهدی رضایی پور |