وبلاگی برای من
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.
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)
Crossover and Mutation
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)
Encoding
اولين قسمت حل مسئله در روش ژنتيک الگوريتم کدگذاري کوروموزوم ها است واين کدگذاري به نوع وسنگيني مسئله بستگي دارد .
در اين قسمت در مورد تعدادي از کد گذاري ها که قبل از اين توانسته اند موفقيت هايي به دست آورند صحبت مي کنيم .
Binary Encoding
عمومي ترين روش وآشناترين نوع کدگذاري در GA همان روش کدگذاري باينري است چونکه در تحقيقات اوليه که در GA انجام شد از اين روش استفاده شد و ثانيا اين روش بسيار ساده است.
در روش کد گذاري به روش باينري همه ي کورموزم ها با رشته هايي که شامل بيت هايي از 0—1 است کد مي شوند .
اين کدگذاري اغلب براي بيشتر مسئله ها طبيعي نيست و بعد از Crossover و Mutation بايد تغييراتي درآن به وجود آورد.
|
Chromosome A |
101100101100101011100101 |
|
Chromosome B |
111111100000110000011111 |
Example of chromosomes with binary 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 به سادگي مي تواند انجام با اين روش شود .
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 after ranking (graph of order numbers)
الآن همه کورموزوم ها احتمال انتخاب شدن دارند البته در اين روش همگرايي بسيار آهسته اتفاق مي افتد به خاطر اينکه اختلاف کورموزوم ها کاهش پيدا کرده است .
Steady-State Selection
اين روش ، روش مخصوصي براي انتخاب والدين نيست و ايده آل اصلي اين روش براي انتخاب جمعيت يا نسل جديد اين است ، که قسمت بزرگ اي از کروموزوم ها بتوانند براي نسل جديد حفظ شوند .روش انتخاب Steady State در GA به صورت زير عمل مي کند که در همه توليدها تعداد معدود کورموزوم خوب (با Fitness بالا) انتخاب مي شوند ، براي ساختن فرزندان جديد و سپس تعدادي از کورموزوم هاي بعد (باFitness پايين ) حذف مي شوند و به جاي آنها فرزندان جديد جايگذاري مي شود . و نسل جديد به وجود آمده براي توليد جديد حفظ مي شود .
Elitism
ايده هاي اصلي نخبه گرايي در بحث هاي قبل مطرح شد .نخبه گرايي نام روشي است که در آن کپي هاي اوليه از بهترين کورموزوم ها است براي ساختن نسل جديد ساخت بقيه ي کوروموزوم ها با روش هاي توضيح داد شده در بحث هاي قبلي انجام مي گيرد . نخبه گرايي مي تواند باعث افزايش سرعت الگوريتم ژنتيک شود چون اين روش باعث مي شود که احتمال انتخاب شدن بهترين کورموزوم ها افزايش يابد .
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 )
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]: اگر شرايط راضي کننده بود بايست و بازگشت به بهترين راه حل در نسل جاري .
توضيحات
همان طوري که در طرح کلي GA ديده شد اين الگوريتم خيلي عمومي و کلي است .در مسائل مختلف مي تواند تعداد پارامترهاي زيادي بکار برده شود .
اولين سوالي که پيش مي آيد اين است که چگونه مي شود کروموزوم ها را ساخت واز چه نوع کدگذاري استفاده کرد .
Crossoverو mutation دو تا عملگر اوليه براي کدگذاري هستند در ادامه بحث به کدگذاري crossover و mutation اشاره مي شود .
سوال بعدي اينکه چگونه والدين را براي crossover پيدا کنيم اين انتخاب مي تواند به چندين صورت انجام گيرد ولي ما مي خواهيم بهترين والدين را انتخاب کنيم به اميد اينکه بهترين فرزندان به وجود آيد .
توليد نسل فقط از دو کورموزوم نمي تواند جواب چندان مناسبي را به ما بدهد بنابراين ما از Elitism استفاده مي کنيم و از نسل بهترين ها را انتخاب مي کنيم (البته به تعداد مناسب ) و بدون هيچ تغييري در نسل بعد کپي مي کنيم بنابراين بهترين راه حل ها در نسل بعدي حفظ
مي شود . واين روند ادامه پيدا مي کند .
الگوريتم
الگوريتم ژنتيک
پيش گفتار
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) موفقيت و قابليت سازگاري ارگانيزم در طول بقاء آن مشخص مي شود .