حل مسي له تخصيص منابع پروژه های چند حالته با منابع محدود بوسيله الگوريتم ژنتيک چکيده مسعود قاسم زاده ٨٢٣٢٠٠٢۵ [masood.ghz@gmail.com] دانشکده برق رايانه و فناوری اطلاعات دانشگاه ا زاد واحد قزوين بهار ١٣٨۶ در اين مقاله سعی بر ا ن شده است تا نوع خاصی از مساي ل مرتبط با برنامه ريزی تخصيص منابع در پروژه هايی با چندين حالت اجرايی با منايع قابل بازگشت و غير قابل بازگشت مورد توجه قرار گيرد و برای حل اين مسي ه از يکی از روش الگوريتم ژنتيک در دو فاز استفاده شده است.هدف از حل اين مسي له اراي ه يک راه حل و برنامه ريزی تخصيص منابع برای يک پروژه که شامل چندين فعاليت است به نحوی که هر دو محدوديت منابع و شرط پيش نيازی فعاليتها را در پروژه رعايت کرده و اين برنامه ريزی منجر به اتمام پروژه در کوتاه ترين زمان ممکن شود.مساي ل تخصيص منابع بدليل گستردگی دامنه جواب ا ن نياز به کاهش دامنه جواب داشته که سعی شده با استفاده از روش های خاص "حذفی" اين دامنه را کوچکتر کرده و سپس با ايجاد جمعيت اوليه تصادفی مرحله اول حل را به جلو برده تا پس از پايان رسيدن مرحله اول به يک مجموعه "برتر" برسيم.اين مجموعه "برتر" نود درصد جمعيت اوليه فاز دوم حل مسي له را شامل ميشود و ده درصد ما بقی را نيز بصورت تصادفی در نظر گرفته ايم.در نهايت با بررسی اين روش با استفاده از ابزار های توليد مسي له الگوريتم مورد تست قرار گرفته است که شاهد پيشرفت قابل ملاحظه ای در رسيدن به جواب بهينه می باشيم. کلمات کليدی تخصيص منابع پروژه منابع محدود. الگوريتم ژنتيک برنامه ريزی پروژه های چند حالته برنامه ريزی پروژه ١- مقدمه م سي له تخ صيص من ابع يک ی از م ساي ل ق ديمی اس ت ک ه س اليان دراز م ورد توج ه محقق ين و دان شمندان ب وده است.اين گونه مساي ل را می توان به انواع مختلفی تقسيم کرد.در يک ديد کلی از اينگونه مساي ل يک پروژه با تعداد n فعاليت نياز به زمان بندی و تخصيص منابع دارند.اين فعاليت ها م ی باي ست طب ق مح دوديت ه ای از پيش تعريف شده زمانبندی شوند.بعنوان مثال شروع شدن ي ک فعالي ت قب ل از اتم ام ي ک و ي ا چن د فعالي ت قبل ی
مجاز نمی باشد.همچنين با توجه به نوع مسي له من ابع ني ز ميتوانن د دارای مح دوديت باش ند.در اي ن مقال ه ب ه ن وع خاصی از مساي ل تخ صيص من ابع ب ا من ابع مح دود (RCPSP) پرداخت ه ش ده اس ت ک ه ع لاوه ب ر مح دود ب ودن من ابع من ابع م ورد اس تفاده در دو دس ته "قاب ل اس تفاده مج دد" و "غي ر قاب ل اس تفاده مج دد" دس ته بن دی ش ده اند.همچنين هر يک ار فعاليت های مورد نظر می توانند در چند حالت مختل ف اج را ش ده ک ه ب ر خ لاف م ساي ل تک حالته (RCPSP) بسته به حالت اجرايی ا نها مدت زمان اجرا و منابع مورد نياز ني ز متف اوت خواهن د بود.اين نوع خ اص از م سي له تخ صيص من ابع ک ه ب ه "م سي له تخ صيص من ابع پ روژه ه ای چن د حالت ه ب ا من ابع محدود" (MRCRSP) معروف است جزو کاملترين مساي ل در بحث تخصيص منابع به شمار ميرود.ه دف از حل اي ن م سي له زمانبن دی و تخ صيص فعالي ت ه ای ي ک پ روژه ب ا توج ه ب ه مح دوديت ه ای پ يش ني از و پ س نيازی و همچنين محدوديت های منابع جهت رسيدن به بهترين "طول زمان پروژه" (makespan) است. برای نشان دادن ميزان پيچيدگی مساي ل و راه حل های اراي ه شده برای ا نه ا عل م تي وری پيچي دگی م ساي ل را ب ه دس ته ه ای مختل ف easy و hard تق سيم مي شوند.( Garey and Johnson 979, Karp 975 (Lenstra and Rinnooy Kan 979, Shmoys 993, Stockmeyer 99 ک ه اي ن دس ته بن دی ارتباط مستقيمی با الگوريت اراي ه شده و پيچيدگی زمانی ا ن الگوريت دارد.مساي لی که الگوريتم های اراي ه ش ده برای ا نها دارای پيچيدگی زمانی خطی باشند easy و مساي لی که پيچيدگی زمانی الگوريم اراي ه ش ده ب رای ا ن غيرخطی و صعودی است از نوع hard تلقی ميشوند.مساي ل hard نيز ب سته ب ه ن وع م سي له و الگ وريتم حل ا ن به انواع مختلفی تقسيم ميشود.با توجه به اينکه مسي له تخصيص منابع محدود( RCPSP ) يک حال ت کل ی ازمساي ل static job shopping است در نتيجه اين مسي له (RCPSP) و مسي له تخصيص منابع مح دود چن د حالته (MRCPSP) نيز جزو دسته مساي ل NP-har محسوب می شود( 983 al..(blazewicz et دانشمندان زي ادی ب ر روی اي ن م سي له ک ار ک رده و روش ه ای مختل ف heuristic و metaheuristic جه ت حل ا ن بکار برده اند. Simulated annealing و الگ وريتم م سيره چن د م سيره بر روی رهيافت ت ک Slowski et al.[8] ک ار ک رده ان د. Drexl[3] Kolisch and ب ا اس تفاده از فرمول ه ک ردن م سي له MRCPSP ب ه ص ورت "برنامه ريزی صفر و يک" و اراي ه يک الگوريتم جستجوی محل ی اهمي ت ا ن را ب ا پي اده س ازی ي ک برنام ه ک اربردی ب رای م ديريت تولي د و عملي ات ن شان داده ان د. Boctor[3][4][5] ي ک الگ وريتم heuristic ب رای حل اين مسي له پيشنهاد کرده است که در ا ن منابع خير قابل استفاده مجدد مد نظ ر ق رار نگرفت ه اس ت.طب ق گفت ه Sprecher and توس ط بهترين الگوريتمی که برای اين مسي له اراي ه شده اس ت Hartman and Drexl[0] Drexl[9] بوده که در ا ن از روش "شاخه و برگ" استفاده کرده اند. همچن ين روش ه ای metaheuristic ني ز ب رای ح ل اي ن م سي له م ورد اس تفاده ق رار گرفت ه ان د.از جمل ه "simulated روی روش ه ای ب ر Bouleimen and Lecocp[6] and Jozefowska et al.[] annealing "ک ار ک رده ان د. Lecocq[6] Bouleimen and از دو حلق ه ج ستجو ب رای ح ل م سي له اس تفاده ک رده ان د. al.[] Jozefowska et از روش neighborhood ب رای ح ل م سي له ب صورت تغيي ر فعالي ت تغيير حالت اجرا و يا هر دو استفاده کرده است.اما افرادی نيز برای حل مسي له از روش مد نظ ر در اي ن مقال ه يعنی الگوريتم ژنتيک استفاده کرده اند که به تعدادی از ا نه ا اش اره خواه د ش د. Hartman[8] and Alcaraz al.[] et يک روش مبتن ی ب ر الگ وريتم ژنتي ک ب رای ح ل م سي له RCPSP اراي ه داده ان د.همچن ين ا نه ا اي ن روش را ب رای ح ل م ساي ل MRCPSP ني ز گ سترش داده ان د.در م سي له ای ک ه Tseng[6] and Ozdamar[7] برای حل استفاده کرده اند فقط منابع قابل استفاده مجدد مد نظر قرار گرفته ش ده اس ت.البت ه افراد ديگری نيز بر روی اين مسي له کار کرده اند که هر يک به نوعی از روش ه ای مختل ف ب رای ح ل م سي له استفاده کرده اند. همانطور که قبلا اشاره شد مسي له ای که در حال حاضر بر روی ا ن کار شده است از نوع کام ل اي ن م سي له ب وده و ب ا در نظ ر گ رفتن مح دوديت من ابع و همچن ين تق سيم من ابع ب ه دو دس ته قاب ل اس تفاده مج دد و غي ر قاب ل اس تفاده مج دد س عی دارد ت ا اي ن مح دوديتها را در قال ب ي ک م سي له چن د حالت ه ح ل کن د ک ه ب رای ح ل ا ن از الگوريتم های ژتنيک در دو مرحله استفاده ميکند. ٢- شرح مسي له مسي له مورد نظر در يک ديد کلی ي ک پ روژه اس ت ک ه از J={,,3 n} فعالي ت ت شکيل ش ده اس ت و ط ول دوره هر فعالي ت ب ا D(j) بي ان مي شود.ه ر ي ک از اي ن فعالي ت ه ا م ی توانن د در{( j)={,,3.m(j ) EM حالت مختلف اجرا شوند.تفاوت بين اين حالتهای مختلف در ادام ه بي ان خواهن د ش د.در اي ن م سي له دو ن وع منب ع وجود دارد.مجموع ه من ابع "قاب ل اس تفاده مج دد" ک ه ب ا RR بي ان مي شوند و مجموع ه من ابع "غيرقاب ل اس تفاده مجدد". NR همانطور که از اسم اين منابع نيز مشخص است منابعی که "قابل استفاده مجدد" ه ستند پ س از
و اينکه يک بار مورد استفاده قرار گرفتند پس از اينک ه ک ار ب ا ا ن منب ع تم ام ش د مج ددا قاب ل اس تفاده در ي ک فعاليت ديگر می باشند.بعنوان نمونه هنگامی که يک دس تگاه دس تگاه رايان ه شخ صی در يک ی از مراح ل انج ام پروژه مورد استفاده ق رار ميگي رد پ س از اتم ام ا ن مرحل ه ميت وان از ا ن رايان ه در مراح ل بع دی ني ز اس تفاده مجدد کرپس رايانه را ميتوان يک منبع "قابل استفاده مجدد" دانست.اما در نظ ر بگيري د ک ه در يک ی از مراح ل پياده سازی زير ساخت های شبکه در يک سازمان نياز به اس تفاده از کاب ل ه ای انتق ل اطلاع ات ب رای ايج اد بستر مناسب شبکه است.اگر از اين منبع کابل انتقال اطلاعات- در يکی از مراحل استفاده شود در مراحل بعدی امکان استفاده مجدد از ا ن منبع وجود ندارد چرا که ا ن منبع مصرف شده است و غي ر قاب ل اس تفاده مج دد می باشد. در بيان اين مسي له m(j) نشان دهنده حالت اجرايی فعالي ت j J و d(mj) بي ان کنن ده ط ول دوره اج رای فعاليت j در حالت اجرايی m و در نهايت بيانگر تعداد واحد منبع قاب ل اس تفاده مج دد واح د k RR RR r jm, k NR r jm, k بيانگر تعداد واحد منبع غيرقابل استفاده مجدد است. k NR تعداد واحدهای منابع "قابل استفاده مجدد" و "غيرقابل استفاده مجدد" بترتيب برابر با تعداد واحد ثاب ت Q و RR k NR Qkميباشد به قسمی که k RR و k NR است.در نظ ر ميگي ريم تم امی فعاليته ايی در در لحظ ه t در ح ال انج ام ه ستند را ب ا A(t) و (j m(j) EM ( بي انگر حال ت اجراي ی ا ن فعاليته ا باش ند.ب ا توج ه ب ه اي ن تعاريف محدوديت منابع "قابل استفاده مجدد" را به صورت زير تعريف ميکنيم : RR RR r jm, k QK, j A( t) k RR and t و در منابع "غير قابل استفاده مجدد" داريم : NR NR r jm, k QK, j A( t ) k NR در نظ ر ميگي ريم P(j) مجموع ه فعاليته ای پ يش ني از فعالي ت j J باش د.پ يش ني از ب ودن ب دين معناس ت ک ه فعاليت j نميتواند زودتر از اتمام تمام فعاليتهای پيش ني از خ ود ک ه ب ا مجموع ه P(j) م شخص مي شوند ش روع ش ود.طبيعت ا از خ صوصيات و ويژگ ی ه ای ه ر م سي له تخ صيص من ابع و کنت رل پ روژه داش تن اي ن چن ين محدوديت هايی است.با توجه به اينکه برای نشان دادن م سي له از روش نم ايش ش بکه "فعالي ت ب ر ن ود" اس تفاده شده است وجود دو فعاليت غير حقيقی 0 و +n ب ر روی ش بکه بي انگر اي ن ام ر اس ت ک ه اي ن دو فعالي ت صرفا جهت نمايش شروع و پايان پروژه است و هيچگونه منبعی را مصرف نميکنند. هدف از حل اين مسي له يافتن يک برنامه تخصيص منابع در کوتاه ترين زم ان ک ه تم امی مح دوديت ه ای م ا از جمله : پيش نيازی ها محدوديت منابع قابل استفاده مجدد و محدوديت منابع غير قابل استفاده مج دد را ارض اء کند.طبيعی است که تمامی فرضيات در مورد منابع بصورت يک عدد مثبت در نظر گرفته شده است. در شکل زير يک نمونه از مسي له اراي ه شده است که سعی ميشود تا پايان همين مسي له مورد توجه قرار گيرد.
شکل ١ نمونه ای از يک پروژه ٣- الگوريتم ژنتيک دو فاز در الگ وريتمی ک ه ب رای ح ل اي ن م سي له اراي ه ش ده اس ت س عی ب ر ا ن ش ده اس ت ت ا م سي له در دو مرحل ه ح ل شود.در مرحله اول به نوعی يک جستجوی کلی بر روی دامنه جوابهای م سي له انج ام ش ده و در مرحل ه دوم ب ه صورت دقيق تر تمرکز الگوريتم ب ر روی من اطق ب ا قابلي ت بهت ر و نزديکت ر ب ه ج واب و ب صورت جزي ی ت ر نگاه ميشود.با توجه به اين نگرش جمعيت اوليه تشکيل دهنده فاز اوليه بصورت تصادفی انتخ اب ش ده و در مرحل ه دوم اکث ر جمعي ت اولي ه را نت ايج حاص ل از ف از اول م سي له ت شکيل ميدهن د.در ادام ه س عی مي شود ت ا توضيحات دقيق تری پيرامون روش حل اين مسي له اراي ه شود. ٣-١ نمايش کروموزم و تابع هدف همانطور که قبلا نيز اشاره شد بع علت اينکه پروژه های ب ا توان ايی اج را ش ده ب ه ص ورت چن د حالت ه م د نظ ر است فلذا به هنگام حل و اراي ه کروموزم نيز ميبايست به نوعی "حالت" اجرايی هر فعاليت را نيز م ورد توج ه T,λ I = ( نم ايش داده مي شود ک ه قرار داد.به هم ين منظ ور کروم وزم ب ه ص ورت ي ک ب ردار دو س طری (μ سطر اول ا ن بيانگر فعاليت و سطر دوم ا ن "حالت" اجرايی ا ن فعاليت را نشان ميدهد.بعن وان مث ال ب ردار زي ر بيانگر يک کروموزوم است که فعاليتها و حالت های اجرايی ا نرا نشان ميدهد.اي ن کروم وزوم ميتوان د ي ک راه حل برای نمونه اراي ه شده در شکل ١ ميباشد. 0 I() = 4 5 7 3 6 8 تابع هدف در اين روش محاسبه "زمان" (makespan) ا ن کروموزم است.روش های مختلفی برای محاسبه زمان يک پروژه وجود دارد که يکی از کاربردی ترين روش ها استفاده از روش تخصيص"جلوگرد" Scheduling) (forward و روش تخصيص "عقب گرد" Scheduling) (Backward است که روش حل اين مسي له بسته به نوع ا ن متفاوت است.در روش "جلوگرد" سعی بر ا ن ميشود تا هر فعاليت با توجه به محدوديتهای خود در زودترين زمان ممکن شروع شود.بدين معنی که يک فعاليت که شرايط پيش فرضی ا ن رعايت شده يعنی اتمام فعاليت های قبلی و پيش نياز ا ن شروع شده است سعی ميکند تا در زودترين زمان ممکن شروع شود.اگر که محدوديتهای منابع اجازه اين کار را ندهند يعنی برای انجام و شروع فعاليت مد نظر با کمبود منبع مواجه شويم فعاليت مذکور ا نقدر به تاخير می افتد تا منابع مورد نياز ا زاد شده (فعاليتهای ديگری که منابع را در اختيار گرفته اند به اتمام برسند) و سپس اين فعاليت در زودتريت زمان ممکنه فعاليت
خود را ا غاز ميکند.به طور مشابه روش "عقب گرد" سعی بر ا ن دارد تا از يک زمان فرضی اتمام پروژه شروع کرده و فعاليتها را در ديرترين زمان ممکن و با توجه به محدوديتها برنامه ريزی ميکند. "زمان" حاصل شده که به روش ذکر شده بدست می ا يد بعنوان "تابع هدف" function) (Fitness در نظر گرفته ميشود.البته بايد توجه داشت که روش "جلوگرد" و يا "عقب گرد" تمرکز بر روی برنامه ريزی مساي ل با منابع محدود قابل استفاده مجدد هدارند.اين بدين معناست که به هنگام برنامه ريزی يک مسي له روش "عقب گرد" يا "جلوگرد" سعی ميکند تا مسي له را با محدوديت "منابع قابل استفاده مجدد" حل کرده و توجهی به محدوديت "منابع غير قابل استفاده مجدد" ندارد.پس اين انتظار ميرود که پس از محاسبه "زمان" پروژه توسط يکی از روش های "جلوگرد" و يا "عقب گرد" شاهد برنامه ريزی هايی کروموزم ها - باشيم که محدوديت "منابع غير قابل استفاده مجدد" را ارضاء نکرده اند.به همين منظور برای محاسبه "تابع هدف" از روشی که در [] اراي ه شده است برای تعيين اين دو دسته کروموزم استفاده شده است."تابع هدف" بصورت زير محاسبه ميشود. ) mak( I) f ( I) = ) max_ fea _ pop _ mak + mak( I) min_ project _ CC + SFT( I) If I is feasible If I is infeasible (3) در تعريفی که در (3) اراي ه شد و روشی که برای محاسبه "زمان" پروژه محاسبه مشود بعلت اينکه ايم مقدار کوچک است ميتواند بعنوان يک "تابع هدف" خوب در نظر گرفته شود در تعريف (3) داريم make(i) برابر است با "زمان" پروژه که با يکی از روش های "جلوگرد" و يا "عقب گرد" محاسبه ميشود.عبارت max_fea_pop_mak برابر با بيشترين مقدار "زمان" پروژه در نسل مورد نظر است.همچنين min_project_cc برابر با "مسير حياتی" ا ن پروژه است."مسير حياتی" به طول کوتاه ترين مسير يک پروزه ابلاغ ميشود که برار با حاصل جمع "زمان"اجرای هر فعاليت در "مسير حياتی" است.در واقع "مسير حياتی" شامل يک مجموعه از فعاليت هاست که هرگونه تغيير زمانی فعاليتهای اين مجموعه منجر به کوتاه شدن و يا بلند شدن "زمان" پروژه ميشود حال ا نکه ممکن است جابجايی و يا تغيير زمان اجرای ديگر فعاليتها فعاليتهايی که در مجموعه"مسير حياتی" نيستند- در "زمان" کل پروژه تغييری بوجود نياورند.و در نهايت SFT(I) نمايانگر تعداد واحد "منبع غير قابل استفاده مجدد"ی است که در کروموزم مذکور از سقف محدوديت منبع تجاوز کرده اند.در ادامه سعی ميشود تا يک مثال برای روشن شدن مطلب اراي ه شود.فرض ميکنيم نمونه پروزه ای که در شکل ١ اراي ه شد پس از برنامه ريزی توسط يکی از روش های "جلوگرد" و يا "عقب گرد" به شکل زير اراي ه شده است : 0 I() = 4 5 7 3 6 8 0 I() = 3 4 5 6 7 8 همانطور که مشاهده ميشود بدليل اينکه ()I تعداد ١۴ واحد از "منابغ غير قابل استفاده مجدد" را نياز دارد پس ()I ارضاء شده است. اين تعداد واحد از تعداد کل "منابع غير قابل استفاده مجدد" که ١۵ است کمتر می باشد.اما در مورد ()I وضع متفاوت است.اين کروموزم نياز به ٢٢ واحد "منبع غير قابل استفاده مجدد دارد که از مقدار منبع موجود بيشتر است و به نوعی از سقف اين محدوديت تجاوز ميکند در نتيجه کروموزم ()I يک کروموزم ارضاء نشده است.با توجه به ا نچه که در (3) اراي ه شد داريم :
I) mak(i()) = 6 and I() is feasible => f({i)) = 6 II) mak(i())=3 and I() is infeasible => Max_fea_pop_mak=9 and min_project_cc=0 and SFT(I())=7 F(I()) = 9 در شکل های زير راه حل های ()I و ()I نمايش داده شده اند. برنامه ريزی "جلوگرد" برای کروموزم ()I برنامه ريزی "جلوگرد" برای کروموزم ()I لازم بذکر است که برای محاسبه "زمان" پروژه از روش [963 SGS Serial[Kelley استفاده شده است. - ۴ الگوريتم ژنتيک الگوريت ژنتيک يکی از روش های بکار گرفته شده برای حل مساي لی NP-hard می باشد که با الگو برداری از طبيعت سعی بر ا ن دارد تا مساي ل را بصورت يک مدل منطبق بر ساختار ژن در ا ورده و ا ن را حل نمايد. ۴-١ جمعيت اوليه و مجموعه برتر در فاز اوليه اين روش حل جمعيت اوليه بصورت تصادفی توليد ميشوند بدين ترتيب که هر کروموزم شامل دسته فعاليتها و حالتهای مربوطه به ا ن فعاليت است که بصورت تصادفی اين کروموزم ايجاد ميشود.شايان ذکر است که تنها محدوديتی که به هنگام تعريف جمعيت اوليه فاز نخست اعمال ميشود شرط رعايت پيش نيازی در کروموزم ايجاد شده است.بدين معنا که در صورتی که در جمعيت اوليه کروموزمی مشاهده شد که پيش نيازی فعاليتها را رعايت نکرده بود با يک کروموزم ديگر که شرط پيش نيازی فعاليتها را رعايت
ب" ميکند تعويض می شود.از ا نجايی که ما مطمي ن هستيم که استفاده از روش های "جلوگرد" و يا "عقب گرد" محدوديتهای مرتبط با "منابع قابل استفاده مجدد" را ارضاء ميکند پس تنها حالتی که ممکن است برای يک کروموزم بوجود بيايد عدم رعايت و ارضاء محدوديت "منابع غير قابل استفاده مجدد" است.برای جلوگيری از اين کار به هنگام ايجاد جمعيت اوليه فاز نخست کروموزم هايی که از محدوده "منابع غير قابل استفاده مجدد" تجاوز کرده اند انتخاب شده و يک "عامل" سعی در تغيير اين کروموزم به يک کروموزم ارضاء شده می نمايد بدين ترتيب که به صورت تصادفی يکی از فعاليتها انتخاب شده و "حالت" ابلاغ شده به ا ن فعاليت به يک "حالت" با تعداد "منابع غير قابل استفاده مجدد" کمتر تبديل ميگردد.اين عمل ا نقدر ادامه پيدا ميکند تا کروموزم مورد نظر هر دو محدوديت "پيش نيازی" و "منابع غير قابل استفاده مجدد" را ارضاء کند.پس از پايان فاز اول اين الگوريتم مجموعه "برتر" حاصل ميشد که اين مجموعه شامل کروموزم هايی با تابع هدف بهتر هستند.از اين مجموعه "برتر" برای ايجاد جمعيت اوليه فاز دوم استفاده می شود.در واقع ٩٠ درصد جمعيت اوليه فاز دوم راه حل را مجموعه "برتر" فاز اول تشکيل می دهد و ١٠ درصد مابقی بصورت تصادفی ايجاد ميشود. corssover ٢ ۴ برای حل اين مسي له از دو الگوريتم crossover بر پايه two-point crossover استفاده شده است.که در ادامه سعی ميشود تا اين دو روش را توضيح دهيم. در crossover() دو نقطه برش وجود دارد بنام های cp() و cp() که cp()>cp() است.فرض M M M T F F F T کنيد دو کروموزم ) μ I = ( λ, و ) μ I = ( λ, بترتيب بعنوان کروموزم های "پدر" و "مادر" انتخاب شده اند.پس از اعمال crossover بر روی اين دوکروموزم دو کروموزم فرزند بصورت D D D T S S S T ) μ I = ( λ, و ) μ I = ( λ, بوجود می ا يند که طريقه تشکيل اين دو فرزند بدين صورت است : دو نقطه برش بر روی کروموزم ها بصورت تصادفی مشخص ميشوند.فرزند I(s) قسمت اول ژن های خود را از تکه اول کروموزم I(f) به ارث ميبرد.تکه دوم-ميانی- کروموزم I(s) از قطعه cp()-cp() کروموزم I(m) -يعنی قطعه وسط- حاصل ميشود و در نهايت باقيمانده کروموزم I(s) را قطعه cp() کروموزم I(f) - همان قطع انتهايی- تشکيل ميدهد.در مورد کروموزم I(d) نيز وضعيت مشابه به ا نچه که در مورد کروموزم I(s) بيان شد است با اين تفاوت که قسمت اول کروموزم I(d) از قطعه اول I(m) و قطعه دوم از قطعه وسط I(f) و بهين ترتيب ادامه داده ميشود.تمامی "حالت" هايی که در فرزندان ايجاد ميشود دقيقا برابر با "حالت" های والدينشان است و هيچگونه تغييری در "حالت" اجرايی ا نها بوجود نمی ا يد. در crossover() نيز روش تقسيم و اختصاص فعاليتها در فرزندان کاملا مشابه با روش crossover() است با اين تفاوت که "حالت" هايی که به فعاليتها ی فرزندان تخصيص داده ميشود مشابه با "حالت" هايی اجرايی والدين ا نها نيست.در crossover() برای اختصاص "حالت" اجرايی يک رشته اعداد تصادفی I) λ D ( و 0 و به فعاليتها اختصاص داده ميشود.اگر اين عدد تصادفی برابر با بود M = λ S λ ( I) = S λ ( I) = F λ و در صورتی که عدد منتصب شده برابر با 0 بود داريم : M λ و λ D ( I) = λ F. Mutation ۵ ۴ برای mutation نيز دو روش به کار رفته است.در mutation() هر کروموزم به دو مجموعه "الف" و " تقسيم ميشود که اين تقسيم بندی بر اساس يک احتمال از پيش تعيين شده است و ممکن است اعضای دو مجموعه باهم اشتراک داشته باشند.پس از اين تقسيم بندی يک تابع سعی ميکند تا جايگاه فعاليت ها عوض شده و به جای ديگری در همان مجموعه منتقل شود و يک ترکيب جديد بوجود ا يد که محدوديت "پيش نيازی" را نيز ارضاء می کند."حالت" های اين مجموعه عوض نشده و حالت قبلی خود را دارند.در مجموعه "ب" تنها سعی ميشود تا "حالت" اجرايی هر فعاليت بصورت تصادفی عوض شود. در mutation() ما سعی ميکنيم تا مجموعه فعاليت های "مسير بحرانی" را به دو دسته "الف" و "ب" تقسيم کرده و دقيقا همان فعاليتی که بر روی مجموعه های "الف" و "ب" mutation() انجام می داديم را بر روی اين دو مجموعه نيز اجرا کنيم. ۴ ۶ انتخاب (selection)
در مرحله "انتخاب" سعی شده است تا از دو روش متفاوت بنام های selection" "rank و -" tournoment" استفاده شده است.در اين دو روش بترتيب در مرحله اول و دوم استفاده شده است. - ۵ الگوريتم ژنتيک همانطور که بيان شد اين روش در دو مرحله به حل مسي له پرداخته است.در ابتدا جمعيت اوليه بصورت کاملا تصادفی ايجاد شده و پس از گذر از crossover() و crossover() به قدم بعدی mutation رفته و در نهايت با شرط خاتمه مرحله اول يک جمعيت "نخبه" بوجود می ا يند که اين جمعيت نود درصد جمعيت اوليه مرحله دوم را تشکيل می دهند.ده درصد ما بقی جمعيت نيز بصورت تصادفی ايجاد ميشوند.در شکل ٣ شبه کد اين الگوريتم مشاهده ميشود. While ( termination condition not met ) Generate initial population While (loop < loopstuck ) While (generation < genstuck ) Apply crossover operator Apply Mut_ operator Evaluate fitness and apply forward-backward local search operator Update Elite Set Ranking selection If (best solution is improved) generation = 0 Else generation++ End while Apply Mut_ operator Evaluate fitness and apply forward-backward local search operator Update Elite Set -tournament selection loop++ End while End while شکل ٣ شبه کد الگوريتم ژنتيک - ۶ نتيجه گيری با توجه به ا نکه پروژه در حال انجام است و پياده سازی ا ن بطور کامل به اتمام نرسيده است و نتيجه قطعی ا ن قابل اثبات کامل نيست اما با توجه به ا نچه که در جدول زير قابل مشاهده است می توان انتظار داشت با روش های بکار گرفته شده در جهت بهبود اين روش حل نتيجه کار بهينه تر باشد.همچنين قابل ياد ا روی است که با توجه به اينکه کار بطور کامل به اتمام نرسيده است امکان ايجاد تغييراتی در روش حل مسي له از جمله روش های بکار رفته در crossover و يا mutation وجود دارد.برای اندازه گيری و مقايسه اين روش استفاده از ابزارهای تست مختلفی وجود دارد که در اين مقاله ما سعی می کنيم تا با استفاده از يک ابزار توليد مسي له که توسط Prof.Kolisch اراي ه شده است و تحت عنوان PSPLIB معروف است استفاده کنيم. PSPLIB يکی از ابزارهای توليد مسي له است که دارای بسته های مختلف مسي له می باشد.اين بسته ها بسته به نوع ا نها دارای تعداد مختلفی پروژه که هر يک از پروژه ها دارای تعداد خاصی فعاليت جهت تست و اعمال برنامه ريزی بر روی ا نهاست.به عنوان مثال بسته J300 اين ابزار توليد مسي له دارای 640 پروژه در خود است.در نهايت سعی بر ا ن شده است تا حالت تکميلی اين مسي له مورد توجه قرار گيرد. مراجع [] J. Alcaraz and C. Maroto, A robust genetic algorithm for resource allocation in
project scheduling, Ann. Oper. Res., vol. 0, pp.83-09, 00. [] J. Alcaraz, C. Maroto and R. Ruiz, Solving the multi-mode resource-constrained project scheduling problem with genetic algorithms, J. Oper. Res. Soc., vol. 54, pp. 64-66, 003. 7 [3] F.F. Boctor, Heuristics for scheduling projects with resource restrictions and several resource-duration modes, Int. J. Prod. Res., vol. 3, pp. 547-558, 993. [4] F.F. Boctor, An adaption of the simulated annealing algorithm for solving the resource-constrained project scheduling problems, Int. J. Prod. Res., vol. 34, pp. 335-35, 996. [5] F.F. Boctor, A new and efficient heuristic for scheduling projects with resource restrictions and multiple execution modes, Eur. J. Oper. Res., vol. 90, pp. 349-36, 996. [6] K. Bouleimen and H. Lecocq, A new efficient simulated annealing algorithm for the resource-constrained project scheduling problem and its multiple mode version, Eur. J. Oper. Res., vol. 49, pp. 68-8, 003. [7] A. Drexl and J. Grünewald, Nonpreemptive multi-mode resource-constrained project scheduling, IIE Trans., vol. 5, pp. 74-8, 993. [8] S. Hartmann, A competitive genetic algorithm for resource-constrained project scheduling, Nav. Res. Logist., vol. 45, pp. 733-750, 998. [9] S. Hartmann, Project scheduling with multiple modes: A genetic algorithm, Ann. Oper. Res., vol. 0, pp. -35, 00. [0] S. Hartmann and A. Drexl, Project scheduling with multiple modes: A comparison of exact algorithm, Networks, vol. 3, pp. 733-750, 998. 8 [] S. Hartmann and R. Kolisch, Experimental evaluation of state-of-the-art heuristics for the resource-constrained project scheduling problem, Eur. J. Oper. Res., vol. 7, pp. 394-407, 000. [] J. Jozefowska, M. Mika, R. Rozychi, G. Waligora and J. Weglarz, Simulated annealing for multi-mode resource-constrained project scheduling, Ann. Oper. Res., vol. 0, pp. 37-55, 00. [3] R. Kolisch and A. Drexl, Local search for nonpreemptive multi-mode resource-constrained project scheduling, IIE Trans., vol. 43, pp. 987-999, 996. [4] R. Kolisch and S. Hartmann, Experimental investigation of heuristics for resource-constrained project scheduling: an update, working paper, Technical University of Munich, Germany, 004. Available: http://halfrunt.bwl.uni-kiel.de/bwlinstitute/prod/mab/hartmann/hartmann.html. [5] R. Kolisch and A. Sprecher, PSPLIB a project scheduling problem library, Eur. J. Oper. Res., vol. 96, pp. 05-6, 996. [6] M. Mori and C.C. Tseng, A genetic algorithm for multi-mode resource constrained project scheduling problem, Eur. J. Oper. Res., vol. 00, pp. 34-4, 997. [7] L. Özdamar, A genetic algorithm approach to a general category project scheduling problem, IEEE Trans. Sys. Man, Cybern. Part C., vol. 9, pp. 44-59, 9 999. [8] R. Slowinski, B. Soniewicki and J. W_glarz, DSS for multiobjective project scheduling subject to multiple-category resource constraints, Eur. J. Oper. Res., vol. 79, pp. 0-9, 994. [9] A. Sprecher and A. Drexl, Multi-mode resource-constrained project scheduling
by a simple, general and powerful sequencing algorithm, Eur. J. Oper. Res., vol. 07, pp. 43-450, 998. [0] A. Sprecher, S. Hartmann and A. Drexl, An exact algorithm for project scheduling with multiple modes, OR Spectrum, vol. 9, pp. 95-03, 997. [] L. Y. Tseng and S. C. Chen, A hybrid metaheuristic ANGEL for the resource-constrained project scheduling problem, To appear on Eur. J. Oper. Res.