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

پیشینه ی الگوریتم ژنتیک به سال های حدود ۱۹۶۰ برمی گردد. در دهه های ۵۰ و ۶۰ تحقیقات متعددی برای استفاده از نظریه تکامل در بهینه سازی مسائل مهندسی به طور مستقل صورت گرفت. ایده ی اصلی در همه این سیستم ها، رشد یک جمعیت از پاسخ های اولیه یک مساله به سمت پاسخ بهینه با الهام گیری از عملگرهای انتخاب و تغییر ژنتیک طبیعی بود. در سال های ۱۹۶۵ تا ۱۹۷۳ رکنبرگ(Rechenberg ) کتاب خود را به نام تکنیک های تکامل (Evolution strategies (Evolutionsstrategie in original) ) در زمینه محاسبات تکاملی منتشر کرد و در سال های بعد نظریه او توسط محققین دیگر توسعه یافت. الگوریتم ژنتیک نخستین بار توسط جان هلند ( John Holland ) مطرح و به وسیله خود او و دانشجویان و همکارانش گسترش یافت. تلاش های او و اطرافیانش در این زمینه در نهایت به نشر کتاب سازگاری در طبیعت و سیستم های مصنوعی (Adaption in Natural and Artificial Systems ) انجامید. پس از آن تحقیقات گسترده ای توسط افراد مختلف در این زمینه انجام شد (به عنوان مثال در سال ۱۹۹۲ جان کزا (John Koza ) الگوریتم ژنتیک را به صورت عملیاتی در برنامه نویسی به کار برد و برنامه نویسی ژنتیک (genetic programming(GP) ) را به عنوان روش خود مطرح ساخت.) و الگوریتم ژنتیک به صورت امروزی خود رسید.
در راستای فهم کامل الگوریتم ژنتیک، ابتدا بهتر است با برخی از اصطلاحات زیستی به کار رفته در تئوری این الگوریتم آشنا شویم. همه موجودات زنده از واحدهای کوچکی به نام سلول تشکیل شده اند. هر سلول نیز به نوبه خود از مجموعه ای از یک یا چند کروموزوم (chromosome ) تشکیل شده است. کروموزوم ها رشته هایی از مولکول DNA می باشند که در حقیقت برنامه کاری موجود زنده را در خود ذخیره می کنند. هر کروموزوم شامل چندین ژن( gene ) می باشد، که هر ژن بلوکی از مولکول DNA می باشد که پروتئین خاصی را کدگذاری می کند. به طور کلی می توان گفت که هر ژن یک خصیصه (trait ) از موجود زنده (مانند رنگ چشم) را کد گذاری می کند. حالت های ممکن برای یک خصیصه را (allele ) می گویند. هر ژن موقعیت مخصوص خود را در کروموزوم دارد که به آن (locus ) می گویند. بسیاری از موجودات زنده در هر سلول چندین کروموزوم دارند. مجموعه کامل مواد ژنتیکی در سلول (مجموعه همه کروموزوم ها) (genome ) نامیده می شوند. اصطلاح (genotype ) به مجموعه خاصی از کروموزوم های موجود در genome اتلاق می شود. Genotype ها در پی تحولات و تغییر، به phenotypeها خصوصیات فیزیکی و ذهنی موجود زنده (مانند رنگ چشم، بلندی، اندازه مغز و یا میزان هوش) تبدیل می شوند.
در طی تولید مثل جنسی(reproduction )، در اثر الحاق(recombination or crossover ) ژن ها از کروموزوم های والدین(parents ) با یکدیگر ترکیب شده تا کروموزوم کامل جدیدی را تشکیل دهند. در طی این تغییرات، ممکن است تغییرات کوچکی در برخی از بخش های DNA ژن های فرزند، بوجود آمده و فرزند دچار جهش (mutation ) گردد. در نهایت تناسب (fitness ) یک موجود زنده با توجه به احتمال زیستن آن برای تکثیر(زیست پذیری(viability ) ) یا برحسب تابعی از تعداد فرزندان آن گونه (باروری(fertility )) تعیین می گردد.
۲-۴- تشریح کلی الگوریتم ژنتیک
یک تشریح کلی از الگوریتم ژنتیک را میتوان به صورت زیر در نظر گرفت :
-۱ جمعیتی از رشتهها را به صورت تصادفی بسازید.
-۲ هررشته داخل جمعیت را ارزیابی کنید.
-۳ رشتههای جدید را با ترکیب رشتههای جاری ایجاد کنید. برای ترکیب رشتههای والد از عملگرهای جهش و تبادل استفاده کنید.
-۴ اعضایی از جمعیت را برای ایجاد فضایی برای رشتههای جدید حذف کنید.
-۵ رشتههای جدید را ارزیابی نموده و آنها را داخل جمعیت قرار دهید.
-۶ اگر زمان اجرا تمام شده است توقف نمایید و بهترین رشته را باز گردانید. در غیر این صورت به مرحله سه بازگردید.
روند ذکر شده در بالا متداولترین روش الگوریتم ژنتیک را تشریح میکند. اما محققین مختلف، آن را به روشهای متفاوت پیاده سازی کردهاند.
دو روش متداول دیگر برای اختتام: (همگرا شدن الگوریتم، تولید تعداد خاص نسل میباشد).
برای حل مساله با استفاده از الگوریتم های ژنتیک ، ابتدا جمعیت اولیه ای شامل K کروموزوم تولید می کنیم . هر کروموزوم نشان دهنده جواب مساله خواهد بود . سپس با استفاده از عملگر برازش میزان مطلوب بودن هر کرموزوم را محاسبه کرده و در مرحله بعد با استفاده از مقادیر محاسبه شده در مرحله برازش کروموزوم هایی را انتخاب کرده و جمعیت میانی را تولید می کنیم . تعداد کروموزوم های جمعیت میانی نیز K کروموزوم خواهد بود . در نهایت نیز عملگر جهش بر روی کروموزوم های جمعیت میانی اعمال می شود . پس از اعمال عملگر جهش ، جمعیت میانی جایگزین جمعیت اولیه می شود . دوباره مراحل برازش ، ادغام و جهش و جایگزینی بر روی آن انجام می شود . شبه کد زیر نحوه انجام مراحل فوق را نشان می دهد :
Population = GeneratePopulation(K)
For I = 1 to MaxIterations Fitness(Population) If any of chromosomes is optimal Then Break Offspring = Crossover(Population) Mutate(Offspring)
فصل دوم(مقدمه ای بر الگوریتم ژنتیک). ۳
۲-۵- حل مساله با استفاده از الگوریتم های ژنتیک…. ۶
۲-۶-۳- عملگرهای الگوریتم ژنتیک…. ۱۰
۲-۶-۳-۲- selection (انتخاب) ۱۰
۲-۷-۱- برتری ها و ضعف های الگوریتم ژنتیک…. ۲۰
۲-۷-۲- نكات مهم در الگوريتم هاي ژنتيك…. ۲۰
فصل سوم (کاهش اثرات زیست محیطی آلاینده های Cox ، NOx و SOx در کوره ها) ۲۲
۳-۲-۱- روش محاسبه ترکیب ترکیبات تعادلی با استفاده از ثابت تعادل. ۲۵
۳-۲-۲- روش محاسبه دمای آدیاباتیک شعله. ۲۶
۳-۲-۳- انتخاب سیستم شیمیایی.. ۲۹
۳-۲-۴- تاثیر دمای هوا و هوای اضافی بر تولید محصولات… ۳۳
۳-۳-۱- روش های حل مسائل بهینه سازی.. ۳۶
۳-۳-۳- الگوریتم حل تابع پنالتی.. ۳۷
۳-۴- برنامه کامپیوتری و مراحل آن. ۳۷
۳-۶- تشکیل مدل مسئله بهینه سازی.. ۴۵
فصل چهارم (توضیحاتی در رابطه با gatool نرم افزار مطلب). ۴۹
۴-۲- تنظیم گزینه ها برای الگویتم ژنتیک…. ۵۱
۴-۵- Fitness Scaling Option.. 54
۴-۷- Reproduction Options.. 55
۴-۱۱- Output Function Options. 59
۴-۱۲- Stopping Criteria Options. 59
۴-۱۳- Hybrid Function Options. 59