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