لینک پرداخت و دانلود *پایین مطلب*
فرمت فایل:Word (قابل ویرایش و آماده پرینت)
تعداد صفحه51
فهرست مطالب
چکیده:
بخش اول : الگوریتم ژنتیک
الگوریتم ژنتیک چیست؟
روش های انتخاب:
نحوه انجام عملیات جهش
نقاط قوت الگوریتم های ژنتیک:
بخش دوم : چند نمونه مساله حل شده با الگوریتم ژنتیک
یک مثال ساده:
نسل بعدی:
مقدمه:
قانون انتخاب طبیعی بدین صورت است که تنها گونههایی از یک جمعیت ادامه نسل میدهند که بهترین خصوصیات را داشته باشند و آنهایی که این خصوصیات را نداشته باشند به تدریج و در طی زمان از بین میروند.
مثلا فرض کنید گونه خاصی از افراد هوش بسیار بیشتری از بقیه افراد یک جامعه یا کولونی دارند. در شرایط کاملا طبیعی این افراد پیشرفت بهتری خواهند کرد و رفاه نسبتا بالاتری خواهند داشت و این رفاه خود باعث طول عمر بیشتر و باروری بهتر خواهد بود(توجه کنید شرایط طبیعی است نه در یک جامعه سطح بالا با ملاحظات امروزی یعنی طول عمر بیشتر در این جامعه نمونه با زاد و ولد بیشتر همراه است). حال اگر این خصوصیت(هوش)ارثی باشد به طبع در نسل بعدی همان جامعه تعداد افراد باهوش به دلیل زاد و ولد بیشتر اینگونه افراد بیشتر خواهد بود. اگر همین روند را ادامه دهید خواهید دید که در طی نسلهای متوالی دائما جامعه نمونه ما باهوش و باهوشتر میشود. بدین ترتیب یک مکانیزم ساده طبیعی توانسته است در طی چند نسل عملا افراد کم هوش را از جامعه حذف کند علاوه بر اینکه میزان هوش متوسط جامعه نیز دائما در حال افزایش است.
بدین ترتیب میتوان دید که طبیعت با بهرهگیری از یک روش بسیار ساده(حذف تدریجی گونههای نامناسب و در عین حال تکثیر بالاتر گونههای بهینه) توانسته است دائما هر نسل را از لحاظ خصوصیات مختلف ارتقا بخشد.
در این میان آنچه شاید بتواند تا حدودی ما را در فهم این مساله یاری کند مفهومیست به نام :
تصادف یا جهش.
هدف اصلی روشهای هوشمند به کار گرفته شده در هوش مصنوعی یافتن پاسخ بهینه مسائل مهندسی است. به عنوان مثال اینکه چگونه یک موتور را طراحی کنیم تا بهترین بازدهی را داشته باشد یا چگونه بازوهای یک ربات را محرک کنیم تا کوتاهترین مسیر را تا مقصد طی کند(دقت کنید که در صورت وجود مانع یافتن کوتاهترین مسیر دیگر به سادگی کشیدن یک خط راست بین مبدا و مقصد نیست) همگی مسائل بهینهسازی هستند.
در مورد نکته دوم باید بگوییم که روشهای ریاضی بهینهسازی اغلب منجر به یک فرمول یا دستورالعمل خاص برای حل هر مسئله میشوند. در حالی که روشهای هوشمند دستورالعملهایی هستند که به صورت کلی میتوانند در حل هر مسئلهای به کار گرفته شوند. این نکته را پس از آشنایی با خود الگوریتم بیشتر و بهتر خواهید دید.
اما یک موجود چگونه قادر است که شکل و فرم موجودات بعد از خود را تعیین کند؟ برای اینکه جواب سوال را دریابیم، ابتدا باید فرآیند تولید مثل موجودات را بررسی کنیم.
در جریان تولید مثل یک موجود کروموزومهای والدین موجود با یکدیگر ترکیب میشوند و سلول تخم را تشکیل می دهند. تکثیر این سلول تخم منجر به تشکیل یک فرزند تقریباً مشابه والدینش میشود. این موجود ترکیبی از خصوصیات والدین خود را به همراه خواهد داشت. این روند باعث تکامل یک موجود میشود.
اما تا اینجای کار اتفاق خاصی که باعث ایجاد یک موجود جدید گردد به وقوع نپیوسته است. نکته کار اینجاست که در حین تشکیل سلول تخم تغییرات ناخواستهای درون کروموزوم(های) سلول بوجود میآید. این تغییرات اگر کوچک باشند، در حین تکثیر سلول تخم و تشکیل موجود اصلی اصلاح میشوند. اما تغییرات بزرگ اصلاح نمیشوند و منجر به تشکیل یک موجود جدید میشوند.
اگر موجود جدید (و بطور کلی فرزند) ایجاد شده نسبت به والدین در تقابل با محیط برتری داشته باشد، قطعاً در جریان زندگی موفقتر است و امکان تولید مثل پیدا میکند و در نتیجه میتواند خصوصیات خوبش را به فرزندانش منتقل نماید. با توجه به اینکه این فرزندان نیز در تقابل با محیط موفقتر هستند، امکان تولید مثل پیدا میکنند.
با توجه به مطالب فوق متوجه میشوید که سه فاکتور اصلی مبنای نظریه داروین را تشکیل میدهند، این سه فاکتور عبارتند از:
تنوع: ترکیب شدن مشخصات والدین متفاوت باعث میشود که خصوصیات خوب آنها ترکیب شود و یک موجود بهتر بوجود آید.تصادف: عامل ایجاد تغییرات در موجودات فرزندانتخاب: که توسط محیط انجام میشود، به این معنی که موجودات با شایستگی پائین احتمال ادامه حیات و تولید مثل کمتری دارند. (بقای شایستهترین)روند فوق و مخصوصاً سه فاکتور فوق مبنای کار دانشمندان رشته کامپیوتر قرار گرفت و در نتیجه الگوریتمهای ژنتیک بوجود آمدند. این روش در سال 1970 توسط John Holland معرفی گردید
این روشها با نام Evolutionary Algorithms نیز خوانده میشوند. پیشرفت این الگوریتمها باعث شد که کلاً مجموعه روشهای حل مساله با نام پردازش تکاملی بوجود بیاید.
پردازش تکاملی از شاخههای زیر تشکیل شده است:
الگوریتمهای ژنتیک (Genetic Algorithms)برنامه نویسی ژنتیک (Genetic Programming)استراتژیهای تکاملی (Evolutionary Strategies)برنامه نویسی تکاملی (Evolutionary Programming)نحوه ارائه مطالب به این صورت است که در ابتدا قسمتهای مختلف یک الگوریتم ژنتیک