فرض کنید خانه های جدول شما به صورت بالا شماره گذاری شده باشد. جدول شما از این به بعد یک کروموزوم نام دارد.شما مجموعه ای از این کروموزومها دارید که به آن جمعیت می گویند. مقدار آن دلبخواه است.(لیستی از جدولها)
ابتدا یک جمعیت را به صورت تصادفی تولید کنید.
برنامه شما باید یک حلقه کلی داشته باشد که به آن تولید نسل می گویند باید تعداد تکرار آن را محدود به یک عدد دلبخواه کنید که اگر پاسخ یافت نشده حلقه تمام شود. یک شرط اصلی هم در این حلقه وجود دارد و آن این است که تابع fitness شما به مقدار مطلوب رسید است و شما باید جواب را چاپ کنید.
درون این حلقه یک حلقه دیگر وجود دارد که جمعیت جدید را به روش زیر می سازد:
دو کروموزوم (یا شخص) را به صورت تصادفی انتخاب کنید و عمل CrossOver را روی آنها انجام دهید و سپس عمل mutate را انجام دهید. در پایان آنها را به لیست جدیدی اضافه کنید. وقتی جمعیت جدید شما هم اندازه جمعیت قدیم شد.
جمعیت قدیم را پاک کنید و مراحل را با جمعیت جدید تکرار کنید.
تابع fitness هما تابعی است که شما باید جدول خود را ارزیابی کنید که مثلا مجموع سطرها و ستون ها ۲۴ است یا خیر. مقدار بازگشتی این تابع باید با توجه به نزدیک بودن به جواب تعیین شود. مثلا هربار که مجموع سطری یا ستونی ۲۴ شد آن را یک امتیاز تلقی کنید که در این صورت پاسخ نهایی می شود ۸ امتیاز.
بیان جزيیات با این شیوه مشکل است. کمی جستجو کنید ، امیدوارم پاسخ مشکلاتان را پیدا کنید.
موفق باشید.