تبليغاتX
الگوریتم ژنتیک

الگوریتم ژنتیک

وبلاگی برای من

Genetic Algorithms Principles And Perspectives A GuideTo GA Theory

+ نوشته شده در  پنجشنبه پنجم مهر 1386ساعت 0:24  توسط محسن سیدکاظمی  | 

AN ITRODUCTION TO GENETIC ALGORITHM

AN ITRODUCTION TO GENETIC ALGORITHM

 

Melanie Mitchell received a a Ph.D. in Computer Science from the University of Michigan in 1990. Her dissertation work with Douglas Hofstadter was on cognitive modeling of analogy-making. She has held faculty or research positions at the University of Michigan, the Santa Fe Institute (as Director of the Institute's Adaptive Computation Program), the Los Alamos National Laboratory, and the OGI School of Science and Engineering at the Oregon Health & Science University. She is currently Professor of Computer Science at Portland State University.

Dr. Mitchell has been the recipient of a University of Michigan Regents' Fellowship, a Fellowship in the Michigan Society of Fellows, and a 21st Century Research Award Grant from the J. S. McDonnell Foundation. She has also served on the external faculty of the Santa Fe Institute. In 1997 she was selected to give the Ulam Memorial Lectures in Complex Systems at the Santa Fe Institute. Dr. Mitchell is the author of Analogy-Making as Perception (MIT Press, 1993) and An Introduction to Genetic Algorithms (MIT Press, 1996). She is a co-editor of Adaptive Individuals in Evolving Populations: Models and Algorithms (Addison Wesley, 1996) and Perspectives on Adaptation in Natural and Artificial Systems (Oxford University Press, 2005). She is also the author of over 60 research papers in the fields of machine intelligence, cognitive science, and complex systems.

 

 

+ نوشته شده در  چهارشنبه چهارم مهر 1386ساعت 23:4  توسط محسن سیدکاظمی  | 

GP

+ نوشته شده در  دوشنبه دوم مهر 1386ساعت 20:44  توسط محسن سیدکاظمی  | 

Permutation Encoding

Permutation Encoding

Crossover

 

 : Single point crossover يک نقطه Crossover  انتخاب مي شود . از والد اول تا نقطهCrossover  کپي مي شود و والد دوم جستجو مي شود اگر عددهاي والد دوم در فرزند جديد نباشد کپي مي شود .

 توجه : روش هاي زيادي براي ساختن بقيه رشته يعني از نقطه Crossover  به بعد و وجود دارد .

 

(1 2 3 4 5 6 7 8 9) + (4 5 3 6 8 9 7 2 1) = (1 2 3 4 5 6 8 9 7)

 

Mutation

Order changing : دو عدد انتخاب مي شود و تغيير مي يابند.

(1 2 3 4 5 6 8 9 7) => (1 8 3 4 5 6 2 9 7)


 

Value Encoding

 

Crossover

همه انواعCrossover   را مي توان استفاده کرد

Mutation

به اعداد انتخاب  شده  براي Mutation  عداد کوچکي اضافه يا کاسته مي شود .

 (1.29  5.68  2.86  4.11  5.55) => (1.29  5.68  2.73  4.22  5.55)

 

 

+ نوشته شده در  چهارشنبه بیست و سوم خرداد 1386ساعت 3:10  توسط محسن سیدکاظمی  | 

Crossover and Mutation

 

Crossover and Mutation


Binary Encoding

Crossover

 Crossoverبا نقطه ي منفرد :

ابتدا نقطه ي Crossover point) ) انتخاب مي شود بعد در رشته باينري کروموزوم اول از آغاز رشته تا  نقطه يCrossover  کپي مي شود و از رشته دوم  از نقطه ي Crossover تا پايان کپي مي شود  و فرزند به وجود مي آيد .

البته در شکل زير به وضوح مراحل ذکر شده قابل مشاهده است:

11001011+11011111 = 11001111

Crossover با دو نقطه :

ابتدا دو نقطه Crossover  انتخاب مي کنيم .در رشته ي باينري از ابتداي کورموزوم والد اول کپي مي کنيم تا اولين نقطه ي Crossover بعد  از رشته والد دوم از نقطه اول تا نقطه دوم Crossover کپي مي شود و ادامه رشته را نيز از نقطه دوم Crossover د ررشته اول کپي مي کنيم بنابراين فرزند به صورت زير به وجود مي آيد .

11001011 + 11011111 = 11011111

: Uniform crossover

                                     بيت ها به صورت رندوم از والدين کپي مي شوند .

11001011 + 11011101 = 11011111

 

 :Arithmetic crossover

با توجه به قواعد و دستورات رياضي خاصي فرزند ها توليد مي شوند مثل AND .

11001011 + 11011111 = 11001001 (AND)

+ نوشته شده در  چهارشنبه شانزدهم خرداد 1386ساعت 0:52  توسط محسن سیدکاظمی  | 

Encoding

 

 

 

Encoding


 

اولين قسمت حل مسئله در روش ژنتيک الگوريتم کدگذاري کوروموزوم ها است واين کدگذاري به نوع وسنگيني مسئله بستگي دارد .

در اين قسمت در مورد تعدادي از کد گذاري ها که قبل از اين توانسته اند موفقيت هايي به دست آورند صحبت مي کنيم .


 

Binary Encoding

عمومي ترين روش وآشناترين نوع  کدگذاري در GA  همان روش کدگذاري باينري است چونکه در تحقيقات اوليه که در GA انجام شد از اين روش استفاده شد و ثانيا اين روش بسيار ساده است.

 در روش کد گذاري به روش باينري همه ي کورموزم ها با رشته هايي که شامل بيت هايي از 0—1 است کد مي شوند .

اين کدگذاري اغلب براي بيشتر مسئله ها طبيعي نيست و بعد از   Crossover  و Mutation بايد تغييراتي درآن به وجود آورد.

 

Chromosome A

101100101100101011100101

Chromosome B

111111100000110000011111

Example of chromosomes with binary encoding


Value Encoding

از شيوه ي Value Encoding مي توانيم در حالت هايي  که مسئله ارزش هاي پيچيده هاي دارد استفاده کنيم ، مثل اعداد صحيح که استفاده از کد کذاري باينري در اين حالت بسيار سخت است .

 

Chromosome A

1.2324  5.3243  0.4556  2.3293  2.4545

Chromosome B

ABDJEIFJDHDIERJFDLDFLFEGT

Chromosome C

(back), (back), (right), (forward), (left)

 

 

 

 

 

Example of chromosomes with value encoding

Value Encoding روش خوبي براي کدگذاري مسئله هاي خاص است  ولي با اين وجود براي اينگونه کد گذاري اغلب بايد شيوه هاي توسعه يافته ي جديدي در Crossover در Mutation به کار برد .


 

 

                                            Tree Encoding

Tree Encoding اساساً استفاده مي شود براي استنتاج برنامه يا بيان طرح برنامه هاي ژنتيک الگوريتم .                                    د ر کدگذاري درختي هر کروموزمي يک درخت مثل زير است براي  توابع يا دستورات در زبان برنامه نويسي .

 

Chromosome A

Chromosome B

( +  x  ( /  5  y ) )

( do_until  step  wall )

Example of chromosomes with tree encoding

کد گذاري درختي بسيار مفيد است ؛ براي استنتاج برنامه ها يا هر استراتژي که  بتواند به صورت درخت کدگذاري بشود .

زبان برنامه نويسيLISP   اغلب براي اين منظور به کار مي رود . بنابراين       Crossoverو  Mutation  به سادگي مي تواند انجام با اين روش شود .

 

+ نوشته شده در  چهارشنبه شانزدهم خرداد 1386ساعت 0:27  توسط محسن سیدکاظمی  | 

Selection انتخاب

Selection

انتخاب


همان طور که در طرح کلي الگوريتم ژنتيک مطرح گشت ابتدا کروموزوم ها انتخاب مي شود تا والدين نسل بعد باشند و فرآيند هاي Crossover روي آن ها انجام گيرد حال يک سوال اساسي مطرح است که اين انتخاب والدين چگونه وبر چه معياري استوار است . با توجه به نظريه تکاملي داروين     بهترين ها زنده مي مانند براي تواليد نسل هاي آينده .

روش هاي مختلفي براي انتخاب وجود دارد براي مثال :

 (roulette wheel selection , Boltzman selection, tournament selection , rank selection, steady state selection )

چند روش مهم در اينجا توضيح داده مي شود .


 

Roulette Wheel Selection

والدين با توجه به Fitness انتخاب مي شوند  وبهترين کروموزوم ها درنتيجه شانس انتخاب شدن بيشتري دارند . تصوير زير همه ي کورموزوم هاي يک نسل نشان داده شده است . قسمت هاي مختلف اين نمودار براي هر کروموزوم در نظر گرفته شده است همانطور که ديده مي شود اندازه ي اين قسمت ها با هم برابر نيست بلکه اين اندازه ها به ارزشي که تابع Fitness به هر کورموزوم مي دهد وابسته است.

انتخاب در اين نوع انتخاب ازيک نوع بازي الهام گرفته شده روش به اين صورت است که گردونه را مي چرخانيم و بعد از مدتي گردونه مي ايستد و ما از قبل يک نشان در بيرون گردونه گذاشته ايم  کروموزومي را که نشان به آن اشاره مي کند را ما انتخاب مي کنيم آشکار است که کوروموزومي که ارزش Fitness بالايي دارد قسمت بزرگي از گردونه را به خود اختصاص داده است در نتيجه با توجه به علم آمار احتمال انتخاب شدن بيشتري دارد و دفعات بيشتري از انتخاب را به خود اختصاص مي دهد.

فرايند انتخاب شدن بالا را مي توان  با الگوريتم زير عملياتي کرد.

1-       [Sum] : ابتدا مجموع همه ارزش Fitness هاي کوروموزوم هاي يک نسل را حساب مي کنيم.

2-        :[Select]از فاصله ي (0,S) به صورت رندوم يک عدد را مثل r انتخاب مي کنيم.

3-       [Loop] :  برو به نسل يا جمعيت و جمع کن Fitness را از 0 هنگامي که جمع s بزرگتر از r است بايست و برگرد به به کورموزوم اي که روي آن بودي البته واضح است که مرحله اول براي هر نسل يک بار اجراء  مي شود .


Rank Selection

روش انتخاب قبلي که توضيح داده شد روش خوبي است ولي در حالتي که اختلاف ارزش هاي Fitness در کروموزوم ها زياد باشد دچار مشکل مي شود مثلاً اگر ارزش بهترين کورموزوم 90 % باشد مجموع کورموزوم هاي ديگر بسيار شانس کمتري براي انتخاب شدن دارند .

در شيوه  Rank Selection به اين صورت عمل مي کنيم که ابتدا جمعيت را يا نسل را مرتب مي کنيم سپس به هر کورموزوم با توجه به ارزش  Fitness آن عددي اختصاص مي دهيم مثلا بدترين کروموزوم1 کورموزوم ماقبل بدتري 2 الي آخرتا اينکه به بهترين کورموزوم N را مي دهيم (N تعداد کورموزوم هاي نسل) .

در تصاويرصفحه بعد به وضوح چگونگي تغييرات نمودار را از شيوه ي ارزش گذاري با Fitness به شيوه عدددهي مشاهده می کنيد .

Situation before ranking (graph of fitnesses)

Situation before ranking (graph of fitnesses)

Situation after ranking (graph of order numbers)

Situation after ranking (graph of order numbers)

 

الآن همه کورموزوم ها احتمال انتخاب شدن  دارند  البته در اين روش همگرايي بسيار آهسته اتفاق مي افتد به خاطر اينکه اختلاف کورموزوم ها کاهش پيدا کرده است .


 

Steady-State Selection

اين روش ، روش مخصوصي براي انتخاب والدين نيست و ايده آل اصلي اين روش  براي انتخاب جمعيت يا نسل جديد اين است ، که قسمت   بزرگ اي از کروموزوم ها بتوانند براي نسل جديد حفظ شوند .روش انتخاب Steady State در GA به صورت زير عمل مي کند  که در همه توليدها تعداد معدود کورموزوم خوب (با Fitness بالا) انتخاب مي شوند ،  براي ساختن فرزندان جديد و سپس تعدادي از کورموزوم هاي بعد (باFitness  پايين ) حذف مي شوند و به جاي آنها فرزندان جديد جايگذاري مي شود .  و نسل جديد به وجود آمده براي توليد جديد حفظ مي شود .

 


 

Elitism

ايده هاي اصلي نخبه گرايي در بحث هاي قبل مطرح شد .نخبه گرايي نام روشي است که در آن کپي هاي اوليه از بهترين کورموزوم ها است براي ساختن نسل جديد ساخت بقيه ي کوروموزوم ها با روش هاي توضيح داد شده در بحث هاي قبلي انجام مي گيرد . نخبه گرايي مي تواند  باعث افزايش سرعت الگوريتم ژنتيک شود چون اين روش باعث مي شود که احتمال انتخاب شدن بهترين کورموزوم ها افزايش يابد .

 

+ نوشته شده در  دوشنبه چهاردهم خرداد 1386ساعت 2:29  توسط محسن سیدکاظمی  | 

Operators of GA

 

Operators of GA

عملگرهاي ژنتيک الگوريتم


همان طور که گفته شدcrossover Mutation دوقسمت عمده GA هستند .

ودر اجراء بطور کلي از اين دو اپراتور زياد استفاده مي شود ، ولي قبل از توضيح اين دو اپراتور ما توضيح مي دهيم در مورد کدگذاري واطلاعات کروموزم .

 

 کدگذاري کورموزوم

          کروموزوم از راه هاي مختلفي مي توانند حاوي اطلاعات در مورد راه حل ها باشد معروف ترين روش کدگذاري روش باينري است البته جديداً از     روش هايي مثلDNA Computing   نيز براي کدگذاري استفاده مي شود در زير يک مثال براي روش کدگذاري باينري آمده است.

 

Chromosome 1

1101100100110110

Chromosome 2

1101111000011110

 

 

 

 

 

 

هر کروموزوم با يک رشته باينري نشان داده مي شود هر بيت در رشته    مي تواند نشان دهد تعداد کروموزوم را در راه حل .

البته واضح است که روش هاي کدگذاري متعددي وجود دارد ولي  اساساً کدگذاري به روش حل مسئله بستگي دارد براي مثال کدگذاري با اعداد صحيح يا حقيقي .

 

 


 

Crossover

بعد از اينکه ما تصميم گرفتيم که از چه روشي براي کد گذاري استفاده کنيم  مي توانيم از اپراتورcrossover استفاده کنيم . اپراتور crossover  ژني از کورموزم والدين را انتخاب مي کند و فرزند جديدي را مي سازد .

ساده ترين راه براي انجام دادن اين کار اين است که به صورت رندوم تعدادي نقطه ي crossover point انتخاب کنيم  و کپي کنيم از همه چيز قبل اين نقطه (يعني نقطه ي crossover point  ) را از روي والد اول و کپي کنيم از همه چيز بعد اين نقطه از روي والد دوم .   

 Crossoverرا مي توان به صورت زير نشان داد ( | خط محل نقطه  crossover point است) البته راه هاي ديگري هم براي crossover وجود دارد براي مثال ما مي توانيم چند نقطه crossover انتخاب کنيم نه يکي.

 

Chromosome 1

11011 | 00100110110

Chromosome 2

11011 | 11000011110

Offspring 1

11011 | 11000011110

Offspring 2

11011 | 00100110110

 

 

 

 

 

 

Mutation

بعد از اينکهcrossover   انجام شد مي توانيم  mutation  را انجام دهيم .

mutationباعث جلوگيري از افتادن همه راه حل ها د رمحل بهينه حل مسئله ما مي شود .

اپراتور mutation  به صورت تصادفي فرزندان معلول crossover   را تغيير مي دهد در کد گذاري باينري ما اين عمل را مي توانيم با تغيير 0به1 ، 1 به0 انجام دهيم به صورت زير:

 

Original offspring 1

1101111000011110

Original offspring 2

1101100100110110

Mutated offspring 1

1100111000011110

Mutated offspring 2

1101101100110110

 

 

تکنيک mutation (مثل crossover) بستگي به کد گذاري کروموزوم دارد .

 

 

 

احتمال Crossover   و Mutation

در GA دو پارامتر اساسي وجود دارد به نام هاي احتمال    Crossoverو احتمال Mutation .

احتمالCrossover  اگر  Crossoverنباشد فرزندان تنها کپي هستند از والدين . ولي اگر crossoverباشد فرزندان توليد مي شوند از قسمت هايي از کورموزم هاي هر دو والد .

اگر احتمال  Crossover100% باشد آنگاه همه فرزندان با Crossver   توليد مي شوند اگر احتمال  Crossver0% باشد همه فرزندان نسل جديد از روي کپي نسل قديم توليد مي شود . البته اين به معني اين نيست که نسل جديد مشابه نسل قبل است .

 Crossoverصورت مي گيرد با اين اميد که کروموزوم هاي جديد شامل قسمت هاي خوب کورموزوم هاي قديم باشد ودر نتيجه کروموزوم هاي جديد بهتر از کروموزوم هاي قبلي باشند .

با اين وجود خوب است که بعضي از قسمت هاي نسل قديم حفظ شود براي توليد نسل جديد .

احتمال Mutation : اگر  mutationنباشد فرزندان بدون هيچ تغييري مستقيماً و بدون واسطه بعد از Crossover توليد مي شود ولي اگر Mutaion صورت بگيرد  يک يا چند  قسمت از کروموزوم  تغيير مي کند .  اگر براي مثال احتمال  Mutation100% باشد همه کورموزوم ها تغيير     مي کنند ولي اگر احتمال Mutation0% باشد هيچ کروموزومي تغييرنمي کند.             


           

ديگر پارامترها:

البته پارامتر هاي ديگري نيز درGA وجود دارد يکي از پارامتر هاي خيلي مهم اندازه جمعيت است .

اندازه جمعيت (Population size) : اگر تعداد خيلي کمي کروموزوم داشته باشيم درGA امکان انجام دادنCrossover کمتر مي شود و تنها قسمت کوچکي از فضاي جستجو کاوش مي شود .

از طرف ديگر اگر تعداد خيلي زيادي کروموزوم داشته باشيمGA  کند پيش   مي رود. و در تحقيقات ثابت شده است که تعداد زياد کوروموزوم هم اصلا مناسب نيست چون سرعت حل مسئله را در مقايسه با جمعيت هاي متعادل خيلي پايين مي آورد و اين اصلاً براي ما مناسب يا بهتر است بگوييم بهينه نيست بنابراين بايد در انتخابPopulation size  دقت کافي به عمل آيد چون رابطه مستقيمي با حل مسئله دارد .

 

 

Selection

انتخاب


همان طور که در طرح کلي الگوريتم ژنتيک مطرح گشت ابتدا کروموزوم ها انتخاب مي شود تا والدين نسل بعد باشند و فرآيند هاي Crossover روي آن ها انجام گيرد حال يک سوال اساسي مطرح است که اين انتخاب والدين چگونه وبر چه معياري استوار است . با توجه به نظريه تکاملي داروين     بهترين ها زنده مي مانند براي تواليد نسل هاي آينده .

روش هاي مختلفي براي انتخاب وجود دارد براي مثال :

 (roulette wheel selection , Boltzman selection, tournament selection , rank selection, steady state selection )

 

+ نوشته شده در  پنجشنبه سوم خرداد 1386ساعت 4:0  توسط محسن سیدکاظمی  | 

Genetic Algorithm

Genetic Algorithm

ژنتيک الگوريتم     


                                                

 

توضيحات اوليه

الگوريتم ژنتيک از نظريه تکاملي داروين الهام گرفته شده است . در روش هاي حل مسله به وسيله يGA  از فرايند تکاملي براي حل مسله استفاده         مي شود.

الگوريتم با مجموعه راه حل هاي ممکن که با کروموزوم نشان داده مي شود  شروع مي شود و اين مجموعه را Population مي ناميم .

راه حل از يک نسل گرفته مي شود  وبکار مي رود براي توليد نسل جديد با اين اميد که نسل جديد بهتر از نسل قبلي باشد دوباره از نسل جديد با توجه به

(fitness) راه حل هايي جدا مي شود . براي ساختن نسل جديد و اين روند تا زماني ادامه مي يابد که به نتايج راضي کننده برسيم .

طرح کلي الگوريتم ژنتيک

1-       [Start]:ساخته شدن نسل اول به صورت رندوم ازn کروموزم (البته راه حل هاي مناسب براي مسئله) .

2-      [Fitness]: ارزيابي کردن تابع سازگاريf(x) با هر کورموزم x در يک نسل

3-     [New population]: ساختن نسل جديد در مراحل زير :

A. [Selection]: جدا کردن دو کورموزوم مولد براي ساختن نسل با توجه به fitness بهترينfitness انتخاب مي کنيم  که بيشترين شانس را براي انتخاب شدن داراست.

: [Crossover].B با crossover امکان اين را داريم که فرزندان جديدي را علاوه برفرزندان توليد شده به صورت مستقيم از پد ر ومادر توليد کنيم اگر crossover نبود فرزندان الزاماً کپي هايي از پدر و مادر بودند .

 [Mutation] .C     : با mutation امکان  اين را داريم که فرزندان جديد را  

تغيير دهيم در هر بيت ياlocus دلخواه .

.D [Accepting] : مکان فرزند جديد در نسل جديد است .

4-     [Replace]: بکار بردن توليد نسل جديد براي ادامه دوباره ي الگوريتم .

5-     [Test]: اگر شرايط راضي کننده بود بايست و بازگشت به بهترين راه حل در نسل جاري .

6-      [Loop]:رفتن به مرحله 2 .

 

 

توضيحات

همان طوري که در طرح کلي GA ديده شد اين الگوريتم خيلي عمومي و کلي است .در مسائل مختلف  مي تواند تعداد پارامترهاي زيادي بکار برده شود .

اولين سوالي که پيش مي آيد اين است که چگونه مي شود کروموزوم ها را ساخت واز چه نوع کدگذاري  استفاده کرد .

 Crossoverو mutation دو تا عملگر اوليه براي کدگذاري هستند در ادامه بحث به کدگذاري crossover و mutation اشاره مي شود .

سوال بعدي اينکه چگونه والدين  را براي crossover پيدا کنيم اين انتخاب مي تواند به چندين صورت انجام گيرد ولي ما مي خواهيم بهترين والدين را انتخاب کنيم به اميد اينکه بهترين فرزندان به وجود آيد .

توليد نسل فقط از دو کورموزوم نمي تواند جواب چندان مناسبي را به ما بدهد بنابراين  ما از Elitism استفاده مي کنيم و از نسل بهترين ها را انتخاب مي کنيم  (البته به تعداد مناسب ) و بدون هيچ تغييري در نسل بعد کپي مي کنيم بنابراين  بهترين راه حل ها در نسل بعدي  حفظ

 مي شود . واين روند ادامه پيدا مي کند .

 

+ نوشته شده در  پنجشنبه سوم خرداد 1386ساعت 3:7  توسط محسن سیدکاظمی  | 

GENETIC ALGORITH

الگوريتم

 

الگوريتم ژنتيک

پيش گفتار

Genetic algorithms  قسمتي از evolutionary computing  است که با هوش مصنوعي توسعه پيدا کرد .   همانطور که از اسم الگوريتم ژنتيک پيداست اين بحث از تئوري تکامل الهام گرفته شده است به زبان ساده ميشود گفت که مسئله ها حل  مي شود با الگو برداي از روند تکاملي نخبه گرا در سيستم هاي زنده .

تاريخچه

محاسبات تکاملي درسال 1960 به وسيله ي شخصي به نام Rechenberg مرسوم شد بعداً ايده او توسط محققان ديگر رشد يافت .  ژنتيک الگوريتم(GA) توسط  John Holland اختراع شد وتوسط خودش و دانشجويان او وتعدادي از همکارانش رشد و توسعه يافت Holland کتابی در اين زمينه در سال 1975 نوشت به نام       Systems"   "Adaption in Natural and Artificial در سال 1992John Koza  از ژنتيک الگوريتم در برنامه اي استفاده کرد که کارهاي مشخصي انجام مي داد Koza نام اين روش را      "Genetic Programming (GP)  " گذاشت .

پيش زمينه بيولوژي

Chromosome  کروموزوم

همه ارگانيزم هاي زنده ازسلول هايي تشکيل مي شوند و همه سلول ها داراي مجموعه اي از کروموزوم هاي مشابه هستند .رشته هاي کروموزوم که DNA ناميده مي شود درهمه جاي ارگانيزم وجود دارد و خود کروموزوم هم از ژن هايي تشکيل مي شود هر ژن  با پروتئين هاي خاصي کد شد است  به طورکلي مي شود گفت که ويژگي هاي مختلف درهر ارگانيزم کد گذاري مي شود با ژن ها مثل رنگ چشم يا رنگ پوست. هر ژني يک مکان خاصي  درکروموزوم دارد که اصطلاحاً  locus گفته مي شود . به همه ي مجموعه مواد ژنتيکي ( همه ي کروموزوم ها ) Genome گفته مي شود . به مجموعه ي خاص از ژن ها در ژنوم Genotype گفته مي شود . در آخرين زايش بعد اززايش اوليه براي Phenotype در ارگانيزم genotype   وجود دارد .

 

تکثيرReproduction

در طي تکثير (recombination or crossover) ژن هاي والدين با هم ترکيب مي شوند ويک کروموزوم کامل جديد به وجود مي آورند . فرزند جديد خلق شده مي تواند تغيير( mutated )  پيدا کند .

) Mutation ( يعني اينکه قسمت هاي (  DNA ) تغيير کند . به طور کلي اين تغييرات معلول خطاهايي است که از ژن هاي کپي کننده از روي والدين به وجود مي آيد.( fitness) موفقيت و قابليت سازگاري ارگانيزم در طول بقاء آن مشخص مي شود .

 

الگوريتم ژنتيک

پيش گفتار

Genetic algorithms  قسمتي از evolutionary computing  است که با هوش مصنوعي توسعه پيدا کرد .   همانطور که از اسم الگوريتم ژنتيک پيداست اين بحث از تئوري تکامل الهام گرفته شده است به زبان ساده ميشود گفت که مسئله ها حل  مي شود با الگو برداي از روند تکاملي نخبه گرا در سيستم هاي زنده .

تاريخچه

محاسبات تکاملي درسال 1960 به وسيله ي شخصي به نام Rechenberg مرسوم شد بعداً ايده او توسط محققان ديگر رشد يافت .  ژنتيک الگوريتم(GA) توسط  John Holland اختراع شد وتوسط خودش و دانشجويان او وتعدادي از همکارانش رشد و توسعه يافت Holland کتابی در اين زمينه در سال 1975 نوشت به نام       Systems"   "Adaption in Natural and Artificial در سال 1992John Koza  از ژنتيک الگوريتم در برنامه اي استفاده کرد که کارهاي مشخصي انجام مي داد Koza نام اين روش را      "Genetic Programming (GP)  " گذاشت .

پيش زمينه بيولوژي

Chromosome  کروموزوم

همه ارگانيزم هاي زنده ازسلول هايي تشکيل مي شوند و همه سلول ها داراي مجموعه اي از کروموزوم هاي مشابه هستند .رشته هاي کروموزوم که DNA ناميده مي شود درهمه جاي ارگانيزم وجود دارد و خود کروموزوم هم از ژن هايي تشکيل مي شود هر ژن  با پروتئين هاي خاصي کد شد است  به طورکلي مي شود گفت که ويژگي هاي مختلف درهر ارگانيزم کد گذاري مي شود با ژن ها مثل رنگ چشم يا رنگ پوست. هر ژني يک مکان خاصي  درکروموزوم دارد که اصطلاحاً  locus گفته مي شود . به همه ي مجموعه مواد ژنتيکي ( همه ي کروموزوم ها ) Genome گفته مي شود . به مجموعه ي خاص از ژن ها در ژنوم Genotype گفته مي شود . در آخرين زايش بعد اززايش اوليه براي Phenotype در ارگانيزم genotype   وجود دارد .

 

تکثيرReproduction

در طي تکثير (recombination or crossover) ژن هاي والدين با هم ترکيب مي شوند ويک کروموزوم کامل جديد به وجود مي آورند . فرزند جديد خلق شده مي تواند تغيير( mutated )  پيدا کند .

) Mutation ( يعني اينکه قسمت هاي (  DNA ) تغيير کند . به طور کلي اين تغييرات معلول خطاهايي است که از ژن هاي کپي کننده از روي والدين به وجود مي آيد.( fitness) موفقيت و قابليت سازگاري ارگانيزم در طول بقاء آن مشخص مي شود .

 

 

+ نوشته شده در  یکشنبه پنجم شهریور 1385ساعت 21:26  توسط محسن سیدکاظمی  |