سه شنبه 24 مهر 1397 | Tuesday 16 th of October 2018 صفحه اصلی گروه الکترونیکی کامپیوتر
4-3-6- باز تولید مدار

در این مرحله  2 کروموزوم از نسل جدید را انتخاب کرده و با یک احتمالی که به ان نرخ عملگر ادغام می گویند عمل ادغام را روی ان انجام می دهیم.

عملگر ادغام، 2 مدار که به تصادف انتخاب شده است را با یکی از روش های ان، که ممکن است ادغام یک نقطه ای ، 2 نقطه ای یا یکنواخت باشد، ادغام می کند. در این پروژه ادغام 2 نمونه مدار با روش ادغام 4 نقطه ای  که در شکل (4-7) امده انجام می شود.

در این روش از 2 عدد تصادفی برای ستون های محدود کننده و 2 عدد تصادفی برای سطر های محدود کننده استفاده می کنیم. سپس ماتریس maskرا طوری ایجاد می کنیم که خانه هایی از ماتریس که محدود به سطر و ستون های محدود کننده می باشند مقدار صفر و خانه های باقیمانده مقدار یک را داشته باشند. در نتیجه متناظر با خانه هایی از ماتریس maskکه مقدار صفر دارد، 2 کروموزوم خانه های خود را باهم تعویض می کنند. به این ترتیب بخشی از کروموزوم اول در کروموزوم دوم و بخشی از کروموزوم دوم در کروموزوم اول کپی می شود. در نتیجه عمل ادغام صورت می گیرد.

یکی از دیگر عملگر های مهم و پیچیدۀ برنامه نویسی ژنتیکی، عملگر جهش [1]می باشد. که یک ژن از یک کروموزوم انتخاب شده را تغییر می دهد. جهش به 2 صورت ممکن است انجام شود، یا سیگنال های ورودی گیت ها ممکن است جهش پیدا کند، که ممکن است با یک بیت از سیگنال های ورودی مدار

تعویض شود، یا با یکی از سیگنال های خروجی گیت های سطوح قبلی. یا ممکن است یک نمونه گیت جهش پیدا کند.

نمونه گیت ممکن است به گیت ساده تر (AND-NOT)، به گیت یکسان (AND-OR) یا به یک گیت

پیچیده تر (NOT-XOR) جهش پیدا کند. که در مورد اخر باید یک سیگنال جدید برای ورودی ان به طور

شکل 4-7- ادغام چهار نقطه ای

تصادفی در نظر بگیریم. تصمیم گیری اینکه چه نوع جهشی در اطلاعات یک بلاک صورت بگیرد  نیز تصادفی می باشد. در شکل() سه نمونه جهش نشان داده شده است.

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


[1]mutation 

Compatability by:
آخرین به روز رسانی سایت: سه شنبه, 22 اسفند 1391 - 00:26