فایل شماره 5715 |
انتخاب تورنومنت ((Tournament Selection:
یک سری از صفات یک جامعه انتخاب میگردند و اعضای آن مجموعه با یکدیگر به رقابت میپردازند تا سرانجام از هر زیرمجموعهای فقط یک صفت برای تولید انتخاب شود.
۳-۳-۲ عملگر آمیزش (Crossover):
هدف تولید فرزندی جدید به امید اینکه ویژگیهای خوب والدین دران جمع شده باشد موجودی بهتر از والدین خود باشد.روش کار بهصورت زیر است:
بهصورت تصادفی یک نقطه از کروموزوم را انتخاب مینماییم و سپس ژنهای بعدازآن نقطه را جابهجا مینماییم.
تلفیق تک نقطهای (Single Point Crossover)
هرگاه عملیات تلفیق در یک نقطه انجام شود به آن، تلفیق تک نقطهای گفته میشود. روش کار در تلفیق از ترکیب کردن کروموزومهای پدر و مادر به دست میآید. روش تولیدمثل نیز به این صورت است که در ابتدا بهصورت تصادفی، نقطهای که قرار است تولیدمثل ازآنجا آغاز شود، انتخاب شود و سپس اعداد بعدازآن به ترتیب از بیتهای کروموزومهای پدر و مادر قرار گیرد.
شکل ۳-۲ نمونهای از تلفیق [۱۳]
با توجه به شکل، کروموزومهای ردیف ۱ و همچنین ردیف ۲، نقش پدر و مادر رادارند و نتیجه تولیدمثل آنها در Offspring ذخیرهشده است. علامت “|” نشاندهندهی نقطهی شروع تولیدمثل است. شایانذکر است اعدادی که بعد از نقطهی شروع و در Offspring1 قراردادند مربوط به بعد از نقطه شروع کروموزوم ۱ و اعدادی که بعد از نقطهی شروع تولیدمثل و در Offspring2 قراردادند مربوط به بعد از نقطه شروع تولیدمثل کروموزوم ۲ میباشند
ادغام دونقطهای ((Two-point CrossOver:
دو مکان را بهصورت تصادفی انتخاب میکنیم و سپس مقدارهای بین این دونقطه را باهم جابهجا مینماییم.
تلفیق چندنقطهای (Multipoint Crossover):
عملیات تلفیق را در چند نقطه انجام میدهد که به آن تلفیق چندنقطهای میگویند.
تلفیق جامع (Uniform Crossover):
در این نوع از تلفیق باید تمام نقاط کروموزوم را به عنوان نقاط بازترکیبی انتخاب نماییم.
۳-۳-۳ عملگر جهش (Mutation):
هنگامیکه عمل آمیزش به اتمام رسید، عملگر جهش روی کروموزومها انجام میشود. عملکرد عملگر جهش به این صورت است که بهصورت تصادفی، یک ژن از یک کروموزوم را انتخاب می کند و سپس محتوای همان ژن را تغییر میدهد تا کروموزومهای تولیدشده برای اجرای الگوریتم در دور بعد مورداستفاده قرار بگیرند. چنان چه ژن از جنس دودویی باشد، آن را به وارونش مبدل میکند و اگر به یک مجموعه تعلق داشته باشد، مقدار و یا عنصر دیگری از همان مجموعه را بهجای آن ژن قرار میدهد.
جهش
۱ ۰ ۱ ۰ ۰ ۰ ۱ ۱ ۱ ۰
۱ ۰ ۱ ۰ ۱ ۰ ۱ ۱ ۱ ۰
محل جهش جهش
شکل ۳-۳ اعمال عملگر جهش دریک کروموزوم [۱۳]
۳-۴ – روند کلی الگوریتم ژنتیک:
در الگوریتم ژنتیک نحوه نمایش دادن کروموزوم بهصورت رشتههایی دودویی میباشد. برای اینکه به راه حل های کدگذاری شده ارزشی نسبت داده شود باید تابع برازندگی تعریف نماییم. در طی عملیات اجرا، والدین برای تولیدمثل انتخاب و با بهره گرفتن از عملگرهای آمیزش و همچنین جهش باهم ترکیب میگردند تا بتوانند فرزندهای جدیدی را تولید کنند.
این فرایند را چندین بار تکرار میکنیم تا نسل بعدی جمعیت تولید گردد آنگاه جمعیت را بررسی مینماییم شرط خاتمه در آن رسیدن به ضوابط همگرایی میباشد.
جمعیت اولیه
ارزیابی جوابها
آیا جواب مورد نظر حاصل شده؟
انتخاب
تلفیق
بله
جهش
T=T+1
T=0
خیر
شکل ۳-۴ فلوچارت برنامه الگوریتم ژنتیک [۱۳]
۳-۵ روند بهینهسازی و حل مسائل در الگوریتم ژنتیک:
در ابتدا تولید تصادفی جمعیت که شامل تعدادی کروموزوم که همان روشهای حل مسئله میباشند، است.
سپس صحت و درستی تابع f(x) به ازا هر کروموزوم x در جمعیت ارزیابی میشود. آنگاه یک جمعیت جدیدی با انجام تمامی مراحل ذیل ایجاد میشود.
شکل ۳-۵ ارزیابی تابع شایستگی [۱۳]
۱- انتخاب (Selection): که عبارت است از انتخاب نمودن کروموزوم والدین از جمعیت قبلی با توجه به صحت و درستی آن (هر چه Fitnees بهتر باشد شانس بیشتری برای انتخاب دارد.)
۲- تولیدمثل (Crossover): ایجاد نسلی جدید.
۳- جهش (Mutation): یعنی مکان فرزندی که تولیدشده است در کروموزوم مشخص گردد.
۴- پذیرش (Accepting): یعنی فرزند جدیدی که ایجاد گردید، در داخل جمعیت پذیرفته شود.
۵-جایگزینی (Replace): بتوانیم از جمعیت جدید در مراحل بعدی الگوریتم استفاده کنیم و جایگزین جمعیت قبلی شود.
۶-امتحان: (Test): درصورتیکه به شرایط خوبی برای حل مسئله رسیدیم اعلام کرده و از الگوریتم خارج میگردیم. در غیر این صورت به مرحله دوم میرویم و دوباره همین مراحل را تکرار مینماییم.
۳-۶- شرط پایان الگوریتم
الگوریتمهای ژنتیک بر پایه تولید و تست میباشد درنتیجه جواب آن مشخص نیست و نمیتوانیم بگوییم کدام جواب بهینه است تا آن را به عنوان شرط بپذیریم درنتیجه ملاکهای ذیل را به عنوان شرط پایان الگوریتم در نظر میگیریم:
شرط خاتمه را تعداد مشخصی از چرخش نسل در برنامه قرار دهیم.
فرم در حال بارگذاری ...
[یکشنبه 1401-04-05] [ 09:02:00 ب.ظ ]
|