مشخصات

زبان

بانک اطلاعاتی

فایل ها

توضیحات

شامل m فایل متلب و فیلم آموزشی ۱۸ دقیقه ای از توضیح کلی بخش های مهم کدها می باشد

۳۵۰,۰۰۰ تـــــومان

مطالب مرتبط

توازن بار در محاسبات ابری ترکیبی با الگوریتم ژنتیک در متلب

  • چهارشنبه ۳۰ آذر ۱۴۰۱
  • بازدید ۵۷۰ نفر

تصویر load-balancing-cloud-computing-matlab_7603_1 توازن بار در محاسبات ابری ترکیبی با الگوریتم ژنتیک در متلب

توازن بار در محاسبات ابری ترکیبی با MATLAB

در این بخش پروژه شبیه سازی توازن بار در محاسبات ابری ترکیبی با الگوریتم ژنتیک در نرم افزار MATLAB به همراه فیلم آموزشی آماده کرده ایم که در ادامه توضیحاتی از معرفی پروژه ارائه شده و قسمتی از فیلم آموزشی همراه با تصاویر خروجی پروژه در محیط متلب قرار داده شده است.

محاسبات ابری

محاسبات ابری (Cloud computing) یک زیرساخت مهم برای سیستم های توزیع شده است. هدف اصلی در استفاده از محاسبات ابری، کاهش هزینه های استفاده از منابع می باشد. الگوریتم ژنتیک با الهام گرفتن از قانون طبعیت و بقای جمعیت بهتر در رسیدن به پاسخ صحیح مسئله مناسب و کارآمد است. براساس مدلی که در این پروژه مطرح می شود، با توجه به داده های وضعیت های قبلی و وضعیت فعلی ماشین های مجازی و همچنین استفاده از یک ساختار درختی برای نشان دادن نمونه های جمعیت در الگوریتم ژنتیک، سعی شده یک مدل منطقی تر و پویاتر برای حل مسئله زمان بندی در رایانش ابری مطرح شود. در این الگوریتم باتوجه به استراتژی های مناسب در مورد مسئله برای عملگرهای گزینش، تقاطع و ترکیب سعی شده تا یک مدل بهینه با توجه ذات مسئله، برای کمینه سازی زمان اجرا و زمان انتظار وظایف به طور همزمان برای مسئله زمان بندی مطرح شود. به منظور ارزیابی و میزان سنجش دقت روش آزمایشاتی برای کارایی الگوریتم ژنتیک و میزان متوسط بار سیستم ها انجام گرفته است که نتایج آزمایشات و نتایج شبیه سازی با نرم افزار MATLAB نشان می دهد که روش پیشنهادی کارایی و بهره وری مناسبی دارد.

توازن بار در محاسبات ابری

یکی از چالش های اساسی محاسبات ابری یا رایانش ابری توازن بار (Load Balancing) است، به این معنی که حجم کار در سرتاسر گره های متعدد به صورت پویا و مساوی توزیع شود. در گذشته از روش های کلاسیک مانند الگوریتم های Fifo-Lifo-Sjs استفاده شده اما این روش ها بهینه نبوده است، در این پروژه با استفاده از الگوریتم ژنتیک این چالش را برطرف کردیم و به این نتیجه رسیدیم که روش ژنتیک از روش های کلاسیک کارایی بهتری داشته و نتایج بهتری را نشان می دهد. مجموعه داده مورد استفاده در این پیاده سازی، شامل اطلاعاتی در مورد وظایفی است که قرار است بر روی یک محیط ابری اجرا شود. این اطلاعات شامل شماره وظیفه، طول وظیفه (مدت زمانی که وظیفه باید پردازش شود)، حداقل زمانی که وظیفه می تواند در آن انجام شود و همچنین حداکثر زمانی که وظیفه می تواند در آن اجرا شود.

بیان مسئله براساس الگوریتم ژنتیک

تصویر load-balancing-cloud-computing-matlab_7603_2 توازن بار در محاسبات ابری ترکیبی با الگوریتم ژنتیک در متلب

شکل نحوه عملکرد الگوریتم GA

ایجاد جمعیت اولیه

الگوریتم ژنتیک (GA) کار خود را با تولید جمعیت اولیه ای از کروموزوم ها آغاز می کند و سپس در یک حلقه به طور مکرر تعدادی از کروموزوم های برتر نسل فعلی را انتخاب کرده و سپس نسل جدیدی را از این کروموزوم ها تولید می کند، روشی که در این پروژه برای ایجاد جمعیت اولیه در نظر گرفتیم Random Search می باشد، در این روش بر خلاف جستجوی تصادفی کورکورانه، یک جستجوی هدفمند می باشد که هربار جمعیت برتر را می یابد و سپس برای جمعیت بدتر عملگر جهش و تقاطع را اعمال می کند تا جمعیت برتر پیدا شود و این کا را تا زمانی انجام می دهد که حلقه به اتمام برسد. همچنین در این پژوهش حلقه در 220 دور انجام می پذیرد. در ایجاد جمعیت اولیه درخت هایی که به جمعیت اضافه می شوند، باید کنترل عمق درخت ها را در نظر گرفت. یعنی در تولید و یا گسترش درخت ها بایستی دقت کنیم که عمق درخت ها بصورت غیر متعارف افزایش پیدا نکند. لذا در تولید جمعیت اولیه دو استراتژی مختلف وجود دارد:

روش اول این است که تمام درخت های اولیه ایجاد شده یک عمق مشخص داشته و به صورت پر باشند، روش تولید این درخت ها به این شکل است که به صورت تصادفی و سطح به سطح از توابع موجود به صورت تصادفی انتخاب و به جای گره های درخت قرار می دهند. این روند آنقدر تکرار می شود تا به بیشترین عمق مورد نظر برسیم، در این حالت برای سطح آخر از مقادیر مجموعه پایانی ها به جای گره های درخت قرار می دهیم تا یک درخت تجزیه کامل تشکیل شود. البته می توانیم درخت های پر با عمق های متفاوت به عنوان جمعیت اولیه تولید کنیم. که معمولاً روش دوم بهتر است، همانطور که اشاره شد در روش دوم به صورت سطح به سطح درخت برای جمعیت اولیه به سمت پایین می آید که این روش بهتر است. در مسئله زمانبدی منابع با الگوریتم ژنتیک ، ابتدا جمعیت اولیه را تولید می کنیم که تولید جمعیت اولیه به شیوه تصادفی با توزیع یکنواخت ایجاد می شود. در زیر نمونه ای از یک جمعیت آورده شده است:

تصویر load-balancing-cloud-computing-matlab_7603_3 توازن بار در محاسبات ابری ترکیبی با الگوریتم ژنتیک در متلب

شکل یک نمونه جمعیت

نحوه ایجاد کروموزوم به این صورت می باشد که در شکل بالا هر نمونه ای از جمعیت به شکل یک درخت ترسیم می شود در این مورد جمعیت نمونه شامل 5 ماشین فیزیکی است که بر روی هر کدام از آنها تعدای ماشین مجازی قراد می گیرد. هدف پیدا کردن بهترین جمعیتی می باشد که با استفاده از آن تعادل بار یا توازن بار ماشین های مجازی همیشه برقرار باشد و همچنین هر کدام از ماشین های مجازی در زمان اجرا بیشترین بهره وری از پردازنده را داشته باشند. نحوه کد گذاری شده جمعیت به صورت زیر است:

تولید مثل

در الگوریتم ژنتیک پایه ساختار نمایی تولید مثل بر اساس ژن، گسسته و پیوسته می باشد، در این پژوهش تولید مثل به صورت درختی ایجاد می شود ، هر جمعیت به صورت یک درخت می باشد، برای ایجاد تولید مثل به این صورت عمل می کنیم که ما دو درخت را در نظر می گیریم و نودهای آن را را جا به جا می کنیم که یک تولید مثل ایجاد می شود.در این پژوهش نرخ تولید مثل 8 درصد می باشد و نرخ جهش 2 درصد است.

عملگر تقاطع

در عمگر تقاطع با ترکیب کردن دو نمونه از جمعیت یک نمونه جدید تولید می شود. در این روش چون نمایش جمعیت به صورت درختی است، در این پروژه نرخ ترکیب برابر 8% بوده است. بنابراین این عملگر بر روی دو نمونه درخت T1 و درخت T2 به صورت زیر اجرا خواهد شد:

تصویر load-balancing-cloud-computing-matlab_7603_4 توازن بار در محاسبات ابری ترکیبی با الگوریتم ژنتیک در متلب

نمایش گرافیکی عملگر تقاطع

جهش

انجام جهش نیز مانند باز ترکیبی ساده است. روند کار به این صورت است که هر تابع یا پایانی در درخت تجزیه را می توانیم با هر تابع یا پایانی دیگری جایگزین کنیم، حتی ممکن است که به این شکل عمل کنیم که به جای یک زیر درخت یا پایانی، یک زیر درخت دیگر (که به روشی که در تولید جمعیت اولیه گفته شد، ایجاد شده است) را جایگزین می کنیم. در این حالت ممکن است که بخواهیم یک زیر درخت را با یک زیر درخت دیگر جایگزین کنیم، برای انجام کار باید تمام زیر درخت مربوطه را از درخت حذف کنیم و به جای آن زیر درخت یا پایانی جدید را قرار دهیم. اما اگر می خواهیم یک پایانی را با یک زیر درخت جایگزین کنیم، روند کار به این صورت است که به جای گره پایانی زیر درخت مورد نظر را قرار می دهیم. در این پروژه نرخ جمعیتی که در جهش شرکت می کنند 2 درصد در نظر گرفته شده است.

 


تصویر 1
تصویر 2
تصویر 3
تصویر 4
تصویر 5
تصویر 6
تصویر 7
تصویر 8
باکس دانلود
شناسه:
۷۶۰۳
توضیحات:
شامل m فایل متلب و فیلم آموزشی ۱۸ دقیقه ای از توضیح کلی بخش های مهم کدها می باشد
قیمت:
۳۵۰,۰۰۰ تـــــومان
ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است