مقدار دهی اولیه جمعیت بر کیفیت از نسلهای آینده، و گام مهمی در کل الگوریتم خواهد داشت . در این مقاله، این مرحله است که با ترکیب روشهای مقدار دهی اولیه تصادفی و الگوریتم حریصانه انجام شده است. داشتن روش شروع حریص در زمانبندی الگوریتم ، با رد کردن برنامههایی که دارای مهلت زمانی خاصی هستند ممکن است کل الگوریتم را با شکستی مواجه نماید .البته این نوع از روش مقدار دهی اولیه باعث میشود که ایجاد تنوع در جمعیت اولیه و جلوگیری از بایاس در جستجو و انتخاب برنامهها شود MO-GA.
قوانین رمزنگاری
برای هر زمانبندی یک ماتریس دو بعدی ۲ در M را خواهیم داشت که M بهاندازه طول کروموزم های ما خواهد بود . در این ماتریس سطر یک آن شماره برنامههایی هستند که بر روی ابر خواهان اجرا شدن هستند و سطر دو ابرهایی هستند که درخواست خدمات را میگیرند و این قانون در آنها رعایت شده است که هر برنامه تنها بر روی یک ابر قابل اجرا خواهد بود ولی هر ابر میتواند چندین برنامه را اجرا نماید.
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت nefo.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
در شکل زیر بهصورت کامل نمایش داده شده است
شکل ۳-۲ ماتریس دو ستونه ابرها و برنامهها
الگوریتم ژنتیک
الگوریتم ژنتیک از روش اکتشافی جستجو که شبیه روند تکامل طبیعی بر اساس جمعیت است که جمعیت خود را از راه حل انتخاب نامزد ایجاد می کند . که بهطور معمول این روش برای بهینه سازی و رفع مشکلات مورد استفاده برای تولید راه حلهای مفید ارائه میدهد . در روند تکامل، اصلاح است که توسط کسانی اپراتور در هر فرد انجام میشود. هر کروموزوم نشان دهنده یک نتیجه زمانبندی ، یک اپراتور ارزیابی برای ارزیابی فرزندان نامیده میشود.
ارزیابی مستقل
در این مقاله، آمادگی از مصرف انرژی و سود حاصل از ارائه دهندگان خدمات نتیجه گرفت. تنها راه حل با بهترین رتبه را پس از ارزیابی تابع آمادگی در آرشیو پارتو که شامل راه حلهای غیر تحت سلطه مختلف است برای تولید نسلهای بعدی باید استفاده شود ، ذخیره میشود.
عمل انتخاب
نخبه گرایی و ازدحام: عملیات انتخابشده است به اپراتور مسابقات K افراد، با دو استراتژی است. استراتژی نخبهگرایی استفاده میکند از افراد در آرشیو پارتو و انتخاب بهترین افراد از نسلهای قبلی که با توجه به این قضیه که عدم تسلط به نسلهای بعدی ایجاد میشود . همگرایی روند تکامل، تراکم استراتژی طولانیتری خواهد بود که استفاده از فاصله ازدحام در یک نقطه بهمنظور برآورد شدت ازدحام از اطراف آن و حذف راه حل هایی که با این نقطه ، فاصله بسیاری خواهند داشت . فاصله ازدحام بهعنوان فاصلهای بهصورت مستطیل تعریفشده توسط همسایگان چپ و راست خود مشخص میشود ، و اگر هیچ همسایهای وجود نداشته باشد بینهایت تعریفشده.
عملیات متقاطع
اپراتور متقاطع با بهره گرفتن از سطر S۱ و S۲ برای تولید دو نفر جدید که بهصورت رندم دو عدد را انتخاب مینمایید که این دو عدد باید شرط ۱<i<j<N را داشته باشند سپس از i امین خانه نفر S۱ تا خانه j امین آن را انتخاب کرده و در یک محل موقت قرار داده و سپس برای نفر دو را هم به همین صورت انتخاب کرده و در جای خالی اولی جایگزین میکنیم . همانطور از محل موقت هم مقادیر برداشته شده و برای مقدار دو جایگزینی را انجام میدهیم .در شکل زیر بهصورت کامل این عمل بیان شده است.
شکل ۳-۳ متقاطع کردن
عمل جهش
دو وظیفه را در یک مورد که آن مورد هم بهصورت تصادفی انتخاب شده انتخاب میکنیم و جای آنها را باهم تعویض مینماییم.
مقاله مورد نظر را ما با نرمافزار visual studio ۲۰۱۲ با زبان C# را در حد امکان شبیه سازی کردهایم
نمایی از خروجی برنامه
شکل ۳-۴ کارهای ما را ایجاد میکند که شبیه سازی کارهای ورودی توسط کاربر
شکل ۳-۵ نمایش دهنده خروجی الگوریتم
در این برنامه در فرم یک ابتدا دیتاهای خود را ایجاد کردهایم ، در دنیای واقعی این دادهها توسط سرویس گیرندگان به نرمافزار داده میشود .
تعداد application number ها به ما تعداد درخواستهای سرویس گیرندگان ما میباشند و task های ما تعداد سرویسهای هر برنامه هستند و time ما زمان اجرای هر سرویس را مشخص می کند. ما در اینجا اطلاعات سرورها را هم ایجاد نمودهایم که آنها هم بهصورت رندم ایجاد شده و تعداد آنها ۱۰ عدد میباشد که با توان اجرای هر وظیفه در زمان را بعلاوه میزان استفاده برق آنها و به همراه آن میزان مبلغ هزینه آنها را نمایش میدهد.
در زیر جداول مورد استفاده شده در برنامه را به شما نمایش میدهد
نام فیلد | توضیحات |
App | شماره درخواست سرویس |
Task | تعداد وظایفی را که یک درخواست دهنده لازم دارد |
Tim | زمان استفاده هر وظیفه را مشخص میکند |
جدول۳-۱ جدول tbl برای ذخیره سازی کارها