در این پروژه قصد داریم که 50 وظیفه را بین 5 ماشین به نحوی تقسیم نماییم که بیشترین سود را در کمترین زمان داشته باشیم دیتا بیسی که ما در اختیار داریم به شکل زیر است که شامل بر 20 ماتریس 5 در 50 است .برای حل چنین مسئله هایی استفاده از الکوریتم ژنتیک رهیافت مناسبی است چرا که در این مسائل از آنجایی که سود و زمان حل مسئله برای هر ماشین امری کاملاً تصادفی است لذا این سیستم تصادفی که از هیج فرمولی پیروی نمیکند را نمیتوان فقط با یک فرمول به جواب رساند بلکه باید همه ی حالات مختلف را با یک جهش تصادفی تست کرد ولی این تصادف بر اساس امور تصادفی هدایت شده مانند چرخ رولت در الگوریتم ژنتیک به ما اجازه میدهد جستجویی هدفمند در میان امور تصادفی در جهت ماکزیمم سازی یک یا چند اتقاق را رقم بزنیم.
آنجه برای حل مسائلی از این قبیل به آن نیازمند هستیم:
- تعداد ماشین ها
- تعداد فعالیت ها
- زمان پردازش هر فعالیت بر روی هر ماشین
- زمان راه اندازی هر فعالیت نسبت به فعالیت های دیگر بر روی هر ماشین
- در این مسئله یک ستون سود هم داریم که به ما نشان میدهد که برای هر عمل چقدر سود خواهیم داشت
- همچنین یک ستون زمان مرگ داریم که در صورتی که ان عملیات انجام نگیرد در زمان مقرر آن عملیات از دست خواهد رفت
در واقع خروجی به شکل زیر باشد:
مراحل الکوریتم ژنتیک:
- تنظیم پارامتر های اولیه
- تولید جمعیت اولیه به صورت تصادفی
- شروع حلقه اصلی
- انجام عملیات تقاطع
- انجام عملیات جهش
- یک کاسه کردن تمام جواب ها ( والدین و فرزندان)
- انتخاب بهترین ها به عنوان والد نسل بعد
- در صورت برقرار نبودن شرط توقف به ابتدای حلقه اصلی الگوریتم برگردد
- نمایش نتایج
زیر برنامه های موجود در این پروژه شامل:
- Mutation.m
- GA.m
- fitness.m
- crossover.m
- در زیر برنامه ی شماره ی 1 الگوریتم جهش قرار دارد
- در زیر برنامه ی شماره ی 2 الگوریتم ژنتیک قرار دارد
- در زیر برنامه ی شماره ی 3 فرمول مورد نظر برای بهبود یعنی تابع هدف
- در زیر برنامه ی شماره ی 4 الگوریتم برای تولید والد در الگوریتم ژنتیک که در اینجا از crossover استفاده شده است
حداقل اشتراک | محتویات | زمان ایجاد | حجم فایل | تعداد دانلودها |
رایگان | فیلم آموزشی | چهارشنبه, 18 شهریور 1394 12:55 | 29.66 MB | 0 |
تنها کاربران عضو یا دارای مجوز میتوانند دانلود نمایند |
توضیحات بیشتر | قیمت : 20000 تومان |