Transcript Slide 1

‫دانشگاه امیرکبیر‬
‫دانشکده مهندسی پزشکی‬
‫الگوریتمهای تکاملی (الگوریتم ژنتیک)‬
‫درس ‪ :‬کاربرد فن اوری اطالعات پزشکی‬
‫استاد محترم ‪ :‬جناب اقاي دك تر توحيد خواه‬
‫ارایه كننده ‪ :‬عابد فامیلی(‪)87233509‬‬
‫فهرست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مقدمه‬
‫تاریخچه‬
‫تعاریف‬
‫مرحل الگوریتم ژنتیک‬
‫روشهای نمایش‬
‫روشهای انتخاب‬
‫روشهای تغییر (اپراتورهای ژنتیکی)‬
‫مثال‬
‫مزایا‬
‫معایب‬
‫چند نمونه از کاربرد هاي الگوريتم هاي ژنتيک‬
‫کاربرد هاي الگوريتم ژنتيک در پزشكي‬
‫منابع‬
‫مقدمه‬
‫‪ ‬قانون انتخاب طبيعي بدين صورت است كه تنها گونههاي ي از يك جمعيت ادامه‬
‫نسل ميدهند كه بهترين خصوصيات را داشته باشند و انهاي ي كه اين خصوصيات را‬
‫نداشته باشند به تدريج و در طي زمان از بين ميروند‪.‬‬
‫‪ ‬انتخاب درست ترین ها نه بهترین ها‬
‫تاریخچه‬
‫• الگوريتم هاي ژنتيك با توجه به نظريه داروين در مورد تكامل شكل گرفتند‪.‬‬
‫‪ ‬محاسبات تکاملي درسال ‪ 1960‬به وسيله ي شخصي به نام ‪ Rechenberg‬مرسوم شد‬
‫‪ ‬در دهه هفتاد ميالدي دانشمندي از دانشگاه ميشيگان به نام جان هلند ايده اصلی استفاده‬
‫از الگوريتم ژنتيك را در بهينهسازيهاي مهندسي مطرح كرد‬
‫‪ ‬در سال ‪ John Koza 1992‬از ژنتيک الگوريتم در برنامه اي استفاده کرد که کارهاي‬
‫مشخصي انجام مي داد ‪ Koza‬نام اين روش را ‪Genetic Programming‬‬
‫)‪ (GP‬گذاشت ‪.‬‬
‫تعاریف‬
‫‪ ‬الگوريتم ژنتيک (يا ‪ )GA‬يک تکنيک برنامه نويسي است که از تکامل ژنتيکي به عنوان يک‬
‫الگوي حل مسئله استفاده ميکند‪.‬‬
‫‪‬‬
‫ژن ‪ :‬به هر خصوصیت ژنتیکی یک ژن گ فته می شود مثل رنگ چشم‪ ،‬طول قد‪ ،‬رنگ مو و ‪...‬‬
‫‪‬‬
‫کروموزوم ‪ :‬به مجموعه ژنها که شامل اطالعات ژنتیکی میباشد گ فته میشود‪.‬‬
‫‪‬‬
‫جمعیت )‪ :(colony‬به مجموعه کروموزومها گ فته میشود‪.‬‬
‫‪ ‬تابع تناسب ) ‪: ( Fitness‬تابعی برای ارزیابی یک فرضیه که مقداری عددی به هر‬
‫فرضیه نسبت میدهد‬
‫مراحل الگوریتم ژنتیک‬
‫اصول كار الگوريتم ژنتيك به صورت روند زير ارائه مي گردد‬
‫‪ ‬گام ‪ – 1‬كد گذاري‬
‫‪ ‬گام ‪ – 2‬انتخاب تصادفي جمعيت اوليه از مجموعه پاسخ ها‬
‫‪ ‬گام ‪ – 3‬محاسبه ميزان سازگاري گروه پاسخ با تابع هدف‬
‫) ‪( Fitness‬‬
‫‪ ‬گام ‪ – 4‬ايجاد جمعيت جديد با استفاده از عملگر هاي ژنتيك (تك ثير تركيب و‬
‫جهش)‬
‫‪ ‬گام ‪ – 5‬تكرار مراحل سوم و چهارم تا هنگامي كه جواب نهاي ي همگرا گردد‬
‫روشهای نمایش ژنومها (کدکردن)‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫استفاده از رشته های باینری‬
‫کدکردن راه حل ها در ارايه اي از اعداد صحيح يا اعشاري‬
‫استفاده از يک رشته حروف‪،‬که هر حرف نمايش دهنده يک خصوصيت از راه حل‬
‫است‬
‫برنامه نويسي ژنتيک )‪(Genetic programming‬‬
‫روشهای انتخاب‬
Elitist ‫ روش‬
Roulette ‫ روش‬
Scaling ‫ روش‬
Tournament ‫ روش‬
‫اپراتورهای ژنتیکی‪Crossover :‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫اپراتور ‪ Crossover‬با استفاده از دو رشته والد دو رشته فرزند بوجود می‬
‫اورد ‪.‬‬
‫برای اینکار قسمتی از بیتهای والدین در بیتهای فرزندان کپ ی میشود ‪.‬‬
‫انتخاب بیت هائی که باید از هر یک از والدین کپ ی شوند به روشهای مختلف انجام‬
‫میشود‬
‫◦ ‪single-point crossover‬‬
‫◦ ‪Two-point crossover‬‬
‫◦ ‪Uniform crossover‬‬
‫‪‬‬
‫‪10‬‬
‫برای تعیین محل بیتهای کپ ی شونده از یک رشته به نام ‪Crossover‬‬
‫‪Mask‬استفاده میشود‪.‬‬
‫‪Single-point crossover‬‬
‫‪ ‬یک نقطه تصادفی در طول رشته انتخاب میشود ‪.‬‬
‫‪ ‬والدین در این نقطه به دوقسمت میشوند‪.‬‬
‫‪ ‬هر فرزند با انتخاب تکه اول از یکی از والدین و تکه دوم از والد دیگر بوجود میاید‪.‬‬
‫‪Children‬‬
‫‪11‬‬
‫‪Crossover Mask: 11111000000‬‬
‫‪Parents‬‬
‫‪1 1 1 0 1 0 1 0 1 0 1‬‬
‫‪1 1 1 0 1 0 0 1 0 0 0‬‬
‫‪0 0 0 0 1 0 0 1 0 0 0‬‬
‫‪0 0 0 0 1 0 1 0 1 0 1‬‬
Crossover‫روشهای دیگر‬
Two-point crossover 
Parents
Crossover Mask: 00111110000
Children
1 1 1 00 01 0 00 00 1 0 0 0
1 1 0
1 00 01 0 00 10 1 0 0 0
0 0 0
1 00 01 0 00 10 0 1 0 1
0 0 1 00 01 0 00 00 0 1 0 1
Parents
Uniform crossover ◦
Crossover Mask: 10011010011
Children
1 1 1 0 1 0 0 1 0 0 0
1 0 0 0 1 0 0 0 1 0 0
0 0 0 0 1 0 1 0 1 0 1
0 1 1 0 1 0 1 1 0 0 1
‫بیتها بصورت یکنواخت از والدین انتخاب میشوند‬
12
‫اپراتورهای ژنتیکی ‪Mutation :‬‬
‫‪ ‬اپراتور ‪ mutation‬برای بوجود اوردن فرزند فقط از یک والد استفاده میکند ‪.‬‬
‫اینکار با انجام تغییرات کوچکی در رشته اولیه بوقوع میپیوندد‪.‬‬
‫‪ ‬با استفاده از یک توزیع یکنواخت یک بیت بصورت تصادفی اتنخاب و مقدار ان تغییر‬
‫پیدا میکند‪.‬‬
‫‪ ‬معموال ‪ mutation‬بعد از انجام ‪ crossover‬اعمال میشود‪.‬‬
‫‪Child‬‬
‫‪1 1 1 0 1 0‬‬
‫‪1 0 1 0 0 0‬‬
‫‪13‬‬
‫‪Parent‬‬
‫‪1 1 1 0 1 0 0 1 0 0 0‬‬
‫مثال‬
‫‪ ‬ما يک مربع ‪ 3*3‬داريم که مي خواهيم اعدادي بين ‪1‬تا‪ 15‬را در اين مربع قرار دهيم به‬
‫طوري که جمع اعداد در هر سطرو ستون برابر ‪ 24‬شود‪.‬‬
‫ادامه مثال‬
‫‪‬‬
‫‪‬‬
‫گام اول ‪:‬کدگذاری با استفاده از روش باینری و چون اين اعداد مقادير بين ‪0‬تا‪ 15‬دارند مي توان انها‬
‫را با ‪ 4‬بيت يا ژن داده نمايش داد‬
‫گام دوم ‪ :‬ايجاد کردن يک نسل ابتداي ي براي شروع کار است که شامل تعدادي ژنوم تصادفي است‬
‫ادامه مثال‬
‫‪‬‬
‫‪‬‬
‫گام ‪ – 3‬محاسبه ميزان سازگاري گروه پاسخ با تابع هدف ) ‪( Fitness‬‬
‫هرچقدر که اعداد ما به جواب نزديک تر باشند عدد تناسب بزرگ تر خواهد شد‪.‬‬
‫ادامه مثال‬
‫‪‬‬
‫‪‬‬
‫گام ‪ – 4‬ايجاد جمعيت جديد با استفاده از عملگر هاي ژنتيك (تك ثير تركيب و جهش)‪.‬‬
‫بهترين روش براي تابع انتخاب)‪ (Fitness‬در اين مسئله روشي به نام رولت(‪ )Roulette‬است‪.‬اول يک عدد‬
‫تصادفي بين ‪ 0‬وعدد تناسب نسل قبلي انتخاب مي شود‪ .‬تابع انتخاب به صورت زير خواهد بود‬
‫مزايا‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫عمومي بودن‬
‫هزينه قابل قبول‬
‫قابل تفسير بودن جوابها‬
‫پيشنهاد چندين جواب به صورت همزمان‬
‫موازي بودن الگوريتم‬
‫معايب‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫عدم ضمانت همگراي ي به جواب بهينه در زمان محدود‬
‫ضعف تئوري‬
‫نياز به تنظيم پارامترها‬
‫كند بودن‬
‫چند نمونه از کاربرد هاي الگوريتم هاي ژنتيک‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫توپولوژي هاي شبکه هاي کامپيوتي توزيع شده‪.‬‬
‫بهينه سازي ساختار ملکولي ِشمياي ي (شيمي)‬
‫مهندسي برق براي ساخت انتنهاي ‪Crooked-Wire Genetic Antenna‬‬
‫مهندسي نرم افزار‬
‫بازي هاي کامپيوتري‬
‫مهندسي مواد‬
‫مهندسي سيستم‬
‫رباتيک)‪(Robotics‬‬
‫تشخيص الگوو استخراج داده)‪(Data mining‬‬
‫اموزش شبکه هاي عصبي مصنوعي‬
‫ياددهي رفتار به رباتها با ‪GA .‬‬
‫يادگيري قوانين فازي با استفاده از الگويتم هاي ژنتيک‬
‫درك زبان محاوره اي و يا خواندن متون‬
‫کاربرد هاي الگوريتم ژنتيک در پزشكي‬
‫‪‬‬
‫توليد برنامه هاي درماني‬
‫‪ ‬بهينه سازي فرمولهاي داروي ي وساختارهاي مولکولي‬
‫‪‬‬
‫بهبود تشخيص‬
‫‪‬‬
‫بهبود کيفيت تصميم گيري‬
‫منابع‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫اسالید های دک تر عبادزاده – دانشکده کامپیوتر دانشگاه امیرکبیر‬
‫"الگوريتم هاي ژنتيک" مينا سراجيان ‪ ،‬ميترا حاجی علی مددی مرکز تحصيالت تکميلي درعلوم پايه زنجان‬
‫"الگوريتم ژنتيک انچه کامپيوتر ميتواند از تکامل بياموزد" چارلز والبريج ترجمه محمود البرزي فصلنامه تحقيقات‬
‫مديريت‬
‫مقاله الگوريتم ژنتيك و حل مساله ‪ TSP‬مهندس پيام خان تيموري‬
‫‪http://www.ciirang.com/forumdisplay.php?f=877‬‬
‫‪http://www.ciirang.com/forumdisplay.php?f=877‬‬
‫پاورپوينت دانشجويان ورودي ‪ 85‬رشته ‪ MIT‬دانشگاه صنعتي امير كبير در زمينه الگوريتم ژنتيك‬
‫متشکرم‬