با سلام
مسئله ساده ولی خوبیست برای بحث.
ساختار ژن: بیت (البته شما می توانید در برنامه نویسی از کوچکترین واحد زبان برنامه نویسی مثل یک بیت استفاده کنید)
ساختار کروموزوم: هر کروموزوم باید بیانگر وضعیت یک عنصر در مساله باشد یعنی باید بتواند موقعیت یک عنصر را توصیف کند بعبارتی بتواند مکان وزیر یا عناصر دیگر را مشخص کند. مثلا اگر مساله در یک صفحه 32*32 باشد می توان با کروموزومهای 10 بیتی (5 بیت برای x و 5 بیت برای y) کار را انجام داد.
تعدادی مثال: بیان مثال در قالب صفر و یک که فایده ای ندارد درک آن هم سخت است به همین علت مثلا سه نمونه در قالب دستگاه دهدهی عرض می کنم که باید به بیت در دستگاه دودویی بیان شود => (1و1) | (3و2) | (4و3) در مثال 4*4
تابع شایستگی: یک تابع ساده که وضعیت وزیرها را نسبت به یکدیگر ارزیابی کند و پاسخ دهد آیا یکدیگر را تهدید می کنند یا خیر؟ من اگر بخواهم این را طراحی کنم تعداد تهدیدها را بعنوان خروجی تابع بر میگردانم. همچنین میزان تهدید یا عدم تهدید سایر عناصر می تواند در یک تابع ارزیابی دومی قرار گیرد (بطور مشابه) و از آن نیز استفاده شود.
عملگر تقاطع: هر روشی که دوست دارید، فقط این مهم است که ژن ها ترکیب شوند مثلا از روش ترکیب یک نقطه ای استفاده کنید که ساده ترین است.
جهش: تغییر یک بیت از کروموزوم ها که مسلما باعث تغییر موقعیت x یا y (موقعیت مهره) خواهد شد.
موفق باشید
__________________
.
.
.
برای تشکر دکمه مخصوص وجود دارد لطفا پست هرز ایجاد نکنید
.
.
اینقدر از دسترسی نداشتن به مقاله شیون نکنید
مقالات انگلیسی: ایران سای (ISI, IEEE, ACM)
مقالات فارسی: سیویلیکا (کنفرانس داخلی)
مقالات فارسی: مگ ایران (ژورنالهای داخلی)
|