روشی جدید برای الگوریتم زمانبندی CPU با گردش بنوبت ژنتیکی
45 صفحه در قالب word
به همراه 45 اسلاید آماده ارائه در قالب پاورپوینت
فهرست مطالب
مقدمه ..................................1
فصل اول
چکیده..................................................................2
تاریخچه الگوریتم ژنتیک.....................................3
اهداف ......................................................3
روند کلی الگوریتمهای ژنتیکی............................9
روند کلی بهینه سازی و حل مسائل در الگوریتم ژنتیک :.....................11
شرط پایان الگوریتم..........................................12
فصل دوم
توضیح الگوریتم ژنتیک در 12 قدم.......................18
قدم اول : بدست آوردن تابع هدف (Cost Function) با n متغیر…………...18
قدم دوم : تعیین طول کروموزوم. ................20
قدم سوم : تولید جمعیت اولیه. .......................21
قدم چهارم: تبدیل هر ژن از کروموزوم به اعدادی در بازه دامنه همان متغیر...............23
قدم پنجم :........................................25
قدم ششم : :.................................................26
قدم هفتم : تعیین تعداد کروموزوم شرکت کننده در عمل پیوند .:.........27
قدم هشتم : انتخاب کروموزومهایی که در عمل پیوند شرکت می کنند .................27
قدم نهم : پیوند (crossover) . ..........................31
قدم دهم : جهش (mutation) .................................36
قدم یازدهم : حفظ بهترین کروموزوم 36………………..
قدم دوازدهم : 37………………
فصل سوم
روش پژوهش....................................40
نتایج و بحث:.......................................41
نتیجه گیری و کارهای آینده..............................................50
نتیجه گیری کلی.................................................51
قدر دانی................................................51
منابع.................................................43
مقدمه
یک موضوع جالب در سیستم عامل, زمانبندی CPU است.این زمانبندی به تخصیص CPU مربوط است که فراینده ها را در سیستمی کامپیوتری اجرا میکند.زمانبندی CPU وظیفه ی اصلی سیستم عامل است[1].زمانبندی باید بدرستی برای نگه داشتن بیطرفی و جلوگیری از فرایندهایی که هرگز CPU را تخصیص نمیدهد انجام شود(فرایند گرسنگی).زمانبندی CPU ضروری است , بخصوص در سیستم شبکه ی کامپیوتری که از گروهی از ایستگاههای کاری و سرویس دهندهها تشکیل میشود.سپس,در این سیستم عامل جدید ,کامپیوتر چند وظیفه ای ,یک هدف است و این به الگوریتم برای زمانبندی CPU متکی است.بهمین دلیل CPU بخش موثر یا مهم یک کامپیوتر است.[1].علاوه بر این ,در این عصر به کمک VLSL (در مقیاس بسیار بزرگ مدار مجتمع)ممکن است پردازنده هایی با قدرت بالا تولید کنند.این قدرت شگفت انگیز بایداستفاده شود تا بی فایده نباشد.همزمان با قدرت محاسبه ی پردازنده, در برنامه های کاربردی افزایش وجود دارد که آن قدرت را استفاده میکند. یک معیار که باید بوسیله ی برنامه انجام شود ,به حداقل رساندن میانگین زمان انتظار برای همه ی فرایندها در بدست آوردن تخصیص CPU است.الگوریتمهای مختلفی برای زمانبندی CPU وجود دارد:یکی از آنها گردش بنوبت(RR) است.مفهوم اساسی در RR استفاده از اشتراک گذاری زمان است[3].هر فرایند همان زمان CPU را بدست می آورد یعنی زمان کوانتومی, که بعنوان محدودیت در زمان پردازش ,بطور کلی در محدوده ی 1-100 میلی ثانیه عمل میکند.بعد از اینکه زمان کوانتومی برای فرایندی بپایان رسید,فرایند از اجرای آن متوقف میشود و در صف آماده گذارده میشوند.سپس ,فرایند بعدی انتخاب میشودتا اجرا شود.این مراحل چندین بار اجرا خواهند شد تا زمانیکه همه ی فرایندها بطور کامل بوسیله ی CPU بکار روند.اگر چه محدوده ی مقدار برای زمان کوانتومی وجود دارد,هنوز هیچ استانداردی وجود ندارد. ضمنا اگر زمان کوانتومی بسیار زیاد باشد,زمان مورد نیاز برای پاسخ / انتظار (چقدر زمان مورد نیاز است که آن بکار گرفته شود) کاملا زیاد است.علاوه براین, اگر خیلی کم باشد برای CPU مخارج کلی بوجود می آورد.جستجو برای بهترین زمان کوانتومی هدف دارد که به حداقل رساندن میانگین زمان انتظار برای گروهی از فرایندهاست.امیدواریم که هر فرایند بتواند کارش را در زمان معقول انجام دهد.تسریع کننده یک فرایند اثرات کارش را در بسیاری از فرایندها بپایان میرساند که میتواند بوسیله ی CPU بکار گرفته شود.این کار به توان عملیاتی بهتری از CPU میرسد برای اینکه همیشه مشغول است و هرگز غیرفعال نیست.براساس مقدمه ی بالا فکر میکنیم برای پیدا کردن بهترین کوانتوم برای بدست آوردن میانگین بهتری از زمان انتظار,مدت زمان صرف شده و حداقل تعویض بستر لازم است.الگوریتم ژنتیکی را پیشنهاد میکنیم که با گردش بنوبت سنتی ترکیب میشود.
به زبان ساده تر
محدوده کاری الگوریتم ژنتیک بسیار وسیع می باشد و هر روز با پیشرفت روزافزون علوم و تکنولوژی استفاده از این روش در بهینه سازی و حل مسائل بسیار گسترش یافته است. الگوریتم ژنتیک یکی از زیر مجموعه های محاسبات تکامل یافته می باشد که رابطه مستقیمی با مبحث هوش مصنوعی دارد در واقع الگوریتم ژنتیک یکی از زیر مجموعه های هوش مصنوعی می باشد. الگوریتم ژنتیک را میتوان یک روش جستجوی کلی نامید که از قوانین تکامل بیولوژیک طبیعی تقلید میکند .الگوریتم ژنتیک برروی یکسری از جوابهای مساله به امید بدست آوردن جوابهای بهتر قانون بقای بهترین را اعمال می کند. درهر نسل به کمک فرآیند انتخابی متناسب با ارزش جوابها و تولید مثل جواب-های انتخاب شده به کمک عملگرهایی که از ژنتیک طبیعی تقلید شدهاند ,تقریبهای بهتری از جواب نهایی بدست میآید. این فرایند باعث میشود که نسلهای جدید با شرایط مساله سازگارتر باشد.
تاریخچه
حساب تکاملی ,برای اولین بار در سال 1960 توسط آقای ریچنبرگ ارائه شد که تحقیق وی در مورد استراتژی تکامل بود.بعدها نظریه او توسط محققان زیادی مورد بررسی قرار گرفت تا اینکه الگوریتم ژنتیک (GA ) توسط جان هولند(John Holland ) و در سال 1975 در دانشگاه میشیگان ,ارائه شد.
در سال 1992 نیز جان کوزا (John Koza ) از الگوریتم ژنتیک (GA ) برای حل و بهینه سازی مسائل مهندسی پیشرفته استفاده کرد و توانست برای اولین بار روند الگوریتم ژنتیک (GA ) را به زبان کامپیوتر در آورد و برای آن یک زبان برنامه نویسی ابداع کندکه به این روش برنامه نویسی ,برنامه نویسی ژنتیک (GP ) گویندو نرم افزاری که توسط وی ابداع گردید به نرم افزار LISP مشهور است که هم اکنون نیز این نرم افزار کاربرد زیادی در حل و بهینه سازی مسائل مهندسی پیدا کرده است .
اهداف
تحقیقاتمان اهدافی بشرح زیر دارد:
به طور کلی, الگوریتمهای ژنتیکی از اجزاء زیر تشکیل میشوند:
کروموزوم[1]
در الگوریتمهای ژنتیکی, هر کروموزوم نشان دهنده یک نقطه در فضای جستجو و یک راهحل ممکن برای مسئله مورد نظر است. خود کروموزومها (راه حلها) از تعداد ثابتی ژن[2] (متغیر) تشکیل میشوند. برای نمایش کروموزومها, معمولاً از کدگذاریهای دودویی (رشتههای بیتی) استفاده میشود.
جمعیت[3]
مجموعهای از کروموزومها یک جمعیت را تشکیل میدهند. با تاثیر عملگرهای ژنتیکی بر روی هر جمعیت, جمعیت جدیدی با همان تعداد کروموزوم تشکیل میشود.
تابع برازندگی[4]
به منظور حل هر مسئله با استفاده از الگوریتمهای ژنتیکی, ابتدا باید یک تابع برازندگی برای آن مسئله ابداع شود. برای هر کروموزوم, این تابع عددی غیر منفی را برمیگرداند که نشان دهنده شایستگی یا توانایی فردی آن کروموزوم است.
در الگوریتمهای ژنتیکی, در طی مرحله تولید مثل[5] ازعملگرهای ژنتیکی استفاده میشود. با تاثیر این عملگرها بر روی یک جمعیت, نسل[6] بعدی آن جمعیت تولید میشود. عملگرهای انتخاب[7] , آمیزش[8] و جهش[9] معمولاً بیشترین کاربرد را در الگوریتمهای ژنتیکی دارند.
عملگر انتخاب (Selection ):
این عملگر از بین کروموزومهای موجود در یک جمعیت, تعدادی کروموزوم را برای تولید مثل انتخاب میکند. کروموزومهای برازندهتر شانس بیشتری دارند تا برای تولید مثل انتخاب شوند.
روش های انتخاب :
در این روش, به هر فرد قطعهای از یک چرخ رولت مدور اختصاص داده میشود. اندازه این قطعه متناسب با برازندگی آن فرد است. چرخ N بار چرخانده میشود که N تعداد افراد در جمعیت است. در هر چرخش, فرد زیر نشانگر چرخ انتخاب میشود و در مخزن والدین نسل بعد قرار میگیرد. این روش میتواند به صورت زیر پیادهسازی شود:
یک عدد تصادفی r بین 0 و T انتخاب کنید.
در میان افراد جمعیت بگردید و نرخهای انتظار( مقدار شایستگی) آنها را با هم جمع کنید تا این که مجموع بزرگتر یا مساوی r شود. فردی که نرخ انتظارش باعث بیشتر شدن جمع از این حد میشود, به عنوان فرد برگزیده انتخاب میشود.
ممکن است هنگام انتقال از فایل ورد به داخل سایت بعضی متون به هم بریزد یا بعضی نمادها و اشکال درج نشود ولی در فایل دانلودی همه چیز مرتب و کامل است
متن کامل را می توانید در ادامه دانلود نمائید
چون فقط تکه هایی از متن برای نمونه در این صفحه درج شده است ولی در فایل دانلودی متن کامل همراه با تمام ضمائم (پیوست ها) با فرمت ورد word که قابل ویرایش و کپی کردن می باشند موجود است
پروژه روشی جدید برای الگوریتم زمانبندی CPU :شک نکنید که یک پروژه جامع و کال هست و بسیار عالی و کاربردی نویسنده به این موضوع پرداخته و تیک این پروژه خاص و جالب رو به رایگان در اختیار شما میگذارد با ما همراه باشید….یک موضوع جالب در سیستم عامل, زمانبندی CPU است.این زمانبندی به تخصیص CPU مربوط است که فراینده ها را در سیستمی کامپیوتری اجرا میکند.زمانبندی CPU وظیفه ی اصلی سیستم عامل است[۱].زمانبندی باید بدرستی برای نگه داشتن بیطرفی و جلوگیری از فرایندهایی که هرگز CPU را تخصیص نمیدهد انجام شود(فرایند گرسنگی).زمانبندی CPU ضروری است , بخصوص در سیستم شبکه ی کامپیوتری که از گروهی از ایستگاههای کاری و سرویس دهندهها تشکیل میشود.سپس,در این سیستم عامل جدید ,کامپیوتر چند وظیفه ای ,یک هدف است و این به الگوریتم برای زمانبندی CPU متکی است.بهمین دلیل CPU بخش موثر یا مهم یک کامپیوتر است.[۱].علاوه بر این ,در این عصر به کمک VLSL (در مقیاس بسیار بزرگ مدار مجتمع)ممکن است پردازنده هایی با قدرت بالا تولید کنند.این قدرت شگفت انگیز بایداستفاده شود تا بی فایده نباشد.همزمان با قدرت محاسبه ی پردازنده, در برنامه های کاربردی افزایش وجود دارد که آن قدرت را استفاده میکند. یک معیار که باید بوسیله ی برنامه انجام شود ,به حداقل رساندن میانگین زمان انتظار برای همه ی فرایندها در بدست آوردن تخصیص CPU است.الگوریتمهای مختلفی برای زمانبندی CPU وجود دارد:یکی از آنها گردش بنوبت(RR) است.مفهوم اساسی در RR استفاده از اشتراک گذاری زمان است[۳].هر فرایند همان زمان CPU را بدست می آورد یعنی زمان کوانتومی, که بعنوان محدودیت در زمان پردازش ,بطور کلی در محدوده ی ۱-۱۰۰ میلی ثانیه عمل میکند.بعد از اینکه زمان کوانتومی برای فرایندی بپایان رسید,فرایند از اجرای آن متوقف میشود و در صف آماده گذارده میشوند.سپس ,فرایند بعدی انتخاب میشودتا اجرا شود.این مراحل چندین بار اجرا خواهند شد تا زمانیکه همه ی فرایندها بطور کامل بوسیله ی CPU بکار روند.اگر چه محدوده ی مقدار برای زمان کوانتومی وجود دارد,هنوز هیچ استانداردی وجود ندارد. ضمنا اگر زمان کوانتومی بسیار زیاد باشد,زمان مورد نیاز برای پاسخ / انتظار (چقدر زمان مورد نیاز است که آن بکار گرفته شود) کاملا زیاد است.علاوه براین, اگر خیلی کم باشد برای CPU مخارج کلی بوجود می آورد.جستجو برای بهترین زمان کوانتومی هدف دارد که به حداقل رساندن میانگین زمان انتظار برای گروهی از فرایندهاست.امیدواریم که هر فرایند بتواند کارش را در زمان معقول انجام دهد.تسریع کننده یک فرایند اثرات کارش را در بسیاری از فرایندها بپایان میرساند که میتواند بوسیله ی CPU بکار گرفته شود.این کار به توان عملیاتی بهتری از CPU میرسد برای اینکه همیشه مشغول است و هرگز غیرفعال نیست.براساس مقدمه ی بالا فکر میکنیم برای پیدا کردن بهترین کوانتوم برای بدست آوردن میانگین بهتری از زمان انتظار,مدت زمان صرف شده و حداقل تعویض بستر لازم است.الگوریتم ژنتیکی را پیشنهاد میکنیم که با گردش بنوبت سنتی ترکیب میشود.
به زبان ساده تر
محدوده کاری الگوریتم ژنتیک بسیار وسیع می باشد و هر روز با پیشرفت روزافزون علوم و تکنولوژی استفاده از این روش در بهینه سازی و حل مسائل بسیار گسترش یافته است. الگوریتم ژنتیک یکی از زیر مجموعه های محاسبات تکامل یافته می باشد که رابطه مستقیمی با مبحث هوش مصنوعی دارد در واقع الگوریتم ژنتیک یکی از زیر مجموعه های هوش مصنوعی می باشد. الگوریتم ژنتیک را می¬توان یک روش جستجوی کلی نامید که از قوانین تکامل بیولوژیک طبیعی تقلید می¬کند .الگوریتم ژنتیک برروی یکسری از جواب¬های مساله به امید بدست آوردن جوابهای بهتر قانون بقای بهترین را اعمال می کند. درهر نسل به کمک فرآیند انتخابی متناسب با ارزش جواب¬ها و تولید مثل جواب-های انتخاب شده به کمک عملگرهایی که از ژنتیک طبیعی تقلید شده¬اند ,تقریب¬های بهتری از جواب نهایی بدست می¬آید. این فرایند باعث می¬شود که نسلهای جدید با شرایط مساله سازگارتر باشد.
فهرست مطالب
مقدمه
فصل اول
چکیده
تاریخچه الگوریتم ژنتیک
اهداف
ساختار الگوریتمهای ژنتیکی
عملگرهای الگوریتم ژنتیک
روند کلی الگوریتمهای ژنتیکی
روند کلی بهینه سازی و حل مسائل در الگوریتم ژنتیک
شرط پایان الگوریتم
فصل دوم
توضیح الگوریتم ژنتیک در ۱۲ قدم
قدم اول : بدست آوردن تابع هدف (Cost Function) با n متغیر
قدم دوم : تعیین طول کروموزوم
قدم سوم : تولید جمعیت اولیه
قدم چهارم: تبدیل هر ژن از کروموزوم به اعدادی در بازه دامنه همان متغیر
قدم پنجم
قدم ششم :
قدم هفتم : تعیین تعداد کروموزوم شرکت کننده در عمل پیوند
قدم هشتم : انتخاب کروموزومهایی که در عمل پیوند شرکت می کنند
قدم نهم : پیوند (crossover)
قدم دهم : جهش (mutation)
قدم یازدهم : حفظ بهترین کروموزوم
قدم دوازدهم
فصل سوم
روش پژوهش
نتایج و بحث
نتیجه گیری و کارهای آینده
نتیجه گیری کلی
قدر دانی
منابع