۳-۲-۱ روشهای بهینه سازی محلی
الگوریتمهای بهینه سازی محلی دارای برخی مزایا از قبیل سرعت همگرایی خوب و بازسازی نسبتا مناسب میباشند. به همین دلیل در اغلب مسائل معکوس از این روشها استفاده می شود. این الگوریتمها امکان گیر افتادن در مینیمم محلی را دارند که در این صورت به جواب نادرست همگرا میشوند. برای اینکه این مشکل تا حدی برطرف شود، به اطلاعات اولیه در مورد نقطه شروع نیاز است. روشهای برنامه ریزی ریاضی از جمله گرادیان مزدوج و روشهای شبه نیوتونی و روشهای بدون گرادیان مثل روش سیمپلکس در زمره روشهای بهینه سازی محلی قرار دارند.
( اینجا فقط تکه ای از متن فایل پایان نامه درج شده است. برای خرید متن کامل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. )
۳-۲-۲ روشهای بهینه سازی همگانی
روشهای بهینه سازی محلی اغلب برای حل مسائل معکوس به کار میروند. این روشها زمانی به جواب همگانی همگرا میشوند که اطلاعات پیشین در مورد حدس اولیه به تعریف تابع هدف افزوده شود. به هر حال هیچ اطمینانی وجود ندارد که بدون اطلاعات قبلی، روش بهینه سازی محلی به مینیمم بهینه دست پیدا کند. بنابراین به منظور غلبه بر این محدودیت، روش بهینه سازی همگانی به کار برده می شود. در روش بهینه سازی همگانی، نیاز به تعیین حدس اولیه [۳۹] برای حرکت به سمت مینیمم نیست، ولی محدوده پارامترها بایستی مشخص گردند. هرگونه اطلاعات قبلی در مورد پارامترها، محدوده آنها را کوچکتر کرده و این منجر به همگرایی سریعتر الگوریتم می شود.
مسئله بهینه سازی همگانی، پیدا کردن یک جواب از میان مجموعه جوابهای قابل قبول است که تابع هدف به ازای آن کمترین مقدار را داشته باشد. یک مسئله بهینه سازی همگانی برای تابع به صورت زیر قابل تعریف است.
تعریف: بافرض و ( مجموعه اعداد حقیقی است). با پیدا کردن به طوری که به ازای هر وجود داشته باشد ، آنگاه مینیمم کننده همگانی تابع هدف است و مینیمم همگانی است. ناحیه قابل قبول معمولا به صورت تعیین می شود که و به ترتیب حدود پایین و بالای متغیر هستند.
اولین روش بهینه سازی همگانی، همان روشهای بهینه سازی محلی بودند که از چندین نقطه تابع هدف، فرایند بهینه سازی شروع میشد. نقاط شروع به صورت تصادفی در ناحیه تولید میشوند. یک عیب عمده چنین روشی این است که همگرایی به یک مینیمم ممکن است چندین بار تکرار شود. در ادامه روشهای مختلف با بازدهی بیشتر پیشنهاد شده اند که این روشها به دو دسته یقینی [۴۰]و تصادفی[۴۱] قابل تقسیم هستند.
در بیشتر روشهای یقینی، تضمینی برای پیدا کردن مینیمم بهینه وجود ندارد. اما این تضمین تحت فرضیات اضافی در مورد تابع هدف انجام پذیر است. علاوه بر آن، محاسبات زیادی به منظور یافتن مینیمم همگانی نیاز است. در روش تصادفی یک سری خصوصیات تصادفی به روش جست وجو اضافه می شود و به طور کلی نمونه برداری از تابع هدف روی ناحیه قابل قبول در نقاط با توزیع تصادفی انجام میگیرد. این روش دارای یک تضمین احتمالی برای یافتن مینیمم همگانی است. از جمله الگوریتمهای همگانی تصادفی، الگوریتم ژنتیک GA [۴۲] و باز پخت شبیه سازی شده [۴۳]SA را میتوان نام برد.
۳-۳ طراحی الگوریتم حل مسائل معکوس با بهره گرفتن از روشهای بهینه سازی
در فصل قبل مشاهده شد که چگونه یک مسئله مستقیم الاستواستاتیک به روش المانهای مرزی حل می شود. در مسئله مستقیم جای حفرهها مشخص بوده و با اعمال بار روی مرز خارجی مقدار جا به جاییها و ترکشنها روی همه مرزها، چه مرز حفرهها و چه مرز خارجی مشخص میشوند. در واقع هنگامی که مسئله به صورت مستقیم حل می شود، شکل حفرهها مشخص میباشد و مجهولات تنها میزان جا به جاییها و ترکشنها روی مرزها هستند. همان طور که مشاهده شد روش المانهای مرزی روشی است که بین گرههای موجود روی مرزها ارتباط برقرار می کند. هنگامی که یک مسئله به روش المانهای مرزی شبیه سازی می شود در قدم اول ارتباط بین گرههای موجود روی مرزها با یکدیگر روشن می شود. که این ارتباط در قالب ماتریسهای Hو G بیان گردید.
هنگامی که مسئله به صورت معکوس حل می شود، مجهولات تغییر می کنند. به این صورت که میزان جا به جاییها و ترکشنها روی مرز آزاد خارجی معلوم در نظر گرفته می شود و سپس به بررسی این موضوع پرداخته میگردد که برای اینکه جا به جاییها روی مرز خارجی به شکل اندازه گیری شده اتفاق بیفتد، موقعیت و شکل حفرهها به چه صورتی باید باشد. در واقع در روش معکوس، ورودی ها میزان جا به جاییهای قابل اندازه گیری روی مرز خارجی و خروجیهای موقعیت و شکل حفرهها میباشد.
روشهای بهینه سازی همواره از شیوه های متداول حل مسائل معکوس میباشند. بهینه سازی به فرایند یافتن بهترین مقادیر ممکن برای یک مجموعه متغیرهای متعلق به یک سیستم اطلاق می شود، تا جایی که قیود مختلف اعمال شده بر مجموعه متغیرها برآورده گردند. عبارت بهترین نشان میدهد که در یک مسئله بهینه سازی، یک یا چند شی طراحی می شود به گونه ای که تصمیم گیرنده امیدوار است با کم یا زیاد نمودن مقادیر، به پاسخ بهینه دست پیدا کند. یک مسئله بهینه سازی از نظر ریاضی به صورت جست و جو برای یک بردار از مجموعه متغیرها مانند متغیرهای میباشد، به گونه ای که مقدار تابع F(x) را که وابسته به بردار است، کمینه یا بیشینه سازد. در این حالت F(x) تابع هدف[۴۴] نامیده می شود. مؤلفه های بردار متغیرهای مسئله بوده و متغیرهای طراحی [۴۵] خوانده میشوند که پاسخ روشهای بهینه سازی هستند. در واقع این مؤلفه ها به صورتی با بهره گرفتن از روشهای بهینه سازی محاسبه میشوند که تابع هدف را مینیمم کند.
برای مسئله معکوس الاستیسیته تابع هدف به صورتی در نظر گرفته می شود که با محاسبه موقعیت مرزهای معایب، قدر مطلق اختلاف جا به جاییهای اندازه گیری شده روی مرز خارجی و جا به جاییهای به دست آمده با در نظر گرفتن مرزهای محاسبه شده مینیمم گردد. رابطه زیر این تابع هدف را نشان میدهد.
۳-۱
روند کلی حل معکوس معادله الاستیسیته که در این پژوهش از آن استفاده شده است، بدین صورت است که ابتدا جسم تحت بارگذاری قرار میگیرد و جا به جاییهای روی مرز خارجی اندازه گیری میشوند، این جا به جاییها در رابطه (۳-۱) با نشان داده شده است.M تعداد گرههای مرز آزاد خارجی میباشد که جا به جاییهای آنها اندازه گیری می شود و m بیانگر شماره گره میباشد. سپس فرایند حل معکوس آغاز می شود، یعنی با بهره گرفتن از فرایندهای بهینه سازی مثل الگوریتم ژنتیک ابتدا یک حدس اولیه محاسبه می شود، سپس با فرض صحت آن فرض در دامنه، جا به جاییهای ایجاد شده بر اثر همان بار گذاری قبلی روی مرز خارجی اندازه گیری میگردد. این جا به جاییها در رابطه (۳-۱) با نشان داده شده اند. در نهایت با بهره گرفتن از رابطه (۳-۱) اختلاف موجود اندازه گیری می شود و سعی می شود در هر مرحله حدس حفرهها، این اختلاف به حداقل مقدار ممکن برسد تا معایب موجود در دامنه مشخص گردند.
الگوریتم حل که در این پژوهش مورد استفاده قرار گرفته است، بر مبنای تلفیقی از روشهای بهینه سازی همگانی و محلی میباشد. روشهای بهینه سازی محلی که اغلب برای حل مسائل معکوس به کار میروند، زمانی به جواب مینیمم مطلق همگرا میشوند که اطلاعات کافی در مورد حدس اولیه به تعریف تابع هدف افزوده شود؛ اما هیچ اطمینانی وجود ندارد که بدون اطلاعات مناسب، روش بهینه سازی محلی به مینیمم بهینه دست پیدا کند. بنابراین به منظور غلبه بر این محدودیت، روشهای بهینه سازی همگانی به کار برده میشوند. در روش بهینه سازی همگانی، نیاز به تعیین حدس اولیه برای حرکت به سمت مینیمم نیست، ولی محدوده پارامترها بایستی مشخص گردند. در واقع هر گونه اطلاعات قبلی در مورد پارامترها، محدوده آنها را کوچکتر کرده و منجر به همگرایی سریعتر الکوریتم می شود. روش بهینه سازی که در این پژوهش مورد استفاده قرار گرفته است مبتنی بر الگوریتم ژنتیک (به عنوان روش بهینه سازی همگانی) میباشد که به صورت ترکیبی با روشهای بهینه سازی محلی از جمله روش گرادیان مزدوج و روش سیمپلکس[۴۶] مورد استفاده قرار گرفته است. در ادامه به توضیحات بیشتری در مورد این الگوریتمها پرداخته می شود.
۳-۳-۱ الگوریتم ژنتیک
الگوریتم ژنتیک]۳۱[ را میتوان به صورت ساده، یک روش جست و جوگر نامید که بر پایه مشاهدات خصوصیات فرزندان نسلهای متوالی و انتخاب فرزندان بر اساس اصل بقای بهترین، پایهریزی شده است. الگوریتم ژنتیک روی فرزندان یک نسل از قوانین موجود در علم ژنتیک تقلید کرده و با به کار بردن آنها به تولید فرزندان با خصوصیت بهتر می پردازد و در هر نسل به کمک فرایند انتخابی متناسب با ارزش جوابها و تولید مثل فرزندان انتخاب شده تقریبهای بهتری از جواب نهایی به دست می آید. این فرایند باعث می شود که نسلهای جدید با شرایط مسئله سازگارتر باشند. این رقابت میان ژنها و پیروز شده ژن غالب(انتخاب شدن توسط الگوریتم برای تولید مثل بعدی) و کنار رفتن ژن مغلوب (جوابهای دور از هدف مسئله) روشی است که الگوریتم ژنتیک برای حل مسئله استفاده می کند.
۳-۳-۱-۱ ساختار الگوریتم ژنتیک
۳-۳-۱-۱-۱ افراد یا کروموزومها
هر کدام از افراد جمعیت که تقریبهایی از جواب نهایی هستند، به صورت رشتههایی از حروف یا ارقام کد گذاری میشوند. این رشتهها را کروموزوم مینامند. متداول ترین حالت، نمایش با ارقام صفر و یک میباشد. حالات دیگر مثل استفاده از اعداد حقیقی و اعداد صحیح هم مورد استفاده قرار میگیرند.
مقادیر موجود بر روی کوروموزومها به تنهایی معنی خاصی ندارند، بلکه باید ترجمه شوند، یعنی از حالت کد خارج شوند تا به عنوان متغیرهای تصمیم گیری دارای معنی و نتیجه باشند. باید توجه داشت که فرایند جست و جو، روی اطلاعات کد شده صورت میگیرید، مگر در صورتی که از ژنهایی با مقادیر حقیقی استفاده شود. بعد از این که کروموزومها از حالت کد گذاری شده خارج شدند، میتوان به کمک اطلاعات اولیهای که توسط مقادیر هدف مسئله به دست می آید، آنها را مورد بررسی قرار داد.
۳-۳-۱-۱-۲ کدگذاری
کدگذاری یکی از عناصر مهم و تعیین کننده در هر الگوریتم ژنتیک است. به تبدیل پاسخ مسئله به صورت یک ساختار (کروموزم) که از مجموعه ای از ژنها تشکیل یافته، کدگذاری میگویند. همان طور که توضیح داده شد کروموزم یک آرایه منظم با طول ثابت از مقادیر الل[۴۷] (ژنـهای نام همسان مجاور) میباشد. در واقع الگوریتم ژنتیک به جای این که به طور مستقیم بر روی پارامترها یا متغیرهای مساله کار کند، با شکل کد شده آنها سروکار دارد. تاکنون محدودیت خاصی برای ساختار ژنها مطرح نشده است، به همین دلیل روشهای متنوعی برای کدگذاری مسائل مورد استفاده قرار میگیرد. باید توجه داشت که نوع عملیات مورد نیاز در بسیاری از مراحل الگوریتم زنتیک به شدت وابسته به نوع ساختار انتخابی (کدگذاری) میباشد. در ادامه این فصل به صورت مختصر به بیان این تفاوتها خواهیم پرداخت.
۳-۳-۱-۱-۲-۱ کدگذاری دودویی
این نوع از کدگذاری متداولترین نوع کدگذاری در الگوریتم ژنتیک میباشد. هر ژن در این ساختار به صورت باینری بوده (صفر یا یک) و ساختار کروموزم عموماً به صورت یک آرایه ساده میباشد. در کدگذاری دودویی هدف تبدیل جواب مساله به آرایهای از اعداد باینری (در مبنای ۲) میباشد. این روش ساده ترین نوع کدگذاری میباشد و تقریبا امکان تبدیل انواع دیگر کدگذاری به این روش امکان پذیر است (در بعضی مسائل بسیار مشکل است). در حقیقت این روش برگرفته از ساختار ژنتیکی موجودات زنده میباشد، با این تفاوت که در موجودات زنده ترکیبی از چند ژن یک صفت خاص را بروز می دهند یا به بیان سادهتر برخی از ژنها با یکدیگر دارای رابطه معنایی هستند و هر ژن بیانگر یک خصوصیت میباشد. این روش علی رغم کاربرد زیاد، دارای معایبی نیز میباشد که منجر به گسترگی فضای پاسخ مسئله میگردد ( برای کروموزمی با تعداد n ژن، تعداد حالات مختلف کروموزم ۲n میباشد، این مشکل بدین صورت عنوان شده است: ” اصولاً روش کدگذاری دودویی، امکان تولید کروموزمهای بسیاری را با حداقل بیت فراهم می کند. لذا این روش کدگذاری در مسائل واقعی باید همراه با اصلاحاتی بعد از اعمال عملگرهای ژنتیکی صورت گیرد". مزایای این روش سادگی عملگرهای ژنتیک و امکان تبدیل تمامی مسائل ژنتیکی به این ساختار میباشد. این روش کدگذاری برای مسائلی که در آنها تمامی حالات کروموزم، نوعی پاسخ مسئله به شمار میآیند، بسیار مناسب میباشد.
۳-۳-۱-۱-۲-۲ کدگذاری جایگشتی
در این روش، کروموزمها به صورت آرایهای (عموما یک بعدی) از اعداد نمایش داده میشوند، به نحوی که اعداد موجود در هر کروموزم منحصربه فرد باشند. معمولا برای آرایه n عنصری، اعداد از ۱ تا n را به عنوان مقادیر ژنهای کروموزم در نظر میگیرند. باید توجه داشت که به دلیل عدم پذیرش اعداد تکراری، عملگرهای ژنتیک در این حالت کمی پیچیدهتر از حالت دودویی هستند. در این روش تعداد حالات مختلف کروموزم n! میباشد. شاید در نگاه اول از نظر فرمول، پیچیدگی فضای پاسخ این حالت بیشتر از حالت دودویی باشد اما باید دقت داشت که برای تبدیل این حالت به فرم دودویی لازم است به ازای هرخانه در حالت جایگشتی [logn-1]+1 خانه در حالت دودویی داشته باشیم که به دلیل عدم وابستگی خانهها به یکدیگر امکان حذف حالاتی که اعداد تکراری نداشته باشیم مشکل خواهد بود. بنابراین پیچیدگی فضای پاسخ در حالت جایگشتی کمتر از حالت دودویی خواهد بود. از مزایای دیگر این روش این است که روش جایگشتی در برخی مسائل به صورت بسیار مناسب، توصیفی از پاسخ مسئله را در خود خواهد داشت.
مثال بسیار مناسب برای روش جایگشتی، مسئله فروشنده دورهگرد است. در این مسئله هدف یافتن مسیری است که از هر شهر فقط و تنها فقط یک بار عبور نمایید، به نحوی که کمترین مسافت ممکن طی شود. برای این مسئله هر عدد بیانگر یک شهر و آرایه(کروموزم) بیان کننده ترتیب رفتن به شهرهای مختلف میباشد. واضح است که استفاده از کدگذاری دودویی برای حل این مسئله، علاوه بر بزرگ نمودن فضای پاسخ و پیچیده نمودن عملگرها، تشخیص پاسخ مسئله از روی کروموزم را مشکلتر مینماید، زیرا نیازمند تبدیل کدهای باینری به کد شهرها میباشد. کار صورت گرفته در این تحقیق، مسئله جداول زمانی را بر اساس روش جایگشتی به همراه مقداری تغییر و اصلاحات در این ساختار کدگذاری مینماید.
۳-۳-۱-۱-۲-۳ کدگذاری مقداری
در این روش هر کروموزم به صورت آرایهای ساده از مقادیری است که این مقادیر می تواند هر چیز مرتبط با مساله باشد. مثلا اعداد اعشاری، کاراکتر و یا اشیاء کد شده نمونههایی از مقادیر مورد استفاده میباشند. این روش در حل مسائل خاصی کاربرد دارد. مثلا برای پیدا کردن وزنهای شبکه های عصبی، یعنی وزنهای لایه ورودی، لایه مخفی و لایه خروجی میتوان از این روش استفاده نمودکه مقادیر ژنهای کروموزم همان وزنهای شبکه خواهند بود.
۳-۳-۱-۱-۴ کدگذاری درختی
در این روش به جای استفاده از ساختار آرایهای(پیوسته و محدود)، برای سازماندهی ژنها از ساختار درختی استفاده مینماییم. از این روش برای برنامه نویسی ژنتیک و زبانهای برنامه نویسی (هوش مصنوعی) استفاده می شود. در روش کدگذاری درختی، هر کروموزم به صورت یک درختی از اشیاء مثل توابع یا دستورات میباشد. به عنوان مثال در زبان LISP از این روش استفاده می شود.
۳-۳-۱-۱-۳ تابع برازش
تابع برازش بر اساس مجموعه ای از صفات ورودی(کروموزمها) یک مقدار خروجی تولید می کند. این تابع می تواند بر اساس فرمول ریاضی یا آزمایش محاسبه گردد. در واقع تابع برازش براساس پارامترهای مورد توجه برای حل یک مسئله، کیفیت یک پاسخ(کروموزم) را به صورت عددی مشخص مینماید. در صورتی که این عدد، میزان مطلوبیت کروموزم را نشان دهد، مسئله مورد نظر از جمله مسائل ماکزیمم سازی است(هدف الگوریتم ژنتیک ایجاد کروموزمی خواهد بود که مقدار تابع برازش آن کروموزم ماکزیمم باشد) و اگر بیانگر میزان نامناسب بودن کروموزم باشد، مسئله مینیمم سازی میباشد(الگوریتم ژنتیک به دنبال ایجاد کروموزمی با مقدار تابع برازش مینیمم میباشد). اغلب، تابع برازش را برابر با همان تابع هدف مساله بهینهسازی در نظر میگیرند.
۳-۳-۱-۱-۴ جمعیت
الگوریتم ژنتیک بوسیله مجموعه ای از کروموزمها شروع به کار مینماید. به این مجموعه، جمعیت میگویند. برای اجرای الگوریتم ژنتیک لازم است جمعیت اولیهای (تصادفی) معرفی نماییم. تعیین تعداد کروموزمهای جمعیت بسیار مهم و تاثیر گذار است. افزایش تعداد کروموزمها در جمعیت از یک سو کیفیت جوابها و تنوع آنها را افزایش میدهد و از سوی دیگر به دلیل نیاز به انجام عملیاتهای بیشتر، سرعت ایجاد جمعیتهای جدید را کاهش میدهد. به همین دلیل انتخاب عدد مناسب برای تعداد کروموزمهای جمعیت، تاثیر زیادی در کیفیت جوابها و سرعت رسیدن به آنها دارد. گرچه نمی توان عدد خاصی را برای تمامی الگوریتمهای ژنتیک عنوان نمود اما به دلیل اینکه افزایش تعداد کرموزمهای جمعیت، از یک محدوده به بعد تاثیر چندانی در بهبود کیفیت پاسخها ندارد، میتوان با انجام آزمایش در این محدوده، عددی را یافته و آن را به عنوان تعداد کروموزمهای جمعیت در نظر گرفت.
۳-۳-۱-۱-۵ انتخاب
در این مرحله از الگوریتم ژنتیک، دو والد جهت جفتگیری و تولید کروموزم جدید انتخاب میشوند. روش انتخاب باید به نحوی باشد که احتمال انتخاب کروموزمهای برتر(از نظر تابع برازش) بیشتر باشد. در زیر تعدادی از روشهای انتخاب بررسی میگردد. این انتخاب بر پایه برازش میباشد. یعنی کروموزومهایی که دارای برازندگی بالاتری در مرحله برازش باشند، برای جفتگیری آماده میشوند. نمونههایی از نحوه انتخابی در ادامه توضیح داده می شود.
۳-۳-۱-۱-۵-۱ انتخاب تصادفی
در این روش یک کروموزم به صورت کاملا تصادفی انتخاب میگردد. البته توابع مختلفی را میتوان برای ایجاد عدد تصادفی پیشنهاد داد. از این روش جهت انتخاب کروموزمهای والد استفاده شده است.
۳-۳-۱-۱-۵-۲ انتخاب نخبهگرا
بر اساس این مفهوم، تعداد معینی از بهترین کروموزمها در جمعیت جدید کپی میشوند. این روند باعث افزایش کارایی الگوریتم ژنتیک میگردد، زیرا مانع از گم شدن جوابهای خوب بدست آمده می شود. این روش به عنوان روشی کمکی در کنار سایر روشها قابل اعمال است.
۳-۳-۱-۱-۵-۳ انتخاب مسابقهای
این روش که شبیه رقابت در طبیعت عمل مینماید، توسط گلدبرگ ارائه شده است. یک زیر مجموعه کوچکی از کروموزمها (معمولا دو یا سه) به صورت تصادفی انتخاب شده و بهترین کروموزم از نظر مقدار برازندگی در این مجموعه انتخاب می شود. به تعداد کروموزمهای مجموعه فوق، اندازه مسابقه [۴۸] میگویند. این روش در جمعیتهای بسیار بزرگ به عنوان بهترین روش شناخته می شود.
شکل شماره ۳-۲: انتخاب مسابقهای
۳-۳-۱-۱-۶ جفتگیری
به ایجاد کروموزم جدید بوسیله توزیع صفات والدین در آن، جفتگیری میگویند. اسمهای مختلفی مانند: برش، ادغام، همبری، تقاطع، پیوند و جفتگیری برای این عملیات مطرح شده است. بدلیل تناسب معنایی عبارت “جفتگیری” با عملیات مشابه صورت گرفته در طبیعت و کاربرد کلمه “ادغام” در بسیاری از کتب، از این دو کلمه برای توصیف این مرحله استفاده می شود. جفتگیری یکی از عواملی است که باعث ایجاد تحول در موجودات و تولید افراد متفاوت در یک گونه می شود. لازم به ذکر است که بجز عملیات جفتگیری، عملیاتهای دیگری برای تولید کروموزم جدید وجود دارد. در طبیعت، نتیجه حاصل از جفتگیری دو موجود زنده، فرزندی خواهد بود که ترکیبی از صفات والدین خود را به همراه خواهد داشت. از آنجایی که معمولا صفات برتر به عنوان ژن غالب عمل مینمایند، ویژگیهای مثبت والدین در فرزندان بروز پیدا خواهند نمود. لذا احتمال ایجاد فرزندی برتر از دو والد با ویژگیهای مثبت مختلف به دلیل دریافت ویژگیهای مثبت والدین بسیار زیاد میباشد.
امروزه با بهره گیری از این ایده در خصوص حیوانات و تعیین والدین مناسب جهت جفتگیری، تولید مثل گونه های مختلف حیوانات را به صورت دلخواه(جهت بروز صفات مورد نظر در آنها) میتوان مدیریت نمود. در واقع مهمترین مرحله جهت ایجاد تحول و بهبود کیفیت کروموزمها، مرحله جفتگیری و نحوی توزیع صفات والدین در فرزندان میباشد. اثرگذاری این مرحله در همگرایی کروموزمها به سمت پاسخ مورد نظر به حدی است که معمولا الگوریتم ژنتیک را بوسیله روش انجام مرحله جفت گیری، معرفی مینمایند. اکثر روشهای جفت گیری معمول بدین صورت عمل مینمایند که طبق یک روش دلخواه، تعدادی از ژنهای والد اول و تعدادی از ژنهای والد دوم را انتخاب نموده، به نحوی که هر ژن فقط و تنها فقط در یکی از والدها انتخاب شده باشد. سپس کروموزم جدید بر اساس ترکیب ژنهای انتخاب شده والد اول و دوم ایجاد میگردد. اگر عملیات جفتگیری برای تولید دو فرزند طراحی شده باشد، کروموزم دوم از ادغام ژنـهای انتخاب نشده والد اول و دوم بوجود می آید.
۳-۳-۱-۱-۷ جهش[۴۹]
یکی دیگر از عوامل تحولزا در موجودات زنده، جهش میباشد. به پیدایش هر نوع تغییر در
ژنهای یک کروموزوم جهش میگویند. در واقع جهش ژنتیکی در نگاه عامه مردم به تغییرات منفی در ساختار کروموزمی اشاره مینماید. البته از آنجایی که این تغییرات به صورت تصادفی میباشد، امکان ایجاد کروموزمهای نامناسب در آن زیاد میباشد. در برخی حالات بدون جهش امکان رسیدن به جواب مناسب وجود ندارد. به عنوان مثال اگر مقدار یک بیت در تمام کروموزمها صفر (یا یک) باشد با هیچ یک از روشهای مطرح شده در جفتگیری نمی توان مقدار این بیت را یک (یا صفر) نمود؛ چون فرایند جفتگیری بر اساس انتقال خصوصیات از والدین به فرزندان عمل مینماید و از آنجایی که این ژن در هیچ والدی یک(یا صفر) نیست در نتیجه فرزندی نمی توان تولید نمود که مقدار این ژن در آن یک(یا صفر)باشد. در حقیقت عملیات جهش برای گریز از قرار گرفتن در اکسترممهای محلی(بستگی به این دارد که تابع برازش به دنبال ماکسیمم کردن است یا مینیمم) مورد استفاده قرار میگیرد.
در کروموزمهای دارای ساختار باینری، عمل جهش عبارت است از تغییر مقدار یک بیت از یک به صفر یا بالعکس بر اساس یک احتمال کوچک مثل Pm . مکانیزم اجرایی جهش بدین صورت است که یک عدد تصادفی بین ۰ تا ۱ تولید مینماید؛ اگر این عدد کمتر از Pm بود آنگاه تغییر مقدار بیت انجام میپذیرد و گرنه مقدار بیت تغییری نمیکند.
۳-۳-۱-۱-۸ توابع جریمهای
با وجود ترفندهای اجرا شده در تولید کروموزومهای مناسب، گاهی در مراحل تقاطع و جهش کروموزومهایی از قیدها رها شده، به عنوان یک جواب نامربوط ظاهر میشوند. برای این گونه موارد راهکار توابع جریمهای مؤثر واقع می شود. توابع جریمهای به صورتی است که کلیه شرایط هندسی و فیزیکی کروموزوم را بررسی می کند و در صورت پذیرش، معیار برازندگی کروموزوم با تابع هدف تعیین و در غیر این صورت با عدد بزرگی جریمه می شود.
۳-۳-۱-۲ روند کلی حل یک مسئله با الگوریتم ژنتیک