620 likes | 1k Views
الگوریتم های ژنتیک. Instructor : Saeed Shiry & Mitchell Ch. 9. الگوریتم ژنتیک. الگوریتم ژنتیک روش یادگیری بر پایه تکامل بیولوژیک است . این روش در سال 1970 توسط John Holland معرفی گردید این روشها با نام Evolutionary Algorithms نیز خوانده میشوند . ایده کلی.
E N D
الگوریتمهایژنتیک Instructor : Saeed Shiry & Mitchell Ch. 9
الگوریتمژنتیک • الگوریتمژنتیکروشیادگیریبرپایهتکاملبیولوژیکاست. • اینروشدرسال 1970 توسط John Holland معرفیگردید • اینروشهابانام Evolutionary Algorithms نیزخواندهمیشوند.
ایدهکلی • یک GA برایحلیکمسئلهمجموعهبسیاربزرگیازراهحلهایممکنراتولیدمیکند. • هریکازاینراهحلهابااستفادهازیک “ تابعتناسب” موردارزیابیقرارمیگیرد. • آنگاهتعدادیازبهترینراهحلهاباعثتولیدراهحلهایجدیدیمیشوند. کهاینکارباعثتکاملراهحلهامیگردد. • بدینترتیبفضایجستجودرجهتیتکاملپیدامیکندکهبهراهحلمطلوببرسد • درصورتانتخابصحیحپارامترها،اینروشمیتواندبسیارموثرعملنماید.
فضایفرضیه • الگوریتمژنتیکبجایجستجویفرضیههای general-to specific ویا simple to complex فرضیههایجدیدراباتغییروترکیبمتوالیاجزابهترینفرضیههایموجودبدستمیاورد. • درهرمرحلهمجموعهایازفرضیههاکهجمعیت (population) نامیدهمیشوندازطریقجایگزینیبخشیازجمعیتفعلیبافرزندانیکهازبهترینفرضیههایموجودحاصلشدهاندبدستمیآید.
ویژگیها الگوریتمهایژنتیکدرمسائلیکهفضایجستجویبزرگیداشتهباشندمیتواندبکارگرفتهشود. • همچنیندرمسایلیبافضایفرضیهپیچیدهکهتاثیراجزاآندرفرضیهکلیناشناختهباشندمیتواناز GA برایجستجواستفادهنمود. • برای discrete optimizationبسیارمورداستفادهقرارمیگیرد. • الگوریتمهایژنتیکرامیتوانبراحتیبصورتموازیاجرانمودازاینرومیتوانکامپیوترهایارزانقیمتتریرابصورتموازیمورداستفادهقرارداد. • امکانبهتلهافتادناینالگوریتمدرمینیمممحلیکمترازسایرروشهاست. • ازلحاظمحاسباتیپرهزینههستند. • تضمینیبرایرسیدنبهجواببهینهوجودندارد.
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 استرابرگردانید.
نحوهایجادجمعیتجدید مراحلایجادیکجمعیتجدیدبصورتزیراست: • : 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 (representation) 10010001 10010010 010001001 011101001 Decoding (inverse representation) نمایشفرضیهها درالگوریتمژنتیکمعمولافرضیههابصورترشتهایازبیتهانشاندادهمیشوندتااعمالاپراتورهایژنتیکیبررویآنهاسادهترباشد. • : Phenotype بهمقادیریاراهحلهایواقعیگفتهمیشود. • : Genotypeبهمقادیرانکدشدهیاکروموزمهاگفتهمیشودکهمورداستفاده GA قرارمیگیرند. • بایدراهیبرایتبدیلایندونحوهنمایشبهیکدیگربدستآوردهشود.
مثال: نمایشقوانین 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 خیلیکمینسبتداد.
اپراتورهایژنتیکی Crossover : • اپراتور Crossover بااستفادهازدورشتهوالددورشتهفرزندبوجودمیآورد. • برایاینکارقسمتیازبیتهایوالدیندربیتهایفرزندانکپیمیشود. • انتخاببیتهائیکهبایدازهریکازوالدینکپیشوندبهروشهایمختلفانجاممیشود • single-point crossover • Two-point crossover • Uniform crossover • برایتعیینمحلبیتهایکپیشوندهازیکرشتهبهنام Crossover Mask استفادهمیشود.
Single-point crossover • یکنقطهتصادفیدرطولرشتهانتخابمیشود. • والدیندرایننقطهبهدوقسمتمیشوند. • هرفرزندباانتخابتکهاولازیکیازوالدینوتکهدومازوالددیگربوجودمیاید. Children Parents Crossover Mask: 11111000000
روشهایدیگر Crossover • Two-point crossover • Uniform crossover Crossover Mask: 00111110000 Children Parents Parents Crossover Mask: 10011010011 Children بیتهابصورتیکنواختازوالدینانتخابمیشوند
اپراتورهایژنتیکی Mutation : • اپراتور mutation برایبوجودآوردنفرزندفقطازیکوالداستفادهمیکند. اینکارباانجامتغییراتکوچکیدررشتهاولیهبوقوعمیپیوندد. • بااستفادهازیکتوزیعیکنواختیکبیتبصورتتصادفیاتنخابومقدارآنتغییرپیدامیکند. • معمولا mutation بعدازانجام crossover اعمالمیشود. Child Parent
Crossover OR mutation? • اینسوالهاسالهامطرحبودهاست: کدامیکبهتراست؟کدامیکلازماست؟کدامیکاصلیاست؟ • پاسخیکهتاکنونبیشترازبقیهپاسخهاموردقبولبوده: • بستگیبهصورتمسئلهدارد • درحالتکلیبهتراستازهردواستفادهشود • هرکدامنقشمخصوصخودرادارد • میتوانالگوریتمیداشتکهفقطاز mutation استفادهکندولیالگوریتمیکهفقطازcrossover استفادهکندکارنخواهدکرد
Crossover OR mutation? • Crossover خاصیتجستجوگرانهویاexplorative دارد. میتواندباانجامپرشهایبزرگبهمحلهائیدربینوالدینرفتهونواحیجدیدیراکشفنماید. • Mutationخاصیتگسترشیویا exploitive دارد. میتواندباانجامتغییراتکوچکتصادفیبهنواحیکشفشدهوسعتببخشد. • Crossoveاطلاعاتوالدینراترکیبمیکنددرحالیکه mutation میتوانداطلاعاتجدیدیاضافهنماید. • برایرسیدنبهیکپاسخبهینهیکخوششانسیدر mutation لازماست.
تابعتناسب • تابع fitness معیاریبرایرتبهبندیفرضیههاستکهکمکمیکندتافرضیههایبرتربراینسلبعدیجمعیتانتخابشوند. نحوهانتخاباینتابعبستهبهکاربرموردنظردارد: • : classification درایننوعمسایلتابعتناسبمعمولابرابراستبادقتقانوندردستهبندیمثالهایآموزشی.
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) • روشهایدیگر: • tournament selection • rank selection
نحوهجستجودرفضایفرضیه • روشجستجوی GA باروشهایدیگرمثلشبکههایعصبیتفاوتدارد: • درشبکهعصبیروش Gradient descent بصورتهموارازفرضیهایبهفرضیهمشابهدیگریحرکتمیکنددرحالیکه GA ممکناستبصورتناگهانیفرضیهوالدرابافرزندیجایگزیننمایدکهتفاوتاساسیباوالدآنداشتهباشد.ازاینرواحتمالگیرافتادن GA درمینیمممحلیکاهشمییابد. • بااینوجود GA بامشکلدیگریروبروستکه crowding نامیدهمیشود.
Crowding • crowding پدیدهایاستکهدرآنعضویکهسازگاریبسیاربیشتریازبقیهافرادجمعیتداردبطورمرتبتولیدنسلکردهوباتولیداعضایمشابهدرصدعمدهایازجمعیترااشغالمیکند. • اینکارباعثکاهشپراکندگیجمعیتشدهوسرعت GA راکممیکند. F(X) X
راهحلرفعمشکل Crowding • استفادهاز ranking برایانتخابنمونهها: بااختصاصرتبهبهفرضیهایکهبسیاربهترازبقیهعملمیکندمقداراینبرترینشاندادهنخواهدشد. • : Fitness sharing مقدار Fitness یکعضودرصورتیکهاعضامشابهیدرجمعیتوجودداشتهباشندکاهشمییابد.
چرا GA کارمیکند؟ • سئوالیکهممکناستبرایتازهواردینبهروشهایژنتیکیایجادشودایناستکهآیااینروشواقعامیتواندکارمفیدیانجامدهد؟
ارزیابیجمعیتوقضیه Schema • آیامیتوانتکاملدرجمعیتدرطیزمانرابصورتریاضیمدلنمود؟ • قضیه Schema میتواندمشخصهپدیدهتکاملدر GA رابیاننماید. • یک Schema مجموعهایازرشتهبیتهاراتوصیفمیکند.یک Schema هررشتهایاز 0 و1و* است. مثل 0*10 که * حالت dont care است. • یکرشتهبیترامیتواننمایندههریکاز Schemaهایمتفاوتیدانستکهباآنتطابقدارند. مثلا 0010 رامیتواننماینده 24 Schema مختلفدانست00**,0*10,**** : وغیره
قضیه Schema • قضیه Schema بیانمیکندکهچگونهیک Schema درطولزماندرجمعیتتکاملپیداخواهدکرد. • فرضکنیدکهدرلحظه t تعدادنمونههائیکهنمایندهیک Schema مثل s هستندبرابربا m(s,t) باشد. اینقضیهمقدارموردانتظار m(s,t+1) رامشخصمیکند. • قبلادیدیمکهاحتمالانتخابیکفرضیهبرابربودبا: P(hi) = Fitness (hi) / Σj Fitness (hj) • اینمقداراحتمالرامیتوانبصورتزیرنیزنشانداد: P(hi) = f (hi) / n f’ (ti) مقدارمتوسط fitness برایتمامیفرضیهها
قضیه Schema • اگرعضویازاینجمعیتانتخابشوداحتمالاینکهاینعضونماینده S باشدبرابراستبا: • کهدرآنمقدار u(s,t) برابراستبامقدارمیانگین fitness اعضای s • ازاینرومقدارموردانتظاربراینمونههائیاز s کهاز n مرحلهانتخابمستقلحاصلخواهندشدبرابراستبا:
قضیه Schema • رابطهفوقبهاینمعناستکهتعداد Schema هایموردانتظاردرلحظه t+1 متناسببامقدارمیانگین u(s,t) بودهوبامقدار fitness سایراعضانسبتعکسدارد. • برایبدستآوردنرابطهفوقفقطاثرمرحلهانتخابنمونههادرنظرگرفتهشدهاست. بادرنظرگرفتناثر crossover و Mutation بهرابطهزیرخواهیمرسید:
Theorem • m(s, t) number of instances of schema s in population at time t • average fitness of population at time t • average fitness of instances of schema s at time t • pc probability of single point crossover operator • pm probability of mutation operator • l length of individual bit strings • o(s) number of defined (non “*”) bits in s • d(s) distance between rightmost, leftmost defined bits in s • Intuitive Meaning • “The expected number of instances of a schema in the population tends toward its relative fitness” Schema Theorem
خلاصه • یک Schema اطلاعاتمفیدوامیدبخشموجوددرجمعیتراکدمیکند. • ازآنجائیکههموارهرشتههائیکهسازگارترندشانسبیشتریبرایانتخابشدندارند،بتدریجمثالهایبیشتریبهبهترین Schema هااختصاصمی یابند. • عمل crossover باعثقطعرشتههادرنقاطتصادفیمیشود. بااینوجوددرصورتیکهاینکارباعثقطع Schema نشدهباشدآنراتغییرنخواهدداد.درحالتکلی Schema هایباطولکوتاهکمترتغییرمیکنند. • عمل mutaion درحالتکلیباعثتغییراتموثردر Schema نمیگردد. Highly-fit, short-defining-length schema (called building blocks) are propagated generation to generation by giving exponentially increasing samples to the observed best
تفاوت GA باسایرروشهایجستجو • GA بجایکدکردنپارامترهامجموعهآنهاراکدمیکند • GA بجایجستجوبراییکنقطهبدنبالجمعیتیازنقاطمیگردد. • GA بجایاستفادهازمشتقویاسایراطلاعاتکمکیمستقیماازاطلاعاتموجوددرنتیجهبهرهمیگیرد. • GA بجایقوانینقطعیازقوانیناحتمالبرایتغییراستفادهمیکند.
مثالیازکاربردالگوریتمژنتیک بهینهسازی چینش حروف فارسی بر روی صفحهکلیدبا استفاده از الگوریتمهای ژنتیکی
مقدمه • بدست آوردن چینش بهینه حروف فارسی بر روی صفحهکلید در درازمدت برای کسانی که با تایپ کردن متون فارسی درگیر هستند, بسیار مفید خواهد بود. • یک الگوریتم تکاملی میتواند با توجه به یک تابع تناسب که میزان راحتی تایپ کردن متون فارسی را برای یک چینش ارائه میدهد, در فضای چینشهای حروف فارسی بر روی صفحهکلید جستجو کرده و چینش بهینه را بدست آورد.
چینش کنونی حروف فارسی بر روی صفحهکلید
مساله • در این مساله هندسه صفحهکلید ثابت است و ما میخواهیم که تعداد 33 نشانه که متشکل از 32 حرف الفبای فارسی بعلاوه حرف همزه "ء" است را بر روی سه ردیف صفحهکلید که به ترتیب دارای 12, 11, و 10 کلید هستند, قرار دهیم. • هدف این مساله بدست آوردن چینشی از این نشانهها بر روی این کلیدها است, به طوری که این چینش طوری باشد که کاربر هنگام استفاده از صفحهکلید برای تایپ حروف فارسی, احساس راحتی بیشتری نسبت به کار با بقیه چینشها داشته باشد.
الگوریتم ژنتیک • برای حل مساله از یک الگوریتم ژنتیک استفاده شده است. • تابع تناسب موجود در این الگوریتم ژنتیک, میزان راحتی یا سختی استفاده از یک چینش را محاسبه میکند. • در هر نسل, عملگرهای ژنتیکی بر روی جمعیت موجود که چینشهای مختلفی از حروف فارسی بر روی صفحهکلید هستند, اعمال میشوند و جامعه به سمتی سوق داده میشود که مقدار تابع تناسب به ازای اعضای آن به کمینه مقدار خود برسند. • میزان تناسب هر عضو از جامعه که در واقع یک چینش حروف فارسی بر روی صفحهکلید هستند, با اعمال تابع تناسب بر متنی که از مطالب چند سایت خبری فارسی زبان تهیه شده است, به دست میآید.
جمعیت • اعضای جمعیت جایگشتهای مختلف حروف فارسی روی صفحهکلید هستند. هر عضو جمعیت را میتوان به صورت برداری از حروف فارسی در نظر گرفت که هر اندیس آن متناظر با یک کلید از صفحهکلید است. • مثلاً هر بردار با طول33 که شامل حروف فارسی بعلاوه حرف همزه "ء" باشد را میتوان به عنوان یک کروموزوم (یک عضو از جمعیت) در نظر گرفت که حرف iام از این بردار, متناظر با کلیدی از صفحهکلید است که برچسب شمارة i بر روی آن زده شده است. تعداد چینشهای مختلف !33
تابع تناسب • تعیین راحتی و سختی کار کردن با چینش حروف بر روی صفحهکلید یک مساله پیچیده ارگونومیک است. • نورمن و روملهارت چهار هدف را برای طراحی کارای یک صفحهکلید ارائه کردهاند: • برابری کاری که دو دست انجام میدهند؛ • بیشترین تایپ حروف به صورت متناوب با دو دست؛ • کمترین تکرار تایپ دو حرف متوالی با یک انگشت؛ و • بیشترین تایپ حروف بر روی کلیدهای پایهای (کلیدهای ردیف وسط).
تابع تناسب • . برای دو هدف اول میتوان فاکتور اندازهگیری زیر را معرفیکرد: • Chand: هزینه مربوط به استفاده از یک دست برای تایپ کردن دو حرف پشت سر هم. • برای هدف سوم, فاکتور اندازهگیری زیر معرفی میشود: • Cfinger: هزینه مربوط به استفاده از یک انگشت برای تایپ کردن دو حرف پشت سر هم. • Cergonomic: هزینه مربوط به تایپ کردن یک حرف با توجه به موقعیت آن حرف بر روی صفحهکلید.
تابع تناسب • تابع تناسب برای هر کروموزوم از مجموع این سه فاکتور برای تمامی حروفی که در متن مورد استفاده برای آزمایش وجود دارند, بدست میآید: W مجموعه تمامی کلمات موجود در متن مورد استفاده برای آزمایش است؛ • wi کلمهiام از مجموعهW است؛ • ljحرف jام از کلمهwi است؛
عملگرهای ژنتیکی • در اینجا تنها از عملگر جهش استفاده شده است. • دلیل عدم استفاده از عملگر دورگه این است که ساختار اعضای جمعیت طوری است که ترکیب کردن دو کروموزوم والد هزینة زمانی بالایی دارد. • عملگر جهش را به دو صورت برای اعضای مختلف جامعه به کار میبریم. در این مساله یک جامعه نخبگان انتخاب میکنیم که اعضای آن تراز اول جمعیت از دید تابع تناسب را تشکیل میدهند. • عملگر جهش برای هر عضو از جامعة نخبگان, تنها محتویات چهار زوج ژن را به صورت تصادفی جابهجا میکند. در حالیکه برای افراد عادی جامعه این تعداد به 12 جابهجایی افزایش مییابد.
کارایی • الگوریتم ژنتیکبا پارامترهای زیر اجرا کردیم: • تعداد اعضای جمعیت 100 کروموزوم که در نسل اول به صورت تصادفی تولید شدهاند؛ • درصد تشکیلدهنده جامعه نخبگان است, 10% کل جمعیت ؛ • تعداد اعضایی که به صورت مستقیم و بدون اینکه عمگرهای ژنتیکی بر روی آن اعمال شود, به نسل بعدی میروند, 3 عضو؛ • و تعداد کل نسلها 500 نسل.
کارایی نمودارهای تناسب اعضای جامعه در طی نسلهای مختلف. منحنیهای نشان داده شده به ترتیب از بالا به پایین, متوسط مقادیر تناسب همه اعضای جامعه, متوسط مقادیر تناسب جامعه نخبگان, و بهترین تناسب هستند.
بهترین چینش • بهترین چینشی که در نهایت این الگوریتم ژنتیک برای حروف فارسی ارائه داد, هزینهاش با توجه به تابع تناسب, 815/0 هزینه چینش کنونی حروف فارسی است .
مدلهایتکامل • درسیستمهایطبیعیهرموجودزندهدرطولزندگیخودیادمیگیردکهباشرائطسازگارینماید. بههمینترتیبنسلهایمختلفیکنمونهدرطولزمانسازگاریهایمختلفیراکسبمیکنند: • سوال: رابطهبینیادگیرییکموجوددرطولزندگیشخصیویادگیرینسلهاییکنمونهدرطولزمانچیست؟
Lamarckian evolution • Lamarck دانشمندقرننوزدهمفرضیهایارائهکردهکهطبقآنتجربیاتیکموجودزندهدرترکیبژنتیکیفرزندانآنتاثیرمیگذارد. • برایمثالموجودیکهیادگرفتهازغذایسمیپرهیزکنداینویژگیرابصورتژنتیکیبهفرزندانخودمنتقلمینمایدتاآنهادیگرمجبوربهیادگیریاینپدیدهنباشند. • اماشواهدتجربیایننظرراتائیدنمیکنند: یعنیتجربیاتفردیهیچتاثیریدرترکیبژنتیکیفرزندانندارد.
Baldwin Effect نظریهدیگریوجودداردکهتاثیریادگیریرابرتکاملتوضیحمیدهد. ایننظریهکهاثر Baldwin نامیدهمیشودبرمبنایمشاهداتزیراستواراست: • اگرموجودیازطرفمحیطمتغیریتحتفشارقرارگرفتهباشد،افرادیکهتوانائییادگیرینحوهبرخوردباشرایطراداشتهباشندشانسبیشتریبرایبقادارند. • موجوداتیکهتحتشرایطجدیدباقیمیمانندجمعیتیباتوانائییادگیریراتشکیلمیدهندکهفرایندهایتکاملیدرآنهاسریعتررخمیدهدوباعثمیشودتانسلیبوجودبیایدکهنیازیبهیادگیریمواجههباشرایطجدیدرانداشتهباشند.