26
ب هم خدا نانابنشگاه ب دا کامپیوتر مهندسی گروهتم ژنتیک الگوریدگانیه کنن تهاضی ری لی- ده عزتی سعیستاد اهنما را جناب آقای دکتررقانی دهخوا اردیبهشت59

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

Embed Size (px)

Citation preview

Page 1: الگوریتم ژنتیک

نام خداه ب

دانشگاه بناب گروه مهندسی کامپیوتر

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

تهیه کنندگان

سعیده عزتی-لیال ریاضی

راهنمااستاد

دهخوارقانی جناب آقای دکتر

59اردیبهشت

Page 2: الگوریتم ژنتیک

تشکر و قدردانی

با سپاس ازسه وجود مقدس:

…آنان که ناتوان شدند تا ما به توانایی برسیم

…موهایشان سپید شد تا ماروسفید شویم

…و عاشقانه سوختند تا گرمابخش وجود ما و روشنگر راهمان باشند

پدرانمان

مادرانمان

استادانمان

Page 3: الگوریتم ژنتیک

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

چکیده

حل تقریبی تکنیک جستجویی در علم رایانه برای یافتن راه (Genetic Algorithm - GA) الگوریتم ژنتیک

سازی و مسائل جستجو است. الگوریتم ژنتیک نوع خاصی از الگوریتمهای تکامل است که از تکنیکهای برای بهینه

ساز کامپیوتر که معموال به عنوان یک شبیه الگوریتمها این .کندجهش استفاده میشناسی مانند وراثت و زیست

بهتری حل راه به سازیبهینه مسأله یک حلراه نامزدهای از( کروموزومها) انتزاعی یدر آن جمعیت یک نمونه

های بودند، اما امروزه به گونه ۱و ۰هایی از حلها به شکل رشتهراه سنتی طور به. شوندمی سازیپیاده شود، منجر

.اندسازی شدهدیگری هم پیاده

همانند ژنتیک، الگوریتم ژنتیک نیز با گذشت مراحل بهتر و بهتر شده وباعث می شود برای حل مسئله به بهترین

راه حل دست پیدا کنیم . هدف از این مجموعه بررسی الگوریتم ژنتیک با استفاده از طبیعت است که در ادامه

کرد. استفاده از آن صحبت خواهیمتر در مورد این الگوریتم و مراحل بیش

Page 4: الگوریتم ژنتیک

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

فهرست مطالب 1 .......................................................................................................................................................................... دهیچک

3 .......................................................................................................................................................................... مقدمه

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

4 ................................................................................................................................. یکیژنت تمیالگور یایمزا

4 .................................................................................................................................... یکیژنت تمیالگور بیمعا

GA ...................................................................................................................................................... 5 یها کاربرد

EA (Evolutionary Algorithms)............................................................................................................... 5 یها روش

GA ................................................................................................................................................... 5 کارکرد نحوه

GA ................................................................................................................................................... 6 یها پارامتر

6 .................................................................................................................................................... یتمیالگور روند

6 ............................................................................................................................................. یکیژنت یاپراتورها

CrossOver ................................................................................................................................................................. 7

Single-Point CrossOver ........................................................................................................................................ 7

Tow-Point CrossOver ........................................................................................................................................... 8

Uniform CrossOver .............................................................................................................................................. 8

Mutation ................................................................................................................................................................... 9

Mutation .............................................................................................................................. 9 و Crossover سهیمقا

9 ................................................................................................................................................ تیجمع جادیا نحوه

11 ................................................................................................................................................... ها هیفرض انتخاب

11 ........................................................................................................... گرید یروشها با GA یجستجو تفاوت

Crowding .................................................................................................................................................................... 11

Genetic Programming ................................................................................................................................................. 11

GP ............................................................................................................................... 12 یبراcrossover اپراتور

Schema ........................................................................................................................................................... 13 هیقض

15 .................................................................................................................................. کیژنت علم در هینظر دو

lamarck ..................................................................................................................................................... 15 هینظر

Baldwin .................................................................................................................................................... 15 هینظر

15 ......................................................................................................................................................................مثال 2

16 .................................................................................................................................................................. 1 مثال

21 .................................................................................................................................................................. 2 مثال

24 ........................................................................................................................................................................ منابع

Page 5: الگوریتم ژنتیک

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

مقدمهژنتیک معموال هایی بوده و خواهد بود. هر نسلی که به وجود آمدهدر دنیای وراثت و ژنتیک همیشه پیشرفت

ا وو سازگاری بیشتر تکامل تری دارد. در طبیعت جانداران از بین رفته و جای خود را به جانداران با ژنتیک بهتر

ه وجود ای بهشود ژنتیک بسیار فوق العادجهش نیز وجود دارد که هم باعث میالبته در علم ژنتیک گذار می کنند.

آید و هم امکان دارد باعث عقب افتادگی ژنتیک نسبت به ژنتیک قبلی شود.

برای حل مسائل خطی با محدودیتهای خطی، معموال از : باشند می مشخص حلهای راه دارای مسایل بعضی

)برنامه NLP)برنامه ریزی خطی( و همچنین برای حل مسائل غیر خطی با محدودیتهای غیر خطی از LPروش

ریزی غیرخطی(استفاده می شود.

ستفاده با ا ی چندین راه حلدر الگوریتم ژنتیک نیز اساس کار ما بر این نوع است . برای این منظور که از مقایسه

شود و الگوریتم هر بار نند و سپس این مسیر دوباره طی میک، بهترین راه حل ها را انتخاب میاز تابع تناسب

برای حل مسئله دست پیدا کنیم.تری باعث می شود ما به راه حل مطلوب کرده وتکامل پیدا

Page 6: الگوریتم ژنتیک

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

الگوریتم ژنتیکی John توسط 1970 سال در روش این. است بیولوژیک تکامل پایه بر یادگیری روش ژنتیک الگوریتم

Holland نام با هاروش این. گردید معرفی Evolutionary Algorithms یک .شوندمی خوانده نیز GA

با هاحل راه این از یک هر .کندمی تولید را ممکن هایحل راه از بزرگی بسیار مجموعه مسئله یک حل برای

راه تولید باعث هاحل راه بهترین از تعدادی سپس .گیردقرار می ارزیابی مورد ”تناسب تابع “ یک از استفاده

تکامل جهتی در جستجو فضای ترتیب بدین .گرددمی هاحل راه تکامل باعث کارینوند. اشمی جدیدی هایحل

عمل موثر بسیار تواندمی روش این پارامترها، صحیح انتخاب صورت در .برسد مطلوب حل راه به که کندمی پیدا

.پارامتر خود با نه كند مي كار شده كد پارامترهاي الگوریتم ژنتیک با.نماید

البته در جستجو با این روش باید . محاسباتي قوانین از نه كند مي استفاده آماري قوانین از ژنتیك الگوریتم

مهم نیز نقاط این تعداد یعنی نقطه یک نه دهد،می انجام نقاط از جمعیتی وسیلههب را جستجوتوجه داشت که

و شود می نزدیک بهینه جواب به کندتر و کرده زیاد را محاسبات زیاد جمعیت تعداد که صورت این به است،

.کند گیر محلی جواب یک در الگوریتم است ممکن و نداده پوشش خوبی به را جستجو فضای کم جمعیت تعداد

دانستن به نیازي و كند مي استفاده جستجو فضاي مختلف نقاط در تابع مقدار باید اشاره کرد که این روش از

.ندارد تابع از دیگري اطالعات یا تابع مشتق

مزایای الگوریتم ژنتیکی از الگوریتم ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند و مسائلی با فضای فرضیه پیچیده می

)بهینه سازی گسسته( بسیار مورد استفاده است. discrete optimization یابر همچنین توان استفاده کرد.

قیمت ارزان کامپیوترهای توانمی رواین از نمود اجرا موازی بصورت راحتیهب توانمی را ژنتیک های الگوریتم

سایر از کمتر محلی مینیمم در الگوریتم این افتادن تله به مکانداد و ا قرار استفاده مورد موازی بصورت را تری

.روشهاست

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

ر می توان ب دیگر دارای مشکالتی است که از جمله این مشکالتد الگوریتم های اما الگوریتم ژنتیکی همانن

آید می وجودمشکل دیگری که در استفاده از این الگوریتم برای ما به پرهزینه بودن از لحاظ محاسباتی اشاره کرد.

استفاده از هااما با وجود این نقص .حل بهینه وجود ندارداین است که هیچ تضمینی برای رسیدن به جواب یا راه

ائل به ما کمک شایانی خواهد نمود و در یک کالم نباید از این الگوریتم نا امید الگوریتم ژنتیکی در حل اکثر مس

شد.

Page 7: الگوریتم ژنتیک

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

GAکاربرد های

از کاربرد های مهم الگوریتم ژنتیک می توان به موارد زیر اشاره کرد:

Optimization

automatic programming

machine learning

economics

operations research

ecology

studies of evolution and learning

social systems

EA (Evolutionary Algorithms)روش های

اند اما از هم مجزا هستند.این روش ها به دو نوع تقسیم می شوند. اگر چه به هم مرتبط

۱- Genetic Algorithms (GAs)

.میشود داده نشان bit string یک بصورت مسئله یک حل راه روش این در

2. Genetic Programming (GP)

هستند استفاده مورد lisp مثل نویسی برنامه هایزبان در که expression trees تولید به روش این

در صفحات بعدی این مجموعه در این .باشند اجرا قابل که ساخت هائی برنامه توانمی ترتیب بدین پردازدمی

باره بحث خواهد شد.

GAنحوه کارکرد

تولید شودمی نامیده population که ها فرضیه از ایمجموعهالگوریتم ژنتیک به این صورت است که طرز کار

از استفاده با ها فرضیه تکرارتمامی بار هر درسپس .گرددمی جایگزین جدیدی های فرضیه با متناوب بطور و

از استفاده با ها فرضیه بهترین از تعدادی آنگاه .شوندمی داده قرار ارزیابی مورد (Fitness ) تناسب تابع یک

.دهندمی تشکیل را جدید جمعیت و شده انتخاب احتمال تابع یک

Page 8: الگوریتم ژنتیک

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

اپراتورهای از استفاده با مابقی و شده واقع استفاده مورد صورت همان به شده انتخاب های فرضیه این از تعدادی

به بحث اپراتورهای ژنتیکی ،در ادامه .روندمی بکار فرزندان تولید برایMutation و Crossover نظیر ژنتیکی

خواهیم پرداخت.

GAپارامتر های

:است زیر پارامترهای دارای GA الگوریتم یک

GA(Fitness,Fitness_threshold,p,r,m)

: Fitnessتابع تناسب(.دهدمی نسبت فرضیه هر به عددی مقداری که فرضیه یک ارزیابی برای تابعی(

: Fitness_threshold کندمی معین را پایان شرط که آستانه مقدار.

: p شوند گرفته نظر در جمعیت در باید که هائی فرضیه تعداد

:r الگوریتم توسط مرحله هر در که جمعیت از صدی در crossover شوندمی جایگزین

:m نرخ mutation

روند الگوریتمی

شروع -۰

(Initializ).کنید اولیه دهی مقدار تصادفی بطور فرضیه p تعداد با را جمعیت-۱

(Evaluate ).نمائید محاسبه را Fitness(h) تابع مقدار p در h فرضیه هر برای -2

.کنید ایجاد جدید جمعیت یک Fitness(h)] < Fitness_threshold h[maxزمانیکه تا -3 .برگردانید را است Fitness مقدار بیشترین دارای که ای فرضیه -4 پایان -5

اپراتورهای ژنتیکی

دو نوع اپراتور ژنتیکی وجود دارد

۱- Crossover 2- Mutation

استفاده از هر یک از این اپراتور ها بستگی به صورت مسئله دارد در حالت کلی بهتر است از هر دو استفاده شود

هر کدام نقش مخصوصی دارند.زیرا

به Crossoverاستفاده کرد ولی استفاده از Mutation باید به این نکته توجه داشت که می توان فقط از

تنهایی نتیجه ای نخواهد داد.

Page 9: الگوریتم ژنتیک

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

در زیر به شرح هر کدام از این اپراتور ها می پردازیم.

CrossOver

آید. برای انجام این کار وجود می رشته فرزند از این دو رشته والد بهکند که رشته والد استفاده می 2این روش از

رشته یک از شونده کپی هایبیت محل تعیین برای د.شومی کپی فرزندان هایبیت در والدین هایبیت از قسمتی

.شودمی استفاده Crossover Mask نام به

خود روش های متفاوتی دارند: شوند کپی والدین از یک هر از باید که هائی بیت انتخاب

۱- single-point crossover 2- Two-point crossover 3- Uniform crossover

Single-Point CrossOver

شوند و هر د سپس والدین در این نقطه به دو قسمت تقسیم میشومی انتخاب رشته طول در تصادفی نقطه یک

آید.وجود میدوم از والد دیگر بهفرزند با انتخاب تکه اول از یکی از والدین و تکه

Crossover Mask: 11111000000

0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 1 1

1 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1

parents children

Page 10: الگوریتم ژنتیک

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

Tow-Point CrossOver

انتخاب دو قسمت از یک والد بخش تقسیم می شوند و هر فرزند با 3دو نقطه تصادفی انتخاب شده و والد ها به

جه تر به شکل زیر توشود. برای فهم بیشو یک قسمت از والد دیگری البته به صورت یک درمیان، تشکیل می

کنید.

Crossover Mask: 00111110000

Uniform CrossOver

دهیم.این قسمت را با شکل زیر شرح می

Crossover Mask: 10011010011

0 0 0 1 ۱ 0 1 0 0 ۱ ۱ 0 0 0 1 0 0 1 0 ۱ ۱ ۱

۱ 0 ۱ ۰ ۱ 0 1 0 ۰ ۰ ۰ 1 0 1 0 0 0 1 0 1 0 0

0 0 1 0 0 0 1 0 0 0 ۱ 0 0 0 1 0 0 1 0 ۱ ۱ ۱

۱ 0 ۱ ۰ ۱ 0 1 0 ۰ ۰ ۰ 1 0 0 1 1 0 1 0 ۱ ۱ 0

parents children

parents children

Page 11: الگوریتم ژنتیک

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

Mutation

شود. به این منظور تغییرات کوچکی در رشته اولیه در این اپراتور برای پدید آمدن فرزند از یک رشته استفاده می

تصادفی بصورت بیت یک یکنواخت توزیع یک از استفاده با آید.اعمال می کنیم و فرزند جدید به وجود می

توان گفت برای البته می اعمال می شود. crossoverکه معموال بعد از میکند پیدا تغییر آن مقدار و اتنخاب

یک خوش شانسی الزم است. Mutationرسیدن به جواب بهینه در

Mutationو Crossoverمقایسه

یا و جستجوگرانه خاصیت Crossoverتوان به این موارد اشاره کرد که در مقایسه این دو اپراتور می

explorative را جدیدی نواحی و رفته والدین دربین هائی محل به بزرگ هایپرش انجام با تواندمی .دارد

تغییرات انجام با تواندمی .دارد exploitive یا و گسترشی خاصیتMutation در حالی که نماید کشف

کندمی ترکیب را والدین اطالعاتCrossove همچنین .ببخشد وسعت شده کشف نواحی به تصادفی کوچک

.نماید اضافه جدیدی اطالعات تواندمی mutation درحالیکه

نحوه ایجاد جمعیت

:است زیر بصورت جدید جمعیت یک ایجاد مراحل

۱. : select تعدادr)p -(1 میان از فرضیهP به و انتخاب sP فرضیه یک انتخاب احتمال .کنید اضافه ih

:از است عبارت Pمیان از

P(hi) = Fitness (hi) / Σj Fitness (hj)

تناسب مقدار با همچنین احتمال این .است بیشتر آن انتخاب احتمال باشد بیشتر ای فرضیه تناسب چه هر

عکس دارد. نسبت دیگر های فرضیه

2. : Crossoverتعداد فوق، رابطه توسط آمده بدست احتمال از استفاده با(rp)/2 میان از فرضیه زوجP

.کنید اضافه sP به را فرزندان .کنید ایجاد آنان از فرزند دو Crossoverاپراتور از استفاده با و نتخابا

3. : Mutateتعدادm اعضا از درصد sPبصورت را آنها یک هر از بیت یک و انتخاب یکنواخت احتمال با را

.کنید معکوس تصادفی

4. :Update sP P

.کنید محاسبه را Fitness تابع مقدار P در h فرضیه هر برای .9

Page 12: الگوریتم ژنتیک

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

ها فرضیه انتخاب

۱- Roulette Wheel selection

2- Tournament selection

3- rank selection

می پردازیم. Roulette Wheel selectionکه در ادامه به بررسی

بستگی بعدی جمعیت در استفاده برای فرضیه یک انتخاب احتمال GA ساده الگوریتم در شده معرفی روش در

.میشود نامیدهRoulette Wheel selection روش این .دارد اعضا بقیه fitness به آن fitness نسبت به

P(hi) = Fitness (hi) / Σj Fitness (hj)

برای مثال داریم:

های دیگربا روش GAتفاوت جستجوی

Gradient روش عصبی شبکه در. دارد تفاوت عصبی های شبکه مثل دیگر روشهای با GA جستجوی روش

descentکهحالی در کندمی حرکت دیگری مشابه فرضیه به ای فرضیه از هموار بصورت GA است ممکن

احتمال رواین از.باشد داشته آن والد با اساسی تفاوت که نماید جایگزین فرزندی با را والد فرضیه ناگهانی بصورت

crowding که روبروست دیگری مشکل با GA وجود این با. یابدمی کاهش محلی مینیمم در GA افتادن گیر

.شودمی نامیده

A C

1/6 = 17%

3/6 = 50%

B

2/6 = 33%

fitness(A) = 3

fitness(B) = 1

fitness(C) = 2

Page 13: الگوریتم ژنتیک

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

Crowding

Crowding رتب طور مبسیار بیشتری از بقیه افراد جمعیت دارد به اریای است که در آن عضوی که سازگپدیده

کاهش باعث کاراین کند.ای از جمعیت را اشغال مید اعضای مشابه درصد عمدهتولید نسل کرده و با تولی

.کندمی کم را GA سرعت و شده جمعیت پراکندگی از بهتر بسیار که ای فرضیه به رتبه اختصاص با ،ها نمونه انتخاب برای ranking از استفادهاما خوشبختانه با

Fitnessمقدار Fitness sharing. سپس به کمک شد نخواهد داده نشان ،برتری این مقدار کندمی عمل بقیه

یابد.یک عضو در صورتیکه اعضا مشابهی در جمعیت وجود داشته باشند کاهش می

Genetic Programming

برنامه آن برای صریح بطور آنکه بدون بپردازند مسائل حل به تا سازدمی قادر را کامپیوترها که است تکنیکی

.است کامپیوتری برنامه یک جمعیت هرعضو آن در که است تکاملی الگوریتمهای از روشی GP. باشند شده ریزی .درخت کردن pars با است برابر برنامه اجرای و شده داده نمایش درخت یک توسطهب اغلب ها برنامه

F = sin(x) + sqrt( x^2 + y) +

نظیر هستند نیاز مورد زمینه آن در که ای پایه توابع بایستمی خاص، زمینه یک در GP از استفاده برای

sin, cos, sqrt, +, -, etc باید نیز ثوابت و متغیرها نظیر هاترمینال همچنین .شوند تعریف کاربر توسط

مقادیر این توسط که هائی برنامه بزرگ بسیار فضای در GP الگوریتم در این صورت است که .شوند مشخص

.داد هداخو انجام را تکاملی جستجوی عمل یک هستند بیان قابل اولیه

sin

x

sqrt

+

y ^

x 2

Page 14: الگوریتم ژنتیک

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

GP برایcrossover اپراتور

از هائی شاخه با والد درخت یک از هائی شاخهبه این صورت است که GPدر crossover اپراتوکار کرد

.شوندمی عوض تصادفی بطور دیگر والد درخت

crossover بعد از اعمال

parents

+

sin

x

^

2 +

x y

+ sin

x

sqrt

+

y ^

x 2

children

+

sin

x

^

2 ^ x y

+ sin

x

sqrt

+

y + x

2

Page 15: الگوریتم ژنتیک

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

Schemaقضیه .کرد خواهد پیدا تکامل جمعیت در زمان طول در Schema یک چگونه که کندمی بیان Schema قضیه

.باشد m(s,t) با برابر هستند s مثل Schemaیک نماینده که هائی نمونه تعداد t لحظه در که کنید فرض

بود برابر فرضیه یک انتخاب احتمال که دیدیم قبال.کندمی مشخص را m(s,t+1) انتظار مورد مقدار قضیه این

:با

)jFitness (h j) / Σi) = Fitness (hiP(h :داد نشان نیز زیر بصورت توانمی را احتمال مقدار این

)i) / n f’ (ti) = f (hiP(h :با است برابر باشد S نماینده عضو این اینکه احتمال شود انتخاب جمعیت این از عضوی اگر

: s اعضای fitness میانگین مقدار با است برابر u(s,t) مقدار آن در که

است برابر شد خواهند حاصل مستقل انتخاب مرحله n از که s از هائی نمونه برای انتظار مورد مقدار رواین از

:با

u(s,t) میانگین مقدار با متناسب t+1 لحظه در انتظار مورد های Schema تعداد که معناست این به فوق رابطه

.دارد عکس نسبت اعضا سایر fitness مقدار با و بوده

اثر گرفتن نظر در با .است شده گرفته نظر در ها نمونه انتخاب مرحله اثر فقط فوق رابطه آوردن بدست برای

crossover و Mutation رسید خواهیم زیر رابطه به:

),(

),(tsm

p tfn

tsu

tfn

hfshp

ssh

),(

)(

),(tsm

p

hf

tsu ssh

),(

),()]1,([ tsm

tf

tsutsmE

Page 16: الگوریتم ژنتیک

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

m(s, t) number of instances of schema s in population at time t

cp probability of single point crossover operator mp 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

)(

11

)(1),(

),()]1,([

so

mcpp

l

sdtsm

tf

tsutsmE

Page 17: الگوریتم ژنتیک

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

.کندمی کد را جمعیت در موجود بخش امید و مفید اطالعات Schema یک

هایمثال بتدریج دارند، شدن انتخاب برای بیشتری شانس سازگارترند که هائی رشته همواره کهییجاآن از

.می یابند اختصاص ها Schema بهترین به بیشتری

قطع باعث کاراین کهصورتی در وجود این با د.شومی تصادفی نقاط در ها رشته قطع باعث crossover عمل

Schema کلی حالت در.داد نخواهد تغییر آنرا باشد نشده Schema کنندمی تغییر کمتر کوتاه طول با های.

.گرددنمی Schema در موثر تغییرات باعث کلی حالت در mutaion عملباید در خاطر داشت که

نظریه در علم ژنتیکدو lamarckنظریه

lamarck ژنتیکی ترکیب در زنده موجود یک تجربیات آن طبق که کرده ارائه ای فرضیه نوزدهم قرن دانشمند

بصورت را ویژگی این کند پرهیز سمی غذای از گرفته یاد که موجودی مثال برای. گذاردمی تاثیر آن فرزندان

.نباشند پدیده این یادگیری به مجبور دیگر آنها تا نمایدمی منتقل خود فرزندان به ژنتیکی

.ندارد فرزندان ژنتیکی ترکیب در تاثیری هیچ فردی تجربیات یعنی کنندنمی تائید را نظر این تجربی شواهد اما

Baldwinنظریه با برخورد نحوه یادگیری توانائی که افرادی باشد، گرفته قرار فشار تحت متغیری محیط طرف از موجودی اگر

.دارند بقا برای بیشتری شانس باشند داشته را شرایط

فرایندهای که دهندمی تشکیل را یادگیری توانائی با جمعیتی مانندمی باقی جدید شرایط تحت که موجوداتی

شرایط با مواجهه یادگیری به نیازی که بیاید بوجود نسلی تا شودمی باعث و دهدمی رخ سریعتر آنها در تکاملی

.باشند نداشته را جدید

مثال 2

پردازیم.در ادامه به حل چند مسئله با استفاده از الگوریتم نتیک می

Page 18: الگوریتم ژنتیک

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

برای درک دو مثال زیر باید به مفهموم ژن و کروموزوم اشاره کرد.

به .باشد می پارامترها شده کد نمایش شکل برای ژنها حقیقت درباشد. می GAژن کوچکترین واحد سازنده

یا "0 " هر کنیم، می کد باینری صورت بهرا xمتغیر وقتی مثال برای .گویند می کروموزوم ژنها، از ای رشته

را می سازند و در حقیقت xها که متغییر "۱"و ”0 " این از ای رشته به و شود می محسوب ژن یک "1 "

شکل کد شده متغییرند، کروموزوم می گوییم.

1مثال

مساله :

را در این مربع قرار دهیم به طوری که جمع ۱9تا۱خواهیم اعدادی بین داریم که می 3×3ما یک مربع

شود. 24و ستون برابر اعداد در هر سطر

این مسئله تا حدودی پیچیده است. ممکن است یک انسان بتواند آن را در مدت زمانی مشخص حل کند ولی هیچ گاه

یک کامپیوتر نخواهد توانست آن را در مدت زمان کوتاهی با استفاده از اعداد تصادفی حل کند. ولی الگوریتم

.کند حل را مشکل این تواندمی ژنتیک

نسل اول

اد کردن یک نسل ابتدایی برای شروع کار است که شامل تعدادی ژنوم تصادفی است. این ژنوم ها به صورت اولین گام ایج

شوند.( نشان داده می۱و۰) باینری

. است خالی جای 5 هر برای اطالعاتی شامل شوند. هر ژنوم یا کروموزومسری عدد به صورت تصادفی تولید میاول یک

33بیت یا ژن داده نمایش داد. پس هر ژنوم شامل 4توان آنها را با دارند می ۱9تا ۰داد مقادیر بین ین اعا چون

بیت است.

یک نمونه ژنوم می تواند به شکل زیر باشد:

Bits (Genes) 0110 1100 1111 1011 0100 ۱۰۱۰ ۰۱۱۱ ۰۱۰۱ ۱۱۱۰

Values(Traits) 6 12 15 11 4 ۱۰ 7 9 ۱4

Page 19: الگوریتم ژنتیک

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

( بنابر تاثیر آن در حل مسئله نسبت داد. فرآیند و روش Fitness) حاال باید به هر ژنوم در مجموعه یک عدد تناسب

ترین بخش ترین و حساسکند. انتخاب الگوی مناسب برای مسئله مشکلبه این عدد برای هر مسئله فرق میمحاس

کنیم که کنیم و بررسی مید را در مکان هایشان جایگذاری میاست. دراین مثال ما اعدا در حل مسئله ژنتیک

چقدر با جواب اصلی فاصله دارند.

33=

25=

26=

=33

=25

=26

۱9

۱2 3

۱۰ 4 ۱۱

۱4 9 7

= = =

24 21 39

Page 20: الگوریتم ژنتیک

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

کنند. پس باید مقادیر ت که این مقادیر مسئله را حل نمیواضح اس . 35و2۱و24و23و29و33مقادیر معادل عبارتند از

محاسبه کرده، سپس معکوس 24تناسب را برای این ژنوم محاسبه کرد. برای این کار ابتدا فاصله هرمجموع را از

کنیم .آنها را محاسبه میمجموع تفاصل

است. هرچقدر که اعداد ما به جواب نزدیکتر باشند عدد تناسب ۰3۰33اسب برای این ژنوم تقریبا برابر بنابراین درجه تن

شده اند 24شود چه اتفاقی می افتد؟ دراین صورت همه اعداد ما برابر ۰بزرگتر خواهد شد. اما اگر مخرج ما برابر

و ما به جواب رسیده ایم.

نسل بعدی

3شوند. این اصلی ترین بخش الگوریتم ژنتیک است که از برای تولید نسل بعدی انتخاب میی دو ژنوم به طور تصادف

مرحله تشکیل شده:

انتخاب

دو ژنوم به طور تصادفی از نسل قبل انتخاب می شوند. این ژنوم ها دارای اعداد تناسب بزرگتری هستند و بعضی صفات

است که عدد تناسب در حال افزایش خواهد بود.شوند. این بدین معنی یبه نسل بعدی منتقل مآنها

( است. اول یک عدد تصادفی Roulette( در این مسئله روشی به نام رولت)Fitnessبهترین روش برای تابع انتخاب)

و عدد تناسب نسل قبلی انتخاب می شود. تابع انتخاب به صورت زیر خواهد بود: ۰بین

RouletteSelection()

{

); float ball = rand_float_between(0.0, total_fitness

; float slice = 0.0

for each genome in population

Page 21: الگوریتم ژنتیک

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

{

; slice += genome. fitness

if ball < slice

; return genome

}

}

( Cross overتغییر از یک نسل به نسل بعدی)

کنند. اگر آنها تغییر پیدا نکنند همانطور بی تغییر به را برای ایجاد نسل بعدی اهدا می هایشانژنوم بخشی از ژنحاال دو

بار ژنوم ها تغییر نشان دهنده این است که هر چند وقت یک Crossoverنسل بعدی منتقل خواهند شد. درجه

باشد. %59-39پیدا خواهند کرد و این عدد باید در حدود

شود. بخش اول ژنادفی در ژنوم برای تغییر آغاز میعملگر تغییر در ژنوم های باینری مثال ما با انتخاب یک مکان تص

فرزند تولید شوند. در زیریک عمل تغییر 2شوند)و بالعکس( تاهای مادر با هم ترکیب میهای پدر و بخش دوم ژن

.بینیم می را

Before Crossing

Father 011110010011 001011011000111011010000

Mother 010100111110 010101111101000100010010

After Crossing

Child1 011110010011 010101111101000100010010

Child2 010100111110 001011011000111011010000

( Mutationجهش)

Page 22: الگوریتم ژنتیک

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

. جهش یک تغییرر جهش یا تغییر ناگهانی شونددارد دچا قبل از این که ژنوم ها در نسل بعدی قرار بگیرند، احتمال

است. درجه جهش ۰به ۱یا از ۱به ۰ناگهانی در ژن است. در ژنهای باینری این تغییر به معنای تغییر یک بیت از

برای ژنهای %2۰-9برای ژنهای باینری و %9-۱نشان دهنده احتمال بروز جهش در یک ژن است و تغریبا بین

ت.عددی اس

2مثال وزیر می باشد. 5مسئله دومی که می خواهیم با این الگوریتم بررسی کنیم مسئله معروف

یک همدیگر را تهدید نکند. شطرنج است به نحوی که هیچی وزیر در صفحه 5هدف مشخص کردن چیدمانی از

و سطرها را 7تا ۰را در نظر بگیرید. ستونها را با اعداد 5در 5 صفحه شطرنجابتدا باید نسل اولیه را تولید کنیم.

زیرها را در ستونهای کنیم. برای تولید حاالت )کروموزومها( اولیه بصورت تصادفی ومشخص می 7تا ۰هم از

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

دهیم )به جای اینکه ام قرار می iتصادفی در ستون یام را در خانه iدهد )اصالت نژاد( به همین خاطر وزیر می

وضیح شود. ترار بگیرد(. با اینکار حداقل از برخورد ستونی وزیرها جلوگیری میای بتواند در هر خانه خالی قهر مهره

دهیم تا به اخر. مشخص شده قرار می ۰ستون اول که با هایخانهبیشتر اینکه مثال وزیر اول را بطور تصادفی در

I=0,1,…7 حال باید این حالت را به نحوی کمی مدل کرد. چون در هر ستون یک وزیر قرار دادیم هر حالت

دهد. ام را نشان می iسطر وزیر موجود در ستون یام در این رشته شماره kرشته اعدادی که عدد یرا بوسیله

است که وزیر 3سطر یشماره 3که 372۰3422تواند بصورت زیر باشد: یعنی یک حالت که انتخاب کردیم می

اند. این چهار حالت حالت زیر به تصادف تولید شده 4باشد تا اخر. فرض کنید است می ۰ستونش یاول که شماره

.گیریمرا بعنوان کروموزومهای اولیه بکار می

۱. )372۰3422

2. )7۰۰33394

3. )۱7922۰33

4. )433۰247۱

گیریم تابعی است که برای هر رسد. تابعی را که در نظر میمی fitness function حال نوبت به تابع تناسب

گیرد. هدف صفر کردن یا حداقل کردن این تابع است. پس احتمال حالت تعداد برخوردها )تهدیدها( را در نظر می

ر برای آن کمت تناسبمی برای تولید نسل بیشتر است که مقدار محاسبه شده توسط تابع انتخاب کروموزو

ر باشد: )مقدابرای حاالت اولیه بصورت زیر می تناسبباشد.)روشهای دیگری نیز برای انتخاب وجود دارد( مقدار

باشد((همان تعداد برخوردهای وزیران میرنگ قرمزدر جلوی هر کروموزوم )با تناسبعدد

Page 23: الگوریتم ژنتیک

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

۱. )372۰342۰ ← 3

2. )7۰۰33394 ← 5

3. )۱7922۰33 ← 2

4. )433۰247۱ ← 4

پس احتمالها بصورت زیر است:

P(3)>p(4)>p(1)>p(2)

crossoverبرای 3کمتری دارند. پس کروموزوم مقدار تناسبکنیم که موزومهایی را انتخاب میدر اینجا کرو

گیریم.در نظر می 7و 3ترکیب را بین ارقام یشود. نقطهانتخاب می ۱و 4با کروموزومهای

:3و 4

۱. )۱7922۰7۱

2. )433۰2433

:3و ۱

۱. )۱7922۰2۰

2. )372۰3433

رسد. در جهش باید یکی از ژنها تغییر کندحال نوبت به جهش می

جهش یابد. پس نسل 3به 2و از بین ژن چهارم از 7 یکروموزوم شماره 5تا 9کنید از بین کروموزومهای . فرض

باشد(باشد: )امتیازات تعداد برخوردها میما شامل کروموزومهای زیر با امتیازات نشان داده شده می

۱. )372۰342۰ ← 3

2. )7۰۰33394 ← 5

3. )۱7922۰33 ← 2

4. )433۰247۱ ← 4

9. )۱7922۰7۱ ← 3

3. )433۰2433 ← 4

7. )۱7932۰2۰ ← 4

Page 24: الگوریتم ژنتیک

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

5. )372۰3433 ← 9

یباشد. )فرض در این مرحله جهشی صورت نگیرد و نقطهمی 7و 3کاندیدای خوبی برای ترکیب با 3کروموزوم

باشد( 2و ۱اتصال بین ژنهای

۱. )372۰342۰ ← 3

2. )7۰۰33394 ← 5

3. )۱7922۰33 ← 2

4. )433۰247۱ ← 4

9. )۱7922۰7۱ ← 3

3. )433۰2433 ← 4

7. )۱7932۰3۰ ← 4

5. )372۰3433 ← 9

5. )۱33۰2433 ← 2

۱۰. )47922۰33 ← 2

۱۱. )۱7922۰2۰ ← 4

۱2. )۱7922۰33 ← 2

های تولید شده در نسل جدید به جواب گوییم. بطور مشخص کروموزومرا نسل جدید می ۱2تا 5کروموزومهای از

ظر خواهیم رسید. همین روند پس از چند مرحله به جواب مورد ن یاند. با ادامهمسئله نزدیکتر شده

Page 25: الگوریتم ژنتیک

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

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

در نهایت باید :

برای حل این مشکل که ممکن است ترکیب بعضی از بیت ها منجر به فرضیه های بی معنی گردد باید چه کاری

انجام داد؟

حالتهائی چنین که نمود تعیین طوری را ژنتیکی پراتورهاییا ا.نمود استفاده دیگری انکدینگ روش از توانمی

.داد نسبت کمی خیلی fitness مقدار ها فرضیه این به توانو همچنین می نمایند حذف را

Page 26: الگوریتم ژنتیک

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

منابع

۱. https://fa.wikipedia.org/wiki/%D8%A7%D9%84%DA%AF%D9%88%D8%

B1%DB%8C%D8%AA%D9%85_%DA%98%D9%86%D8%AA%DB%8C

%DA%A9

2. http://www.google.com/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&

cd=4&ved=0ahUKEwjTkvKF3fLJAhVB44MKHccpAYkQFgg6MAM&url

=http%3A%2F%2Fceit.aut.ac.ir%2F~shiry%2Flecture%2FDSS%2FGA.ppt

&usg=AFQjCNGJEmoV68oTejxF9KCAFernYdWaJQ&bvm=bv.11015184

a4,d.eWE&cad=rj

3. algorithms.html-http://www.beytoote.com/scientific/midanid/genetic

4.