راهنمای نگارش پایان نامه درباره : استفاده از الگوریتم بهینه سازی مبتنی بر آموزش- یادگیری برای ... |
![]() |
شکل ۴-۶ نتیجه زمانبندی سری پسرو برای مثال۴-۴[۶۴]
حال در مرحله بعد زمانبندی سری پیشرو را انجام میدهیم. فعالیتها را بر اساس زودترین زمان شروع که در مرحله قبل بدست می آید، اولویت بندی میکنیم. ابتدا فعالیت۳ سپس فعالیت۲ و به همین ترتیب تا آخرین فعالیت یعنی فعالیت ۸ را به روش سری زمانبندی میکنیم. . نتیجه زمانبندی سری پسرو در شکل ۴-۷ نمایش داده شدهاست.
برای همین مثال میتوان زمانبندی موازی پسرو و زمانبندی موازی پیشرو را نیز انجام دهیم. شکلهای ۴-۸ و ۴- ۹ به ترتیب نتایج این زمانبندیها را نشان میدهد.
شکل ۴-۷ نتیجه زمانبندی سری پیشرو برای مثال۴-۴[۶۴]
شکل ۴-۸ نتیجه زمانبندی موازی پسرو برای مثال۴-۴[۶۴]
شکل ۴-۹ نتیجه زمانبندی موازی پیشرو برای مثال۴-۴[۶۴]
۴-۴ حل مسئله زمانبندی پروژه با منابع محدود به وسیله الگوریتم فراابتکاری بهبود دهنده مبتنی بر آموزش- یادگیری
همانگونه که در بخش ۴-۳ بیان شد، الگوریتمهای ابتکاری بهبود دهنده، در ابتدا پروژه خالی نیست و شامل یک سری زمانبندیهای ممکن است و الگوریتم در پی بهبود این زمانبندیهاست. خروجی الگوریتمهای فراابتکاری سازنده (مانند روشهای سری و موازی) به الگوریتمهای بهبوددهنده داده میشوند، تا نتایج بهتری کسب شود. در فصل ۳ الگوریتم بهینهسازی مبتنی بر آموزش- یادگیری (TLBO) معرفی شد. این الگوریتم را اولین بار برای حل مسئله RCPSP بکار گرفتهایم. در این الگوریتم تعدادی فراگیر (دانش آموز) داریم. هر دانش آموز معادل یک زمانبندی شدنی است. تعداد فعالیتها نیز معادل تعداد موضوعات تدریس است. حل مسئله RCPSP با الگوریتم ETLBO دارای چند مرحله است، که در ادامه توضیح داده شدهاست.
۴-۴-۱ ایجاد جمعیت اولیه
ابتدا به دنبال تعدادی جواب شدنی به عنوان جمعیت اولیه برای مسئله RCPSP هستیم. برای تولید هر جواب شدنی که معادل یک دانش آموز است، ابتدا یک جایگشت از اعداد صحیح بین ۱ تا m را بصورت تصادفی ایجاد میکنیم، m تعداد فعالیتها است. هر عدد تولید شده، نماینده یک فعالیت است. نگارشهای جدید نرمافزار مطلب، تابعی بنام randperm[68] برای تولید اعداد صحیح تصادفی غیر تکراری دارد که میتوان از آن برای تولید جایگشت مورد نظر استفاده نمود. روش دیگر و عمومیتر این است که m عدد تصادفی بین ۰ و ۱ تولید کنیم و سپس این اعداد را بصورت نزولی مرتب کنیم. یعنی آرایهای m عنصری و مرتب از اعداد تصادفی تولید می شود، اندیس عناصر آرایه را بعنوان شماره فعالیت در نظر میگیریم، در نتیجه جایگشتی از شماره فعالیتها تولید می شود. بنابراین براساس جایگشتها، دو لیست شامل لیست اعداد تصادفی و لیست شماره فعالیتهای متناظر با اعداد تصادفی را داریم. لیست فعالیتها، هنوز روابط پیشنیازی را در نظر نگرفتهاست. فعالیتها را به صورت نزولی ( از m به ۱) و به ترتیب، در لیست فعالیتهایی که بدست آوردهایم، جستجو میکنیم و جای آن فعالیت در لیست را با جای پیشنیازی از آن فعالیت که بزرگترین اندیس دارد و پس از فعالیت مورد نظر قرار دارد، تعویض میکنیم. در واقع درلیست فعالیتها، مکانهایی که روابط پیشنیازی را نقض می کنند، پیدا میکنیم و جای آن را با پیشنیازی که بزرگترین اندیس دارد، تعویض میکنیم. همچنین میتوانستیم برای اعمال شرط پیشنیازی، از انتهای لیست فعالیتهایی، که از اعداد تصادفی ساختیم، یکی یکی فعالیتها را چک کنیم و هر فعالیت که شرط پیشنیازی را نقض کرده باشد با اولین پیشنیازش در لیست جابجا کنیم. با تکرار این عمل برای همه فعالیتها، لیستی از فعالیتها، بدست می آید که در آن قوانین پیشنیازی رعایت شده است. حال یک لیست فعالیتهای قابل زمانبندی شدن داریم که معادل یک فراگیر(دانش آموز) است. به این لیست به اختصار لیست فعالیتِ شدنی[۶۹] میگوییم. روش بالا را n بار یعنی به تعداد جمعیت، تکرار میکنیم. n تعداد دانش آموزان نیز است.
شکل ۴-۱۰ گراف فعالیت یک پروژه[۶۴]
فرم در حال بارگذاری ...
[چهارشنبه 1400-07-28] [ 01:41:00 ب.ظ ]
|