جدول ۴-۵-ماتریس اولویتها بخش دوم
در این بخش هر مشتری، نیاز دوره خود را از تولیدکننده ها دریافت می کند.مشتریان بر اساس اولویت وباتوجه به ظرفیت تولید کننده ها ، تقاضای خود را دریافت می نمایند. به عنوان مثال در نمونه بالا ، ابتدا تقاضای مشتریان ۲ از تولید کنندگان ۱ دریافت می گردد. برای تأمین تقاضای مشتریان ابتدا محصولات درجه ۱، سپس درجه ۲ ودرنهایت از درجه ۳ استفاده می گردد.در مثال فوق فرض کنیدمیزان موجودی محصول نوع ۱ در تولید کننده۱برابر ۵۰ واحد، اما تقاضای مشتری دوم ۷۵ واحد است.بنابراین ۵۰ واحد از تقاضای مشتری ۲ از تولیدکننده ۱ ومابقی آن از تولیدکننده ۲ دریافت می گردد.
درهر کروموزوم باداشتن اطلاعات مربوط به این سه بخش کروموزوم، تمام متغیرهای مسأله قابل محاسبه می باشند.
۴-۲-۲- نحوه تولید جمعیت اولیه[۷۴]
بعد از تعیین ساختاری برای نمایش جوابهای مسأله، اولین گام از الگوریتم، تولید جمعیت اولیه جوابهاست. بیشتر الگوریتمهای فراابتکاری تکاملی جمعیت محور، از یک رویکرد تصادفی برای تولید جوابهای اولیه استفاده می کنند. در اینجا هم همین رویکرد اتخاذ شده است. به این ترتیب که برای هر یک از افراد جمعیت، یک کروموزوم تصادفی ایجاد می گردد، کروموزوم تولید شده مورد بررسی قرار می گیرد و در صورتی که هیچ یک از محدودیت های مسئله را نقض نکند مورد تأیید قرار می گیرد ودر غیر این صورت کروموزوم تولید شده رد و تولید تصادفی کروموزوم مجدداًٌ صورت می پذیرد. این فرایند آنقدر تکرار می گردد تا جمعیت اولیه کامل گردد.
۴-۲-۳-ارزیابی[۷۵] جوابها
در گام بعدی الگوریتم، جمعیت تولید شده باید ارزیابی شوند. برای این منظور ابتدا باید کروموزومهای تشکیل یافته، با روش کدگشایی توضیح داده شده، به جوابهای معادل تبدیل گردند. همانطور که در بخش قبل اشاره شد، با داشتن سه بخش یک کروموزوم تمام متغیرهای مسئله قابل محاسبه می باشند وبنابراین با قراردادن این مقادیر در توابع هدف ،مقادیر توابع هدف قابل محاسبه هستند.بعد از آن نوبت به رتبه بندی جوابها و قرار دادن آنها در جبهههای مختلف از نظر درجه نامغلوب بودن، با بهره گرفتن از روش مرتبسازی نامغلوبی که قبلاً شرح داده شد میرسد. سپس فاصله تراکمی نیز طبق رویه گفته شده در قبل، برای جوابها محاسبه میگردد.
۴-۲-۴- مکانیزم انتخاب[۷۶]
برای تولید جمعیت فرزندان از والدین، نیاز هست که طبق مکانیزم خاصی از بین والدین، تعدادی جهت اعمال عملگرهای تقاطع و جهش انتخاب شوند. روش انتخابی که در این الگوریتم بکار گرفته می شود، مسابقه دودویی[۷۷] مبتنی بر عملگر مقایسه تراکمی است که قبلاً تشریح شده است.
در واقع این روش مکانیزمی برای پیاده سازی دو مفهوم مرتب سازی غیر مغلوب وفاصله ازدحام است. این روش به صورت زیر بیان می شود:
- ابتدا دو کروموزوم را به طور تصادفی انتخاب کنید.
- برنده بین این دو کروموزوم که به صورت زیر تعیین می شود، به عنوان خروجی انتخاب می شود.
- آنکه شماره جبهه پایین تری دارد
- در صورت برابری شماره جبهه ها، آنکه فاصله ازدحام بزرگتری دارد.
نحوه جبهه بندی و تعریف دقیقی از فاصله ازدحامی به صورت مبسوط در قسمت ۳-۵ توضیح داده شده است.
۴-۲-۵-عملگرهای ژنتیک
ایجاد جمعیت فرزندان از والدین که در راستای تولید جوابهای با کیفیت بهتر از نسل قبل انجام میگیرد و در واقع روندی تکاملی محسوب می شود، در الگوریتمهای ژنتیک تکامل جمعیت از طریق عملگرهای ژنتیکی همچون تقاطع وجهش و نخبه سالاری صورت می گیرد. اما هر کدام از این عملگرها، برای مسائل مختلف، انواع متنوعی دارند که کارایی هر کدام از آنها در پیشرفت الگوریتم می تواند متفاوت باشد. در ادامه عملگرهای تقاطعی و جهشی که در این پایان نامه بکار گرفته شده اند، معرفی میگردند.
۴-۲-۵-۱- عملگرهای تقاطعی[۷۸]
عملگر تقاطع به منظور انتقال ویژگی های مشابه از والدین به فرزندان نسل بعد انجام می شود. در واقع باید هر فرزند بخشی از ویژگی های خود را از یک والد وباقیمانده را از والد دیگر به ارث ببرد. اگر عملگری چنین شرایطی را تضمین نکند دیگر عملگر تقاطع نامیده نخواهد شد، بلکه به آن عملگر جهش می گویند. معمولاً عملگر تقاطع دو والد را دریافت وحداکثر دو فرزند تولید می کند. پس بنابراین جهت انجام تقاطع ابتدا باید والدین(کروموزوم هایی که عملگر تقاطع روی آنها اعمال می گردد) انتخاب شوند.نحوه ی انتخاب والدین نیز در این تحقیق همانطور که اشاره شد روش تورنومنت است.نحوه اعمال عملگر تقاطع بر روی والدین انتخاب شده بدین صورت می باشد که برای هر بخش از کروموزوم یک ماتریس راهنما با ابعاد همان بخش ایجاد می گردد که درایه های آن ازاعداد باینری تشکیل شده اند.نحوه تولید فرزندان از طریق ماتریس راهنما به صورت شکل زیر می باشد.
۰٫۴۷
۰٫۲۵
۰٫۳۱
۰٫۹۱
۰٫۳۶
۰٫۲۵
۰٫۵۲
۰٫۹۱
فرزند اول
ماتریس راهنما