چکیده :
الگوریتم جهش ترکیبی قورباغه (SFLA) یک الگوریتم مبتنی بر ممتیک متاهیوریستیکِ است. این الگوریتم در سالهای اخیر توسط Eusuff و Lansey ایجاد شد. الگوریتم SFLA از نحوهی جستجوی غذای گروههای قورباغه سرچشمه میگیرد. این الگوریتم برای جستجوی محلی میان زیرگروههای قورباغه از روش نمو ممتیک استفاده میکند. SFLA از استراتژی ترکیب استفاده میکند و امکان مبادله پیام در جستجوی محلی را فراهم میسازد. الگوریتم جهش ترکیبی قورباغه مزایای الگوریتم نمو ممتیک و بهینهسازی گروه ذرات (PSO) را ترکیب میکند. یکی از مسائل مشهور در زمینه کنترل پروژه، زمانبندی پروژه با محدودیت منابع و سایر محدودیتها می باشد که زمانبندی پروژه با در نظر گرفتن محدودیت منابع از جمله مسائل دارای پیشینه تحقیقاتی غنی است. مساله زمانبندی پروژه با منابع محدود در واقع کلی¬ترین مساله زمانبندی است. مسائل زمانبندی کارگاهی ، جریان کارگاهی ، زمانبندی و سایر مسائل زمانبندی همگی زیر مجموعه ای از این مسئله به حساب می آیند. زمانبندی پروژه یکی از وظایف اصلی و فعالیتهای اصلی در مدیریت پروژه است. وجود محدودیت منابع و همچنین روابط پیش نیازی بین فعالیتها مسئله زمانبندی پروژه را امری دشوار میسازد. زمانبندی پروژه با در نظر گرفتن محدودیت منابع از جمله مسائل با ادبیات غنی در حوزه مسائل تحقیق در عملیات است.این مسئله توجه محققان را در سالهای اخیر بشدت بخود جلب کرده است و تاکنون با الگوریتم های مختلف حل شده است. در این مقاله به بررسی و عملکرد الگوریتم جهش قورباغه (SFLA) در حل مسائل زمانبندی پروژه با محدودت منابع پایه پرداخته می شود که نتایج حاکی از عملکرد مناسب و قوی این الگوریتم فراابتکاری جدید می باشد.
فهرست :
مقدمه
ادبیات موضوع
مساله زمانبندی پروژه با منابع محدود
مدل های ریاضی مسائل RCPSP
روشهای حل مدلهای RCPSP
الگوریتم جهش قورباغه (SFLA) (الگوریتم پیشنهادی در این پژوهش)
الگوریتم ترکیبی جهش قورباغه
تحقیقات داخلی و خارجی صورت گرفته
منابع
فرمت فایل : WORD (قابل ویرایش)
تعداد صفحات:107
فهرست مطالب:
فصل ۱٫ ۱
کلیات.. ۱
۱-۱- مقدمه. ۱
۱-۲- محدوده تحقیق و اهداف آن.. ۹
۱-۳- مرور ادبیات.. ۱۳
فصل ۲٫ ۲۴
مدلسازی و حل جنبه ای جدید از مسئله زمانبندی جریان کارگاهی جایگشتی.. ۲۴
۲-۱- مقدمه. ۲۴
۲-۲- مدلسازی مسئله. ۲۴
۲-۳- الگوریتم ابتکاری جهت حل مسئله. ۲۸
۲-۴- نتایج محاسباتی.. ۳۴
۲-۴-۱- موارد تستی.. ۳۴
۲-۴-۲- کارآمدی روشهای ابتکاری.. ۳۶
۲-۵- نتیجه گیری.. ۴۰
فصل ۳٫٫ ۴۱
حل مسائل زمانبندی جریان کارگاهی جایگشتی با بکارگیری روشهای فراابتکاری ترکیبی.. ۴۱
۳-۱- مقدمه. ۴۱
۳-۲- الگوریتم ژنتیک… ۴۱
۳-۳- مدل ریاضی.. ۴۳
۳-۴- الگوریتم ژنتیک ترکیبی.. ۴۵
۳-۴-۱- جوابهای اولیه. ۴۶
۳-۴-۲- بهبود. ۴۶
۳-۴-۳- ارزیابی.. ۴۸
۳-۴-۴- انتخاب.. ۴۸
۳-۴-۵- عملگرهای ژنتیکی.. ۵۰
۳-۴-۵-۱- درجه عبور۵. ۵۰
۳-۴-۵-۲- جهش ابتکاری.. ۵۲
۳-۴-۵-۳- جهش وارونه. ۵۲
۳-۵- نتایج محاسباتی.. ۵۳
۳-۶- بهینه سازی جامعه مورچگان.. ۵۶
۳-۷- الگوریتم بهینه سازی جامعه مورچگان ترکیبی.. ۵۷
۳-۷-۱- تشخیص اولیه. ۵۷
۳-۷-۲- قانون انتقال۱ ۶۰
۳-۷-۳- جستجوی محلی.. ۶۰
۳-۷-۴- به روز رسانی فرومون ها ۶۰
۳-۷-۵- معیار توقف.. ۶۲
۳-۸- نتایج محاسباتی.. ۶۲
۳-۹- الگوریتم الکترومغناطیس… ۶۹
۳-۱۰- الگوریتم الکترومغناطیس ترکیبی.. ۷۲
۳-۱۱- نتایج محاسباتی.. ۷۵
۳-۱۲- نتیجه گیری.. ۸۰
فصل ۴٫٫ ۸۳
مسئله فروشنده دوره گرد. ۸۳
۴-۱- مقدمه. ۸۳
۴-۲- تعریف مسئله. ۸۵
۴-۳- کاربرد و ارتباط با مسائل زمانبندی.. ۸۵
۴-۴- مدل ریاضی.. ۸۶
۴-۵- روش حل.. ۸۸
۴-۶- نتایج محاسباتی.. ۸۸
۴-۷ نتیجه گیری.. ۹۰
فصل ۵٫ ۹۱
نتیجه گیری و پیشنهادات برای مطالعات و پژوهش های آتی.. ۹۱
۵-۱- نتیجه گیری.. ۹۱
۵-۲- پیشنهادها ۹۶
۶- منابع.. ۹۷
فصل 1
کلیات
1-1- مقدمه
برنامه ریزی1 عبارتست از تصمیم گیری برای آینده و برنامه ریزی تولید به معنی تعیین استراتژی تولید به جهت نحوه تخصیص خطوط تولیدی برای پاسخگویی به سفارشات می باشد. از برجسته ترین موارد در تهیه برنامه زمانی تولید جهت خطوط تولیدی، تعیین اندازه انباشته و توالی سفارشات و نحوه تخصیص منابع در طول زمان است [1].
ما همواره در مکالمات روزمره خود از اصطلاح زمانبندی2 استفاده می کنیم، هر چند که ممکن است همیشه تعریف مناسبی از آن در ذهن نداشته باشیم. در حقیقت مفهوم آشنایی که ما عموما از آن استفاده می کنیم فهرستی از برنامه هاست و نه زمانبندی. مستندات و برنامه های ملموس همچون برنامه کلاسی، برنامه حرکت اتوبوس و غیره. یک برنامه معمولا به ما می گوید کی وقایع اتفاق می افتد. جواب به سئوالاتی که با کی شروع می شوند، معمولا اطلاعاتی در مورد زمان به ما می دهد. حرکت اتوبوس از ساعت 6 شروع می شود و تا ساعت 20 ادامه دارد. شام در ساعت 21 سرو خواهد شد و مواردی از این دست. در برخی موارد نیز پاسخ ها به توالی وقایع اشاره می کند. اتوبوس پس از روشن شدن هوا حرکت می کند و شام پس از نظافت سالن سرو می شود. بنابراین سئوالاتی که با کی شروع می شوند، با اطلاعاتی در مورد زمان و یا توالی وقایع، که از برنامه بدست می آید پاسخ داده می شوند. فرآیند ایجاد برنامه، تحت عنوان زمانبندی شناخته می شود. هر چند که عموما برنامه ها ملموس و ساده به نظر می رسند، اما فرآیند ایجاد آنها بدون درک عمیقی از زمانبندی، پیچیده است. تهیه شام یک مسئله زمانبندی روزمره است که نیازمند انجام دادن کسری از فعالیتها است. مسائل زمانبندی در صنعت نیز ساختار مشابهی دارند. آنها شامل مجموعه ای از فعالیتها و مجموعه ای از منابع موجود جهت انجام آن فعالیتها است. همچنین در صنعت برخی از تصمیمات تحت عنوان تصمیمات برنامه ریزی شناخته می شوند. فرآیند برنامه ریزی، منابع لازم جهت تولید و مجموعه فعالیتهای مورد نیاز جهت زمانبندی را تعیین می کند. در فرآیند زمانبندی، ما نیازمند تعیین نوع و مقدار هر منبع هستیم و نتیجتا می توانیم زمان شدنی اتمام کارها را مشخص کنیم [2]. زمانبندی، فرآیند تخصیص منابع محدود به فعالیت ها در طول زمان، جهت بهینه سازی یک و یا چند تابع هدف است. منابع شامل نیروی انسانی، ماشین آلات، مواد، تجهیزات کمکی و غیره می باشند.
عملیات های ماشین آلات، حرکتها، انتقالات و بارگیری ها و غیره نیز به عنوان مثالهایی از فعالیت مطرح می باشند. فعالیت ها می توانند دارای زودترین زمان شروع، دیرترین زمان خاتمه و زمان تحویل باشند. هدف از زمانبندی نیز مواردی چون حداقل زمان تکمیل جهت یک مجموعه از سفارشات، حداقل دیرکرد، حداکثر تعداد فعالیتها و یا سفارشات تکمیل شده در یک زمان مشخص، حداقل هزینه های راه اندازی، حداقل تعداد کارها یا سفارشات با تاخیر، حداکثر استفاده از منابع، حداقل موجودی میانی، تعادل در استفاده از منابع و غیره است. حال با توجه به اهداف مورد نظر و با عنایت به محدودیت های موجود، از قبیل ظرفیت تولید، ظرفیت منابع، میزان موجودی منابع، محدودیت بودجه و محدودیت زمان، مسئله زمانبندی و یا تخصیص منابع به فعالیتها در طول زمان انجام می گیرد [3].
همانگونه که اشاره شد زمانبندی، تخصیص منابع در طول زمان برای اجرای مجموعه ای از وظایف است. این تعریف دو مفهوم مختلف را در بردارد. اولا زمانبندی نوعی تصمیم گیری است و فرایندی است که در جریان آن برنامه زمانی تعیین می شود. ثانیا زمانبندی مبحثی نظری است که مجموعه ای از اصول، مدلها، روشها و نتایج منطقی را در برمی گیرد، که برای ما بینشی عمیق در مورد عمل زمانبندی فراهم می آورد.
قدمهای دستیابی به تصمیمات زمانبندی را طبق رویکردی سیستمی می توان توصیف کرد. رویکرد سیستمی نشانگر ساختاری رسمی است که در عملکرد مدیریتی امروزی از حمایتی فزاینده برخوردار است. چهار مرحله اصولی رویکرد سیستمی، فرمولبندی، تحلیل، ایجاد و ارزیابی می باشد. در مرحله اول، اساسا مسئله را تعریف و ضابطه های حاکم بر تصمیم گیری را تعیین می کنند. این فعالیت، اغلب پیچیده و بغرنج است، ولی تصمیمات مناسب و خوب بدون تعریف روشن مسئله و مشخص کردن صریح اهداف به ندرت ممکن است اتخاذ شود. تحلیل، فرآیند مشروح بررسی عناصر مسئله و روابط متقابل آنها با یکدیگر است. هدف از این مرحله تعریف متغیرهای تصمیم گیری و نیز تشخیص روابط آنها با محدودیتهایی است که باید از آن پیروی کند. مرحله ایجاد، فرآیند ساختن گزینه های مختلف جواب مسئله و نقش آن، تعیین گزینه های ممکن است. بالاخره، ارزیابی مشتمل بر فرآیند مقایسه گزینه های امکانپذیر و انتخاب گزینه مطلوب جهت به کارگیری است. البته این انتخاب مبتنی بر ضابطه هایی است که در وهله نخست تعیین شده است.
بررسی مدلها و روشهای زمانبندی به توسعه مهارتها جهت صحت خروجی های مرتبط با مراحل چهارگانه کمک خواهد کرد. فرمولبندی ضابطه تصمیم گیری شاید مشکلترین فرم از این چهار مرحله باشد. آشنایی با مدلهای مناسب به انجام فرآیندهای تحلیل و ترکیب کمک می کند. مدلهایی که بررسی می شود عناصر و روابط متقابل مهمی دارد که بارها در مسائل زمانبندی مشاهده می شود. تئوری زمانبندی اصولا با مدلهای ریاضی سروکار دارد، یعنی بین کار زمانبندی و توسعه مدلهای زمانبندی رابطه برقرار می کند و بطور پیوسته آنها را با مسائل نظری و عملی محک می زند. دیدگاه نظری به طور غالب، دارای رویکری کمی است و سعی آن دست یافتن به ساختار مسئله در قالب شکل فشرده ریاضی است. به ویژه این رویکرد کمی، بابت تفسیر اهداف تصمیم گیری در قالب یک تابع هدف صریح و بیان موانع تصمیم گیری به صورت محدودیتهای صریح بکار گرفته می شود [2]. تابع هدف آرمانی باید در برگیرنده تمام هزینه های سیستم برای اجرای تصمیمات مربوط به زمانبندی باشد. به هر حال، به هنگام اجرای آن در عمل، اندازه گیری یا حتی مشخص کردن کامل چنین هزینه هایی مشکل است. درحقیقت در فرآیند برنامه ریزی هزینه های عمده عملیاتی، تعیین می شوند، در حالی که تفکیک هزینه های کوتاه مدت دشوارتر است و آنها اغلب ثابت و به عنوان یک هزینه کلی به نظر می آیند. با وجود این، سه نوع اهداف تصمیم گیری در زمانبندی عمده تر به نظر می رسند: بهره برداری کارا از منابع، پاسخگویی سریع به تقاضا و انطباق دقیق موعدهای تحویل تعیین شده. غالبا می توان از یک ضابطه مهم هزینه ای مربوط به سنجش عملکرد سیستم (مانند زمان بیکاری ماشین، زمان انتظار برای انجام کار یا تاخیر کار) به عنوان جانشینی برای هزینه کل سیستم استفاده کرد. رویکردهای کمی مسائل مربوط به این معیارها در همه تحقیقات موجود در زمینه زمانبندی یافت می شود.
می توان مسائل زمانبندی بر اساس ترکیب منابع و طبیعت کار، تقسیم بندی کرد. مدل می تواند شامل یک و یا چند ماشین باشد. مجموعه کارها جهت فرآیند زمانبندی ممکن است ثابت باشد که در چنین شرایطی سیستم را ثابت می نامیم. همچنین ممکن است در طول فرآیند زمانبندی، کارهای جدید به سیستم اضافه شود که در این شرایط سیستم پویا نامیده می شود. معمولا دو نوع محدودیت در مسائل زمانبندی قابل بررسی است.
اولا، محدودیتهایی که مرتبط با دسترسی به منابع هستند.
ثانیا، محدودیتهای تکنولوژیکی که در ترتیب انجام کارها وجود دارد.
جواب مسئله زمانبندی، یافتن راه حلی امکانپذیر برای این دو نوع محدودیت است، به طوری که «حل» هر مسئله زمانبندی برابر با پاسخگویی به دو سوال زیر است:
کدام منبع برای انجام هر وظیفه تخصیص داده خواهد شد؟
هر وظیفه در چه وقت انجام خواهد شد؟
به عبارت دیگر، جوهره مسائل زمانبندی به تصمیم گیری در مورد تخصیص منابع و توالی عملیات منحصر می شود. نوشتارهای زمانبندی مملو از مدلهای ریاضی برای پاسخگویی به این دو سوال تصمیم گیری است. به طور سنتی، مسائل زمانبندی به صورت مسائل بهینه سازی دارای محدودیت به ویژه مسائل مربوط به تخصیص منابع و توالی عملیات مورد بررسی قرار گرفته است. در پاره ای از موارد مسئله
زمانبندی تنها مربوط به تخصیص منابع است و در این حالات مدلهای برنامه ریزی ریاضی معمولا می توانند برای تعیین تصمیمات در زمینه تخصیص منابع بهینه مورد استفاده قرار گیرند. عناصر مهم مدلهای زمانبندی، کارها و منابع اند. در تحقیقات مربوط به زمانبندی، منابع نوعا بر حسب قابلیتهای کمی و کیفی خود مشخص می شوند، به طوری که نوع و میزان هر منبع در مدل مشخص می شود. هر کار بر حسب اطلاعاتی از قبیل منبع مورد احتیاج، مدت انجام آن کار، زمانی که انجام آن را می توان شروع کرد و زمان تحویل آن توصیف می شود. به علاوه مجموعه ای از کارها بعضا می توانند بر حسب محدودیتهای تکنولوژیکی (روابط تقدمی) که در مورد عناصر متشکله آن صدق می کند بیان شوند.
تئوری زمانبندی همچنین شامل یکسری تکنیک های متعدد جهت حل مسائل زمانبندی است. در واقع، شاخه زمانبندی به یک کانون مرکزی برای توسعه، کاربرد و ارزیابی روشهای محاسباتی، تکنیک های شبیه سازی و رهیافت های حل ابتکاری1 مبدل شده است. انتخاب رویکرد مناسب برای حل مسئله به طبیعت مدل و تابع هدف مسئله وابستگی زیادی دارد. در برخی موارد، استفاده از تکنیک جابجایی جهت حل توصیه می شود.
یک جنبه مفید جهت استنباط ارتباط مسائل زمانبندی و روشهای حل، شاخه جدید علوم کامپیوتر با نام تئوری پیچیدگی2 است. عبارت پیچیدگی به میزان انرژی مورد نیاز جهت حل الگوریتم، اشاره دارد. به عنوان مثال در نظر بگیرید که می خواهیم یک الگوریتم را برای حل مسئله ای به اندازه n بکار گیریم (اندازه مسئله متناسب با مقدار اطلاعات مورد نیاز برای تشخیص مسئله است). تعداد محاسبات مورد نیاز جهت حل مسئله به وسیله یک الگوریتم خاص معمولا یک حد بالا بر اساس تابعی از n دارد. چنانچه درجه بزرگی این تابع با افزایش مقدار n بصورت یک چند جمله ای باشد، آنگاه ما می گوییم الگوریتم، چند جمله ای است. به عنوان مثال اگر درجه بزرگی تابع n2 باشد (بوسیله O(n)2 نمایش داده می شود)، الگوریتم چند جمله ای است و اگر تابع O(n)2 باشد تابع دیگر چند جمله ای نیست (در این حالت نمایی است).
گروهی از مسائل در دسته و یا کلاس مسائل ترکیبی دشوار3 گروهبندی شده اند. در طول سالیان متمادی دانشمندان علوم ریاضی و کامپیوتر هیچ الگوریتم چند جمله ای را برای این دسته مسائل ارائه نکرده اند. مسائل بهینه سازی به دشواری این مسائل و یا حتی دشوارتر از آن، به عنوان مسائل کاملا سخت4 شناخته می شوند. در این مسائل دستیابی به جواب بهینه بعضا دشوار و بسیار وقت گیر خواهد بود. بنابراین توسعه روشهای ابتکاری و دستیابی به جوابهای نسبتا خوب در این ارتباط با این مسائل می تواند کارایی بالایی داشته باشد. یک گروه آشنا از این دست مسائل، بحث زمانبندی و تصمیم گیری های مرتبط با آن می باشد.
در هر شرکت، یکی از مهمترین تصمیمات مدیران، انتخاب اندازه انباشته صحیح، انتخاب توالی تولید و همچنین زمانبندی است. به همین دلیل، این دسته مسائل در ادبیات پژوهش عملیاتی، توجه بسیاری از مقالات را به خود معطوف ساخته است. مسئله زمانبندی و اندازه انباشته به دو روش مختلف در ادبیات موضوع، مدل شده است. مسئله زمانبندی و اندازه انباشته گسسته که پنجره زمانی کوچک1 هم خوانده می شود، افق برنامه ریزی را به پریودهای زمانی کوچک، تقسیم می کند به گونه ای که در هر پریود زمانی، حداکثر یک نوع محصول، قابل تولید است (شکل 1-1) [4]. در این دسته از مسائل، اجرای تنظیم و تولید، تعداد صحیحی از پریودهای زمانی را شامل می شود. بنابراین این مسئله، برخی مواقع، مسئله سیکل تولید2 نیز نامیده می شود [4] و بصورت گسترده ای در ادبیات موضوع، مطالعه شده است. در مقابل، مسئله زمانبندی و اندازه انباشته با محدودیت ظرفیت3 (CLSP) با نام پنجره زمانی بزرگ4 معروف است. این مسئله، پریودهای زمانی بزرگتر که در هر پریود چندین محصول می تواند تولید شود را در نظر می گیرد. مدیر برنامه ریزی باید مقادیر تولید در هر پریود را به گونه ای که تمامی سفارشات در زمان مناسب پوشش داده شوند، برنامه ریزی کند.
افق بر نامه ریزی
شکل1-1 پنجره زمانی گسسته (در هر پریود زمانی تنها یک محصول تولید می شود)
دسته بندی کلی دیگر از تحقیقات انجام گرفته در زمینه مسائل زمانبندی بر اساس ماهیت و فضای محیط کاری و سیستم تولید است که بر اساس آن مسائل به چهار دسته تک ماشین، جریان کارگاهی، کار کارگاهی و تکنولوژی گروهی تقسیم بندی می شوند. حالت وجود یک ماشین جهت زمانبندی سفارشات کاملا مشخص است. در ادامه به شرح مختصری از بقیه فضاها پرداخته می شود.
جریان کارگاهی، استقرار تجهیزات تولید5 بر اساس مراحل تولید هر محصول است و مواد در مسیر حرکت خود در هر مرحله تکمیل تر و نهایتا به محصول نهایی تبدیل می شود (شکل 1-2). در سیستم خط تولید، کارها6 به اجزاء کوچکتری به نام عملیات7 شکسته می شوند و هر عملیات بر روی یک ماشین
جداگانه انجام می شود. در حقیقت هر عملیات بعد از عملیات نخست، دقیقا یک پیش نیاز مستقیم و هر عملیات قبل از عملیات آخر، دقیقا یک پس نیاز مستقیم دارد [2]. بنابراین هر کار شامل یک توالی مشخص از عملیاتها است که به منظور تکمیل کار باید انجام شود. این نوع ساختار تحت عنوان ساختار پیش نیازی خطی شناخته می شود. این سیستم تولیدی جهت تولید محصولات در حجم بالا و تنوع پایین مناسب است.
چکیده :
الگوریتم جهش ترکیبی قورباغه (SFLA) یک الگوریتم مبتنی بر ممتیک متاهیوریستیکِ است. این الگوریتم در سالهای اخیر توسط Eusuff و Lansey ایجاد شد. الگوریتم SFLA از نحوهی جستجوی غذای گروههای قورباغه سرچشمه میگیرد. این الگوریتم برای جستجوی محلی میان زیرگروههای قورباغه از روش نمو ممتیک استفاده میکند. SFLA از استراتژی ترکیب استفاده میکند و امکان مبادله پیام در جستجوی محلی را فراهم میسازد. الگوریتم جهش ترکیبی قورباغه مزایای الگوریتم نمو ممتیک و بهینهسازی گروه ذرات (PSO) را ترکیب میکند. یکی از مسائل مشهور در زمینه کنترل پروژه، زمانبندی پروژه با محدودیت منابع و سایر محدودیتها می باشد که زمانبندی پروژه با در نظر گرفتن محدودیت منابع از جمله مسائل دارای پیشینه تحقیقاتی غنی است. مساله زمانبندی پروژه با منابع محدود در واقع کلی¬ترین مساله زمانبندی است. مسائل زمانبندی کارگاهی ، جریان کارگاهی ، زمانبندی و سایر مسائل زمانبندی همگی زیر مجموعه ای از این مسئله به حساب می آیند. زمانبندی پروژه یکی از وظایف اصلی و فعالیتهای اصلی در مدیریت پروژه است. وجود محدودیت منابع و همچنین روابط پیش نیازی بین فعالیتها مسئله زمانبندی پروژه را امری دشوار میسازد. زمانبندی پروژه با در نظر گرفتن محدودیت منابع از جمله مسائل با ادبیات غنی در حوزه مسائل تحقیق در عملیات است.این مسئله توجه محققان را در سالهای اخیر بشدت بخود جلب کرده است و تاکنون با الگوریتم های مختلف حل شده است. در این مقاله به بررسی و عملکرد الگوریتم جهش قورباغه (SFLA) در حل مسائل زمانبندی پروژه با محدودت منابع پایه پرداخته می شود که نتایج حاکی از عملکرد مناسب و قوی این الگوریتم فراابتکاری جدید می باشد.
فهرست :
مقدمه
ادبیات موضوع
مساله زمانبندی پروژه با منابع محدود
مدل های ریاضی مسائل RCPSP
روشهای حل مدلهای RCPSP
الگوریتم جهش قورباغه (SFLA) (الگوریتم پیشنهادی در این پژوهش)
الگوریتم ترکیبی جهش قورباغه
تحقیقات داخلی و خارجی صورت گرفته
منابغ
قالب بندی : Word
صفحات :14
روشی جدید برای الگوریتم زمانبندی 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 که قابل ویرایش و کپی کردن می باشند موجود است
شامل 44 اسلاید powerpoint