الگوریتم ژنتیک و حل مساله TSP (دوازده صفحه)
لینک و پرداخت دانلود * پایین مطلب *
فرمت فایل : word ( قابل ویرایش )
تعداد صفحه : 5
مقدمه
الگوریتم های ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیش بینی یا تطبیق الگو استفاده می کنند.الگوریتم های ژنتیک اغلب گزینه خوبی برای تکنیک های پیش بینی بر مبنای رگرسیون هستند.همان طور ساده،خطی وپارامتریک گفته می شود،به الگوریتم های ژنتیک می توان غیر پارامتریک گفت.
برای مثال اگر بخواهیم نوسانات قیمت نفت را با استفاده از عوامل خارجی وارزش رگرسیون خطی ساده مدل کنیم،این فرمول را تولید خواهیم کرد:قیمت نفت در زمان t=ضریب 1 نرخ بهره در زمان t+ضریب 2 نرخ بیکاری در زمان t+ثابت 1 . سپس از یک معیار برای پیدا کردن بهترین مجموعه ضرایب و ثابت ها جهت مدل کردن قیمت نفت استفاده خواهیم کرد.در این روش 2 نکته اساسی وجود دارد.اول این روش خطی است و مسئله دوم این است که ما به جای اینکه در میان "فضای پارامترها"جستجو کنیم ،پارامترهای مورد استفاده را مشخص کرده ایم.
پایان نامه کارشناسی الگوریتم ژنتیک
161 صفحه در قالب word
چکیده
الگوریتم ژنتیک (Genetic Algorithm - GA) تکنیک جستجویی در علم رایانه برای یافتن راهحل تقریبی برای بهینهسازی و مسائل جستجو است. الگوریتم ژنتیک نوع خاصی از الگوریتمهای تکامل است که از تکنیکهای زیستشناسی فرگشتی مانند وراثت و جهش استفاده میکند.
در واقع الگوریتمهای ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیشبینی یا تطبیق الگو استفاده میکنند. الگوریتمهای ژنتیک اغلب گزینه خوبی برای تکنیکهای پیشبینی بر مبنای تصادف هستند. مختصراً گفته میشود که الگوریتم ژنتیک (یا GA) یک تکنیک برنامهنویسی است که از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده میکند. مسألهای که باید حل شود ورودی است و راهحلها طبق یک الگو کد گذاری میشوند که تابع fitness نام دارد هر راه حل کاندید را ارزیابی میکند که اکثر آنها به صورت تصادفی انتخاب میشوند.
کلاً این الگوریتمها از بخش های زیر تشکیل میشوند: تابع برازش، نمایش، انتخاب، تغییر.
کلمات کلیدی: الگوریتم ژنتیک، هیوریستیک، ترکیب و جهش، تکامل طبیعی داروین، معمای هشت وزی
فهرست مطالب
فصل اول 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
1-1- مقدمه
امروزه یکی از مهمترین زمینههای تحقیق و پژوهش، توسعۀ روشهای جستجو بر مبنای اصول تکامل طبیعی میباشد. در محاسبات تکاملی به صورت انتزاعی از مفاهیم اساسی تکامل طبیعی در راستای جستجو برای یافتن راه حلّ بهینه برای مسائل مختلف الهام گرفته شده است. در همین راستا مطالبی که در این فصل پیش روی شما پژوهندۀ گرامی قرار خواهد گرفت مفاهیمی دربارۀ علم کامپیوتر و علم ژنتیک مانند: الگوریتم و انواع آن، جستجو، هیوریستیک، تاریخچه الگوریتم ژنتیک و علم ژنتیک، ژن، کروموزوم، ارث بری و... می باشد، و یا به بیانی خلاصهتر میتوان گفت: در این فصل به بیان مقدّمات خواهیم پرداخت.
انشاءالله مطالعۀ این فصل مفهومی ساده و روشن از موضوعِ این نوشتار را برای شما خوانندۀ محترم به تصویر خواهد کشید و شما را در درک آسان و سریع فصول بعدی یاری خواهد رساند.
1-2- به دنبال تکامل...
بسیاری از دانشمندان و اندیشمندان، میل به تکامل را مهترین عامل پیشرفت دستگاه آفرینش و انسان میدانند. از این دیدگاه هر پدیدهای را که بنگرید، یک مسأله جستجوست. انسان همواره میکوشد تا به تکامل برسد، از این رو میاندیشد، میپژوهد، میکاود، میسازد، مینگارد و همواره میکوشد تا باقی بماند. حتی میتوان گفت که میل به زادن فرزند، گامی در برآوردن این نیاز و البته دیگر جانداران است. میتوان این تلاش در راه رسیدن به تکامل را یک مسألۀ جستجو تعبیر کرد.
کوشش یک مؤسسه اقتصادی یا تولیدی –که تابعی برای تبدیل دادهها به ستادهاست- برای کمینه کردن هزینهها و بیشینه کردن سود، یک مسألۀ جستجو است. تلاش یک سپاه در حال جنگ، برای وارد کرد بیشترین خسارات بر دشمن با از دست دادن کمترین نیرو و جنگافزار، یا کوشش یک دانشآموز برای دست یافتن به بالاترین نمره، سعی یک موسیقیدان یا نگارگر برای خلق زیباترین اثر هنری، تلاش یک کاندیدا برای به دست آوردن بیشترین رأی، طراحی یک نجّار برای ساختن راحتترین صندلی، تلاش و نقشه چینی ورزشکاران و مربّیان برای یافتن راههای پیروزی بر حریف و... همگی جستجویی در فضای یک مسأله برای یافتن نقاط یا ناحیه بهینگی (بیشینه یا کمینه) هستند و همین امر موجب پیشرفت تمدن و آفرینش شده است.
در دانش کامپیوتر و فناوری اطلاعات هم «جستجو» یکی از مهمترین مسائل است. تنها کافیست که حجم اطلاعات قرار گرفته بر حافظههای گوناگون و اینترنت را در نظر بگیریم تا جایگاه ویژه آن را دریابیم.
تاکنون روشهای بسیاری توسط طراحان الگوریتمها برای انجام جستجو بر دادههای دیجیتالی ارائه شده است. روشهایی به نام جستجوی سریع[1] و جستجوی دودویی[2]، از سادهترین الگوریتمهایی هستند که دانشجویان گرایشهای مهندسی کامپیوتر در نخستین سالهای دوره کارشناسی فرا میگیرند، امّا این الگوریتمها شاید، هنگامی که با حجمی گسترده از دادهها روبرو شوند، کارایی ندارند و حتی الگوریتمهای پیشرفتهتر مانند جستجوی بازپخت شبیهسازی شده[3] و الگوریتم عمیقشوندۀ تکراری[4] نیز در هنگام رویارویی با مسائل ابرفضا[5] از یافتن راهحل یا ناحیههای دلخواه در میمانند. در این میان یک روش جادویی وجود وجود دارد که مسائل بزرگ را به سادگی و به گونهای شگفتانگیز حل میکند و آن «الگوریتم ژنتیک»[6] است. ناگفته پیداست که واژۀ «الگوریتم ژنتیک» از دو واژۀ «الگوریتم» و «ژنتیک» تشکیل شده است که خود مبیّن این مطلب است که این روش از دو علم ریاضی و زیستشناسی برای حل مسائل کمک میگیرد.
الگوریتمژنتیک بر خلاف دیگر روشهای جستجو، که توسط طراحان نگاشته میشوند، در حقیقت به دست دستگاه آفرینش پدید آمده، و پس از شناخت نسبی دانشمندان از این روش به صورت مسألهای ریاضی فرموله شده و وارد دانش مهندسی کامپیوتر و دیگر علوم مرتبط گردیده است. در یکی دو دهه گذشته که این الگوریتم در علوم مهندسی بکار گرفته شده، ناباورانه چنان دستآوردها و نتایج شگفتانگیزی داشته که نگاه بسیاری از دانشپژوهان علوم گوناگون فنیمهندسی را به خود جلب کرده است.[1]
1-3- ایدۀ اصلی استفاده از الگوریتم ژنتیک
در دهه 70 میلادی دانشمندی از دانشگاه میشیگان به نام «جان هلند»[7] ایده استفاده از الگوریتم ژنتیک را در بهینهسازیهای مهندسی مطرح کرد. ایده اساسی این الگوریتم انتقال خصوصیات موروثی توسط ژنهاست. (ژنها قطعاتی از یک کروموزوم هستند که اطلاعات مورد نیاز برای یک مولکول DNA یا یک پلی پپتید را دارند. علاوه بر ژنها، انواع مختلفی از توالیهای مختلف تنظیمی در روی کروموزومها وجود دارد که در همانندسازی، رونویسی و... شرکت دارند.([8]. فرض کنید مجموعه خصوصیات انسان توسط کروموزومهای او به نسل بعدی منتقل میشوند. هر ژن در این کروموزومها نماینده یک خصوصیت است. بعنوان مثال ژن 1 میتواند رنگ چشم باشد، ژن 2 طول قد، ژن 3 رنگ مو و الی آخر. حال اگر این کروموزوم به تمامی، به نسل بعد انتقال یابد، تمامی خصوصیات نسل بعدی شبیه به خصوصیات نسل قبل خواهد بود. بَدیهیست که در عمل چنین اتفاقی رخ نمیدهد. در واقع بصورت همزمان دو اتفاق برای کروموزومها میافتد. اتّفاق اول موتاسیون(جهش)[9] است. موتاسیون به این صورت است که بعضی ژنها بصورت کاملاً تصادفی تغییر میکنند. البته تعداد اینگونه ژنها بسیار کم میباشد اما در هر حال این تغییر تصادفی همانگونه که پیشتر دیدیم بسیار مهم است. مثلاً ژن رنگ چشم میتواند بصورت تصادفی باعث شود تا در نسل بعدی یک نفر دارای چشمان سبز باشد، در حالی که تمامی نسل قبل دارای چشم قهوهای بودهاند. علاوه بر موتاسیون اتفاق دیگری که میافتد و البته این اتفاق به تعداد بسیار بیشتری نسبت به موتاسیون رخ میدهد چسبیدن ابتدای یک کروموزوم به انتهای یک کروموزوم دیگر است.[10] این همان چیزیست که مثلاً باعث میشود تا فرزند تعدادی از خصوصیات پدر و تعدادی از خصوصیات مادر را با هم به ارث ببرد و از شبیه شدن تام فرزند به تنها یکی از والدین جلوگیری میکند. [10]
حال میتوانیم اینگونه بیان کنیم که: الگوریتم ژنتیک ابزاری میباشد که توسط آن ماشین میتواند مکانیزم انتخاب طبیعی را شبیه سازی نماید. این عمل با جستجو در فضای مسأله جهت یافتن جواب برتر و نه الزاماً بهینه صورت میپذیرد.[13] الگوریتم ژنتیک را میتوان یک روش جستجوی کلّی نامید که از قوانین تکامل بیولوژیک طبیعی تقلید می کند.[3] در واقع الگوریتمهای ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیشبینی یا تطبیق الگو استفاده میکنند. الگوریتمهای ژنتیک اغلب گزینه خوبی برای تکنیکهای پیشبینی بر مبنای رگرسیون[11] هستند.[10]
ممکن است هنگام انتقال از فایل ورد به داخل سایت بعضی متون به هم بریزد یا بعضی نمادها و اشکال درج نشود ولی در فایل دانلودی همه چیز مرتب و کامل است
متن کامل را می توانید در ادامه دانلود نمائید
چون فقط تکه هایی از متن برای نمونه در این صفحه درج شده است ولی در فایل دانلودی متن کامل همراه با تمام ضمائم (پیوست ها) با فرمت ورد word که قابل ویرایش و کپی کردن می باشند موجود است
موضوع فارسی :شی گرا در پایتون
موضوع انگلیسی :<!--StartFragment -->
OOPNET: An object-oriented EPANET in Python
تعداد صفحه :9
فرمت فایل :PDF
سال انتشار :2015
زبان مقاله : انگلیسی
چکیده
چندین تلاش از گذشته با هدف تبدیل EPANET را به یک پروژه منبع باز بزرگتر با بازنویسی EPANET در راه شی گرا. ما یک EPANET شی گرا پایتون بر اساس (OOPNET) معرفی با هدف پرداختن به مهندسان آب که ممکن است اما نه با زبان های برنامه نویسی پیچیده مانند C ++ یا جاوا آشنا. فایل های ورودی EPANET به ساختار شی گرا از OOPNET ترجمه و دستکاری شده و شبیه سازی با رابط خط فرمان EPANET را از طریق پایتون. جایگزینی EPANET توسط یک حل کننده هیدرولیک در پایتون هنوز هم ادامه دارد و هدف از ارائه راه حل کامل در یک زبان برنامهنویسی نوشته شده است.
موضوع ای که در این مقاله مورد بررسی قرار گرفته شبکه های عصبی است ، که شامل موضوعاتی از قبیل اینکه : شبکه عصبی چیست ، چرا ازشبکه های عصبی استفاده کنیم ، شامل چه مواردی است ، ازچه بخش هایی تشکیل شده ،چه کاربردی دارد و اینکه چگونه کار می کند ، می باشد .از آنجا که شبکه های عصبی نسل جدیدی از شبکه می باشد لذا دارای دنیای از اطلاعات جدید در زمینه شبکه و علم آن است.از جمله نتایج ارزشمند این مقاله می توان به آشنایی مبتدی با شبکه عصبی و طریقه کار آن و استانداردهای به کار رفته در آن اشاره کرد ، که پایه و مقدمه ای برای آشنایی هر چه بیشتر با این علم جدید می باشد ، و ما در پایان این مقاله هر چند کوتاه با پیشرفت های شگرف در زمینه شبکه آشنا خواهیم شد.
فهرست :
مقدمه
شبکه عصبی چیست
سابقه تاریخی
چرا از شبکه های عصبی استفاده میکنیم
تفاوتهای شبکههای عصبی باروشهای محاسباتی متداول و سیستمهای خبره
کاربردهای شبکه های عصبی
الگوریتم ژنتیک
کاربرد های الگوریتم ژنتیک
الگوریتم مورچگان
کاربردهای الگوریتم مورچگان
مسیریاب
تست انطباق
آشنایی باشبکه های عصبی زیستی
معرفی ANN ها
مبانی ANN ها
مدل ریاضی یک نورون
نرم افزارهای شبکه های عصبی
ایده ی اصلی عملکرد شبکه های عصبی مصنوعی
مهم ترین تفاوت حافظه ی انسان و حافظه کامپیوتر
شبکه های عصبی در مقابل کامپیوترهای معمولی
معایب ANN ها
کاربردهای شبکه های عصبی مصنوعی
نتیجه گیری
صفحه : 13
فرمت : PDF