صفحه 1:
بسم الله الرحمن الرحيم
آشنايى با الكوريتم هاى زنتيى
: استاد راهنما
لاعلا علا علا علا !ا »لاما
ارائه دهندگان :
شتا
تفت
تفت
دوشنبه ۲۴ فروردین
صفحه 2:
فهرست مطالب Jenetic
18 استراتژیهای جستجو (مقدمه)
1 الگوریتمهای تکاملی (پیشینهکاری)
۶ الگوریتمهای ژنتیک
# چند اصطلاح
# آشنایی با الگوریتم های ژنتیک
# ساختار الگوریتم های ژ
# عملگر های الگوریتم ژنتیک
مزایای الگوریتم ژ
معایب و اشکالات وارد به الگوریتم های ژنتیک
© برنامه نویسی ژنتیک
قدم های اولیه برنامه نوبسی ژنتیک
برنامه نویسی ژنتیک
برنامه نویسی ژنتیک
صفحه 3:
مقدمه : (ستر(تژجهای جستبو Jenetic
algorithm
استراتژیهای جستجو
(Search 3
waa Strategies) قطعی
(Heuristic)
غیر قطعی
2 تک جوابی
برنمه ریزی تکاملی (Non-
deterministic) بر جمعيت
استراتژی تکاملی
(Population-
based)
الگوریتمهای ژنتیک الگوریتمهای تکاملی
(Evolutionary Algorithms)
ue برنامه ریزی ژنتیک
الگوریتمهای تخمین توزیع.
(Estimation of Distribution Algorithms
صفحه 4:
(لکوریتم های تکاملی Jenetic
alaorithm
2
كع
صفحه 5:
نمودار کردشی فرآیند یک (لکوریتم تکاملی .۰۰ »6۵81
algorithm
* فرايند توليد تا وقتی که جواب مورد نظر حاصل شود ادامه مى يابد
( اغلب جمعيت اوليه بصورت تصادفى توليد مى شود)
جمعیت جدید جمعيت اولية
پروسه تولید جمعیت جدید از جمعیت فعلی.
جايكزينى جمعيت حاصل بجاى جمعيت قبلى
صفحه 6:
چند (صطلام (زمینه بیولوژیکی) Jenetic
algorithm
Aegarre Joly » 99 (CHroMOSOME)p9j909)5 ای از موجودات هم شکل بنام کروموزوم وجود دارد .
ژن 666106 : هر کروموزوم از عدادی ژن تشکیل یافته است ؛ هر ژن یک خصیصه را کد می کند(مثل رنگ
(ote
آلل(6 ۵1161 : مجموعه های ممکن برای یک خصیصه آلل نامیده می شود.
لوكس (1-06105): هر زن در كروموزوم موقعيت خاصى را داراست.
زنوم( 170110 6) : مجموعه كامل همه كروموزوم ها.
[ژئوتیپ(6 0 لا 100 6) : یک مجموعه خاص از ژن ها در ژنوم .
فلوتیپ (06 1۱61۱00۷ ۳): ژنوتیپ ها بعد از تکامل بیشتر به فنوتیپ ها (که همان خصوصیات فیزیکی و
روانی مانند رنگ چشم يا هوش و ..تبدیل می شوند .
صفحه 7:
آشنایی با (لگوریتم های ژنتیک Jenetic
پيكصپپپسمسمسىثپكِكِ۳ | ‘algorithm
۲ الگوریتم های ژنتیک یکی از شاخه های پردازش تکاملی می باشند.
% این الگوریتم ها با الهام از روند تکاملی طبیعت مسائل را حل می نمایند .
یعنی مانند طبیمت یک جمعیت از موجودات را تشکیل می دهند و با اعمالی بر روی این مجموعه به یک مجموعه بهینه و
یا موجود يهينه دست می یابند.
¥ رب اله ۲
با توجه به خصوصیات خاص خودشان به خوبی از عهده حل مسائلی که نیز به بهینه سازی دارند
بر می al
صفحه 8:
سافتار (لکوریتم های ژنتیک Jenetic
“algorithm لپ
552 تلا
7
صفحه 9:
سافتار (لکوریتم های ژنتیک Jenetic
و زاو و | وت
(Selection ( us!
(Parents),
(Crossover)...
فرزندا( ۱06650۲1۳9
(Initial Population ).,,!
(Mutation) a>
(New Population جسیت جدید(
جایگزینی جمیت جدیدبجای جمیت قبلی
صفحه 10:
سانتار (لکوریتم های ژنتیک Jeneti
ا ‘algorithm
براى حل يك مساله با الكوريتم هلى زنتيك مراحل ذيل را داريم:
١)مدلسازى مساله يا بازنمایی
۲)تشکیل جمعیت اولیه
۴)ارزیابی جمعیت
۴انتخاب والدین
۵اباز ترکیبی
اچهش
۷انتخاب فرزندان
)تست شرط خاتمه الگوریتم
صفحه 11:
مکائیزم یک (لکوریتم ژئتیک Jenetic
صفحه 12:
جدرل هم (رزی مفاهیم بیولوژیکی و عناصر Jenetic GA
تست سح (ج-
GA
مسله رای حل
مجموعه جواهایجایگزین
ا ص2
كام تكرار
و
جواب داوطلب
ولدین جواهایبرگزیده شده
(Miles) Sil tite اندازة اتطباق
صفحه 13:
جدول هم (رزی مفاهیم بیولوژیکی و عناصر Jenetic GA
سير تكاملى طبيعن GA
9 للد حم" اتتخاب والدين متاسب
ب مقدار برازندكى
لا
ژنوتیب ام کت هو
ل ۲
فنوتيب اعون رم عفان منت
را
دن موقعیت در رشته
gh لما مقدار در يك موقعيت.
معین در رشته
ade ost پروسه رسیدن از جمعیت
ل نا فعلى به جمعيت يعدى
صفحه 14:
شبه کد یک (لکورجتم ژئتیک ساده
1-0:
Initialize P(t),
Evaluate P(
La phe dnd (جسعیث وليه
عنصر(0ظ توسط ماد برازندگی دار میشوند
0 شرایط خانمه ارخاشده WHILE
BEGIN
feted:
Select P(t) from Pit-); (axe eal لجراى عمذكر التحاب » ليست و الدين |
Crossover P(t); ليست فرزندان فراهم مىشود] Capen S Slee lait
Mutation P();
EvaluateP);
لجراى عملكر جه و ليست جمعیت حدید حاصل میشود ]
4 توسط مقادی برازندگی نادار میشوند PQ عناصر ١
END
Jenetic
END.
صفحه 15:
مدلسازی مساله (بازنمایی) Jenetic
سصىپسرسرسآپپسسمسىپكِ( ۳ | “algorithm
براى اينكه بتوانيم يك مساله را بوسله اكوريتع حلى زتنيك حل lg ah nS فم مخصوس مورد نير اين الكوريتم ها بديل كنيم.
در این زوند ما بایستی راه حل مورد نیز مسالد را به گونه ای تمرف کنیم که قبل نمیشن Sy ang کروموزوم باشد
اینکه چه نوع بزنمئی را برای مساله استفاده شود به شخص طراح و فرم مساله بستگی درد
چند نموه از نمی هایی. را که مسولا فده می شوند
ese
*رشته های بیتی
*اعداد حقیقی در فرم نقطه شناور
*اعداد حقيقى به فرم رشته ای بت
* يك مجموعه از اعداد حقيقى يا صحيخ
هی ات مس
*هر فرم دیگری که بتوانيم عملكرهاى زتنيك را بر روى آنها تعريف کنیم
صفحه 16:
عملگر های (لکوریتم ژنتیک Jenetic
ضرپسرسرسآپس_سىسىپكِك(۳ | “algorithm
8 ارزیابی حمعیت ۴۱۲0665
براى اينكه بتوانيم موجودات بيهتر را درون جمعيت تشخيص بدهیم بايستى معيارى را تعريف كنيم كه بر اساس أن موجودات بهتر را تشخیص
دهيم. به إين كار يعنى تعيين ميزان خوبى يك موجود.ارزيابى أن موجود مى تكويند
11011111911119
ا كوجكتر) ات
Sin أن موجود مى ناميم.
به عنوان مثال در صورتى كه به نبال مينيمم يك تابع هستيم. مقدار شايستكى را مى توانيم وروديهاى كه مقادير تاع برلى أنها كمتر است در
نظر بكيريم كه وروديهاى بيهترى هستند
یمه بد نوع مساله ملامی غولقیم شایبتگن را یفله و بکمنه کتیب
صفحه 17:
عملگر های (لگوریتم ژنتیک Jenetic
“algorithm
(oll, Sts) Selection Visi ©
سوق دادن جستجو به بخشهایی از فضا كه امكان يافتن جوايهاى با كيفيت بالاتر وجود دارد.
* 2 نسل جديدى از راه حل ها را با انتخاب والدينى كه بالاترين ۳111655 را دارند توليد مى كند
wily
بر هر سل تعدادی از عتاصر جمعیت این فرصت را پیدا می کتند که تولید مثل کنند.به این عناصر که از میان جمعیت.
wigs gs bal والدين سن مويئد
روشهاى مختلفى برلى انتخاب والدين وجود دارند. در زير ب جند مورد از ابن روشها
صفحه 18:
روش هاى [تتثاب وللدین Jenetic
‘algorithm اا
lyin Cana plas ect © والذمن:
در واقع هيجكونه انتخابى انجام تمى دهيم (همه عناصر اتتخاب مى شون
© اتتخاب تصادفى:
piping ici ar peg
در این روشها عتاصر با شایستگی
ple روشا
این روشها با استفاده از تکنیک هایی سعی مى كنند كه انتخاب هابى را ارائه دهند. كه هم رسيدن به جواب نهایی را تسریع کنند و هم اینکه
والدين انتخاب مى کنیم. این انتخاب مى تواند با چایگناری یا بدون جایگذاری باشد.
شانس بیشتری برای انتخاب شدن بعنوان والدین را درند.
کمک می کنند که چواب بهینه تری پیدا شود
صفحه 19:
روش های (تتثاب Jenetic
algorithm
معمول ترین روش های انتخاب
Elitist Selection
مناسبترین عضو هر اجتماع انتخاب میشود.
Selection Roulette
یک روش نتخاب است که در آن عتصری که عدد برازش (تناسب) بيشترى داشته باشد انتخاب م شود
ScalingSelection
به موازات افزايش متوسط عدد برازش جامعه. سنگینی انتخاب هم بیشتر میشود و جزئیت. این روش وقتی کاربرد درد که مجموعه دارای
عناصرى باشد كه عدد برازش بزركى دارند و فقط تفاوتهلى كوجكى أنه را از هم تفكيك مىكندد
Tournament Selection
یک زر مجموعه از صفات يك جامعه انتخاب مىثشوند و اعضاى أن مجموعه با هم رقابت مى كنتد و سراتجام فقط يك صفت از هر زيركروة
رای تلد تخاب میشوند
صفحه 20:
عملگر های (لکوریتم ژنتیک Jenetic
algorithm
(Recombination/Crossover) sx. تركيب ©
امکانترکیب جواهای جزیی cal (Partial solutions) شده و در نتیجه بدست آوردن جواهایی با کیفیتبالاتر
را فراهم میآورد.
در جريان عمل بازتركيبى به صورت اتفاقى بخشهايى از كروموزوم ها با يكديكر تعويض مى شوند. این موضوع باعث می شود
که فرزنان ترکیبی از خصوصيات والدين خود را به هتمراه ذاشته باشند و دقيقً مشايه يكى از والدين نباشتف.
هدف توليد فرزند جديد مى باشد به اين اميد كه خصوصیات خوب دو موجود در فرزندشان جمع شده و یک موجود بهتری را
لید کند.
صفحه 21:
روش (نبام عمل بازترکیبی Jenetic
“algorithm —
9
والدين
ops انجام عمليات بازتركييس
Os
صفحه 22:
روش (نبام عمل بازترکیبی Jenetic
5
روش کار به صورت زیر است:
بصورت تصادفی یک نقطه از کروموزوم را انتخاب مى كنيم
ژن های مایعد آن نقطه از کروموزوم ها را جایجا می کنیم
بازترکیبی تک نقطه ای (۲ ۲۳۵550۷ ۴۵۱۴۸ عاوطا6)
اگر عملیات بازترکیبی را در یک نقطه انجام دهیم به آن بازترکیبی تک نقطه ای می گویند.
در اين روش یک مکان تصادفی در طول رشته اتتخاب می شود و 96106 ها زاين مکان بهبعد جاجا می
شوند
صفحه 23:
Jenetic عمل بازترکیبی lai) csby
algort
cut \cut
1141111 0000000 Parents Ty
tspring 499
1110000 0001111 ۰ OP
صفحه 24:
روش (نبام عمل بازترکیبی Jenetic
“algorithm TOO
روش ادغام دو نقطه ای((6۳ ۲۳۵550۷ Two-point
"در اين روش دو مكان را به صورت تصادفى انتخاب كرده و مقادير بين اين دو نقطه را جابجا مى كنيم.
صفحه 25:
Jenetic عمل بازترکیبی lai) csby
“algorithm | ۳(كىصضسپ
ادغام چند (Multipoint Crossover) << «lai :
مى توانيم اين عمليات را در جند قطه انجام دهيم ٠ كه به آن بازتركيبى جند نقطه لى مى كويند
(Uniform Crossover) aly ps!
اگر تام قاط کروموزوم را بعنوان نقاط بازتركيبى انتخاب كنيم به آن بازتركيبى جامع مى كوثيم.
روش كار را برلى اين دو مورد اخير دين صورت اسستد
ب احتمال ثابتى مثل i ae Pe را اتجام مى دهيم
روش كار به صورت زير است:
* به ازلى هر يك از قسمت هاى كروموزوم:
ST تصادفی بین صفر و یک تولید می کنیم
* اگر این عدد از مقدار Jee al ۳ کوچکت باشد. زتهاى مابعد آن نقطه از كروموزوم ها را جابجا مى كنيم.
صفحه 26:
یک نکته در مورد عمل بازترکیبی Jenetic
تسس algontnm
نمونه ای ازلدغام جامع:
Parent A Parent B Offspring
لله کت + es
#عمليات بازتركيبى موجودات جديدى توليد نمى كند و تنها باعث مى شود كه موجودات موجود بهتر شوند.
كه براى call كروموزوم ها از روشهابى غير از اعناد صحيح ويا رشته هاى عددى استفاده كرده باشيم: عمليات بازتركيبى را
طكزي بيد سار من أكون سبران حل (قراز سا یقن بای اه مدل مسا ستفاده Rapp an رون ارت
قسمت خقیقی و ماتیس دوعدد | nl نیم
برای سایر بزنمایی ها نیز روشهای مخطفی برای بزترکیبی را شده است .
به روش
صفحه 27:
عملگر های (لکوریتم ژنتیک Jenetic
‘algorithm |...
(mutation) jx> ©
ویژگی تصادفی بودن و امکان فرار از نقاط بهینه محلی را فراهم میآورد.
tee polly به اين صورت عمل مى كنيع:
بصورت تصادفى تعدادى از كروموزوم هلى فرزند را اتتخاب مى كنيم به صورت تصادفى مقادير يك يا جند زن وى را تغيير مى دهيم.
همچتین در هنكام بيده سازى به صورت زير عمل مى كنيم:
به آزای هر کروموزوم اعمال زیر را انجام می دهیم:
يك عدد تصادفى بين صفر و يك توليد مى کنیم
اكر عدد توليد شده كوجكتر از م بود به ازلى هر ثثن اعمال زير را انجام مى دهيم. در غير اينصورت از چهش دادن کروموزوم
صرف نظر مى كنيم
يك عدد تصادفى بين صفر ويك تتوليد مى كنيم
أكر عدد توليد شده كوجكتر از و بودء زن مربوطه را جهش مى دهيم
صفحه 28:
عملکر های (لکوریتم نتیک Jenetic
رژرژرپ3۹۷۹۷5۷5۷5۷5۷5۷5۷5 ۷۹3 “algorithm
بعنوان مثال جهش برلى كروموزوم هلى به فرم بايترى به صورت زير مى باشدة
۱۰ ۰ ۳۰ ۱۰ ۱۰ الاش ٠ ٠١ | فرزند
تحوه انجام عملیات جهش
* جهش, برای بازنمایی های که از مقادیرحقیقی استفاده کرده اند.به این صورت پیاده سازی می شود که یک عدد حقیقی بصورت تصادفی
در یک محدوده خاص تعیین و جایگزین عدد قبلی می گردد و ی اينکه عدد اصلی با یک مقدار خاص جمع گردد و ...برای سایر مدل های
بازنمایی مساله نیز اناع خاصی از جهش پیشتهاد شده است.
صفحه 29:
یک مثال Jenetic
(Bitwise Mutation ) جهش بیتی
5
۴
before 1414414
after l4440141
mutated bit
صفحه 30:
نکاتی در مورد عمل هش Jenetic
‘algorithm ..
جهش ابتکاری([۲5 ۳۱6۱۵
ابا توجه به ايتكه هدف از جهش بهتر شدن كروموزوم ها ويا اينكه بيدا شدن يك راه حل جديد استه مى توانيم به جلى تفيير تصادفى
كروموزوم هاء تغييرات كروموزوم ها را هدفمند كنيم. برلى اينكار: بسته به نوع مساله. بر روى كروموزوم انتخاب شده یکی از روشهای
كلاسيك حل مساله را اعمال كرده, و جواب حاصل را بعنوان كروموزوم جديد جايكزين مى كتند. استفاده از اين روش كه از آن با عنوان
جهش ابتكارئ ياد مى شوده بسته بهنوع مساله ممکن است دستیابی به ره حل نهایی را سریعتر کتند.
* جهش باعث ایچاد تغیرات ناخواسته در جمعیت شده و باعث بوجود آمدن موجودات جدید می شود در وقع برتری جهش نسبت به
بازترکیی نیز همین مطلب می باشددر صورتی که فقط از چهش امتفاده کنیم, ممکن است که بتوانیم جواب بهینه را پداکنیم. اما ستفاده از
nS تنهابى بيدا شدن جواب يهينه را تضمين نمى كند.
صفحه 31:
شرط اتمه (لکوریتم Jenetic
‘algorttnm اا
های ژنتیک بر پایه تولید و تست می باشند جواب مساله مشخص نیست و نمی دایم که کدامیک از جواب های تولید شده
چون كه الكو
جواب بيهينه است تا شرط خاتمه را بيدا شدن جواب در جمعيت تعريف كنيم. به همين UD معيارهاى ديكرى را برلى شرط خاتمه در نظر مى
was
تعدا مشخخصى نسل: مى توانيم شرط خاتمه را من
ااعدم بهبود در يهترين شايستكى جمعيت در لى جند تسل متوالى
"اراس شایستگی جمعيت از بك مقدار مشخصى بائين تر يايد ويا ابنكه در على جند نسل متوالى مشخص» تفيير نکن
۱۰۰ دور جرخش حلقه اصلى برنامه قرار دهيم.
عيجرين مايسككن سيت فريك خدخاسى كمترعود
لاشرايط ديكرى نيز مى توانيم تعريف كنيم و همجنين مى توانيم تركيبى از موارد فوق را به عنوان شرط خاتمه به كار بنديم.
صفحه 32:
مزایا و معایب (ستفاده (ز (لکوریتم های ژنتیک Jenetic
تسس وود
این نکته که لگوریتم های ژنتیک خوب یا بد هستند. تا حد زیادی به مساله مربوط می شود
اين الكوريتم ها بارامترهاى بسيار زيادى دارند كه با تنظيم صحيح اين پراترامی تون تاج سیر متفاتی. بدست باريم.
۳ _ مزایای الكوريتم هاى زنتيك
"اين الكوريتم ها هميشىه يك جواب نسيتاً خوب ييدا خواهند كرد
*در هر مرحله از كار مى توانيم الكوريتم را متوقف كنيم. در اين حالت نيز يك جواب خواهيم داشت.
* به راحتى مى توانيم اين الكوريتم ها را بصورت موازى بر روى جند بردازتده اجرا نیم
*فهم آسان و مجزا بودن
*بشتيباتى از بهينه سازى جند تابعى
*هميشه یک جواب داریم که با گذشت زمان بهتر می شود
#روشهلى مختلفى براى افزايش سرعت و بيشرفت الكوريتم وجود دارد
*بهره بردارى ساده از جواب قبلى.
*نعطاف پذیربرای کاربرد های ترکیبی.
صفحه 33:
معایب (لکورتم های ژنتیک Jenetic
سرصپرسرسپپسشسمسىپكِكِ۳ | “algorithm
مایب
* یک جولبخوب ی میکند وی سکن ست جواب يهيثه را يدا نكت
* به حافظه و محاسيات زيادى نياز اند
* در مود نک وب بدا شنده جقدر خوب لست و أي جواب يهترى وجود دارد نمى تانيم هيجكونه ادعائى داشته اشيم
ght raga” رن
* در دوباراجرای مخلفه جواب های متفاوتی دیافت می کنیم
* تعدذ باراترهلى الكوريتم: هر جندالكويتمهاى زنتيكى در دسته الكوريتمهلى بهنهسازى قرار ميكيرنك ام تظیم رن ان زرا
کم یک مد ات گر بل رم ید
* نحوه كديذكء نوع عملكر تركيبه نرخ تركيب» نوع عملكر جهش. ترخ جهش
صفحه 34:
فهرست مطالب Jenetic
“algorithm
18 استراتژیهای جستجو (مقدمه)
8 الگوریتمهای تکاملی (پیشینهکاری)
© الكو ريتمهاى رنتي
# جند اصطلاح
¥ آشنایی با الگوریتم های ژنتیک
قد ساختار الگوریتم های ژنتیک
عملگر های الگوریتم ژنتیک
* مزایای الگوریتم ژنتیک
# معایب و اشکالات وارد به الگوریتم های ژنتیک
© برنامه نویسی ژنتیک
+ تاریخچه
¥ قدم های اولیه برنامه نویسی ژنتیک
أ برنامه نویسی ژنتیک
# مشکلات برنامه نویسی ژنتیک
88 كاريرد ها
ele a
صفحه 35:
برنامه نویسی ژنتیک Jenetic
يصى«صآپپپسشسمسىپِكِك۹كِ۳ | “algorithm
تارفچه
ابرنامه تويسى زنتيك در أوائل دهه تود ميلادى بوسيله. 16023 101108 در أمريكا مطرح شد و به تدريج توسعه داده شد البته لازم به ذكر
است كه بيشترين بيشرفت ها ذر اين زمينه نيز يوسيله خوذ آقای 6023 هر طى سالهاى متختلف ارائه شده اسست .
برنامه نويسى زنتيك جيست؟
برنامهنویسی ژنتیک در واقع به هدف ماءیعتیبرنامه نويسى اتوماتيك
js Automatic Programming, Program synthesis, Program induction cyst b «)
شناختهمی شود Tell پرورش یک جمیت از برنامههای کامبیوتری می رسد. رورش این جمیت با استفاه از تسخه هام گرفته از
عملهاى انتخاب و توليد مثل بيولوثيكى صورت مى كيرد
صفحه 36:
Jenetic (Parse Trees) 45 csla cap
‘algorithm ِكِكىسىسشسپپپآسرسرسس,پچر
یی هی مر هت لا ری تاکز ی 73
اه یک فسات که
برنامه بايستى در ابتدا به يك شكل بيهترى تبديل شود. بنبراين كامبايلرها سعى می کنن که aly نوشته 2
درختهاى تجزيه نام تارك تبديل كنند
ذر جريان كامبايل يك برنامه سطح بالا (مفل 6/+)» كد نوشته شدهه به يك ذرخت تجزيه تبديل مى شود تا كامبايلر راحت تر بتوئد بر روى أن
کار کند. از طرق ديكر در صورتى ته مأ در برنامه تويسى إنتيف از اين ساختار استفاده كنيم. هم تعریف عملكرهلى توتقيق بر روى آن سنأدم قر لست و
با موفقيت درخت
هم دردسر خطيابى كدها و اصلاح خطاهاى دستورى را نخواهيم داشستد زيرا در صورتى كه كامبايلر بتوائد از روى برنامه نوشته
تجزيه را ايجاد كند. برنامه نوشته شده از لحاظ دستورى خطائى ندارد.
به عنوان مثال براى عبارت ((10+32)+ لا/)")-((إلا, *)/5010)*؟) درخت تجزيه به صورت زد
صفحه 37:
قدم های (ولیه برنامه نویسی ژنتیک Jenetic
تس سس وود
ca sonra aig سر ی وش ی
سطلح بالا را به فرم مناسب الگوريتم تیک تبدیل کنیم.پنج قدم اساسی زیر را بید در ابتدا بوسيله يك عامل انساتى: انجام دهيم:
يك مجموعه از عناصر بايانى تعيين كنيمة
عناصر بايائى: متفيرهاى مستقل مساله توابع بدون يارامتر ورودى يا ثبت هابى هستند كه بصورت تصادفى إيجاد شده اند
۳ مجموعه توابع اوليه كه بايستى برنامه بر بيه آنها وید شود
۳ معا شایستگی رای اينكه بوسيله أن بتوانيم برنامه هاى توليد شده بوسيل الكوريتم زنتيك را رزيابى و برنامه هاى بهتر را شتاسائى
(oes
abel LAS cles lea (F
ترخ بازتركييى وس
0( شرط خاتمه و روشى برلى اينكه نتيجه اجر را بتونيم تعيين كنيم.
تک مور نياز حستند, به عنوان مثال نوع انتخاب والدين و انتخاب فرزتدان. ترخ جهش,
صفحه 38:
برنامه نویسی ژنتیک به همرژه یک مثال Jenetic
algorithm
روند جرایالوریتم های ژنتیک را بدين صورت در نظر كرفتيم
6 اج یک جسیت اد
؟) ازابی عاصر جمیت
۲ بزترکیی
oe ft
۵) تکرر ماد فوق تا زمنی که به تتچه مود نظرنرسیده یم
“در رابطه با نامه تویسی تیک hl) Aci مد برلى مسالة) كروموزومها را بصورت درخت هلى تجزيه درنظر مى كيريم .
مثال) مساله يافتن برنامه الى برلى محاسبه تايع +01 با استفاده از توايع *0,01 لالظ و 8401 را مطرح و نشان مى دهيم كه الكوريتم
به صورت نمادین, چگونه چواب مورد نیز را پیداخواهد کرد
صفحه 39:
برنامه نویسی زژنتیک Jenetic
يصى«صآپپپسشسمسىپِكِك۹كِ۳ | “algorithm
جدول درستى برلى توابع :800:7 :+01 :0 لالظ و 018)! به صورت زیر اس
4 B AandB |AorB |notA |notB | Axor B
True |True | True [True | False | False | False
tae [Fae [rae [ee ی علس | te
False |True False | True | True |False | True
False [False False | False |True |True False
برای حل مساله با أستفلاه از برنامه تويسى زتتيك به این صورت عمل می کنیم که مجموعه عملگرهای متطقی (۱۷۵ ,088 ,1۸۱0
را به عنوان False} aegane y atin aly ,©7610 ,8 ,8) را به عنوان عناصر ياياثى مطرح مى كنيم. دو نکته در اینجا مهم است .
که الا هر تركيبى از توابع كه در درخت تجزيه وارد شود قابل ارزيابى است و باعث بروز خطا نمى شود و دوم اينكه مساله با استفاده از توابع و
يايانى هابى كه ذكر شده استه قابل بزسازی است.
صفحه 40:
Jenetic
برنامه نويسى زنتيى
algol
m
قدم اول: ايجاد جمعيت اوليه.
تکته ای که در مورددرختهایی كه به جمعيت اضافه مى شوند: بايستى مدنظر قرار كيرده كنترل عمق درخت ها است.
” در توليد جمعيت اولیه دواستراتزی مختلف وجود دارد:
ش اول این است که تممدرختهای وی اجاد شده یک عمق مشخص داشته و بصورت پر اشند روش توید این درختها بان شکل
است که بصوت تصاذفی و سح به سح از توبعموجو بصورت تصاافی تخاب و بهجای کرههای درخت pal yy gl and yo NB
تكرار مى شود تابه بيشترين عمق مورد نظر برسيم؛ در اين حالت برلى سطح آخر » از مقادير مجموعه بايانى ها به جاى كره هلى درخت قرار
می دهیم تا یک درخت تجزیه کامل تشکیل شود. البته مى توانيم درخت هاى ير با عمق هاى متفاوت به عنوان جمعيت اولي توليد كنيم. كه
معمولاً روش دوم بهتر است.
صفحه 41:
برنامه نویسی تیک
در روش دوم به ين صورت عمل مى شود که محدودیتی در نوع درخت ايجاد شده أو
درخت تجزیه معتبرداشته باشیم و اينكة عمق درخت ايجا شذه از خداكثر مجاز قراتر ترود تمونه تشكيل اين فرختها در شكل زير نشان داده
صفحه 42:
برنامه نویسی ژنتیک Jenetic
(0(پپبسشسمسىكِ۳ “algorithm
قدم دوم: ارزيابى عناصر.
برلى ارزيابى يك كروموزم بايستى بتوانيد روشى را بدست بياوريد كه بصورت عددى بيان كند كه يك برنامه جقدر خوب است و در واقع جقدر
لتاق نزد میا زد کن سول زد اه این نوت تک نارای معط مین ازج .نی
کند وب رای خروجی ره شده توسط امه یا میکنند که بنمهچقدرتونتهاست هدف موردتظر مار برآورهکند بای مال ما
بايستى نتيجه خروجى را برلى جهار حالت ممكن برلى 8١ و 8 امتحان كنيم و بر ساس جدول درستى تعيين كنيم كه برنامه جقدر توانسته.
است. خروجى متاسب را توليد كند. البته ذر حالت كلى ممكن است كه براى يك برنامه تست های مختلفی برای ارزیابی آن طراحی شود.
صفحه 43:
برنامه نویسی تیک
قدم سوم: بازتركيبى.
براى انجام بازتركيبى به سادكى به ين صورت عمل مى كنيم كد دو عنصر إزير درخت يا باياى) را أز دو درخت بدرء به صورت تصادفى
انتخاب مى كنيم و أنها را بين دو درخت جابجا مى كنيم. به عنوان مثال برلى برنامه هلى مثال قوق اين عمل به صورت زير خواهد بود
za 0 3
5 Se
5 9 Cy
آگر والاین را به صورت زیر درنظر بگیریم:
صفحه 44:
برنامه نویسی ژنتیک Jenetic
algori
با اتخاب كره هاى 014 و 8 به ترتيب از درختهای راست و چپ فرزندان حاصل از یل دو درخت در ث بزترگیبی به صورت زیر خواهند بو
ix (۳ = )
صفحه 45:
برنامه نویسی زژنتیک Jenetic
algorithm
قدم چهارم: چوش.
USED Vale VARS ESS CAN Vk as cal ips inlay seals ند اتیب Uae a
باياتى ديكرى جايكزين كنيم. حتى ممكن است كه به إين شكل عمل كنيم كه به جلى يك زير درخت يا این یک زیر درخت ديكر
كدي ريذن كس ليد بجمميت أوليد لنت حب أيجاد د فست) رأ جاركدين من na phe hag popes كد بكولميم يكدوير
ت ديكر جابكزين كنيم. برلى انجام كار بايستى تمام زير درخت مربوطه را از درخت حذف كنيم و به جلى أن یر
دهيم. اما آكر مى خواهيم يك بايانى رابا ت جايكزين كنيم. روند كار به ين صورت است که بهجای
كره باياتى زير درخت مورد نظر را قرار مى دهيم. براى درك بهتر مطلب تصوير زير را داري :
درخت را یک زر در
0 60
صفحه 46:
مشکلات برنامه نویسی ژنتیک Jenetic
‘algorithm ..
ابه طور كلى مشكلات برنامه نويسى Se را مى توان بصورت زير ليست كنيم:
“قضاى بسيار وسيع مساله (تعداد زياد توابع. متفيزهاء ثابت ها عملگرها و .و ترکیب های مختلف آنها|
كروموزومها در هر نسل [محاسبه شايستكى تمام عناصر زمان بر است)ل
*زمان زياد برلى تست اينكه جواب يك كروموزوم إبرنام) به ازلى ورودى هلى متفاوت (كه در موا
نزديك است (محاسبه شايستكى كروموزوم.
“الكوريتم زنتيك استقاده شده براى يافتن جواب بايستى تعداد نسلهاى بسيار زيادى كار كند. براى يك مساله ساده ممكن است نياز باشد كه
الكوريتم زنتيك جند صد هزار نسل كار كد
بادر نظر كرفتن موارد فوق مى بينهم كه برنامه نويسى زنتيك برلى بيدا كردن جواب هاى مناسبه نياز به كامبيوترهاى بسيار سريع دارد.
لكقهغ برا اينكه يك برنامه نويسى إنتيك با موققيت به تنه يرسدء كاملا به تحود تخاب عملگرها و تابع از یک طرف و یی های
درخت هلى تجزيه دارد. اتتخاب درست اين موارد نه تنها رسيدن به جواب را تضمين مى كتده يلكه در سرعت رسيدن به جواب نهز قاثير
قرأوانى دارد
صفحه 47:
کاربرد (لگوریتم های ژنتیک Jenetic
aes شناسابى جهره با استفلاه از تصوير قبت شده به همت مبتكران ايرائى طراحى و ساخته شده ات
فاصله اجزلى ججهره و ويزكى هاى محلى و هندسى صورت م ى كيرد كه تغييرات ناشى از كيم تغييرات نو و
*همجنين كرافها براى جهرءهاى جديد با استفاده از الكويتم,هاى زنتيك ساخته شده و با استفلاه از يك تابع gL قايل مقايسه با يكديكر هستند
كه اين امر تثير بسزابى در اقزايش سرعت تنناسابى خواهد دائسته
*توبولوزى هاى شبكه هاى كامبيوترى توزيع شده.
(cast) nnd Sle Sle ile ay?
Crooked-Wire Genetic Antenna zicste uly *مجندسى برق
*مهندسی نرم فزار
ole sil? کامپیوتری
*مهندسی مواد
(Data mining) os gical 5,8 pass
*خل مسئله فروشئدة دوه کرد
*آموزش شبکه های عصبی مصنوعی
*باددهى رقتار به ره با 3۸
*يادكيرى قوانين فازى با استفاده از الكويتم هاى زنتيكد
صفحه 48:
نتيمه كيرى Jenetic
کت(
الگوریتهای تیک لگوریتمهایی هستند که دای قدرت بسیرزادی در يافتن جواب مسئله هستند.
ابن الكوريتم هارا در مسائلى در نظر گرفت که درای
فضاى حالت بسيار يزرك هستند و عملاً بررسى همه حالتها براى انسان در زمانهاى نرمال (در حد عمر بشر) ممكن نيسته
اما بایدتوجه داشت که شاید بتوان کاربر اصلی
ار یقت مه سار راتخاف مفلل زازه قيوستل اب تفر ی
ean ربتک رک که کت Si a Ha BE pgp
کدی کهامیتوانیج صيور کنیع که جر glad حالات مسه به نوی جوا مععول پزاز prs
صفحه 49:
Jenetic zp
algorithm
@www.genetic-programing.com/johnkoza.html
@www.genetic-programing.com
@www.generation5.org
@www.ilam.ac.ir/weblogs
ی 1
اطلاعات شخصی ناقص و منقوص
صفحه 50:
یک پیام و پایان Jenetic
“algorithm
هميشه سعى كنيم بهترين باشيم نه مهمترین
با تشكر
ساغ (ولاسيز