بررسی علم ژنتیک،الگوریتم ژنتیک و روشهای ترکیب
الگوریتم ژنتیک (Genetic Algorithm GA) تکنیک جستجویی در علم رایانه برای یافتن راهحل تقریبی برای بهینهسازی و مسائل جستجو است الگوریتم ژنتیک نوع خاصی از الگوریتمهای تکامل است |
دسته بندی | کامپیوتر و IT |
فرمت فایل | doc |
حجم فایل | 417 کیلو بایت |
تعداد صفحات فایل | 197 |
دانلود پایان نامه رشته کامپیوتر
بررسی علم ژنتیک،الگوریتم ژنتیک و روشهای ترکیب
چکیده
الگوریتم ژنتیک (Genetic Algorithm - GA) تکنیک جستجویی در علم رایانه برای یافتن راهحل تقریبی برای بهینهسازی و مسائل جستجو است. الگوریتم ژنتیک نوع خاصی از الگوریتمهای تکامل است که از تکنیکهای زیستشناسی فرگشتی مانند وراثت و جهش استفاده میکند.در واقع الگوریتمهای ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیشبینی یا تطبیق الگو استفاده میکنند. الگوریتمهای ژنتیک اغلب گزینه خوبی برای تکنیکهای پیشبینی بر مبنای تصادف هستند. مختصراً گفته میشود که الگوریتم ژنتیک (یا GA) یک تکنیک برنامهنویسی است که از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده میکند. مسألهای که باید حل شود ورودی است و راهحلها طبق یک الگو کد گذاری میشوند که تابع fitness نام دارد هر راه حل کاندید را ارزیابی میکند که اکثر آنها به صورت تصادفی انتخاب میشوند.کلاً این الگوریتمها از بخش های زیر تشکیل میشوند: تابع برازش، نمایش، انتخاب، تغییر.
کلمات کلیدی:
هیوریستیک
الگوریتم ژنتیک
ترکیب و جهش
معمای هشت وزیر
تکامل طبیعی داروین
مقدمه
امروزه یکی از مهمترین زمینههای تحقیق و پژوهش، توسعۀ روشهای جستجو بر مبنای اصول تکامل طبیعی میباشد. در محاسبات تکاملی به صورت انتزاعی از مفاهیم اساسی تکامل طبیعی در راستای جستجو برای یافتن راه حلّ بهینه برای مسائل مختلف الهام گرفته شده است.بسیاری از دانشمندان و اندیشمندان، میل به تکامل را مهترین عامل پیشرفت دستگاه آفرینش و انسان میدانند. از این دیدگاه هر پدیدهای را که بنگرید، یک مسأله جستجوست. انسان همواره میکوشد تا به تکامل برسد، از این رو میاندیشد، میپژوهد، میکاود، میسازد، مینگارد و همواره میکوشد تا باقی بماند. حتی میتوان گفت که میل به زادن فرزند، گامی در برآوردن این نیاز و البته دیگر جانداران است. میتوان این تلاش در راه رسیدن به تکامل را یک مسألۀ جستجو تعبیر کرد.
کوشش یک مؤسسه اقتصادی یا تولیدی –که تابعی برای تبدیل دادهها به ستادهاست- برای کمینه کردن هزینهها و بیشینه کردن سود، یک مسألۀ جستجو است. تلاش یک سپاه در حال جنگ، برای وارد کرد بیشترین خسارات بر دشمن با از دست دادن کمترین نیرو و جنگافزار، یا کوشش یک دانشآموز برای دست یافتن به بالاترین نمره، سعی یک موسیقیدان یا نگارگر برای خلق زیباترین اثر هنری، تلاش یک کاندیدا برای به دست آوردن بیشترین رأی، طراحی یک نجّار برای ساختن راحتترین صندلی، تلاش و نقشه چینی ورزشکاران و مربّیان برای یافتن راههای پیروزی بر حریف و... همگی جستجویی در فضای یک مسأله برای یافتن نقاط یا ناحیه بهینگی (بیشینه یا کمینه) هستند و همین امر موجب پیشرفت تمدن و آفرینش شده است.
در دانش کامپیوتر و فناوری اطلاعات هم «جستجو» یکی از مهمترین مسائل است. تنها کافیست که حجم اطلاعات قرار گرفته بر حافظههای گوناگون و اینترنت را در نظر بگیریم تا جایگاه ویژه آن را دریابیم.
تاکنون روشهای بسیاری توسط طراحان الگوریتمها برای انجام جستجو بر دادههای دیجیتالی ارائه شده است. روشهایی به نام جستجوی سریع و جستجوی دودویی ، از سادهترین الگوریتمهایی هستند که دانشجویان گرایشهای مهندسی کامپیوتر در نخستین سالهای دوره کارشناسی فرا میگیرند، امّا این الگوریتمها شاید، هنگامی که با حجمی گسترده از دادهها روبرو شوند، کارایی ندارند و حتی الگوریتمهای پیشرفتهتر مانند جستجوی بازپخت شبیهسازی شده و الگوریتم عمیقشوندۀ تکراری نیز در هنگام رویارویی با مسائل ابرفضا از یافتن راهحل یا ناحیههای دلخواه در میمانند. در این میان یک روش جادویی وجود وجود دارد که مسائل بزرگ را به سادگی و به گونهای شگفتانگیز حل میکند و آن «الگوریتم ژنتیک» است. ناگفته پیداست که واژۀ «الگوریتم ژنتیک» از دو واژۀ «الگوریتم» و «ژنتیک» تشکیل شده است که خود مبیّن این مطلب است که این روش از دو علم ریاضی و زیستشناسی برای حل مسائل کمک میگیرد.
الگوریتمژنتیک بر خلاف دیگر روشهای جستجو، که توسط طراحان نگاشته میشوند، در حقیقت به دست دستگاه آفرینش پدید آمده، و پس از شناخت نسبی دانشمندان از این روش به صورت مسألهای ریاضی فرموله شده و وارد دانش مهندسی کامپیوتر و دیگر علوم مرتبط گردیده است. در یکی دو دهه گذشته که این الگوریتم در علوم مهندسی بکار گرفته شده، ناباورانه چنان دستآوردها و نتایج شگفتانگیزی داشته که نگاه بسیاری از دانشپژوهان علوم گوناگون فنیمهندسی را به خود جلب کرده است.[1]
فهرست مطالب
فصل اول1
1-1- مقدمه2
1-2- به دنبال تکامل...3
1-3- ایدۀ اصلی استفاده از الگوریتم ژنتیک4
1-4- درباره علم ژنتیک6
1-5- تاریخچۀ علم ژنتیک6
1-6- تکامل طبیعی (قانون انتخاب طبیعی داروین)7
1-7- رابطه تکامل طبیعی با روشهای هوش مصنوعی10
1-8- الگوریتم11
1-8-1- الگوریتمهای جستجوی ناآگاهانه12
1-8-1-الف- جستجوی لیست12
1-8-1-ب- جستجوی درختی13
1-8-1-پ- جستجوی گراف14
1-8-2- الگوریتمهای جستجوی آگاهانه14
1-8-2-الف- جستجوی خصمانه15
1-9- مسائل NP-Hard15
1-10- هیوریستیک17
1-10-1- انواع الگوریتمهای هیوریستیک19
فصل دوم21
2-1- مقدمه22
2-2- الگوریتم ژنتیک23
2-3- مكانیزم الگوریتم ژنتیك25
2-4- عملگرهای الگوریتم ژنتیك28
2-4-1- کدگذاری28
2-4-2- ارزیابی29
2-4-3- ترکیب29
2-4-4- جهش29
2-4-5- رمزگشایی30
2-5- چارت الگوریتم به همراه شبه كد آن30
2-5-1- شبه كد و توضیح آن31
2-5-2- چارت الگوریتم ژنتیک33
2-6- تابع هدف34
2-7- روشهای کد کردن34
2-7-1- کدینگ باینری35
2-7-2- کدینگ جایگشتی36
2-7-3- کد گذاری مقدار37
2-7-4- کدینگ درخت38
2-8- نمایش رشتهها39
2-9- انواع روشهای تشکیل رشته41
2-10- باز گرداندن رشتهها به مجموعه متغیرها42
2-10-1- تعداد بیتهای متناظر با هر متغیر43
2-11- جمعیت44
2-11-1- ایجادجمعیت اولیه44
2-11-2- اندازه جمعیت45
2-12- محاسبه برازندگی (تابع ارزش)46
2-13- انواع روشهای انتخاب48
2-13-1- انتخاب چرخ رولت49
2-13-2- انتخاب حالت پایدار51
2-13-3- انتخاب نخبه گرایی51
2-13-4- انتخاب رقابتی52
2-13-5- انتخاب قطع سر52
2-13-6- انتخاب قطعی بریندل53
2-13-7- انتخاب جایگزینی نسلی اصلاح شده53
2-13-8- انتخاب مسابقه54
2-13-9- انتخاب مسابقه تصادفی54
2-14- انواع روشهای ترکیب54
2-14-1- جابهجایی دودوئی55
2-14-2- جابهجایی حقیقی58
2-14-3- ترکیب تکنقطهای59
2-14-4- ترکیب دو نقطهای60
2-14-5- ترکیب n نقطهای60
2-14-6- ترکیب یکنواخت61
2-14-7- ترکیب حسابی62
2-14-8- ترتیب62
2-14-9- چرخه63
2-14-10- محدّب64
2-14-11- بخش_نگاشته64
2-15- احتمال تركیب65
2-16- تحلیل مكانیزم جابجایی66
2-17- جهش66
2-17-1- جهش باینری69
2-17-2- جهش حقیقی69
2-17-3- وارونه سازی بیت70
2-17-4- تغییر ترتیب قرارگیری70
2-17-5- وارون سازی71
2-17-6- تغییر مقدار71
2-18- محک اختتام اجرای الگوریتم ژنتیک72
2-19- انواع الگوریتمهای ژنتیکی72
2-19-1- الگوریتم ژنتیکی سری73
2-19-2- الگوریتم ژنتیکی موازی74
2-20- مقایسه الگوریتم ژنتیک با سیستمهای طبیعی75
2-21- نقاط قوّت الگوریتمهای ژنتیک76
2-22- محدودیتهای GAها78
2-23- استراتژی برخورد با محدودیتها79
2-23-1- استراتژی اصلاح عملگرهای ژنتیک79
2-23-2- استراتژی رَدّی79
2-23-3- استراتژی اصلاحی80
2-23-4- استراتژی جریمهای80
2-24- بهبود الگوریتم ژنتیک81
2-25- چند نمونه از کاربردهای الگوریتمهای ژنتیک81
فصل سوم86
3-1- مقدمه87
3-2- حلّ معمای هشت وزیر88
3-2-1- جمعیت آغازین90
3-2-2- تابع برازندگی94
3-2-3- آمیزش95
3-2-4- جهش ژنتیکی96
3-3- الگوریتم ژنتیک و حلّ مسألۀ فروشندۀ دورهگرد97
3-3-1- حل مسأله TSP به وسیله الگوریتم ژنتیک99
3-3-2- مقایسه روشهای مختلف الگوریتم و ژنتیک برای TSP107
3-3-3- نتیجه گیری108
3-4- حلّ مسأله معمای سودوکو109
3-4-1- حل مسأله110
3-4-2- تعیین کروموزم110
3-4-3- ساختن جمعیت آغازین یا نسل اول111
3-4-4- ساختن تابع از ارزش112
3-4-5- تركیب نمونهها و ساختن جواب جدید113
3-4-6- ارزشیابی مجموعه جواب118
3-4-7- ساختن نسل بعد118
3-5- مرتب سازی به کمک GA119
3-5-1- صورت مسأله119
3-5-2- جمعیت آغازین119
3-5-3- تابع برازندگی122
3-5-4- انتخاب123
3-5-5- ترکیب123
3-5-6- جهش124
فهرست منابع و مراجع126
پیوست127
واژهنامه143