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