دانشگاه صنعتی امیرکبیر

Slides:



Advertisements
Similar presentations
Genetic Algorithms Chapter 3. A.E. Eiben and J.E. Smith, Introduction to Evolutionary Computing Genetic Algorithms GA Quick Overview Developed: USA in.
Advertisements

Genetic Algorithms.
Genetic Algorithms Genetic Programming Ata Kaban School of Computer Science University of Birmingham 2003.
CSM6120 Introduction to Intelligent Systems Evolutionary and Genetic Algorithms.
Biologically Inspired AI (mostly GAs). Some Examples of Biologically Inspired Computation Neural networks Evolutionary computation (e.g., genetic algorithms)
Genetic Algorithms Representation of Candidate Solutions GAs on primarily two types of representations: –Binary-Coded –Real-Coded Binary-Coded GAs must.
Institute of Intelligent Power Electronics – IPE Page1 Introduction to Basics of Genetic Algorithms Docent Xiao-Zhi Gao Department of Electrical Engineering.
Introduction to Genetic Algorithms Yonatan Shichel.
Doug Downey, adapted from Bryan Pardo, Machine Learning EECS 349 Fall 2007 Machine Learning Genetic Algorithms.
Genetic Algorithm for Variable Selection
Intro to AI Genetic Algorithm Ruth Bergman Fall 2002.
Genetic Algorithms (GAs) by Jia-Huei Liao Source: Chapter 9, Machine Learning, Tom M. Mitchell, 1997 The Genetic Programming Tutorial Notebook
Tutorial 1 Temi avanzati di Intelligenza Artificiale - Lecture 3 Prof. Vincenzo Cutello Department of Mathematics and Computer Science University of Catania.
CS 447 Advanced Topics in Artificial Intelligence Fall 2002.
Intro to AI Genetic Algorithm Ruth Bergman Fall 2004.
Khaled Rasheed Computer Science Dept. University of Georgia
Genetic Algorithms Overview Genetic Algorithms: a gentle introduction –What are GAs –How do they work/ Why? –Critical issues Use in Data Mining –GAs.
Prepared by Barış GÖKÇE 1.  Search Methods  Evolutionary Algorithms (EA)  Characteristics of EAs  Genetic Programming (GP)  Evolutionary Programming.
Evolutionary algorithms
Genetic Algorithms and Ant Colony Optimisation
Computing & Information Sciences Kansas State University Friday, 21 Nov 2008CIS 530 / 730: Artificial Intelligence Lecture 35 of 42 Friday, 21 November.
SOFT COMPUTING (Optimization Techniques using GA) Dr. N.Uma Maheswari Professor/CSE PSNA CET.
Lecture 8: 24/5/1435 Genetic Algorithms Lecturer/ Kawther Abas 363CS – Artificial Intelligence.
Genetic Algorithms Genetic algorithms imitate a natural optimization process: natural selection in evolution. Developed by John Holland at the University.
Neural and Evolutionary Computing - Lecture 5 1 Evolutionary Computing. Genetic Algorithms Basic notions The general structure of an evolutionary algorithm.
An Introduction to Genetic Algorithms Lecture 2 November, 2010 Ivan Garibay
1 Machine Learning: Lecture 12 Genetic Algorithms (Based on Chapter 9 of Mitchell, T., Machine Learning, 1997)
Genetic Algorithms Siddhartha K. Shakya School of Computing. The Robert Gordon University Aberdeen, UK
Kansas State University Department of Computing and Information Sciences CIS 732: Machine Learning and Pattern Recognition Friday, 16 February 2007 William.
Brief introduction to genetic algorithms and genetic programming A.E. Eiben Free University Amsterdam.
Genetic Algorithms. Evolutionary Methods Methods inspired by the process of biological evolution. Main ideas: Population of solutions Assign a score or.
Machine Learning Chapter 9. Genetic Algorithm
Genetic Algorithms ML 9 Kristie Simpson CS536: Advanced Artificial Intelligence Montana State University.
1 Genetic Algorithms and Ant Colony Optimisation.
Chapter 9 Genetic Algorithms.  Based upon biological evolution  Generate successor hypothesis based upon repeated mutations  Acts as a randomized parallel.
Machine Learning CS 165B Spring Course outline Introduction (Ch. 1) Concept learning (Ch. 2) Decision trees (Ch. 3) Ensemble learning Neural Networks.
Genetic Algorithms Genetic algorithms provide an approach to learning that is based loosely on simulated evolution. Hypotheses are often described by bit.
CITS7212: Computational Intelligence An Overview of Core CI Technologies Lyndon While.
CpSc 881: Machine Learning Genetic Algorithm. 2 Copy Right Notice Most slides in this presentation are adopted from slides of text book and various sources.
Chapter 9 Genetic Algorithms Evolutionary computation Prototypical GA
Kansas State University Department of Computing and Information Sciences CIS 732: Machine Learning and Pattern Recognition Monday, 25 February 2008 William.
D Nagesh Kumar, IIScOptimization Methods: M8L5 1 Advanced Topics in Optimization Evolutionary Algorithms for Optimization and Search.
An Introduction to Genetic Algorithms Lecture 2 November, 2010 Ivan Garibay
Genetic Algorithms. Solution Search in Problem Space.
Genetic Algorithms And other approaches for similar applications Optimization Techniques.
George Yauneridge.  Machine learning basics  Types of learning algorithms  Genetic algorithm basics  Applications and the future of genetic algorithms.
Genetic Algorithm. Outline Motivation Genetic algorithms An illustrative example Hypothesis space search.
Presented By: Farid, Alidoust Vahid, Akbari 18 th May IAUT University – Faculty.
Genetic Algorithms Author: A.E. Eiben and J.E. Smith
Genetic Algorithm in TDR System
Genetic Algorithm (GA)
Genetic Algorithms.
Dr. Kenneth Stanley September 11, 2006
Evolutionary Algorithms Jim Whitehead
Artificial Intelligence Methods (AIM)
Introduction to Genetic Algorithm (GA)
An evolutionary approach to solving complex problems
Artificial Intelligence Chapter 4. Machine Evolution
GENETIC ALGORITHM A biologically inspired model of intelligence and the principles of biological evolution are applied to find solutions to difficult.
GENETIC ALGORITHMS & MACHINE LEARNING
Genetic Algorithms Chapter 3.
Artificial Intelligence Chapter 4. Machine Evolution
Machine Learning: UNIT-4 CHAPTER-2
Lecture 4. Niching and Speciation (1)
Genetic Algorithm Soft Computing: use of inexact t solution to compute hard task problems. Soft computing tolerant of imprecision, uncertainty, partial.
Steady state Selection
Beyond Classical Search
Population Based Metaheuristics
GA.
Population Methods.
Presentation transcript:

دانشگاه صنعتی امیرکبیر الگوریتم های ژنتیک Instructor : Saeed Shiry With little change by: Keyvanrad & Mitchell Ch. 9 1392-1393 (2)

الگوریتم ژنتیک الگوریتم ژنتیک روش یادگیری بر پایه تکامل بیولوژیک است. الگوریتم ژنتیک روش یادگیری بر پایه تکامل بیولوژیک است. این روش در سال 1970 توسط John Holland معرفی گردید این روشها با نام Evolutionary Algorithms نیز خوانده میشوند.

ایده کلی یک GA برای حل یک مسئله مجموعه بسیار بزرگی از راه حلهای ممکن را تولید میکند. هر یک از این راه حلها با استفاده از یک “ تابع تناسب” مورد ارزیابی قرار میگیرد. آنگاه تعدادی از بهترین راه حلها باعث تولید راه حلهای جدیدی میشوند. که اینکار باعث تکامل راه حلها میگردد. بدین ترتیب فضای جستجو در جهتی تکامل پیدا میکند که به راه حل مطلوب برسد در صورت انتخاب صحیح پارامترها، این روش میتواند بسیار موثر عمل نماید.

فضای فرضیه الگوریتم ژنتیک بجای جستجوی فرضیه های general-to specific و یا simple to complex فرضیه ها ی جدید را با تغییر و ترکیب متوالی اجزا بهترین فرضیه های موجود بدست میاورد. در هرمرحله مجموعه ای از فرضیه ها که جمعیت (population) نامیده میشوند از طریق جایگزینی بخشی از جمعیت فعلی با فرزندانی که از بهترین فرضیه های موجود حاصل شده اند بدست میآید.

دانشگاه صنعتی امیرکبیر ویژگیها الگوریتم های ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند میتواند بکار گرفته شود. برای discrete optimizationبسیار مورد استفاده قرار میگیرد. الگوریتم های ژنتیک را میتوان براحتی بصورت موازی اجرا نمود از اینرو میتوان کامپیوترهای ارزان قیمت تری را بصورت موازی مورد استفاده قرار داد. امکان به تله افتادن این الگوریتم در مینیمم محلی کمتر از سایر روشهاست. از لحاظ محاسباتی پرهزینه هستند. تضمینی برای رسیدن به جواب بهینه وجود ندارد. همچنین در مسایلی با فضای فرضیه پیچیده که تاثیر اجرا آن در فرضیه کلی ناشناخته باشند میتوان از GA برای جستجو استفاده نمود.

Parallelization of Genetic Programming در سال 1999 شرکت Genetic Programming Inc. یک کامپیوتر موازی با 1000 گره هر یک شامل کامپیوتر های P2, 350 MHZ برای پیاده سازی روش های ژنتیک را مورد استفاده قرار داد.

کاربر دها کاربرد الگوریتم های ژنتیک بسیار زیاد میباشد optimization, automatic programming, machine learning, economics, operations research, ecology, studies of evolution and learning, and social systems

دانشگاه صنعتی امیرکبیر زیر شاخه های EA روش های EA به دو نوع مرتبط به هم ولی مجزا دسته بندی میشوند: Genetic Algorithms (GAs) در این روش راه حل یک مسئله بصورت یک bit string نشان داده میشود. Genetic Programming (GP) این روش به تولید expression trees که در زبانهای برنامه نویسی مثل lisp مورد استفاده هستند میپردازد بدین ترتیب میتوان برنامه هائی ساخت که قابل اجرا باشند.

الگوریتم های ژنتیک روش متداول پیاده سازی الگوریتم ژنتیک بدین ترتیب است که: استخری از فرضیه ها که population نامیده میشود تولید وبطور متناوب با فرضیه های جدیدی جایگزین میگردد. در هر بار تکرارتمامی فرضیه ها با استفاده از یک تابع تناسب یا Fitness مورد ارزیابی قرار داده میشوند. آنگاه تعدادی از بهترین فرضیه ها با استفاده از یک تابع احتمال انتخاب شده و جمعیت جدید را تشکیل میدهند. تعدادی از این فرضیه های انتخاب شده به همان صورت مورد استفاده واقع شده و مابقی با استفاده از اپراتورهای ژنتیکی نظیر Crossover و Mutationبرای تولید فرزندان بکار میروند.

پارامترهای 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 است را برگردانید.

P(hi) = Fitness (hi) / Σj Fitness (hj) نحوه ایجاد جمعیت جدید مراحل ایجاد یک جمعیت جدید بصورت زیر است: : 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 را محاسبه کنید هر چه تناسب فرضیه ای بیشتر باشد احتمال انتخاب آن بیشتر است. این احتمال همچنین با مقدار تناسب فرضیه های دیگر نسبت عکس دارد.

نمایش فرضیه ها Phenotype space Genotype space = {0,1}L Encoding در الگوریتم ژنتیک معمولا فرضیه ها بصورت رشته ای از بیت ها نشان داده میشوند تا اعمال اپراتورهای ژنتیکی برروی آنها ساده تر باشد. : Phenotype به مقادیر یا راه حلهای واقعی گفته میشود. : Genotypeبه مقادیر انکد شده یا کروموزم ها گفته میشود که مورد استفاده GA قرار میگیرند. باید راهی برای تبدیل این دو نحوه نمایش به یکدیگر بدست آورده شود. Genotype space = {0,1}L Phenotype space Encoding (representation) Decoding (inverse representation) 011101001 010001001 10010010 10010001

مثال: نمایش قوانین If-then rules برای نمایش مقادیر یک ویژگی نظیر Outlook که دارای سه مقدار Sunny, Overcast ,Rain است میتوان از رشته ای با طول 3 بیت استفاده نمود 100 -> Outlook = Sunny 011-> Outlook = Overcast  Rain برای نمایش تر کیب ویژگی ها رشته بیت های هر یک را پشت سر هم قرار میدهیم: به همین ترتیب کل یک قانون if- then را میتوان با پشت سر هم قرار دادن بیت های قسمت های شرط و نتیجه ایجاد نمود: Outlook Wind 011 10 IF Wind = Strong THEN PlayTennis = No Outlook Wind PlayTennis 111 10 0  bit string: 111100

نمایش فرضیه ها: ملاحظات دانشگاه صنعتی امیرکبیر نمایش فرضیه ها: ملاحظات ممکن است ترکیب بعضی از بیت ها منجر به فرضیه های بی معنی گردد. برای پرهیز از چنین وضعیتی: میتوان از روش انکدینگ دیگری استفاده نمود. اپراتورهای ژنتیکی را طوری تعیین نمود که چنین حالتهائی را حذف نمایند میتوان به این فرضیه ها مقدار fitness خیلی کمی نسبت داد. مثل 8 وزیر

اپراتورهای ژنتیکی Crossover : برای اینکار قسمتی از بیتهای والدین در بیتهای فرزندان کپی میشود. انتخاب بیت هائی که باید از هر یک از والدین کپی شوند به روشهای مختلف انجام میشود single-point crossover Two-point crossover Uniform crossover برای تعیین محل بیتهای کپی شونده از یک رشته به نام Crossover Mask استفاده میشود.

Single-point crossover یک نقطه تصادفی در طول رشته انتخاب میشود. والدین در این نقطه به دوقسمت میشوند. هر فرزند با انتخاب تکه اول از یکی از والدین و تکه دوم از والد دیگر بوجود میاید. Children Parents Crossover Mask: 11111000000 1 1 1 1 1 1 1 1

روشهای دیگر Crossover Two-point crossover Uniform crossover Crossover Mask: 00111110000 Children Parents 1 1 1 1 1 1 1 1 1 1 1 1 Parents Crossover Mask: 10011010011 Children 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 بیتها بصورت یکنواخت از والدین انتخاب میشوند

اپراتورهای ژنتیکی Mutation : دانشگاه صنعتی امیرکبیر اپراتورهای ژنتیکی Mutation : اپراتور mutation برای بوجود آوردن فرزند فقط از یک والد استفاده میکند. اینکار با انجام تغییرات کوچکی در رشته اولیه بوقوع میپیوندد. با استفاده از یک توزیع یکنواخت یک بیت بصورت تصادفی اتنخاب و مقدار آن تغییر پیدا میکند. معمولا mutation بعد از انجام crossover اعمال میشود. Child Parent 1 1 1 1 1

Crossover OR mutation? این سوال ها سالها مطرح بوده است: کدامیک بهتر است؟ کدامیک لازم است؟ کدامیک اصلی است؟ پاسخی که تاکنون بیشتر از بقیه پاسخها مورد قبول بوده: بستگی به صورت مسئله دارد در حالت کلی بهتر است از هر دو استفاده شود هر کدام نقش مخصوص خود را دارد میتوان الگوریتمی داشت که فقط از mutation استفاده کند ولی الگوریتمی که فقط ازcrossover استفاده کند کار نخواهد کرد

Crossover OR mutation? Crossover خاصیت جستجوگرانه و یا explorative دارد. میتواندبا انجام پرشهای بزرگ به محل هائی دربین والدین رفته و نواحی جدیدی را کشف نماید. Mutationخاصیت گسترشی و یا exploitive دارد. میتواند با انجام تغییرات کوچک تصادفی به نواحی کشف شده وسعت ببخشد. Crossoverاطلاعات والدین را ترکیب میکند درحالیکه mutation میتواند اطلاعات جدیدی اضافه نماید. برای رسیدن به یک پاسخ بهینه یک خوش شانسی در mutation لازم است.

دانشگاه صنعتی امیرکبیر تابع تناسب تابع fitness معیاری برای رتبه بندی فرضیه هاست که کمک میکند تا فرضیه های برتر برای نسل بعدی جمعیت انتخاب شوند. نحوه انتخاب این تابع بسته به کاربر مورد نظر دارد: : classification در این نوع مسایل تابع تناسب معمولا برابر است با دقت قانون در دسته بندی مثالهای آموزشی.

P(hi) = Fitness (hi) / Σj Fitness (hj) انتخاب فرضیه ها A C 1/6 = 17% 3/6 = 50% B 2/6 = 33% Roulette Wheel selection در روش معرفی شده در الگوریتم ساده GA احتمال انتخاب یک فرضیه برای استفاده در جمعیت بعدی بستگی به نسبت fitness آن به fitness بقیه اعضا دارد. این روش Roulette Wheel selectionنامیده میشود. P(hi) = Fitness (hi) / Σj Fitness (hj) fitness(A) = 3 fitness(B) = 1 fitness(C) = 2 روشهای دیگر: tournament selection rank selection

نحوه جستجو در فضای فرضیه روش جستجوی GA با روشهای دیگر مثل شبکه های عصبی تفاوت دارد: در شبکه عصبی روش Gradient descent بصورت هموار از فرضیه ای به فرضیه مشابه دیگری حرکت میکند در حالیکه GA ممکن است بصورت ناگهانی فرضیه والد را با فرزندی جایگزین نماید که تفاوت اساسی با والد آن داشته باشد.از اینرو احتمال گیر افتادن GA در مینیمم محلی کاهش می یابد. با این وجود GA با مشکل دیگری روبروست که crowding نامیده میشود.

Crowding crowding پدیده ای است که در آن عضوی که سازگاری بسیاربیشتری از بقیه افراد جمعیت دارد بطور مرتب تولید نسل کرده و با تولید اعضای مشابه درصد عمده ای از جمعیت را اشغال میکند. اینکار باعث کاهش پراکندگی جمعیت شده و سرعت GA را کم میکند.

راه حل رفع مشکل Crowding استفاده از ranking برای انتخاب نمونه ها: با اختصاص رتبه به فرضیه ای که بسیار بهتر از بقیه عمل میکند مقدار این برتری نشان داده نخواهد شد. : Fitness sharing مقدار Fitness یک عضودر صورتیکه اعضا مشابهی در جمعیت وجود داشته باشند کاهش می یابد. محدود کردن اعضائی که میتوانند با هم ترکیب شوند :برای مثال اعضا بصورت مکانی توزیع شده و فقط به اعضا شبیه به هم امکان تولید نسل داده میشود. اینکار به ایجاد گروههائی از اعضا مشابه در داخل جمعیت منجر خواهد شد.

مثال : کاربرد GA در روباتیک EA در کاربردهای روباتیک زیادی استفاده شده تا روبات را قادر سازد یاد بگیرد تا چگونه با محدودیت هایش کنار بیاید. RoboCup تیم روبوکاپ Darwin United در مسابقات شبیه سازی فوتبال با استفاده از GPتوانسته است به نتایج برتری نسبت به تیمهای دیگر برسد.

Genetic Programming GP تکنیکی است که کامپیوترها را قادر میسازد تا به حل مسائل بپردازند بدون آنکه بطور صریح برای آن برنامه ریزی شده باشند. GP روشی از الگوریتمهای تکاملی است که در آن هرعضو جمعیت یک برنامه کامپیوتری است. برنامه ها اغلب بتوسط یک درخت نمایش داده شده و اجرای برنامه برابر است با pars کردن درخت. + F = sin(x) + sqrt( x^2 + y) Sin sqrt x + ^ y x 2

نمایش برنامه ها برای استفاده از GP در یک زمینه خاص، میبایست توابع پایه ای که در آن زمینه مورد نیاز هستند نظیر sin, cos, sqrt, +, -, etc توسط کاربر تعریف شوند همچنین ترمینالها نظیر متغیرها و ثوابت نیز باید مشخص شوند آنگاه الگوریتم GP در فضای بسیار بزرگ برنامه هائی که توسط این مقادیر اولیه قابل بیان هستند یک عمل جستجوی تکاملی را انجام خواهد داد.

اپراتور crossoverبرای GP + Sin ^ x + x y 2 + Sin ^ x ^ x y 2 والدین فرزندان Crossover + Sin sqrt x + ^ y x 2 + Sin sqrt x + + y x 2

مثال : طراحی فیلتر صورت مسئله: برنامه ای که یک مدار ساده اولیه رابه مدار پیچیده مورد نیاز تبدیل نماید. توابع اولیه: تابعی برای اضافه کردن قطعات و سیم بندی های مدار تابعی برای حذف کردن قطعات و سیم بندی های مدار تابع fitness شبیه سازی مدار بدست آمده توسط نرم افزار SPICE برای مشخص نمودن میزان تطبیق آن با طرح مورد نظر. خطای مداربرای 101 فرکانس مختلف مورد بررسی قرار میگرفت. جمعیت اولیه 640000 : نرخ 89 : crossoverدرصد نرخ 1 : mutation درصد

مثال : طراحی فیلتر سیستم برروی یک کامپیوتر موازی با 64 گره مورد آزمایش قرار گرفت. برای نسل اولیه ای که بصورت تصادفی ایجاد شدند در 98% مواقع حتی امکان شبیه سازی وجود نداشت. این نرخ بتدریج کاهش یافته و پس از تولید 137 نسل مداری حاصل شد که با مشخصات مورد نظر صدق میکرد. در اغلب موارد کارائی الگوریتم GP بستگی به نحوه نمایش و همچنین تابع fitness دارد.

اجرای موازی الگوریتم های ژنتیک الگوریتم های ژنتیک از قابلیت خوبی برای پیاده سازی بصورت موازی برخوردارد هستند. در یک روش پیاده سازی موازی، جمعیت به گروههای کوچکتری با نام demes تقسیم شده و هرکدام در یک گره محاسباتی مورد پردازش قرار میگیرند. در هر گره یک الگوریتم استاندارد GA بر روی deme اجرا میشود. انتقال بین گره ها از طریق پدیده migration صورت میپذیرد.

Evolving Neural Networks از GA برای تکامل جنبه های مختلف NN استفاده زیادی بعمل آمده است.از جمله : وزنها، ساختارو تابع یادگیری. استفاده از GA برای یادگیری وزنهای یک شبکه عصبی میتواند بسیار سریعتر از روش استاندارد back propagation عمل نماید. استفاده از GA برای یادگیری ساختار شبکه عصبی مشکلتر میباشد. برای شبکه های کوچک با استفاده از یک ماتریس مشخص میشود که چه نرونی به چه نرونهای دیگری متصل است.آنگاه این ماتریس به ژن های الگوریتم ژنتیک تبدیل و ترکیبات مختلف آن بررسی میگردد. برای بدست آوردن تابع یادگیری یک شبکه عصبی راه حلهائی نظیر استفاده از GP مورد استفاده قرار گرفته اما عموما این روشها بسیار کند عمل کرده اند.