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دانشگاه صنعتي امير كبير در زمينه الگوريتم ژنتيك
متشکرم