توضیحات
A new hybrid genetic algorithm for job shop scheduling problem
زمانبندی کارگاهی با الگوریتم ژنتیک
گزارش مربوط به کد HGA
قسمت 1
در این قسمت به معرفی قسمت های مختلف کد و نحوه ی اجرای برنامه خواهیم پرداخت.
در قسمت بعد، نحوه ی استخراج نتایج شرح داده می شود.
وارد فولدر HGA شوید. کلیه ی فایل های موجود را که به تعداد 6 عدد است open کنید.
از نوار ابزار پایین روی GA کلیک کنید.
GA بدنه ی اصلی کد است و از این قسمت باید مقادیر مربوط به متغیر ها را تغییر داد.
Parameters of Problem
1- NumOFMachines
تعداد ماشین های مورد برنامه ریزی که مقدار دلخواه را می توانید مقابل آن و به جای 3 بنویسید.
2- NumOfJobs
تعداد شغل های مورد برنامه ریزی
3- ProcessTime
جدول مورد استفاده در مقاله مطابق شکل زیر است.
به منظور تغییر در داده های مساله می توانید ماتریس مورد نظرتان در ProcessTime تایپ کنید.
سطرها با enter و ستون ها با space از هم جدا می شوند.
توجه کنید ابعاد ماتریس ورودی که تایپ می کنید با NumOfMachines و NumOfJobs هماهنگی داشته باشد.
توجه: ستون های مورد استفاده در جدول فوق شماره ی ماشین نبوده و نشانگر شماره ی عملیات می باشند.
به منظور مشاهده ی زمان انجام هر شغل روی هر ماشین، می توانید پس از اجرای برنامه که شرح آن خواهد رفت، عبارت NewProcessTime را در Command Window تایپ کنید.
در این ماتریس شماره ی سطر شماره ی شغل و شماره ی ستون شماره ی ماشین مورد نظر است.
مثلا زمان انجام شغل 2 روی ماشین 3 برابر با 5 است.
4- MachineOrder
با توجه به اینکه ستون ها نشان دهنده ی اولویت ماشین هستند، شماره ی ماشین مورد نظر خود را در هر درایه ی ماتریس وارد کنید. به ابعاد ماتریس و ابعاد مساله دقت کنید تا ستون یا سطری را کم تر وارد نکرده باشید.
Parameters of Algorithm
…
1-npop
تعداد کروموزوم در هر iteration را نشان می دهد. با توجه به مقاله این متغیر باید عددی زوج بگیرد.
2- maxit
تعداد iteration های مورد نظر است.
3- Landa (page 4, definition 4)
عددی بین 0 و1 وارد کنید.
4- muOfSelection (page 4, Algorithm 1, step 2)
عددی بین 0 و 1 وارد کنید.
5- pmu (page 5, Algorithm 3, step 2, end line)
عددی بین 0 و 1 وارد کنید.
6- ps (page 4, Algorithm 1, step 3)
عددی بین 0و1 وارد کنید. در واقع نشان می دهد که چند درصد از هر generation انتخاب می شوند.
7- sigma (page 6, A new local search operator, line end but one)
با توجه به ابعاد مساله باید تعیین شود. هر چه بع مساله بالاتر باشد بهتر است از مقادیر بالا ی آن استفاده شود.
پس از تنظیم متغیرها، برنامه را اجرا کنید.
قسمت 2- استخراج نتایج
به منظور مشاهده ی بهترین جواب در هر iteration مراحل زیر را طی کنید.
1- Workplace
2-BestPop
شماره ی سطر شماره ی iteration مورد نظر است. یعنی سطر آخر بهترین جواب مساله می باشد. Iteration مورد نظر را انتخاب کنید.
به منظور مشاهده ی نمایش کروموزومی وارد Position شوید. ستون ها شماره ی ماشین هستند. (به ترتیب از 1 تا n)
به منظور مشاهده ی makespan مربوط به کروموزوم مورد نظر وارد Cost در سطر دوم شوید.
به منظور مشاهده ی نحوه ی تخصیص شغل ها به ماشین ها وارد Layout شوید.
اعداد 1 تا 3 نشان دهنده ی شماره ی شغل ها هستند. هر جا تخصیص شغل به ماشین با توجه به محدودیت های ذکر شده در مقاله ممکن نباشد از عدد 99 استفاده کرده ایم. در واقع اعداد 99 و 0 زمان بیکاری ماشین را نمایش می دهند.
بقیه ی موارد مشاهده شده مانند Q و … مطابق با نام های مورد استفاده در مقاله نام گذاری شده اند.
قسمت 3- تحلیل نتایج
الگوریتم کد شده برای تخصیص شغل ها به ماشین ها به درستی کار می کند. برای صحت سنجی از کروموزوم
[(2 1 3)(3 1 2)(2 1 3) استفاده شده در مقاله استفاده کرده ایم و Layout زیر به دست آمد که مطابق با شکل 3 مقاله است.
الگوریتم نوشته شده برای ابعاد پایین مساله سریعا به جواب بهینه همگرا می شود. ولی به منظور نشان دادن اینکه عملگرهای نوشته شده به درستی کار می کنند، شکل زیر در یکی از اجراهای برنامه به دست آمده که از ابتدا به جواب بهینه همگرا نشده است.
که از 12 به 11 که جواب بهینه است پرش وجود دارد.
کلید واژه :,پروژه متلب,شبیه سازی با متلب,matlab project,پروژه های matlab,
Genetic algorithm, Job shop scheduling problem, Crossover operator, Mutation operator, Local search
شبیه سازی
A new hybrid genetic algorithm for job shop scheduling problem
به تعداد محدودی قابل فروش می باشد.
سفارش انجام پروژه مشابه
درصورتیکه این محصول دقیقا مطابق خواسته شما نمی باشد،.
با کلیک بر روی کلید زیر پروژه دلخواه خود را سفارش دهید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.