فرمت فایل : WORD (قابل ویرایش)
تعداد صفحات:140
فهرست مطالب:
عنوان صفحه
چکیده 1
مقدمه 2
الگوریتم ژنتیک 5
تعریف خروجی(نمایش) 8
عملگرهای مجموعه ژن 10
شئ جمعیت 13
توابع شئ و مقیاس گذاری مناسب 14
نمایش الگوریتم ژنتیک درc++ 15
توانایی عملگرها 17
چگونگی تعریف عملگرها 18
چگونگی تعریف کلاس مجموعه ژن 22
سلسله مراتب کلاس ها 23
1. سلسله مراتب کلاس GALib – گرافیکی 23
2. سلسله مراتب کلاس GALib – مراتب 24
رابط برنامه نویسی 25
نام پارامترها و گزینه های خط فرمان 26
رفع خطا 28
توابع اعداد تصادفی 29
GAGeneticAlgorithm 31
GADemeGA 42
GAIncrementalGA 44
GASimpleGA 47
GASteadyStateGA 50
Terminators 52
Replacement Schemes 54
GAGenome 55
GA1DArrayGenome<T> 62
GA1DArrayAlleleGenome<T> 65
GA2DArrayGenome<T> 67
GA2DArrayAlleleGenome<T> 70
GA3DArrayGenome<T> 72
GA3DArrayAlleleGenome<T> 76
GA1DBinaryStringGenome 78
GA2DBinaryStringGenome 81
GA3DBinaryStringGenome 85
GABin2DecGenome 88
GAListGenome<T> 91
GARealGenome 92
GAStringGenome 94
GATreeGenome<T> 96
GAEvalData 97
GABin2DecPhenotype 98
GAAlleleSet<T> 100
GAAlleleSetArray<T> 103
GAParameter and GAParameterList 104
GAStatistics 108
GAPopulation 113
GAScalingScheme 123
GASelectionScheme 127
GAArray<T> 130
GABinaryString 132
نتیجه گیری 135
مراجع 136
چکیده
علم ژنتیک، علمی است که به تازگی وارد علوم کامپیوتر شده و با استفاده از اجزا مورد نیاز ژنتیک و شبیه سازی آن در کامپیوتر، انسان را قادر می سازد تا بعضی از مسائل مختلف و پیچیده ای که در اوایل حل نشدنی بودند، را حل کند.
این مستند، یک کتابخانه از اشیا الگوریتم ژنتیک به زبان c++ می باشد. این کتابخانه شامل ابزاریست که برای بهبود هر برنامه ای به زبان c++ و هر خروجی و هر عملگر ژنتیکی، استفاده می شوند. در اینجا، با پیاده سازی الگوریتم ژنتیک، رابط برنامه نویسی آن و اشکالی برای راهنمایی، آشنا خواهید شد.
مقدمه
این مستند محتویات کتابخانه الگوریتم ژنتیک را رمز بندی می کند و بعضی از فلسفه های طراحی را که در پشت پیاده سازی هستند، نمایش می دهد. بعضی از مثال های کد منبع در آخر صفحه مشخص شده تا ساختار اصلی برنامه، توانایی های عملگرها، تطابق عملگرها با نیاز کاربر و مشتقاتی از کلاس های جدید مجموعه ژن را نمایش بدهند. وقتی که شما از یک کتابخانه استفاده می کنید به صورت ابتدایی با دو نوع کلاس کار می کنید الگوریتم مجموعه ژن و الگوریتم ژنتیک. هر نمونه ای از مجموعه ژن یک راه حل برای مسئله شما نشان می دهد. شی الگوریتم ژنتیک توضیح می دهد که چگونه سیر تکامل باید طی شود. الگوریتم ژنتیک از یک تابع عضو شی ای که توسط شما تعریف شده است استفاده می کند تا معین کند چگونه هر مجموعه ژن برای زنده ماندن مناسب است؟
الگوریتم ژنتیک از عملگر های مجموعه ژن ( که در داخل مجموعه هستند) و استراتژی های انتخاب/ جایگزینی ( که در داخل الگوریتم ساخته می شود ) برای تولید یک مجموعه ژن جدید مجزا ، استفاده می کند.
سه چیز برای حل مسئله با استفاده از الگوریتم ژنتیک وجود دارد :
GALIB (کتابخانه الگوریتمهای ژنتیک ) به شما در دومورد اول به وسیله مهیا کردن مثال های زیاد وتکه برنامه هایی که شما می توانید ، خروجی ها و عملگر های خود را بسازید کمک می کند . در خیلی از موارد شما می توانید از ساختار خروجی ها و عملگر ها با کمی یا هیچ اصلاحی استفاده کنید . تابع عضو شی کاملا به شما مربوط می شود .
در صورتی که شما خروجی ها ، عملگرها و موارد شی را داشته باشید ، می توانید هر کدام از الگوریتم های ژنتیک را برای پیدا کردن راه حل بهتر و مناسبتر برای مسئله تان به کار بگیرید. موقعی که شما از الگوریتم ژنتیک برای حل یک مشکل بهینه استفاده می کنید، باید قادر باشید که یک راه حل برای مسئله در یک ساختمان داده ارائه بدهید . الگوریتم ژنتیک یک جمعیت از راه حل هایی که بر طبق نمونة ساختمان دادهایی که به وجود آورده اید، ایجاد می کند . بعد الگوریتم ژنتیک بر روی این جمعیت عمل می کند تا بهترین راه حل را ازآن استخراج کند.در GALIB کتابخانه الگوریتم ژنتیک به نمونة ساختمان داده GAGENOME گفته می شود (بعضی ها به آن کروموزوم نیز می گویند ). این کتابخانه شامل چهار نوع از این مجموعه هاست GALISTGENOME ( لیست پیوندی مجموعه ژن)GATREEGAGENOME (درخت مجموعه ژن) GAARRYGENOME( آرایه مجموعه ژن) GABINARYSTRINGGENOME(رشته دودویی مجموعه ژن). این کلاس ها از کروموزوم یا کلاس GAGENOME اصلی و یک کلاس ساختمان داده ای که بوسیله نامشان مشخص شده اند، مشتق شده اند.
برای مثال لیست پیوندی مجموعه ژن از کلاس GALIST و همچنین کلاس مجموعه ژن GAGENOME مشتق شده است. از ساختمان داد ه ای که با تعریفات مسئله شما همخوانی دارد، استفاده کنید. برای مثال ، اگر شما سعی می کنید که یک تابعی را بهینه سازی کنید که به پنج عدد حقیقی وابسته است ، پس به عنوان مجموعه ژن خود از یک آرایه یک بعدی با پنج عنصر اعشاری استفاده کنید.
الگوریتم های ژنتیک مختلف زیادی وجود دارند. GALIB (کتابخانه الگوریتم ژنتیک) شامل سه نوع اصلی می باشد:
این الگوریتم ها در طریق های که مجموعه های جدید مجاز را ایجاد می کند ومجموعه های قدیمی را درزمان سیرتکامل جایگزین می کنند ، با یکدیگر تفاوت دارند.
GALIB دو مکانیسم اولیه برای گسترش قابلیت های ساخت شی را مهیا می کند اول از همه (و مهمتر از همه از نظر برنامه نویسی C++ ) شما می توانید کلاس های خودتان را درست کنید و تابع های عضو جدیدی را تعریف کنید . اگر شما احتیاج دارید که فقط تنظیمات کمی را بر روی رفتار کلاس GALIB اعمال کنید ، در بیشتر موارد می توانید یک تابع تعریف کنید و به کلاس GALIB بگویید که از آن به عنوان پیش فرض استفاده کند .
الگوریتم های ژنتیک اگر به درستی پیاده سازی شوند، قابلیت هر دو مورد پویش( پیدا کردن وسیع)و کاوش (پیداکردن محلی )در فضای SEARCH را، دارند. نوع رفتار یا عملکردی را که شما می بینید، بستگی به این دارد که چگونه عملگرها کار می کنند و همچنین بستگی به شکل یا فرم فضای SEARCH شما دارد.
الگوریتم ژنتیک
شی الگوریتم ژنتیک معین می کند که کدام سلول مجرد باید زنده بماند، کدام یک باید دوباره تولید شود و کدام یک باید بمیرد. شیءالگوریتم ژنتیک میتواند آمارها را ضبط کرده و تصمیم بگیرد که چه مدت تکامل ادامه پیدا کند. معمولا یک الگوریتم ژنتیک هیچ نقطه پایان دقیقی ندارد وشما باید الگوریتم فرمان بدهید که چه موقع تمام شود. از تعداد نسلها برای پایان الگوریتم استفاده میشود. ولی شما میتوانید از خوبی بهترین راه حل یا جمعیتها یا هر استاندارد مخصوصی برای مشکل خودکه مایل هستید، برای پایان الگوریتم استفاده کنید.
این کتابخانه شامل چهار نوع از الگوریتم ژنتیک میباشد. اولین آنها استاندارد الگوریتم ژنتیک ساده است که توسط Goldberg در کتابش توضیح داده شده است. این الگوریتم از جمعیتهای بدون اشتراک و بهترینهای قابل انتخاب، استفاده میکند. هر نسلی که الگوریتم ژنتیک ایجاد می کند یک مجموعه اجزاء جدید جمعیت، بوجود میآید. دومین نوع الگوریتم ژنتیک، الگوریتم حالت ساکن یا یکنواخت میباشد که از جمعیت اشتراکی استفاده میکند. دراین گونه شما می توانید مشخص کنید که چه مقدار از جمعیت باید در هر نسلی جایگزین شوند. سومین نوع، الگوریتم ژنتیک افزایش است که درآن هر نسلی شامل یک یا دو فرزند میباشد. الگوریتم به متدهای جایگزینی دلخواه اجازه میدهد چگونگی یکپارچگی جمعیت از یک نسل جدید دخیل تعریف کنند. به عنوان مثال یک فرزند جدید تولید شده میتواند جای والدین خود را بگیرد یا به جای افراد مختلف در جمعیت جایگزین شود و یا جایگزین فردی که بیشترین شباهت را به او دارد شود. نوع چهارم، الگوریتم ژنتیک مرتبط می باشد این نوع الگوریتم چندین جمعیت را به صورت موازی با استفاده از الگوریتم حالت یکنواخت نمو میدهد. هر نسل الگوریتم بعضی از افراد را از یک جمعیت به جمعیت دیگری انتقال میدهد.
به علاوه این نوع های اصلی ، Galib یک ترکیب از کلاسهای الگوریتم ژنتیکی که شما نیاز دارید تا کلاسهای دلخواه خودتان را داشته باشید، تعریف میکند. مثالها شامل بعضی از مشتقات دارای (1) یک الگوریتم ژنتیک که از چندین جمعیت وانتقال بین جمعیت بر روی cpu های مختلف استفاده کند. (2) یک الگوریتم ژنتیک که انبوه سازی وابسته به ورودی را انجام میدهد، تا گونههای مختلف افراد را در حین سیر تکامل حفظ کند.
کلاس پایهای الگوریتم ژنتیک شامل عملگرها و دادههای معمول برای بیشترین نوع الگوریتم ژنتیک است. وقتی شما الگوریتم ژنتیک دلخواه خود را میخواهید درست کنید میتوانید از این اعضا داده و تابعها برای داشتن آمارها و نظارت بر اجرا، استفاده کنید.
الگوریتم ژنتیک شامل آمارها، استراتژی جایگزینی و پارامترها، برای راه اندازی و اجرا الگوریتم میباشد. شی جمعیت ظرفی برای مجموعه ژن، همچنین بعضی از آمارها و عملگرهای انتخاب و اندازهگیری را نیز داراست. یک الگوریتم ژنتیک معمولی برای همیشه اجرا می شود. کتابخانه تابعی را برای مشخص کردن این که در چه زمانی الگوریتم باید پایان یابد، ایجاد کرده است که شامل پایان بر روی نسل، که در آن شما یک شماره از نسل ها را تعیین می کنیدکه الگوریتم باید تا آنجا اجرا شود و پایان برروی همگرایی، که در آن ارزشی را مشخص میکنید که بهترین امتیاز از نسلها باید همگرا شوند. شما میتوانید توابع پایانی را به طور دلخواه تنظیم کنید و از ملاک خود برای پایان استفاده کنید.
تعداد ارزشیابی توابع، راه خوبی برای مقایسه الگوریتمهای ژنتیک با متدهای مختلف جستجوی دیگر میباشد. الگوریتمهای ژنتیک Galib هر دو سنجشهای جمعیت و تعداد مجموعه ژنها را میتواند داشته باشد.
تعریف خروجی ( نمایش)
از ساختمان داده مناسبی برای مسئلهتان استفاده کنید. اگر شما یک تابع از اعداد حقیقی را بهبود میبخشید، از اعداد حقیقی در مجموعه ژنها استفاده کنید. اگر راه حل مشکلتان میتواند بوسیله اعداد تصویری یا ارزش صحیح دیگر، نمایش داده شود، از آنها برای تعریف مجموعه ژنها استفاده کنید.
تعریف یک خروجی مناسب ا زهنرهای استفاده از الگوریتم است. (و هنوز یک هنر است نه یک علم) از حداقل خروجی استفاده کنید که کاملا تشریح کننده میباشد. خروجی شما باید بتواند تمامی راه حلها برای مسئلهتان را نمایش دهد. ولی اگر شما باید آن را طراحی کنید تا نتواند راه حل غیر علمی را برای مسئله نمایش دهد،بخاطر داشته باشید که اگر مجموعه ژنها بتواند راهحلهای غیر علمی را نمایش دهد در اینصورت تابع باید طوری طراحی شود که به راهحلهای غیر علمی یک ارزش ناتمامی بدهد.
خروجی نباید شامل اطلاعاتی بیشتر از اطلاعات مورد نیاز برای نمایش باشد. اگر چه مزیتی است استفاده از خروجی که شامل موادهای اضافی ژنتیکی میباشد ولی آنها باید بدرستی پیاده سازی شده باشند. در مجموعه تابع های شی و توجه کامل به نوع و خصوصیات فضای SEARCH این تمایل به افزایش در اندازه فضای SEARCH می باشد و بدین گونه از عملکرد خوب الگوریتم ژنتیک جلوگیری می شود. تعداد نمایش خروجی بی نهایت می باشد. شاید شما کاملا یک خروجی عددی مانند آرایه ای اعداد حقیقی را انتخاب کنید، این اعداد می توانند به عنوان اعداد حقیقی پیاده سازی شوند یا در نوع Goldberg رشته ای از بیت ها که اعداد حقیقی را طراحی کنند. مواظب باشید که استفاده مستقیم از اعداد حقیقی می تواند خروجی های دودویی را به دهدهی برای بیشتر مسئله ها تبدیل کند خصوصا موقعی که از عملگر های منطقی متقاطع استفاده می کنید.
مسئله شما ممکن است به توالی و سلسله مراتب موارد بستگی داشته باشد.که در این مورد یک ترتیب پایه ای برای خروجی یا لیست پیوندی و یا آرایه بیشتر صحیح می باشد، در خیلی از این موارد شما باید عملگر های را انتخاب کنید که یکپارچگی سلسله مراتب را نگه می دارد عملگر متقا طع باید لیست ثبت شده را بدون تکثیر کردن عناصر لیست تولید کند بقیه مسائل به ساختمان درختی مرتبط هستند.
در اینجا شاید شما بخواهید که صریحا راه حل را به صورت درختها نمایش دهید و عملیات ژنتیکی را مستقیما بر روی آنها انجام دهید. معمولا بیشتر افراد درخت ها را در یک آرایه یا رشتة معینی برنامه نویسی می کنند، بعد روی رشته مورد نظر عملیات را انجام می دهند. بعضی از اشکالات شامل مخلوطی از عناصر پیوسته و ناپیوسته می باشند، که در این مورد شما احتیاج به یک ساختار جدید دارید تا اطلاعات مختلط را در خود نگاه دارد. همچنین شما باید عملگرهای ژنتیکی را تعریف کنید که به ساختار راه حل، احترام بگذارد. برای مثال، یک راه حل با هر دو قسمت صحیح و اعشاری ممکن است از crossover استفاده کند که قسمت های صحیح را با قسمت های اعشاری طی کند، و هیچ وقع قسمت اعشاری را با قسمت صحیح مخلوط نمی کند.
هر کدام از این خروجی هایی را که انتخاب می کنید، این اطمینان را داشته باشید که عملگرهای درستی را برای نمایشتان انتخاب کرده اید.
عملگرهای مجموعه ژن
هر مجموعه ژن سه عملگر اولیه دارد:عمگر اولیه،عملگر جهشی و عملگر متقاطع. با این عملگرها شما می توانید یک جمعیت اولیه را بوجود آورید، یک جهش یا یک crossover خاصی را برای خروجی مسئله تان تعریف کنید یا زمانی که جمعیت شما رشد می کند قسمت هایی از الگوریتم ژنتیک را نمو دهید. GALIB با این عملگرهای از قبل تعریف شده برای هر مجموعه ی سلول همراه است ولی شما می توانید این عملگرها را بر طبق سلیقه تان تنظیم کنید.
عمگر اولیه معین می کند که چگونه مجموعه ی سلول ها مقدار دهی اولیه می شوند. این عملگر زمانی صدا زده می شود که شما یک جمعیت یا الگوریتم ژنتیک را مقدار دهی اولیه می کنید. این عملگر در اصل یک مجموعه ی جدید را ایجاد نمی کند، بلکه مجموعه ی سلول ها را مقدار دهی اولیه می کند با استفاده از مواد اصلی ژنتیک که از آنها تمام راه حلها رشد می کنند. شی جمعیت دارای عملگر اولیه ی خود می باشد. به طور پیش فرض این عمل، عملگرهای اولیه ی مجموعه ژن در جمعیت را صدا میزند ولی شما می توانید آن را به دلخواه تنظیم کنید.
چکیده ................................................................................................................................................................................. 1
مقدمه .................................................................................................................................................................................. 2
فصل اول : تعریف مسئله
-1 تعریف مدل و مدلسازی................................................................................................................................................................ 3 -1
-2 مقدمه ای بر مدل های بهینه سازی . ......................................................................................................................................... 4 -1
-3 روش های بهینه سازی . ................................................................................................................................................................ 6 -1
-1 برنامه ریزی خطی . ............................................................................................................................................................... 10 -3 -1
-2 برنامه ریزی غیر خطی ........................................................................................................................................................ 11 -3 -1
فصل دوم : مروری بر مطالعات گذشته
-1 افرادی که از مدل الگوریتم ژنتیک در مدیریت و بهره برداری از مخزن استفاده کرده اند .................................... ١٢ -2
-2 افرادی که از مدل الگوریتم ژنتیک در بهینه سازی بهره برداری از سیستم چند مخزنه استفاده کرده اند .................. ١٢ -2
-3 افرادی که از مدل الگوریتم ژنتیک برای بهینه سازی قوانین بهره برداری از مخازن چند منظوره استفاده کرده اند ....... ١٣ -2
-4 افرادی که از مدل الگوریتم ژنتیک برای بهینه سازی منحنی فرمان در سیستم چند مخزنه و مخازن چند منظوره استفاده کرده -2
اند .................................................................................................................................... ١٣
-5 افرادی که از مدل الگوریتم ژنتیک برای بهینه سازی قوانین بهره برداری از سیستم آبهای زیرزمینی استفاده کرده اند ... ١٤ -2
-6 افرادی که از مدل الگوریتم ژنتیک برای بهینه سازی قوانین بهره برداری تولید نیروی برقابی استفاده کرده اند ........... ١٤ -2
فصل سوم : الگوریتم ژنتیک
-1 معرفی الگوریتم ژنتیک ............................................................................................................................................................ 15 -3
-2 تفاوت الگوریتم ژنتیک با روش های قدیمی بهینه سازی ............................................................... ١٧ -3
-3 ویژگی های الگوریتم ژنتیک ................................................................................................ ١٨ -3
-4 مزایای الگوریتم ژنتیک ...................................................................................................... ١٩ -3
-5 اصطلاح شناسی الگوریتم ژنتیک .......................................................................................... ٢٠ -3
-6 ساختار کلی روند محاسبات در الگوریتم ژنتیک .................................................................................................................. 21 -3
-7 روش های کدگذاری در الگوریتم ژنتیک .................................................................................. ٢٢ -3
-1-7 روش کدگذاری باینری ............................................................................................. ٢٣ -3
-2-7 روش کدگذاری گری ................................................................................................ ٢٤ -3
-3-7 روش کدگذاری واقعی ............................................................................................... ٢٤ -3
ه
-8 ارزیابی و انتخاب نسل نمونه ............................................................................................... ٢٤ -3
-1-8 روش های نمونه برداری تصادفی .................................................................................. ٢٦ -3
-4-8 روش نمونه برداری مختلط ......................................................................................... ٢٨ -3
-9 تولید نسل بعد ............................................................................................................... ٢٨ -3
-1-9 عملگر ادغام ........................................................................................................ ٢٩ -3
-2-9 عملگرجهش ........................................................................................................ ٣٠ -3
-10 شرط توقف الگوریتم ...................................................................................................... ٣١ -3
فهرست منابع
منابع فارسی ......................................................................................................................... ٣٣
منابع لاتین .......................................................................................................................... ٣٤
چکیده لاتین
پایان نامه کاربرد الگوریتم ژنتیک در برنامه ریزی فرآیند به کمک کامپیوتر(CAPP) در محیطهای صنعتی مختلف 93 ص - فایل بصورت word میباشد
(پایان نامه هوش مصنوعی )پروسه ارزیابی یک الگوریتم ژنتیک برای بهبود شبکه پس انتشار خطا bpn - کامل 100ص + برنامه ها
الگوریتم های ژنتیک یکی از الگوریتم های جستجوی تصادفی است که ایده ی آن برگرفته از طبیعت می باشد . الگوریتم های ژنتیک در حل مسائل بهینه سازی کاربرد فراوانی دارند . به عنوان مثال می توان به مسئله فروشنده دوره گرد اشاره کرد . در طبیعت از ترکیب کروموزوم های بهتر ، نسل های بهتری پدید می آیند . در این بین گاهی اوقات جهش هایی نیز در کروموزوم ها روی می دهد که ممکن است باعث بهتر شدن نسل بعدی شوند. الگوریتم ژنتیک نیز با استفاده از این ایده اقدام به حل مسائل می کند .
در الگوریتم های ژنتیک ابتدا به طور تصادفی یا الگوریتمیک ، چندین جواب برای مسئله تولید می کنیم . این مجموعه جواب را جمعیت اولیه می نامیم . هر جواب را یک کروموزوم می نامیم . سپس با استفاده از عملگرهای الگوریتم ژنتیک پس از انتخاب کروموزوم های بهتر ، کروموزوم ها را باهم ترکیب کرده و جهشی در آنها ایجاد می کنیم . در نهایت نیز جمعیت فعلی را با جمعیت جدیدی که از ترکیب و جهش در کروموزوم ها حاصل می شود ، ترکیب می کنیم . موارد فوق را با جزئیات بیشتری مورد بررسی قرار می دهیم
2-2- پیشینه
پیشینه ی الگوریتم ژنتیک به سال های حدود 1960 برمی گردد. در دهه های 50 و 60 تحقیقات متعددی برای استفاده از نظریه تکامل در بهینه سازی مسائل مهندسی به طور مستقل صورت گرفت. ایده ی اصلی در همه این سیستم ها، رشد یک جمعیت از پاسخ های اولیه یک مساله به سمت پاسخ بهینه با الهام گیری از عملگرهای انتخاب و تغییر ژنتیک طبیعی بود. در سال های 1965 تا 1973 رکنبرگ(Rechenberg ) کتاب خود را به نام تکنیک های تکامل (Evolution strategies (Evolutionsstrategie in original) ) در زمینه محاسبات تکاملی منتشر کرد و در سال های بعد نظریه او توسط محققین دیگر توسعه یافت. الگوریتم ژنتیک نخستین بار توسط جان هلند ( John Holland ) مطرح و به وسیله خود او و دانشجویان و همکارانش گسترش یافت. تلاش های او و اطرافیانش در این زمینه در نهایت به نشر کتاب سازگاری در طبیعت و سیستم های مصنوعی (Adaption in Natural and Artificial Systems ) انجامید. پس از آن تحقیقات گسترده ای توسط افراد مختلف در این زمینه انجام شد (به عنوان مثال در سال 1992 جان کزا (John Koza ) الگوریتم ژنتیک را به صورت عملیاتی در برنامه نویسی به کار برد و برنامه نویسی ژنتیک (genetic programming(GP) ) را به عنوان روش خود مطرح ساخت.) و الگوریتم ژنتیک به صورت امروزی خود رسید.
2-3- اصطلاحات زیستی
در راستای فهم کامل الگوریتم ژنتیک، ابتدا بهتر است با برخی از اصطلاحات زیستی به کار رفته در تئوری این الگوریتم آشنا شویم. همه موجودات زنده از واحدهای کوچکی به نام سلول تشکیل شده اند. هر سلول نیز به نوبه خود از مجموعه ای از یک یا چند کروموزوم (chromosome ) تشکیل شده است. کروموزوم ها رشته هایی از مولکول DNA می باشند که در حقیقت برنامه کاری موجود زنده را در خود ذخیره می کنند. هر کروموزوم شامل چندین ژن( gene ) می باشد، که هر ژن بلوکی از مولکول DNA می باشد که پروتئین خاصی را کدگذاری می کند. به طور کلی می توان گفت که هر ژن یک خصیصه (trait ) از موجود زنده (مانند رنگ چشم) را کد گذاری می کند. حالت های ممکن برای یک خصیصه را (allele ) می گویند. هر ژن موقعیت مخصوص خود را در کروموزوم دارد که به آن (locus ) می گویند. بسیاری از موجودات زنده در هر سلول چندین کروموزوم دارند. مجموعه کامل مواد ژنتیکی در سلول (مجموعه همه کروموزوم ها) (genome ) نامیده می شوند. اصطلاح (genotype ) به مجموعه خاصی از کروموزوم های موجود در genome اتلاق می شود. Genotype ها در پی تحولات و تغییر، به phenotypeها خصوصیات فیزیکی و ذهنی موجود زنده (مانند رنگ چشم، بلندی، اندازه مغز و یا میزان هوش) تبدیل می شوند.
در طی تولید مثل جنسی(reproduction )، در اثر الحاق(recombination or crossover ) ژن ها از کروموزوم های والدین(parents ) با یکدیگر ترکیب شده تا کروموزوم کامل جدیدی را تشکیل دهند. در طی این تغییرات، ممکن است تغییرات کوچکی در برخی از بخش های DNA ژن های فرزند، بوجود آمده و فرزند دچار جهش (mutation ) گردد. در نهایت تناسب (fitness ) یک موجود زنده با توجه به احتمال زیستن آن برای تکثیر(زیست پذیری(viability ) ) یا برحسب تابعی از تعداد فرزندان آن گونه (باروری(fertility )) تعیین می گردد.
فصلاول-مقدمه
1-1-مقدمه
فصلدوم-مقدمهایبرالگوریتمژنتیک
2-1-مقدمه
2-2-پیشینه
2-3-اصطلاحاتزیستی
2-4-تشریحکلیالگوریتمژنتیک
2-5-حلمسألهبااستفادهازالگوریتمژنتیک
2-6-اجزایالگوریتمژنتیک
2-6-1-جمعیت
2-6-2-کدگذاری
2-6-2-1-کدگذاریدودویی
2-6-2-2-کدگذاریمقادیر
2-6-2-3-کدگذاریدرختی
2-6-3-عملگرهایالگوریتمژنتیک
2-6-3-1-fitness(برازش)
2-6-3-2-selection(انتخاب)
2-6-3-3-crossover(ترکیب)
2-6-3-4-mutation(جهش)
2-7-مفاهیمتکمیلی
2-7-1-برتریهاوضعفهایالگوریتمژنتیک
2-7-2-نکاتمهمدرالگوریتمهایژنتیک
2-7-3-نتیجهگیری
فصلسوم-کاهشاثراتزیستمحیطیآلایندههایCox،NOxوSOxدرکورهها
3-1-مقدمه
3-2-احتراق
3-2-1-روشمحاسبهترکیباتتعادلیبااستفادهازثابتتعادل
3-2-2-روشمحاسبهدمایآدیاباتیکشعله
3-2-3-انتخابسیستمشیمیایی
3-2-4-تأثیردمایهواومیزانهوایاضافیبرتولیدمحصولات
3-3-بهینهسازی
3-3-1-روشهایحلمسائلبهینهسازی
3-3-2-روشتابعپنالتی
3-3-3-الگوریتمحلتابعپنالتی
3-4-برنامهیکامپیوتریومراحلآن
3-5-تشکیلتابعهدف
3-6-تشکیلمدلمسئلهبهینهسازی
3-7-روشحل
فصلچهارم-توضیحاتیدررابطهباgatoolنرمافزارمطلب
4-1-gatool
4-2-تنظیمگزینههابرایالگوریتمژنتیک
4-3-PlotOptions
4-4-PopulationOptions
4-5-FitnessScalingOptions
4-6-SelectionOptions
4-7-ReproductionOptions
4-8-MutationOptions
4-9-CrossoverOptions
4-10-MigrationOptions
4-11-OutputFunctionOptions
4-12-StoppingCriteriaOptions
4-13-HybridFunctionOptions
4-14-VectorizeOptions
فصلپنجم–نتایج
5-1-نتایجحاصلازتابعپنالتیوالگوریتمژنتیک
5-2-نتیجهگیری
فهرستمراجع
شامل 110 صفحه فایل word