حل مسئله مسیریابی وسایل نقلیه چند انبار با پنجره زمانی با استفاده … |
جانشین شدن بازی به جای باز دیگر در طول زنجیره DNA
جهش
یک جمعیت از رشته به صورت تصادفی انتخاب، مقدار آن تغییر مییابد.
ایجاد نسلهای جدید و تکامل موجودات
تکرار مراحل فوق از مرحله تکثیر
بدین ترتیب پس از تکرار چندین نسل، شایستهترین نسل که همان پاسخ بهینه مسأله میباشد تولید خواهد شد. با شبیهسازی ریاضی عملگرهای ژنتیک در طی یک جستجوی همه جانبه و یا تکامل تدریجی بر روی یک جمعیت از جوابهای در طی دنبالهای از نسلها، در پی یافتن متکاملترین نمونه است که به بهترین وجه تابع هدف را بهینه و محدودیتها را تامین میکند.
الگوریتم ژنتیک فضای جواب را جستجو میکند. تا رشته دارای بالاترین میزان تطابق را از میان رشتههای کاراکتری ممکن بیابد.
۳-۳-۳- واژگان الگوریتم ژنتیک
از آنجا که الگوریتم ژنتیک از هر دو علم کامپیوتر و ژنتیک طبیعی نشات گرفته است واژههای مورد استفادهاش مخلوطی است از واژههای طبیعی و مصنوعی مفاهیم اولیه که در فهم الگوریتم ژنتیک بسیار حیاتی هستند عبارتند از :
کروموزوم : اساس الگوریتم ژنتیک تبدیل هر مجموعه جواب به یک کدینگ است. این کد را اصطلاحا کروموزوم گویند. به کروموزوم، فرد[۶۳]، رشته[۶۴]، یا ساختار[۶۵] نیز گفته شده است. همچنین میتوان آنها را ژنوتایپ[۶۶] نیز نامید.
فنوتایپ[۶۷] : هر کروموزوم متناظر با یک مجموعه جواب از مسأله است مجموعه متناظر با هر کروموزوم را یک فنوتایپ میگویند.
ژن : عناصر تشکیلدهنده یک کروموزوم که معمولا اعداد هستند را ژن میگویند. ژنها را ویژگی[۶۸]، نشان[۶۹] و رمز گشا[۷۰] نیز نامیدهاند.
مکان : محل قرار گرفتن ژن در کروموزوم را یک مکان میگویند.
جمعیت : مجموعهای از کروموزومها را یک جمعیت میگویند.
نسل : هر تکرار از الگوریتم را یک نسل میگویند.
۳-۳-۴- ساختار کلی الگوریتم ژنتیک
ساختار کلی یک الگوریتم ژنتیک را میتوان به این صورت تصور کرد. ابتدا پیش از هر چیز باید مکانیسمی برای تبدیل هر جواب مسأله به یک کروموزوم تعریف کرد. پس از آن یک مجموعه از کروموزومها که در حقیقت مجموعهای از جوابهای مسأله هستند به عنوان یک جمعیت آغازین[۷۱] تهیه میگردند. این مجموعه که اندازه آن دلخواه است و توسط کاربرد تعریف میشود اغلب به صورت تصادفی ایجاد میگردد. بعد از این مرحله باید با بکارگیری عملیات ژنتیک اقدام به ایجاد کروموزوم جدید موسوم به فرزند[۷۲] نمود. این عملیات به دو گونه عمده ترکیبی و جهشی تقسیم بندی میشوند. همچنین برای گزینش کروموزومهایی که باید نقش والدین را بازی کنند دو مفهوم نرخ ترکیبی[۷۳] و نرخ جهشی[۷۴] کاربرد فراوان دارند که این دو نیز پیش از شروع الگوریتم توسط کاربرد تعیین میشوند. بعد از تولید یکسری کروموزوم جدید یا اولاد باید با استفاده از عمل تحول[۷۵] اقدام به انتخاب[۷۶] برازندهترین کروموزومها نمود. این فرآیند که در فرآیند انتخاب نمود مییابد گلچین کردن کروموزومهای برازنده در میان والدین، فرزند است به طوریکه تعداد کروموزومهای منتخب برابر با اندازه جمعیت اولیه باشد. فرآیند انتخاب مبتنی بر تعداد برازندگی[۷۷] هر رشته است. در حقیقت فرآیند ارزیابی محوریترین بحث در فرآیند انتخاب است. تا بدین مرحله یک تکرار یا یک نسل از الگوریتم طی شده است. الگوریتم بعد از طی چندین نسل به تدریج به سمت جواب بهینه همگرا میشود. شرط توقف مسأله نیز طی کردن تعداد معینی تکرار است که پیش از آغاز الگوریتم توسط کاربر تعیین میشود. ساختار کلی یک الگوریتم ژنتیک را میتوان به صورت ذیل بیان کرد (ژن،۲۰۰۰):
Procedure: Genetic Algorithm
Step1: set t: =0
Step2: Generate initial population P (t)
Step3: Evaluate P (t) to create fitness values
Step4: While (not termination coordination)
Step5: Recombine P (t) to yield C (t), selecting from P (t) according to the fitness values
Step6: Evaluate C (t)
Step7: Generate P (t+1) from P (t) and C (t)
Step8: set t: =t+1
Step9: End.
Step10: stop.
در این الگوریتم داریم :
والد نسل t ام P (t) =
فرزند نسل t ام C (t) =
اما هالند که خود از پیشگامان الگوریتم ژنتیک است در کارهای ابتدایی خود از انتخاب برای برگزیدن والدین استفاده میکند. یعنی با استفاده از عمل تحول یک جمعیت گلچین شده به عنوان والدین ایجاد وسپس با استفاده از آنها اقدام به تهیه تعدادی فرزند مینماید. در این گام نیز برای ثابت نگاه داشتن اندازه جمعیت، فرزند تولید شده جایگزین والدین مربوط شوند.
۳-۳-۵- مفاهیم کلیدی الگوریتم ژنتیک
[جمعه 1399-09-21] [ 01:05:00 ق.ظ ]
|