501 likes | 933 Views
موضوع : الگوریتم ژنتیک محقق : آمنه حمیدی استاد مربوطه : آقای شهاب ارکیان بهار 90. الگوریتم ژنتیک. مقدمه.
E N D
موضوع : الگوریتم ژنتیک محقق : آمنه حمیدی استاد مربوطه : آقای شهاب ارکیان بهار 90
مقدمه الگوريتم ژنتيك، الهامي از علم ژنتيك و نظرية تكامل داروين است و بر اساس بقاي برترينها يا انتخاب طبيعي استوار است. كاربرد متداول الگوريتم ژنتيك، استفاده از آن بعنوان تابع بهينهكننده است. به طور کلی انتخاب و طراحی بهینه در بسیاری از مسائل علمی و فنی باعث تولید بهترین محصول یا جواب ممکن در یک شرایط خاص می شود برای مثال تولید محصولات در حوزه های مختلف فنی و مهندسی و وابسته به طراحی دقیق و بهینه شکل اندازه و قطعات آن محصول است مثلاً برای ساخت بال های هواپیما مواد و شکل های مختلفی وجود دارد اما باید بدانیم کدام یک نتیجه ی مطلوب تری راخواهد داشت آیا از آلومنیوم یا یک آلیاژ خواص استفاده کنیم یا مواد کامپوزیت؟
الگوریتمژنتیک • اینروشدرسال 1970 توسط John Holland معرفیگردید • الگوریتم های ژنتیک یک روش جستجوی موثر در فضاهای بسیار وسیع و بزرگ است • الگوریتمژنتیکروشبهینه سازیبرپایهتکاملبیولوژیکاست.
برای استفاده از GA باید سه مفهوم کلی زیر مشخص شوند 1 – تعریف تابع هدف یا تابع هزینه 2- تعریف و پیاده سازی فضای فرضیه یا فضای ژنتیک 3 – تعریف و پیاده سازی عملگرهای GA
ایدهکلی یکGA برایحلیکمسئلهمجموعهبسیاربزرگیازراهحلهایممکنراتولیدمیکند. هریکازاینراهحلهابااستفادهازیک “ تابعتناسب” موردارزیابیقرارمیگیرد. آنگاهتعدادیازبهترینراهحلهاباعثتولیدراهحلهایجدیدیمیشوند. کهاینکارباعثتکاملراهحلهامیگردد. بدینترتیبفضایجستجودرجهتیتکاملپیدامیکندکهبهراهحلمطلوببرسد درصورتانتخابصحیحپارامترها،اینروشمیتواندبسیارموثرعملنماید.
فضایفرضیه • الگوریتمژنتیکفرضیههایجدیدراباتغییروترکیبمتوالیاجزابهترینفرضیههایموجودبدستمیاورد. • درهرمرحلهمجموعهایازفرضیههاکهجمعیت (population) نامیدهمی شوندازطریقجایگزینیبخشیازجمعیتفعلیبافرزندانیکهازبهترینفرضیههایموجودحاصلشدهاندبدستمی آید.
ایجاد یک جمعیت تصادفی اگر مناسب بود و زمان توقف الگوریتم رسیده بود؟ ارزیابی تناسب آنها با راه حل Yes NO ایجاد یک جمعیت جدید پایان نحوه عملکرد الگوریتم ژنتیک
ویژگیها • الگوریتمهایژنتیکدرمسائلیکهفضایجستجویبزرگیداشتهباشندمیتواندبکارگرفتهشود. • همچنیندرمسایلیبافضایفرضیهپیچیدهکهتاثیراجزاآندرفرضیهکلیناشناختهباشندمیتواناز GA برایجستجواستفادهنمود. • برای حل مسائلی که ازلحاظمحاسباتیپرهزینههستند. • برای حل مسائلی که تضمینیبرایرسیدنبهجواببهینهوجودندارد.
وقتی مسئله ایی را حل می کنیم هدف ما یافتن بهترین جواب از میان جواب های ممکن است. جستجو برای جواب یعنی جستجو برای برای پیدا کردن اکسترمم. هرجواب می تواند با یک مقداری که بیانگر مناسب بودن آن است نشان داده شود.
دراین روش فضای فرضیه یا فضای جواب های ممکن به فضای ژنتیک تبدیل می شود. به طوری که هر فرضیه ما یک کروموزوم محسوب می شود.
پیش زمینه بیولوزیکی ژن ها همه ارگانیسم های زنده از سلول تشکیل شده اند در هر سلول مجموعه ایی ازکروموزوم ها به شکل رشته ایی از DNA وجود دارند هر کروموزوم از یک سری ژن در بلوک های DNA تشکیل شده است که هر ژن یک صفت خاصی را دیکود می کند
بر اساس تعریف هالند روش های متعددی برای نمایش ژن ها وجود دارد مثلاً نی توان به صورت 1- رشته ( (String 2- آرایه (Array) 3- درخت (Tree) 4- لیست (List) نشان داد که در اینجا آنها را به صورت رشته های بیتی یا دودویی مورد بررسی قرار می دهیم
Phenotype space Genotype space = {0,1}L Encoding (representation) 10010001 10010010 010001001 011101001 Decoding (inverse representation) نمایشفرضیهها به صورت کد کردن مقادیر درالگوریتمژنتیکمعمولافرضیههابصورترشتهایازبیتهانشاندادهمیشوندتااعمالعملگرهایژنتیکیبررویآنهاسادهترباشد. • : Phenotype بهمقادیریاراهحلهایواقعیگفتهمیشود. • : Genotypeبهمقادیرانکدشدهیاکروموزمهاگفتهمیشودکهمورداستفاده GA قرارمیگیرند. • بایدراهیبرایتبدیلایندونحوهنمایشبهیکدیگربدستآوردهشود.
الگوریتمهایژنتیک • روشمتداولپیادهسازیالگوریتمژنتیکبدینترتیباستکه: • مجموعهایازفرضیههاکه population نامیدهمیشودتولیدوبطورمتناوببافرضیههایجدیدیجایگزینمیگردد. • درهربارتکرارتمامیفرضیههابااستفادهازیکتابعتناسبیا Fitness موردارزیابیقراردادهمیشوند. آنگاهتعدادیازبهترینفرضیههابااستفادهازیکتابعاحتمالانتخابشدهوجمعیتجدیدراتشکیلمیدهند. • تعدادیازاینفرضیههایانتخابشدهبههمانصورتمورداستفادهواقعشدهومابقیبااستفادهازعملگرهایژنتیکینظیر Crossover و Mutationبرایتولیدفرزندانبکارمیروند.
عملگرهای GA 1- تولید مثل 2- ادغام 3- جهش
انواع روش های انتخاب 1- روش چرخ و رولت 2- روش بولتزمن 3- روش مسابقه 4- روش رتبه بندی 5- حالت پایدار
1/6 = 17% B fitness(A) = 3 A C fitness(B) = 1 2/6 = 33% 3/6 = 50% fitness(C) = 2 انتخابفرضیهها • Roulette Wheel selection درروشمعرفیشدهدرالگوریتمساده GA احتمالانتخابیکفرضیهبرایاستفادهدرجمعیتبعدیبستگیبهنسبت fitness آنبه fitness بقیهاعضادارد. اینروش Roulette Wheel selectionنامیدهمیشود. P(hi) = Fitness (hi) / Σj Fitness (hj)
پارامترهای GA یکالگوریتم GA دارایپارامترهایزیراست: GA(Fitness,Fitness_threshold,p,r,m) • : Fitnessتابعیبرایارزیابییکفرضیهکهمقداریعددیبههرفرضیهنسبتمیدهد • : Fitness_thresholdمقدارآستانهکهشرطپایانرامعینمیکند • : p تعدادفرضیههائیکهبایددرجمعیتدرنظرگرفتهشوند • :r درصدیازجمعیتکهدرهرمرحلهتوسطالگوریتم crossover جایگزینمیشوند • :m نرخ mutation
الگورتیم • : Initializeجمعیتراباتعداد p فرضیهبطورتصادفیمقداردهیاولیهکنید. • : Evaluateبرایهرفرضیه h در p مقدارتابع Fitness(h) رامحاسبهنمائید. • تازمانیکه[maxh Fitness(h)] < Fitness_thresholdیکجمعیتجدیدایجادکنید. • فرضیهایکهدارایبیشترینمقدار Fitness استرابرگردانید.
نحوهایجادجمعیتجدید مراحلایجادیکجمعیتجدیدبصورتزیراست: • : selectتعداد(1-r)p فرضیهازمیان P انتخابوبهPsاضافهکنید. احتمالانتخابیکفرضیهhiازمیانP عبارتاستاز: P(hi) = Fitness (hi) / Σj Fitness (hj) • : Crossoverبااستفادهازاحتمالبدستآمدهتوسطرابطهفوق،تعداد(rp)/2 زوجفرضیهازمیان P انتخابوبااستفادهازعملگرCrossover دوفرزندازآنانایجادکنید. فرزندانرابه Psاضافهکنید. • : Mutateتعداد m درصدازاعضا Psرابااحتمالیکنواختانتخابویکبیتازهریکآنهارابصورتتصادفیمعکوسکنید • P Ps :Update • برایهرفرضیه h در P مقدارتابع Fitness رامحاسبهکنید هرچهتناسبفرضیهایبیشترباشداحتمالانتخابآنبیشتراست. .
عملگرهایژنتیکی Crossover : • عملگرCrossover بااستفادهازدورشتهوالددورشتهفرزندبوجودمیآورد. • برایاینکارقسمتیازبیتهایوالدیندربیتهایفرزندانکپیمیشود. • انتخاببیتهائیکهبایدازهریکازوالدینکپیشوندبهروشهایمختلفانجاممیشود • single-point crossover • Two-point crossover • Uniform crossover.
انواع روش های ادغام 1- روش ادغام تک نقطه ای (Single-point crossover) 2- روش ادغام دونقطه ای ((Two-point crossover 3- روش ادغام یکنواخت (Uniform crossover)
Single-point crossover • یکنقطهتصادفیدرطولرشتهانتخابمیشود. • والدیندرایننقطهبهدوقسمتمیشوند. • هرفرزندباانتخابتکهاولازیکیازوالدینوتکهدومازوالددیگربوجودمیاید. Children Parents
Two-point crossover Children Parents
Uniform crossover Parents Children بیتهابصورتیکنواختازوالدینانتخابمیشوند
جهشMutation) ) • عملگرmutation برایبوجودآوردنفرزندفقطازیکوالداستفادهمیکند. اینکارباانجامتغییراتکوچکیدررشتهاولیهبوقوعمیپیوندد. • بااستفادهازیکتوزیعیکنواختیکبیتبصورتتصادفیاتنخابومقدارآنتغییرپیدامیکند. • معمولا mutation بعدازانجام crossover اعمالمیشود. Child Parent
Crossover OR mutation? • اینسوالهاسالهامطرحبودهاست: کدامیکبهتراست؟کدامیکلازماست؟کدامیکاصلیاست؟ • پاسخیکهتاکنونبیشترازبقیهپاسخهاموردقبولبوده: • بستگیبهصورتمسئلهدارد • درحالتکلیبهتراستازهردواستفادهشود • هرکدامنقشمخصوصخودرادارد
Crossover OR mutation? • Crossover خاصیتجستجوگرانهویاexplorative دارد. میتواندباانجامپرشهایبزرگبهمحلهائیدربینوالدینرفتهونواحیجدیدیراکشفنماید. . • Crossoveاطلاعاتوالدینراترکیبمیکنددرحالیکه mutation میتوانداطلاعاتجدیدیاضافهنماید. • برایرسیدنبهیکپاسخبهینهیکخوششانسیدر mutation لازماست.
تابعتناسب • تابع fitness معیاریبرایرتبهبندیفرضیههاستکهکمکمیکندتافرضیههایبرتربراینسلبعدیجمعیتانتخابشوند. نحوهانتخاباینتابعبستهبهکاربرموردنظردارد
چرا GA کارمی کند؟ • سئوالیکهممکناستبرایتازهواردینبهروشهایژنتیکیایجادشودایناستکهآیااینروشواقعامیتواندکارمفیدیانجامدهد؟
تفاوت GA باسایرروشهایجستجو • GA بجایکدکردنپارامترهامجموعهآنهاراکدمیکند • GA بجایجستجوبراییکنقطهبدنبالجمعیتیازنقاطمیگردد. • GA بجایاستفادهازمشتقویاسایراطلاعاتکمکیمستقیماازاطلاعاتموجوددربهرهمیگیرد. • GA بجایقوانینقطعیازقوانیناحتمالبرایتغییراستفادهمیکند.
مثالیازکاربردالگوریتمژنتیک بهینهسازی چینش حروف فارسی بر روی صفحهکلیدبا استفاده از الگوریتمهای ژنتیکی
مقدمه • بدست آوردن چینش بهینه حروف فارسی بر روی صفحهکلید در درازمدت برای کسانی که با تایپ کردن متون فارسی درگیر هستند, بسیار مفید خواهد بود. • یک الگوریتم تکاملی میتواند با توجه به یک تابع تناسب که میزان راحتی تایپ کردن متون فارسی را برای یک چینش ارائه میدهد, در فضای چینشهای حروف فارسی بر روی صفحهکلید جستجو کرده و چینش بهینه را بدست آورد.
چینش کنونی حروف فارسی بر روی صفحهکلید
مساله • در این مساله صفحهکلید ثابت است و ما میخواهیم که تعداد 33 نشانه که متشکل از 32 حرف الفبای فارسی بعلاوه حرف همزه "ء" است را بر روی سه ردیف صفحهکلید که به ترتیب دارای 12, 11, و 10 کلید هستند, قرار دهیم. • هدف این مساله بدست آوردن چینشی از این نشانهها بر روی این کلیدها است, به طوری که این چینش طوری باشد که کاربر هنگام استفاده از صفحهکلید برای تایپ حروف فارسی, احساس راحتی بیشتری نسبت به کار با بقیه چینشها داشته باشد.
الگوریتم ژنتیک • برای حل مساله از یک الگوریتم ژنتیک استفاده شده است. • تابع تناسب موجود در این الگوریتم ژنتیک, میزان راحتی یا سختی استفاده از یک چینش را محاسبه میکند. • در هر نسل, عملگرهای ژنتیکی بر روی جمعیت موجود که چینشهای مختلفی از حروف فارسی بر روی صفحهکلید هستند, اعمال میشوند و جامعه به سمتی سوق داده میشود که مقدار تابع تناسب به ازای اعضای آن به کمینه مقدار خود برسند. • میزان تناسب هر عضو از جامعه که در واقع یک چینش حروف فارسی بر روی صفحهکلید هستند, با اعمال تابع تناسب بر متنی که از مطالب چند سایت خبری فارسی زبان تهیه شده است, به دست میآید.
جمعیت • اعضای جمعیت جایگشتهای مختلف حروف فارسی روی صفحهکلید هستند. هر عضو جمعیت را میتوان به صورت برداری از حروف فارسی در نظر گرفت که هر اندیس آن متناظر با یک کلید از صفحهکلید است. • مثلاً هر بردار با طول33 که شامل حروف فارسی بعلاوه حرف همزه "ء" باشد را میتوان به عنوان یک کروموزوم (یک عضو از جمعیت) در نظر گرفت که حرف iام از این بردار, متناظر با کلیدی از صفحهکلید است که برچسب شمارة i بر روی آن زده شده است. تعداد چینشهای مختلف !33
تابع تناسب • تعیین راحتی و سختی کار کردن با چینش حروف بر روی صفحهکلید یک مساله پیچیدهاست. • نورمن و روملهارت چهار هدف را برای طراحی کارای یک صفحهکلید ارائه کردهاند: • برابری کاری که دو دست انجام میدهند؛ • بیشترین تایپ حروف به صورت متناوب با دو دست؛ • کمترین تکرار تایپ دو حرف متوالی با یک انگشت؛ و • بیشترین تایپ حروف بر روی کلیدهای پایهای (کلیدهای ردیف وسط).
تابع تناسب • . برای دو هدف اول میتوان فاکتور اندازهگیری زیر را معرفیکرد: • Chand: هزینه مربوط به استفاده از یک دست برای تایپ کردن دو حرف پشت سر هم. • برای هدف سوم, فاکتور اندازهگیری زیر معرفی میشود: • Cfinger: هزینه مربوط به استفاده از یک انگشت برای تایپ کردن دو حرف پشت سر هم. • Cergonomic: هزینه مربوط به تایپ کردن یک حرف با توجه به موقعیت آن حرف بر روی صفحهکلید.
تابع تناسب • تابع تناسب برای هر کروموزوم از مجموع این سه فاکتور برای تمامی حروفی که در متن مورد استفاده برای آزمایش وجود دارند, بدست میآید: W مجموعه تمامی کلمات موجود در متن مورد استفاده برای آزمایش است؛ • wi کلمهiام از مجموعهW است؛ • ljحرف jام از کلمهwi است؛
کارایی • الگوریتم ژنتیکبا پارامترهای زیر اجرا کردیم: • تعداد اعضای جمعیت 100 کروموزوم که در نسل اول به صورت تصادفی تولید شدهاند؛ • درصد تشکیلدهنده جامعه نخبگان است, 10% کل جمعیت ؛ • تعداد اعضایی که به صورت مستقیم و بدون اینکه عمگرهای ژنتیکی بر روی آن اعمال شود, به نسل بعدی میروند, 3 عضو؛ • و تعداد کل نسلها 500 نسل.
کارایی نمودارهای تناسب اعضای جامعه در طی نسلهای مختلف. منحنیهای نشان داده شده به ترتیب از بالا به پایین, متوسط مقادیر تناسب همه اعضای جامعه, متوسط مقادیر تناسب جامعه نخبگان, و بهترین تناسب هستند.
بهترین چینش • بهترین چینشی که در نهایت این الگوریتم ژنتیک برای حروف فارسی ارائه داد, هزینهاش با توجه به تابع تناسب, 815/0 هزینه چینش کنونی حروف فارسی است .
مزایای GA • بعضی از مزایای GA عبارت از : 1- فهم آسان 2- پشتیبانی از بهینه سازی چند تابعی 3- همیشه یک جواب داریم که این جواب با گذشت زمان بهتر می شود 4- روش ها یمختلفی برای افزایش سرعت و پیشرفت الگوریتم و جود دارد 5- بهره برداری ساده از جواب های قبلی 6- وجود یک تاریخچه ی معتبر
فهرست منابع و مآخذ: 1 - علیرضا، مهدی. (1386). مقدمه ای بر الگوریتم های ژنتیک و کابردهای آن، تهران ، انتشارات زانیس . 2- ملکی ، فرزاد ،( 1386) ، جزوه الگوریتم ژنتیک ، http://geneticalgorithm.blogfa.com/- 3 http://www.rennard.org-4