و تابع جهش آن بصورت رابطه ۲-۲۴ تعریف شده است :
خانم قارونی فرد و همکارانشان [۴۹] الگوریتم ژنتیک با بهره گرفتن از تولید هرج و مرجی را ارائه دادند.در ابتدای الگوریتم از ویژگی متغیر های هرج و مرج برای تعیین زیر نسل ها استفاده می کنند تا از همگرایی زودرس افراد در زیر نسل ها جلوگیری شود و سپس با بهره گرفتن از الگوریتم ژنتیک به سمت جواب نهایی حرکت می کند.در اولین مرحله از این الگوریتم ابتدا با بهره گرفتن از متغیرهایی که باعث ایجاد هرج و مرج در تولید نسل اولیه می شود جمعیت اولیه ای با مقادیر متفاوت و از بازه های مختلف انتخاب می شود. در این مرحله تابع شایستگی برای ۲۰ نفر ارزیابی می شود تابع شایستگی بصورت رابطه ۲-۲۵ تعیین می شود:
c(I) مجموع هزینه اجرای کار و هزینه تبادل داده های i است و B بودجه جریان کار است t(I) زمان اتمام I است و D مهلت برای جریان کاری می باشد.برای عملگر تقاطع نیز از روش ۲ نقطه ای استفاده شده است .عملگر جهش نیز با احتمال ۰٫۰۵ در نظر گرفته شده است .
آقای جیه ژوو و همکارانش [۵۰] الگوریتمی ارائه داده اند که در آن محدودیت الگوریتم وجود منابع قبضه پذیر می باشد. در این الگوریتم کروموزوم ها بر اساس زنجیر قطعه ها از منابع تشکیل شده اند میانگین استفاده از منبع توسط یک قطعه بصورت رابطه ۲-۲۶ تعریف می شود :
که تعداد کل منابع k و تعداد منابع در دسترس k و k هم تعداد انواع منابع تعریف می شود توالی فعالیتها به عنوانkey در نظر گرفته می شود و میانگین استفاده ی منابع از قطعه به عنوان value ژن در نظر گرفته می شود.بخشی از ژن ها بصورت G =<key,value > نشان داده می شود.
تابع شایستگی که در این الگوریتم در نظر گرفته شده است بصورت رابطه ۲-۲۷ است:
در رابطه ۲-۲۸ ، اندازه قطعه را نشان می دهد و هرچه مقدار بالاتر باشد کروموزوم پتاسیل بهبود بیشتری دارد.بعضی از بهترین افراد به صورت مستقیم در نسل های بعدی کپی می شود این مجموعه از بهترین افراد با نمایش داده می شود برای ایجاد نسل بعد ۲ کروموزوم بصورت تصادفی انتخاب می شود که یکی از آنها از مجموعه باشد و دیگری از کل کروموزوم ها انتخاب می شود.
آقای مینارولی و همکارش]۵۲[ الگوریتمی را ارائه کردند که هدف آنها برقراری تعادلی بین بهره وری سیستم و میزان هزینه مصرفی می باشد این الگوریتم در اختصاص منابع به ماشین های مجازی در نظر گرفته شده است.تابع سود در این الگوریتم که بعنوان تابع شایسگی در الگوریتم ژنتیک مورد استفاده قرار می گیرد بصورت رابطه ۲-۲۹ ارائه شده است
U نشان دهنده سود کلی بر روی تمام ماشین های مجازی می باشد.سود متوسط , توسط فراهم کننده شبکه ابر از هر ماشین مجازی در طی یک مدت زمان مشخص گرفته می شود.n تعداد ماشین های مجازی می باشد . Vi کارایی سودمند می باشد که نشان دهنده سودی است که فراهم کننده شبکه ابر از مصرف کننده برای تضمین میزانی مشخص از کارایی Vmi در یک مدت زمان دریافت می کند و Up تابع میزان سود انرژی می باشد که میزان هزینه انرژی مصرفی ماشین های فیزیکی در یک مدت مشخص می باشد ضریب الفا و بتا برای کنترل اولویت هر دو هدف می باشد. گاما مقدار ثابتی می باشد تا میزان سود را برای نمایش بهتر به بزرگتر از ۱ برساند. تابع سود کارایی Vi در آن به منظور نرمالیزه کردن کارایی برنامه کاربردی مورد استفاده قرار میگیرد و بصورت رابطه ۲-۳۰ نشان داده میشود
نرمالیزه کردن کارایی باعث عدم وابستگی به معیار های خاص در کارایی برنامه کاربردی می شود.
Up(power) تابع انرژی مصرفی توسط ماشین در یک مدت زمان مشخص می باشد و با توجه به اینکه میزان انرژی مصرفی ماشین های فیزیکی , وابسته به بهره وری منابع می باشد آنها از یک مدل خطی برای بهره وری سی پی یو و ورودی خروجی بهره برده اند که در رابطه ۲-۳۱ آن را می بینید
بیشترین میزان انرژی مصرفی سی پی یو در بهره وری کامل می باشد. بهره وری سی پی یو به صورت درصدی از ظرفیت کلی سی پی یو.ظرفیت کلی سی پی یو می باشد. بیشترین میزان انرژی مصرفی از دیسک در بیشترین بهره وری از پهنای باند را نشان می دهد. بهره وری دیسک به صورت درصدی از کل ظرفیت بهنای باند دیسک می باشد. ظرفیت کلی پهنای باند دیسک . میزان انرژی مصرفی توسط ماشین فیزیکی در زمانی که آنها کاری برای انجام نداشته باشند را نشان می دهد.
تابع انرژی مصرفی را در رابطه ۲-۳۲ نشان داده شده است.
کار تخمین میزان انرژی مصرفی کارها در ماشین های مجازی و ماشین های فیزیکی در مواجهه با کارهای وارد شده در این الگوریتم توسط شبکه عصبی صورت می گیرد .
روش تحقیق
مقدمه
با توجه به مطالب ارائه شده در فصل قبل، مشاهده میشود که به منظور ارائه یک روش خوب و جامع برای انتخاب منابع در شبکه محاسبات ابری از پارامترهای زیر استفاده می شود
۱-هزینه ۲-زمان اجرا ۳-زمان پاسخگویی ۴-بهره وری سیستم ۴-عدالت
در این فصل به ارائه مدل پیشنهادی جهت انتخاب منابع در شبکه محاسبات ابری میپردازیم. مدل پیشنهادی با توجه به بزرگ بودن محیط محاسبات ابری و حجم بالای کارهای ورودی به این شبکه بر پایه الگوریتم های اکتشافی میباشد. در ادامه به شرح مدل پیشنهادی میپردازیم. سپس معماری مورد نظر خود را بیان می کنیم و در انتها شبه کد های N2TC و GaTa رابیان می کنیم.
مدل پیشنهادی
همانطوری که در شکل ۱۴ مشاهده می کنید در ابتدا کارهایی که وارد شبکه شده و کارهایی که در صف انتظار قرار گرفته اند ادغام می شوند سپس برای هر یک از کارها پارمترهای بیان شده در بالا اندازه گیری می شود و تمام کارها با توجه به نیاز مسئله تعیین پارامتر می شوند. در مرحله بعد کارها به شبکه عصبی آموزش داده شده ارسال می شود تا با توجه به خاصیت تشخیص الگو در شبکه عصبی کارها کلاس بندی شود و به کارها اولویت داده شود در مرحله بعد کارهای دارای اولویت بالا به الگوریتم ژنتیک ارسال شده و در آنجا مجموعه ای از بهینه ترین کارها برای اختصاص منابع به زمانبند معرفی می شود و کارهایی که منابع به آنها اختصاص داده نشده است در صف انتطار باقی مانده تا در مرحله بعد شانس خود را برای دریافت منابع امتحان کنند.
شکل۱۴ - نمودار گردش کار
مدل پیشنهادی بر پایه الگوریتم های اکتشافی بنا شده است. مدل پیشنهادی دارای بخشهای زیر میباشد:
بخش تعیین میزان پارامترها برای کارها
ارائه کارها برای تعیین اولویت به شبکه عصبی
ارائه کارهای دارای اولویت بالاتر به الگوریتم ژنتیک
همان طور که اشاره شد بر اساس نیاز هایی که برای اجرای کارها وجود دارد مقادیری برای پارامترهای مورد نظر لحاظ شده تا بتوان بر اساس آنها کارهای مناسب را انتخاب و به خروجی ارسال کرد.
به این دلیل از مدل ترکیبی شبکه عصبی و الگوریتم ژنتیک اسفاده شده است که شبکه عصبی به تنهایی دارای مقداری خطا می باشد و اگر قرار باشد از این شبکه به تنهایی استفاده شود باعث کاهش دقت الگوریتم می شود همچنین اگر از الگوریتم ژنتیک به تنهایی استفاده شود به دلیل ازیاد کارها زمان اجرای الگوریتم زیاد خواهد شد و احتمال رسیدن به جواب بهینه نیز کمتر می شود ترکیب این دو الگوریتم مناسب ترین راهکار برای بهینه کردن زمان و دقت الگوریتم می باشد.
شبکه عصبی
در مرحله اول به ویژگی های شبکه عصبی پیاده شده می پردازیم . مدل سلول عصبی در این پروژه بصورت شکل ۱۵ می باشد
شکل ۱۵- مدل شبکه عصبی
آماده سازی داده ها
در اولین مرحله به بخش بندی داده ها می پردازیم در N2TC از تابع DevidRand استفاده میکنیم تا داده ها برای بخش های آموزش و اعتبارسنجی و تست بصورت تصادفی انتخاب شوند که این تابع باعث می شود در هر سه مرحله آموزش و اعتبار سنجی و تست ، شاهد افزایش کارایی شبکه می باشیم.
تابع انتقال
از آنجایی که تابع انتقال لگاریتمی سیگموئید، یک تابع مشتق پذیر است، عموماً از آن در شبکه های چند لایه ای استفاده می شود که با بهره گرفتن از الگوریتم پس انتشار خطا ( Backpropagation ) آموزش می پذیرند. نمونه ای از این تابع به صورت رابطه ۲-۱ است:
(۲-۱) |
مطابق رابطه ۲-۱، ورودی این تابع انتقال می تواند هر مقداری بین منفی بینهایت تا مثبت بینهایت باشد در حالیکه خروجی آن در بازه صفر و ۱ محدود شده است.شکل این تابع بصورت شکل ۱۶ می باشد
شکل ۱۶ - تابع انتقال سیگموئید