دانلود پایان نامه الگوریتم ژنتیک - مهندسی کامپیوتر
دانلود پایان نامه الگوریتم ژنتیک – مهندسی کامپیوتر
چکیده
الگوریتم ژنتیک (Genetic Algorithm – GA) تکنیک جستجویی در علم رایانه برای یافتن راهحل تقریبی برای بهینهسازی و مسائل جستجو است. الگوریتم ژنتیک نوع خاصی از الگوریتمهای تکامل است که از تکنیکهای زیستشناسی فرگشتی مانند وراثت و جهش استفاده میکند.
در واقع الگوریتمهای ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیشبینی یا تطبیق الگو استفاده میکنند. الگوریتمهای ژنتیک اغلب گزینه خوبی برای تکنیکهای پیشبینی بر مبنای تصادف هستند. مختصراً گفته میشود که الگوریتم ژنتیک (یا GA) یک تکنیک برنامهنویسی است که از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده میکند. مسألهای که باید حل شود ورودی است و راهحلها طبق یک الگو کد گذاری میشوند که تابع fitness نام دارد هر راه حل کاندید را ارزیابی میکند که اکثر آنها به صورت تصادفی انتخاب میشوند.
کلاً این الگوریتمها از بخش های زیر تشکیل میشوند: تابع برازش، نمایش، انتخاب، تغییر.
کلمات کلیدی: الگوریتم ژنتیک، هیوریستیک، ترکیب و جهش، تکامل طبیعی داروین، معمای هشت وزیر.
1-1- مقدمه
امروزه یکی از مهمترین زمینههای تحقیق و پژوهش، توسعۀ روشهای جستجو بر مبنای اصول تکامل طبیعی میباشد. در محاسبات تکاملی به صورت انتزاعی از مفاهیم اساسی تکامل طبیعی در راستای جستجو برای یافتن راه حلّ بهینه برای مسائل مختلف الهام گرفته شده است. در همین راستا مطالبی که در این فصل پیش روی شما پژوهندۀ گرامی قرار خواهد گرفت مفاهیمی دربارۀ علم کامپیوتر و علم ژنتیک مانند: الگوریتم و انواع آن، جستجو، هیوریستیک، تاریخچه الگوریتم ژنتیک و علم ژنتیک، ژن، کروموزوم، ارث بری و… می باشد، و یا به بیانی خلاصهتر میتوان گفت: در این فصل به بیان مقدّمات خواهیم پرداخت.
انشاءالله مطالعۀ این فصل مفهومی ساده و روشن از موضوعِ این نوشتار را برای شما خوانندۀ محترم به تصویر خواهد کشید و شما را در درک آسان و سریع فصول بعدی یاری خواهد رساند.
1-2- به دنبال تکامل…
بسیاری از دانشمندان و اندیشمندان، میل به تکامل را مهترین عامل پیشرفت دستگاه آفرینش و انسان میدانند. از این دیدگاه هر پدیدهای را که بنگرید، یک مسأله جستجوست. انسان همواره میکوشد تا به تکامل برسد، از این رو میاندیشد، میپژوهد، میکاود، میسازد، مینگارد و همواره میکوشد تا باقی بماند. حتی میتوان گفت که میل به زادن فرزند، گامی در برآوردن این نیاز و البته دیگر جانداران است. میتوان این تلاش در راه رسیدن به تکامل را یک مسألۀ جستجو تعبیر کرد.
کوشش یک مؤسسه اقتصادی یا تولیدی –که تابعی برای تبدیل دادهها به ستادهاست- برای کمینه کردن هزینهها و بیشینه کردن سود، یک مسألۀ جستجو است. تلاش یک سپاه در حال جنگ، برای وارد کرد بیشترین خسارات بر دشمن با از دست دادن کمترین نیرو و جنگافزار، یا کوشش یک دانشآموز برای دست یافتن به بالاترین نمره، سعی یک موسیقیدان یا نگارگر برای خلق زیباترین اثر هنری، تلاش یک کاندیدا برای به دست آوردن بیشترین رأی، طراحی یک نجّار برای ساختن راحتترین صندلی، تلاش و نقشه چینی ورزشکاران و مربّیان برای یافتن راههای پیروزی بر حریف و… همگی جستجویی در فضای یک مسأله برای یافتن نقاط یا ناحیه بهینگی (بیشینه یا کمینه) هستند و همین امر موجب پیشرفت تمدن و آفرینش شده است.
فهرست:
فصل اول——————————————————- 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-Hard————————————————— 15
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- مقایسه روشهای مختلف الگوریتم و ژنتیک برای TSP———————— 107
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- مرتب سازی به کمک GA———————————————- 119
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
فرمت فایل: Word
تعداد صفحات: 158
حجم: 1.69 مگابایت