فهرست عناوین کتاب
فصل 1: مقدمهای بر بهینهسازی
1 1-1 . مقدمه
1-2 - نظریهی پیچیدگی محاسباتی
1-3 - مسائل محاسباتی
3-1- نمونههای مسئله
1-3-2- نمایش نمونههای مسئله
1-4- مسائل تصمیمگیری
1-5- مسائل تابعی
1-6- محاسبهی اندازهی یک نمونه
1-7- مدلهای ماشین و معیارهای پیچیدگی
1-8- معیارهای پیچیدگی
1-8-1- پیچیدگی زمانی
1-9- بهترین حالت، بدترین حالت و حالت متوسط پیچیدگی
1-10- کران بالا و پایین پیچیدگی مسائل
1-11- کلاسهای پیچیدگی
1-11-1- تعیین کلاسهای پیچیدگی
1-11-2- کلاسهای پیچیدگی مهم
1-12- سادهسازی
1-13- بررسی ناکارآمد بودن از لحاظ زمانی
1-14- مسائل حل نشدهی مهم
1-14-1- مسئلهی P در مقابل NP
1-14-2- وجود مسائلی در NP که نه جزء P هستند و نه جزء NP-Complete
1-15- روشهایی برای حل مسائل NP-Complete
1-16- روشهای جستجوی هوش مصنوعی
1-17- انواع مسائل در هوش مصنوعی
1-17-1- جستجوی ناآگاهانه
1-17-1-1- الگوهای جستجوی عمومی
1-17-1-2- جستجوی عمقی
1-17-1-3- جستجوی عمقی محدود شده
1-17-1-4- جستجوی سطحی
1-17-1-5- جستجوی عمقی تکرار شونده
1-17-1-6- جستجوی دو طرفه
1-17-1-7- جستجوی هزینهی یکنواخت
1-17-2- روش های جستجوی آگاهانه
1-17-3- روش های جستجوی مکاشفهای
1-17-3-8- جستجوی اول بهترین
1-17-3-9- حل مسئلهی N- وزیر با استفاده از روش اول بهترین
1-17-3-10- جستجوی حریصانه
1-17-3-11- جستجوی
1-17-3-12- الگوریتم تپه نوردی
1-17-3-13- الگوریتم تپهنوردی تعمیم یافته
1-17-3-14- الگوریتم جستجوی تابو
1-18- بهینهسازی
1-18-1- یافتن بهترین راهحل
1-18-2- بهینهسازی چیست؟
1-18-3- مقایسهی ریشهیابی با بهینهسازی
1-18-4- انواع بهینهسازی
1-19- الگوریتمهای جستجوگر حداقل
1-19-1- جستجوی جامع
1-19-2- بهینهسازی تحلیلی
1-19-3- روش غیرمرکب سرازیری نلدر- مید
1-19-4- بهینهسازی مبتنی بر کمینهسازی خط
1-20- روشهای بهینهسازی طبیعی
1-21- بهینهسازی زیستی: انتخاب طبیعی
1-22- الگوریتم ژنتیک
کتابنامه
تمرین
فصل 2: الگوریتم ژنتیک گسسته
2- 1- انتخاب طبیعی بر روی کامپیوتر.
2-2- مؤلفههای یک الگوریتم ژنتیک دودویی
2-2-2- انتخاب متغیرها و تابع هزینه
2-2-3- کدگذاری و کدگشایی متغیر
2-2-4- انتخاب طبیعی براي نسل بعد
2-2-5- انتخاب والدين
2-2-6- ادغام
2-2-7- جهش
2-2-8- نسل بعدی
2-2-9- همگرایی
2-3- بهینهسازی یک تابع ساده
سخن آخر
کتابنامه
تمرین
فصل 3: الگوریتم ژنتیک پیوسته
3-1- مقدمه
3-2- مولفههای یک الگوریتم ژنتیک پیوسته
3-2-2- متغیرها و تابع هزینه برای مثال ارائه شده در فصل
3-2-3- دقت، قیدها و کدگذاری متغیرها
3-2-4- جمعیت اولیه
3-2-5- انتخاب طبیعی
3-2-6- جفتگیری
3-2-7- ادغام
3-2-8- جهشها
3-2-9- نسل بعدی
3-2-10- همگرایی
3-3- سخن آخر
کتابنامه
تمرین
فصل 4: کاربردهای پایه
4-1- مقدمه
4-2- خلاقیت الگوریتمی- هنر ژنتیکی
4-4- بازی حدس زدن یک کلمه
4-5- مکانیابی مناسب برای یک واحد اورژانس
4-6- طراحی آنتن آرایهای
4-7- تکامل تدریجی اسبها
4-8- خلاصه
کتابنامه
فصل 5: افزودن اندکی پیچیدگی
5-1- مقدمه
5-2- کار با توابع پرهزینه
5-3- بهینهسازی چند منظوره
5-3-2- مجموع توابع هزینهی وزندهی شده
5-3-3- بهینهسازی پارتو
5-4- GA مرکب
5-5- کدهای گری
5-6- روشهای دیگر کدگذاری کروموزوم
5-7- اندازهی ژن
5-8- همگرایی
5-9- ادغامهای دیگر برای GAهای دودویی
5-10- جمعیت
5-11- جهش
5-12- مسائل جایگشت
5-13- انتخاب مشخصههای ژنتیک
5-14- GA پیوسته در مقابل GA گسسته
5-15- الگوریتمهای ژنتیک آشفته
5-16- عملگرهای پیشرفته
5-16-1- دوگانی، غالب و مغلوب
5-16-2- مالتی پلوئید یا چندگانی
5-16-3- وارونگی و مرتبسازی مجدد
5-16-4- نیچ و گونهپروری
5-16-4-1- نیچ و گونهپروری در مسائل چند قیدی
5-16-5- تراکم
5-16-6- اشتراک
5-16-7- نیچ و گونهپروری در مسائل تکقید
5-16-8- جلوگیری از ازدواج با محارم
5-17- الگوریتمهای متاژنتیک
5-18- نگاشت نژادمانه به رخمانه
5-19- الگوریتمهای ژنتیک موازی
5-19-1- مزایای GA موازی
5-19-2- روشهایی برای GA موازی
5-19-3- افزایش سرعت پیشبینی شده
5-19-4- مثالی از یک GA موازی
5-19-5- چگونه GAهای موازی مورد استفاده قرار گیرند
کتابنامه
تمرین
فصل 6: کاربردهای پیشرفته
6-1- مقدمه
6-2- مسئلهی فروشندهی دورهگرد
6-3- بازگشت به مسئلهی مکانیابی برای یک واحد اورژانس
6-4- رمزگشایی یک پیغام محرمانه
6-5- طراحی خط سیر روبات
6-6- طراحی حرکت مخفی (رادارگریز)
6-7- ساخت مدلهای معکوس دینامیکی- حالت خطی
6-8- ساخت مدلهای معکوس دینامیکی- حالت غیرخطی
6-9- ترکیب GA با شبیهسازی- مدلسازی دستگاه اندازهگیری آلودگی هوا
6-10- مسائل زمانبندی
6-10-1- الگوریتم ژنتیک برای مسئلهی زمانبندی کارها بر روی ماشینها
6-11- بهینهسازی شبکههای عصبی مصنوعی بوسیلهی ژنتیک
6-12- حل معادلات دیفرانسیل جزئی غیرخطی مرتبه بالا
کتابنامه
فصل 7: مقدمهای بر الگوریتمهای تکاملپذیر
7-1- مقدمه
7-2- روش شبيهسازي تبريد تدريجي در يك نگاهي کلي
7-2-1- معیار متروپلیس
7-2-2- اجراي الگوريتم شبيه سازي تبريد تدريجي
7-2-3- شروط تعادل و توقف در شبيه سازي تبريد تدريجي
7-2-4- رابطه بين شبيه سازي تبريد تدريجي و حرارت فيزيكي
7-2-5- شبهکدي براي الگوريتم شبيه سازي تبريد تدريجي
7-2-6- برنامه سرد كردن در شبيهسازي تبريد تدريجي
7-2-7- تابع هزينه و همسايگي در شبيهسازي تبريد تدريجي
7-3- الگوریتم بهينهسازي گروهي ذرات در يك نگاه كلي
7-3-1- حرکت دسته جمعي ذرات
7-3-2- بکارگیری PSO در آموزش شبکههای عصبی
7-4- الگوريتم بهينه سازي مورچگان
7-4-1- مطالعه رفتار حيوانات
7-4-2- اصول پايه مسيريابي مورچهها به سوي غذا
7-4-3- بهينه سازي ساده کلوني مورچه
7-4-4- مراحل الگوريتم SACO
7-4-5- معايب الگوريتم SACO
7-5- بکارگيري الگوريتم ACO براي مسائل خوشه بندي دادهها
7-5-1- مراحل الگوريتم ACO براي خوشه بندي دادهها
7-5-1-1- چگونگي توليد راه حل ها
7-5-1-2- چگونگي محاسبه شايستگي
7-5-1-3- جستجوي محلي
7-5-2- الگوريتم ACO اصلاح شده براي دسته بندي دادهها
7-5-3- پياده سازي الگوريتم هاي دسته بندي بررسي شده
7-6- الگوریتمهای فرهنگی
7-7- روشهای تکاملی
7-8- آیندهی الگوریتمهای ژنتیک
کتابنامه
تمرین
پیوستها
پیوست الف: توابع آزمون
کتابنامه
پیوست ب: کد متلب
برنامهی 1: الگوریتم ژنتیک دودویی
برنامهی 2: تبدیل کروموزومهای دودویی به کروموزومهای پیوسته
برنامهی 3: الگوریتم ژنتیک پیوسته
برنامهی 4: الگوریتم ژنتیک پارتو
برنامهی 5: الگوریتم ژنتیک جایگشتی
برنامهی 6: تابع هزینهی مسئلهی فروشندهی دورهگرد
برنامهی 7: بهینهسازی هجوم ذرات
برنامهی 8: بهینهسازی اجتماع مورچهها
برنامهی 9: توابع آزمون
پیوست پ: کد فرترن با کارایی بالا
پیادهسازی موازی الگوریتم ژنتیک پیوسته
پیوست ت: پیادهسازی الگوریتم ژنتیک با استفاده از متلب
ساختار دادهها
کروموزومها
رخمانهها
مقادیر تابع هدف
مقادیر شایستگی
چندین خرده جمعیت
توابع جعبه ابزار
جعبه ابزار واسط گرافیکی کاربر برای الگوریتم ژنتیک
الف. جمعیت
ب. مقایس گذاری شایستگی
پ. انتخاب
ت. تولید مثل
ث. جهش
ج. ادغام
چ. مهاجرت
ح. تابع مرکب
خ. معیار توقف
د. اجرا و شبیهسازی
اجرای الگوریتم
مسائل حل شده با استفاده از متلب
مسئلهی 1
مسئلهی 2
مسئلهی 3
مسئلهی 4
مسئلهی 5
مسئلهی 6
مسئلهی 7
مسئلهی 8
مسئلهی 9
مسئلهی 10
مسئلهی 11
مسئلهی 12
بهینهسازی با استفاده از الگوریتم ژنتیک در C/C++
پیوست ث: مقدمه
مسئلهی فروشندهی دورهگرد
مسئلهی تطبیق کلمه
معمای غیر قابل حل زندانی
بیشینهسازی تابع
کمینهسازی یک تابع سینوسی دارای قید
شرح مسئله
بیشینهسازی تابع
حل معادلهی درجه دوم
واژهنامه
کتاب «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» توسط انتشارات دانشگاه علم و صنعت منتشر شد.
دکتر هادی شهريار شاهحسينی، دکتر سيدمحمدرضا موسوی ميرکلائی و مهندس مرتضی ملاجعفری با همکاری هم کتابی با عنوان «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» را تالیف کردهاند که در روزهای اول خرداد ماه امسال به چاپ رسیده است. این کتاب 616 صفحهای با شمارگان هزار نسخه منتشر شده و 10 هزار تومان قیمت دارد.

قابل تهیه در کتاب فروشی های روبروی دانشگاه تهران
لینک خرید اینترنتی:
http://www.iust.ac.ir/book_treasure.php?mod=viewbook&book_id=39575&slc_lang=fa&sid=10
آدرس ایمیل جهت خرید و تحویل کتاب:
m_mjafari85@yahoo.com
پیشگفتار کتاب
این کتاب بر روی روشهای فرامکاشفهای و به طور خاص الگوریتمهای ژنتیک متمرکز است. مخاطبین آن افرادی هستند که به گونهای با مسائل بهینهسازی سر و کار دارند و یا دانشجویانی که دارای دانش پایهای در علوم رایانه و به خصوص الگوریتمها هستند. اهمیت این کتاب در معرفی تاریخچه، مبانی، مباحث نظری ساده تا پیشرفته، کاربردها و در نهایت پیادهسازی الگوریتمهای ژنتیک است.
برای شروع، اطلاعاتی راجع به کلاسهای پیچیدگی، روشهای جستجو در هوش مصنوعی، روشهای بهینهسازی سنتی، اطلاعات پایهای در زمینهی ژنتیک و تکامل زیستی و تاریخچهای در مورد الگوریتمهای بهینهسازی طبیعی ارائه شده است. سپس الگوریتم ژنتیک به طور مفصل شرح داده شده و برای درک آن مثالهای کاربردی فراوانی به همراه کدهای پیادهسازی به زبانهای برنامهنویسی مختلف در اختیار خوانندگان قرار گرفته است.
روند کتاب به گونهای طراحی شده است تا خواننده با شروع از مطالب مقدماتی و سپس پیش رفتن گام به گام به سمت مباحث پیشرفته، خودآموزی پیش روی خود داشته باشد که وی را از مطالعهی منابع دیگر بینیاز سازد. مطالب این کتاب برای دانشجویان ترمهای آخر دورهی کارشناسی و سالهای اول تحصیلات تکمیلی مناسب است. برای درس پردازش تکاملی این کتاب میتواند به طور کامل در یک نیمسال تحصیلی مورد استفاده قرار گیرد. علاوه بر آن میتواند به عنوان کتاب مکمل جهت دروس دیگری همچون الگوریتمها، روشهای بهینهسازی ترکیبی، هوش مصنوعی و ... نیز به کار رود.
کتاب با پیشنیازهایی همچون نظریهی پیچیدگی محاسباتی و کاربرد روشهای مکاشفهای و فرامکاشفهای در هوش مصنوعی آغاز میشود. پس از آن تاریخچهی مختصری در مورد چگونگی پیدایش بهینهسازی الهام گرفته شده از طبیعت ارائه میگردد.
پس از بیان مقدمات لازم، مراحل مختلف یک الگوریتم ژنتیک گسسته ارائه میشود. به موازات آن برخی دستورهای اولیه جهت پیادهسازی مراحل ذکر شده در محیط متلب در اختیار قرار داده میشوند تا خواننده در کنار مطالب نظری، از مزایای شبیهسازی و درک عملی مباحث مطرح شده بهرهمند شود.
در ادامه، نوع دیگری از الگوریتم ژنتیک به نام الگوریتم ژنتیک پیوسته ارائه میشود که با حل مسئلهی مشابه آنچه توسط الگوریتم ژنتیک گسسته نیز حل شد، سعی در نشان دادن ویژگیها و برتریهای هر یک در شرایط و مسائل مختلف شده است. پس از بیان مفاهیم اولیه و پایه، چندین مثال کاربردی ساده به همراه پیادهسازی و نتایجشان ارائه گردیده است.
مطالبی
که در ادامه مطرح شدهاند شامل مفاهیم پیشرفته جهت افرادی است که
میخواهند از الگوریتم ژنتیک در سطوح بالاتر، برای حل مسائل پیچیدهتر و
رسیدن به نتایج مطلوبتر استفاده کنند. پس از بیان این مباحث، برای روشن
شدن مطالب ارائه شده و همچنین نمایش قدرت الگوریتمهای ژنتیک به مسائل
کاربردی پیشرفتهتر پرداخته
شده است.
در این مقطع، مباحث مربوط به الگوریتمهای ژنتیک به پایان رسیده و کتاب با ارائهی شرح مختصری راجع به چند الگوریتم بهینهسازی طبیعی دیگر ادامه مییابد. برای هر چه کاربردیتر شدن کتاب، آموزش جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه پیادهسازیهای فراوانی از مسائل متنوع به زبانهای متلب، فورترن، C و++ Cارائه گردیده است تا حد امکان نیازهای خواننده برطرف شود. ++ C
این کتاب سرشار از عبارات و اصطلاحات تخصصی در زمینهی زیستشناسی، ریاضیات و علوم رایانه است که در فارسی تا به حال معادلهای گویا و رسایی برای آنها یافت نشده است. گاه معادلهای فارسی جدید ساخته شده و گاهی نیز چارهای جز استفاده از اصطلاحات به زبان اصلی نبوده است. برای تفهیم هر چه بیشتر این عبارات و اصطلاحات، در پایان کتاب واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
کتاب حاوی مسائل کاربردی فراوانی است که به طور عمده از فصل 4 آغاز میشوند. در این فصل مثالها به گونهای طراحی شدهاند تا خواننده درک روشنی از الگوریتم ژنتیک و کاربرد آن به دست آورد. مجموعهی بعدی مسائل در فصل 6 ارائه شدهاند و شامل مسائل عملیتر و پیشرفتهتر میباشند. مسائل هر یک از فصلها با دقت انتخاب شدهاند به گونهای که فهم آنها فقط به مطالبی بستگی دارد که قبل از ارائهی آن مسئله شرح داده شده است. بنابراین خواننده میتواند بدون نیاز به مراجعه به بخشهای بعد، به مطالعه و پیادهسازی مسائل هر قسمت بپردازد. هر فصل کتاب شامل مسائل مرتبط با مطالب همان فصل است. اگرچه این کتاب میتواند به تنهایی برای درک و یادگیری مفاهیم الگوریتمهای ژنتیک به کار رود اما بهتر است که خواننده به همراه آن از یک برنامهی شبیهساز نیز استفاده کند. در حال حاضر نرمافزارهای فراوانی جهت شبیهسازی موجود میباشند که رایجترین آنها نرمافزار متلب است.
چشمانداز فصلها
چشمانداز فصلهای کتاب در ادامه ارائه شده است. هدف از ارائهی این قسمت کمک به خواننده است تا بتواند برای مطالعهی مطالب مورد نیازش تصمیمگیری کند. فصل 1 مقدمه است و شامل مطالبی است که ممکن است خوانندگان زیادی از قبل با آنها آشنا باشند. با این وجود، توصیه میشود که حتی خوانندگان مجرب نیز از خواندن این فصل به طور کامل صرف نظر نکنند. مطالب ارائه شده در فصلهای این کتاب به طور خلاصه به شرح زیر است:
فصل 1 نگاه
مختصری راجع به نظریهی پیچیدگی محاسباتی، روشهای جستجوی هوش مصنوعی و
بهنیهسازی سنتی به همراه تاریخچهای در مورد الگوریتمهای بهینهسازی
طبیعی ارائه میکند. خواننده با خواندن این فصل با کلاسها و معیارهای
پیچیدگی
آشنا میشود و به ناکارآمد بودن روشهای بهینهسازی سنتی و اهمیت روشهای تکاملی پی میبرد.
فصل 2 مفهوم الگوریتم ژنتیک و مراحل لازم برای یک الگوریتم ژنتیک گسسته را به همراه یک مثال ساده بیان میکند. خواننده با دنبال کردن مطالب این فصل نه تنها مفهوم الگوریتم ژنتیک را به خوبی درک خواهد کرد بلکه با مزایای آن نسبت به روشهای سنتی آشنا خواهد شد و قادر خواهد بود تا با پایان فصل، یک الگوریتم ژنتیک دودویی ساده را پیادهسازی کند.
فصل 3 دو هدف را دنبال میکند: یکی بیان الگوریتم ژنتیک پیوسته و دیگری نشان دادن مزایا و معایب آن در مقایسه با الگوریتم ژنتیک گسسته. خواندن مطالب این فصل برای درک مباحث ارائه شده در بخشهای بعدی کتاب ضروری است.
فصل 4 به ارائهی مثالهای کاربردی و پایهای میپردازد که با استفاده از مطالب بیان شده در دو فصل قبل به راحتی قابل حل میباشند. این فصل نشان میدهد که چگونه میتوان از الگوریتمهای ژنتیک برای حل مسائل ساده بهره برد و آنها را برای مسائلی که پیش رو داریم مناسبسازی کنیم.
فصل 5 در مورد مباحث پیشرفته در الگوریتمهای ژنتیک است. در این فصل مطالبی ارائه میشوند که کارایی و قدرت این الگوریتمها را به شدت افزایش میدهند. مطالبی همچون الگوریتمهای ژنتیک موازی، الگوریتم ژنتیک آشفته، الگوریتم ژنتیک مرکب، تاثیر چگونگی انتخاب مولفههای الگوریتم بر کارایی آن و... از جملهی مباحث مطرح شده در این فصل است.
فصل 6 به ارائهی مثالهای پیشرفته و کاربردیتری در زمینههای مختلف از مهندسی گرفته تا مدیریت، موسیقی و هنر میپردازد. فهم این مسائل مستلزم مطالعه و یادگیری مطالب ارائه شده در فصل 5 است.
فصل 7 جدا از فصلهای 2 تا 6 است و دیگر به الگوریتم ژنتیک نمیپردازد بلکه خواننده را با روشهای بهینهسازی طبیعی دیگر مثل تبرید تدریجی، اجتماع مورچهها و راهبردهای تکاملی آشنا و وی را به سمت مطالعهی روشهای هوش مصنوعی دیگر جهت بهینهسازی سوق میدهد.
پیوستها: در ادامهی کتاب 5 پیوست ارائه شده است. پیوست الف شامل 12 تابع آزمون معتبر است که میتوان از آنها برای سنجش برنامههای نوشته شده و یادگیری مطالب کتاب بهره برد. پیوستهای ب و پ به ترتیب شامل کدهای متلب و فورترن الگوریتمهای ارائه شده در فصلهای 2، 3 و 5 میباشند. در پیوست ت جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه مثالهایی آموزش داده شده است. آخرین پیوست یعنی پیوست ث نیز به پیادهسازی مسائل بهینهسازی متنوع با استفاده از زبانهای ++ C و C میپردازد.
واژهنامه: در پایان کتاب نیز به جهت تفهیم هر چه بیشتر عبارات و اصطلاحات تخصصی به کار رفته در طول فصلها، واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
امید است که این کتاب برای دانشجویان، محققان و پژوهشگران مفید باشد و به عنوان گام کوچکی آنان را در مسیر اهداف علمی و عملیشان یاری رساند. واضح است که کارهایی از این دست خالی از عیب و نقص نیستند و بنابراین خوانندگان با ارائهی نظرات خود مولفین کتاب را در رفع اشکالها و نواقص احتمالی و بهبود نسخههای بعدی کتاب یاری خواهند کرد.
کتاب «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» توسط انتشارات دانشگاه علم و صنعت منتشر شد.
دکتر هادی شهريار شاهحسينی، دکتر سيدمحمدرضا موسوی ميرکلائی و مهندس مرتضی ملاجعفری با همکاری هم کتابی با عنوان «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» را تالیف کردهاند که در روزهای اول خرداد ماه امسال به چاپ رسیده است. این کتاب 616 صفحهای با شمارگان هزار نسخه منتشر شده و 10 هزار تومان قیمت دارد.

قابل تهیه در کتاب فروشی های روبروی دانشگاه تهران
لینک خرید اینترنتی:
http://www.iust.ac.ir/book_treasure.php?mod=viewbook&book_id=39575&slc_lang=fa&sid=10
آدرس ایمیل جهت خرید و تحویل کتاب:
m_mjafari85@yahoo.com
پیشگفتار کتاب
این کتاب بر روی روشهای فرامکاشفهای و به طور خاص الگوریتمهای ژنتیک متمرکز است. مخاطبین آن افرادی هستند که به گونهای با مسائل بهینهسازی سر و کار دارند و یا دانشجویانی که دارای دانش پایهای در علوم رایانه و به خصوص الگوریتمها هستند. اهمیت این کتاب در معرفی تاریخچه، مبانی، مباحث نظری ساده تا پیشرفته، کاربردها و در نهایت پیادهسازی الگوریتمهای ژنتیک است.
برای شروع، اطلاعاتی راجع به کلاسهای پیچیدگی، روشهای جستجو در هوش مصنوعی، روشهای بهینهسازی سنتی، اطلاعات پایهای در زمینهی ژنتیک و تکامل زیستی و تاریخچهای در مورد الگوریتمهای بهینهسازی طبیعی ارائه شده است. سپس الگوریتم ژنتیک به طور مفصل شرح داده شده و برای درک آن مثالهای کاربردی فراوانی به همراه کدهای پیادهسازی به زبانهای برنامهنویسی مختلف در اختیار خوانندگان قرار گرفته است.
روند کتاب به گونهای طراحی شده است تا خواننده با شروع از مطالب مقدماتی و سپس پیش رفتن گام به گام به سمت مباحث پیشرفته، خودآموزی پیش روی خود داشته باشد که وی را از مطالعهی منابع دیگر بینیاز سازد. مطالب این کتاب برای دانشجویان ترمهای آخر دورهی کارشناسی و سالهای اول تحصیلات تکمیلی مناسب است. برای درس پردازش تکاملی این کتاب میتواند به طور کامل در یک نیمسال تحصیلی مورد استفاده قرار گیرد. علاوه بر آن میتواند به عنوان کتاب مکمل جهت دروس دیگری همچون الگوریتمها، روشهای بهینهسازی ترکیبی، هوش مصنوعی و ... نیز به کار رود.
کتاب با پیشنیازهایی همچون نظریهی پیچیدگی محاسباتی و کاربرد روشهای مکاشفهای و فرامکاشفهای در هوش مصنوعی آغاز میشود. پس از آن تاریخچهی مختصری در مورد چگونگی پیدایش بهینهسازی الهام گرفته شده از طبیعت ارائه میگردد.
پس از بیان مقدمات لازم، مراحل مختلف یک الگوریتم ژنتیک گسسته ارائه میشود. به موازات آن برخی دستورهای اولیه جهت پیادهسازی مراحل ذکر شده در محیط متلب در اختیار قرار داده میشوند تا خواننده در کنار مطالب نظری، از مزایای شبیهسازی و درک عملی مباحث مطرح شده بهرهمند شود.
در ادامه، نوع دیگری از الگوریتم ژنتیک به نام الگوریتم ژنتیک پیوسته ارائه میشود که با حل مسئلهی مشابه آنچه توسط الگوریتم ژنتیک گسسته نیز حل شد، سعی در نشان دادن ویژگیها و برتریهای هر یک در شرایط و مسائل مختلف شده است. پس از بیان مفاهیم اولیه و پایه، چندین مثال کاربردی ساده به همراه پیادهسازی و نتایجشان ارائه گردیده است.
مطالبی
که در ادامه مطرح شدهاند شامل مفاهیم پیشرفته جهت افرادی است که
میخواهند از الگوریتم ژنتیک در سطوح بالاتر، برای حل مسائل پیچیدهتر و
رسیدن به نتایج مطلوبتر استفاده کنند. پس از بیان این مباحث، برای روشن
شدن مطالب ارائه شده و همچنین نمایش قدرت الگوریتمهای ژنتیک به مسائل
کاربردی پیشرفتهتر پرداخته
شده است.
در این مقطع، مباحث مربوط به الگوریتمهای ژنتیک به پایان رسیده و کتاب با ارائهی شرح مختصری راجع به چند الگوریتم بهینهسازی طبیعی دیگر ادامه مییابد. برای هر چه کاربردیتر شدن کتاب، آموزش جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه پیادهسازیهای فراوانی از مسائل متنوع به زبانهای متلب، فورترن، C و++ Cارائه گردیده است تا حد امکان نیازهای خواننده برطرف شود. ++ C
این کتاب سرشار از عبارات و اصطلاحات تخصصی در زمینهی زیستشناسی، ریاضیات و علوم رایانه است که در فارسی تا به حال معادلهای گویا و رسایی برای آنها یافت نشده است. گاه معادلهای فارسی جدید ساخته شده و گاهی نیز چارهای جز استفاده از اصطلاحات به زبان اصلی نبوده است. برای تفهیم هر چه بیشتر این عبارات و اصطلاحات، در پایان کتاب واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
کتاب حاوی مسائل کاربردی فراوانی است که به طور عمده از فصل 4 آغاز میشوند. در این فصل مثالها به گونهای طراحی شدهاند تا خواننده درک روشنی از الگوریتم ژنتیک و کاربرد آن به دست آورد. مجموعهی بعدی مسائل در فصل 6 ارائه شدهاند و شامل مسائل عملیتر و پیشرفتهتر میباشند. مسائل هر یک از فصلها با دقت انتخاب شدهاند به گونهای که فهم آنها فقط به مطالبی بستگی دارد که قبل از ارائهی آن مسئله شرح داده شده است. بنابراین خواننده میتواند بدون نیاز به مراجعه به بخشهای بعد، به مطالعه و پیادهسازی مسائل هر قسمت بپردازد. هر فصل کتاب شامل مسائل مرتبط با مطالب همان فصل است. اگرچه این کتاب میتواند به تنهایی برای درک و یادگیری مفاهیم الگوریتمهای ژنتیک به کار رود اما بهتر است که خواننده به همراه آن از یک برنامهی شبیهساز نیز استفاده کند. در حال حاضر نرمافزارهای فراوانی جهت شبیهسازی موجود میباشند که رایجترین آنها نرمافزار متلب است.
چشمانداز فصلها
چشمانداز فصلهای کتاب در ادامه ارائه شده است. هدف از ارائهی این قسمت کمک به خواننده است تا بتواند برای مطالعهی مطالب مورد نیازش تصمیمگیری کند. فصل 1 مقدمه است و شامل مطالبی است که ممکن است خوانندگان زیادی از قبل با آنها آشنا باشند. با این وجود، توصیه میشود که حتی خوانندگان مجرب نیز از خواندن این فصل به طور کامل صرف نظر نکنند. مطالب ارائه شده در فصلهای این کتاب به طور خلاصه به شرح زیر است:
فصل 1 نگاه
مختصری راجع به نظریهی پیچیدگی محاسباتی، روشهای جستجوی هوش مصنوعی و
بهنیهسازی سنتی به همراه تاریخچهای در مورد الگوریتمهای بهینهسازی
طبیعی ارائه میکند. خواننده با خواندن این فصل با کلاسها و معیارهای
پیچیدگی
آشنا میشود و به ناکارآمد بودن روشهای بهینهسازی سنتی و اهمیت روشهای تکاملی پی میبرد.
فصل 2 مفهوم الگوریتم ژنتیک و مراحل لازم برای یک الگوریتم ژنتیک گسسته را به همراه یک مثال ساده بیان میکند. خواننده با دنبال کردن مطالب این فصل نه تنها مفهوم الگوریتم ژنتیک را به خوبی درک خواهد کرد بلکه با مزایای آن نسبت به روشهای سنتی آشنا خواهد شد و قادر خواهد بود تا با پایان فصل، یک الگوریتم ژنتیک دودویی ساده را پیادهسازی کند.
فصل 3 دو هدف را دنبال میکند: یکی بیان الگوریتم ژنتیک پیوسته و دیگری نشان دادن مزایا و معایب آن در مقایسه با الگوریتم ژنتیک گسسته. خواندن مطالب این فصل برای درک مباحث ارائه شده در بخشهای بعدی کتاب ضروری است.
فصل 4 به ارائهی مثالهای کاربردی و پایهای میپردازد که با استفاده از مطالب بیان شده در دو فصل قبل به راحتی قابل حل میباشند. این فصل نشان میدهد که چگونه میتوان از الگوریتمهای ژنتیک برای حل مسائل ساده بهره برد و آنها را برای مسائلی که پیش رو داریم مناسبسازی کنیم.
فصل 5 در مورد مباحث پیشرفته در الگوریتمهای ژنتیک است. در این فصل مطالبی ارائه میشوند که کارایی و قدرت این الگوریتمها را به شدت افزایش میدهند. مطالبی همچون الگوریتمهای ژنتیک موازی، الگوریتم ژنتیک آشفته، الگوریتم ژنتیک مرکب، تاثیر چگونگی انتخاب مولفههای الگوریتم بر کارایی آن و... از جملهی مباحث مطرح شده در این فصل است.
فصل 6 به ارائهی مثالهای پیشرفته و کاربردیتری در زمینههای مختلف از مهندسی گرفته تا مدیریت، موسیقی و هنر میپردازد. فهم این مسائل مستلزم مطالعه و یادگیری مطالب ارائه شده در فصل 5 است.
فصل 7 جدا از فصلهای 2 تا 6 است و دیگر به الگوریتم ژنتیک نمیپردازد بلکه خواننده را با روشهای بهینهسازی طبیعی دیگر مثل تبرید تدریجی، اجتماع مورچهها و راهبردهای تکاملی آشنا و وی را به سمت مطالعهی روشهای هوش مصنوعی دیگر جهت بهینهسازی سوق میدهد.
پیوستها: در ادامهی کتاب 5 پیوست ارائه شده است. پیوست الف شامل 12 تابع آزمون معتبر است که میتوان از آنها برای سنجش برنامههای نوشته شده و یادگیری مطالب کتاب بهره برد. پیوستهای ب و پ به ترتیب شامل کدهای متلب و فورترن الگوریتمهای ارائه شده در فصلهای 2، 3 و 5 میباشند. در پیوست ت جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه مثالهایی آموزش داده شده است. آخرین پیوست یعنی پیوست ث نیز به پیادهسازی مسائل بهینهسازی متنوع با استفاده از زبانهای ++ C و C میپردازد.
واژهنامه: در پایان کتاب نیز به جهت تفهیم هر چه بیشتر عبارات و اصطلاحات تخصصی به کار رفته در طول فصلها، واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
امید است که این کتاب برای دانشجویان، محققان و پژوهشگران مفید باشد و به عنوان گام کوچکی آنان را در مسیر اهداف علمی و عملیشان یاری رساند. واضح است که کارهایی از این دست خالی از عیب و نقص نیستند و بنابراین خوانندگان با ارائهی نظرات خود مولفین کتاب را در رفع اشکالها و نواقص احتمالی و بهبود نسخههای بعدی کتاب یاری خواهند کرد.
کتاب «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» توسط انتشارات دانشگاه علم و صنعت منتشر شد.
دکتر هادی شهريار شاهحسينی، دکتر سيدمحمدرضا موسوی ميرکلائی و مهندس مرتضی ملاجعفری با همکاری هم کتابی با عنوان «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» را تالیف کردهاند که در روزهای اول خرداد ماه امسال به چاپ رسیده است. این کتاب 616 صفحهای با شمارگان هزار نسخه منتشر شده و 10 هزار تومان قیمت دارد.
قابل تهیه در کتاب فروشی های روبروی دانشگاه تهران
لینک خرید اینترنتی:
http://www.iust.ac.ir/book_treasure.php?mod=viewbook&book_id=39575&slc_lang=fa&sid=10
آدرس ایمیل جهت خرید و تحویل کتاب:
m_mjafari85@yahoo.com
پیشگفتار کتاب
این کتاب بر روی روشهای فرامکاشفهای و به طور خاص الگوریتمهای ژنتیک متمرکز است. مخاطبین آن افرادی هستند که به گونهای با مسائل بهینهسازی سر و کار دارند و یا دانشجویانی که دارای دانش پایهای در علوم رایانه و به خصوص الگوریتمها هستند. اهمیت این کتاب در معرفی تاریخچه، مبانی، مباحث نظری ساده تا پیشرفته، کاربردها و در نهایت پیادهسازی الگوریتمهای ژنتیک است.
برای شروع، اطلاعاتی راجع به کلاسهای پیچیدگی، روشهای جستجو در هوش مصنوعی، روشهای بهینهسازی سنتی، اطلاعات پایهای در زمینهی ژنتیک و تکامل زیستی و تاریخچهای در مورد الگوریتمهای بهینهسازی طبیعی ارائه شده است. سپس الگوریتم ژنتیک به طور مفصل شرح داده شده و برای درک آن مثالهای کاربردی فراوانی به همراه کدهای پیادهسازی به زبانهای برنامهنویسی مختلف در اختیار خوانندگان قرار گرفته است.
روند کتاب به گونهای طراحی شده است تا خواننده با شروع از مطالب مقدماتی و سپس پیش رفتن گام به گام به سمت مباحث پیشرفته، خودآموزی پیش روی خود داشته باشد که وی را از مطالعهی منابع دیگر بینیاز سازد. مطالب این کتاب برای دانشجویان ترمهای آخر دورهی کارشناسی و سالهای اول تحصیلات تکمیلی مناسب است. برای درس پردازش تکاملی این کتاب میتواند به طور کامل در یک نیمسال تحصیلی مورد استفاده قرار گیرد. علاوه بر آن میتواند به عنوان کتاب مکمل جهت دروس دیگری همچون الگوریتمها، روشهای بهینهسازی ترکیبی، هوش مصنوعی و ... نیز به کار رود.
کتاب با پیشنیازهایی همچون نظریهی پیچیدگی محاسباتی و کاربرد روشهای مکاشفهای و فرامکاشفهای در هوش مصنوعی آغاز میشود. پس از آن تاریخچهی مختصری در مورد چگونگی پیدایش بهینهسازی الهام گرفته شده از طبیعت ارائه میگردد.
پس از بیان مقدمات لازم، مراحل مختلف یک الگوریتم ژنتیک گسسته ارائه میشود. به موازات آن برخی دستورهای اولیه جهت پیادهسازی مراحل ذکر شده در محیط متلب در اختیار قرار داده میشوند تا خواننده در کنار مطالب نظری، از مزایای شبیهسازی و درک عملی مباحث مطرح شده بهرهمند شود.
در ادامه، نوع دیگری از الگوریتم ژنتیک به نام الگوریتم ژنتیک پیوسته ارائه میشود که با حل مسئلهی مشابه آنچه توسط الگوریتم ژنتیک گسسته نیز حل شد، سعی در نشان دادن ویژگیها و برتریهای هر یک در شرایط و مسائل مختلف شده است. پس از بیان مفاهیم اولیه و پایه، چندین مثال کاربردی ساده به همراه پیادهسازی و نتایجشان ارائه گردیده است.
مطالبی
که در ادامه مطرح شدهاند شامل مفاهیم پیشرفته جهت افرادی است که
میخواهند از الگوریتم ژنتیک در سطوح بالاتر، برای حل مسائل پیچیدهتر و
رسیدن به نتایج مطلوبتر استفاده کنند. پس از بیان این مباحث، برای روشن
شدن مطالب ارائه شده و همچنین نمایش قدرت الگوریتمهای ژنتیک به مسائل
کاربردی پیشرفتهتر پرداخته
شده است.
در این مقطع، مباحث مربوط به الگوریتمهای ژنتیک به پایان رسیده و کتاب با ارائهی شرح مختصری راجع به چند الگوریتم بهینهسازی طبیعی دیگر ادامه مییابد. برای هر چه کاربردیتر شدن کتاب، آموزش جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه پیادهسازیهای فراوانی از مسائل متنوع به زبانهای متلب، فورترن، C و++ Cارائه گردیده است تا حد امکان نیازهای خواننده برطرف شود. ++ C
این کتاب سرشار از عبارات و اصطلاحات تخصصی در زمینهی زیستشناسی، ریاضیات و علوم رایانه است که در فارسی تا به حال معادلهای گویا و رسایی برای آنها یافت نشده است. گاه معادلهای فارسی جدید ساخته شده و گاهی نیز چارهای جز استفاده از اصطلاحات به زبان اصلی نبوده است. برای تفهیم هر چه بیشتر این عبارات و اصطلاحات، در پایان کتاب واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
کتاب حاوی مسائل کاربردی فراوانی است که به طور عمده از فصل 4 آغاز میشوند. در این فصل مثالها به گونهای طراحی شدهاند تا خواننده درک روشنی از الگوریتم ژنتیک و کاربرد آن به دست آورد. مجموعهی بعدی مسائل در فصل 6 ارائه شدهاند و شامل مسائل عملیتر و پیشرفتهتر میباشند. مسائل هر یک از فصلها با دقت انتخاب شدهاند به گونهای که فهم آنها فقط به مطالبی بستگی دارد که قبل از ارائهی آن مسئله شرح داده شده است. بنابراین خواننده میتواند بدون نیاز به مراجعه به بخشهای بعد، به مطالعه و پیادهسازی مسائل هر قسمت بپردازد. هر فصل کتاب شامل مسائل مرتبط با مطالب همان فصل است. اگرچه این کتاب میتواند به تنهایی برای درک و یادگیری مفاهیم الگوریتمهای ژنتیک به کار رود اما بهتر است که خواننده به همراه آن از یک برنامهی شبیهساز نیز استفاده کند. در حال حاضر نرمافزارهای فراوانی جهت شبیهسازی موجود میباشند که رایجترین آنها نرمافزار متلب است.
چشمانداز فصلها
چشمانداز فصلهای کتاب در ادامه ارائه شده است. هدف از ارائهی این قسمت کمک به خواننده است تا بتواند برای مطالعهی مطالب مورد نیازش تصمیمگیری کند. فصل 1 مقدمه است و شامل مطالبی است که ممکن است خوانندگان زیادی از قبل با آنها آشنا باشند. با این وجود، توصیه میشود که حتی خوانندگان مجرب نیز از خواندن این فصل به طور کامل صرف نظر نکنند. مطالب ارائه شده در فصلهای این کتاب به طور خلاصه به شرح زیر است:
فصل 1 نگاه
مختصری راجع به نظریهی پیچیدگی محاسباتی، روشهای جستجوی هوش مصنوعی و
بهنیهسازی سنتی به همراه تاریخچهای در مورد الگوریتمهای بهینهسازی
طبیعی ارائه میکند. خواننده با خواندن این فصل با کلاسها و معیارهای
پیچیدگی
آشنا میشود و به ناکارآمد بودن روشهای بهینهسازی سنتی و اهمیت روشهای تکاملی پی میبرد.
فصل 2 مفهوم الگوریتم ژنتیک و مراحل لازم برای یک الگوریتم ژنتیک گسسته را به همراه یک مثال ساده بیان میکند. خواننده با دنبال کردن مطالب این فصل نه تنها مفهوم الگوریتم ژنتیک را به خوبی درک خواهد کرد بلکه با مزایای آن نسبت به روشهای سنتی آشنا خواهد شد و قادر خواهد بود تا با پایان فصل، یک الگوریتم ژنتیک دودویی ساده را پیادهسازی کند.
فصل 3 دو هدف را دنبال میکند: یکی بیان الگوریتم ژنتیک پیوسته و دیگری نشان دادن مزایا و معایب آن در مقایسه با الگوریتم ژنتیک گسسته. خواندن مطالب این فصل برای درک مباحث ارائه شده در بخشهای بعدی کتاب ضروری است.
فصل 4 به ارائهی مثالهای کاربردی و پایهای میپردازد که با استفاده از مطالب بیان شده در دو فصل قبل به راحتی قابل حل میباشند. این فصل نشان میدهد که چگونه میتوان از الگوریتمهای ژنتیک برای حل مسائل ساده بهره برد و آنها را برای مسائلی که پیش رو داریم مناسبسازی کنیم.
فصل 5 در مورد مباحث پیشرفته در الگوریتمهای ژنتیک است. در این فصل مطالبی ارائه میشوند که کارایی و قدرت این الگوریتمها را به شدت افزایش میدهند. مطالبی همچون الگوریتمهای ژنتیک موازی، الگوریتم ژنتیک آشفته، الگوریتم ژنتیک مرکب، تاثیر چگونگی انتخاب مولفههای الگوریتم بر کارایی آن و... از جملهی مباحث مطرح شده در این فصل است.
فصل 6 به ارائهی مثالهای پیشرفته و کاربردیتری در زمینههای مختلف از مهندسی گرفته تا مدیریت، موسیقی و هنر میپردازد. فهم این مسائل مستلزم مطالعه و یادگیری مطالب ارائه شده در فصل 5 است.
فصل 7 جدا از فصلهای 2 تا 6 است و دیگر به الگوریتم ژنتیک نمیپردازد بلکه خواننده را با روشهای بهینهسازی طبیعی دیگر مثل تبرید تدریجی، اجتماع مورچهها و راهبردهای تکاملی آشنا و وی را به سمت مطالعهی روشهای هوش مصنوعی دیگر جهت بهینهسازی سوق میدهد.
پیوستها: در ادامهی کتاب 5 پیوست ارائه شده است. پیوست الف شامل 12 تابع آزمون معتبر است که میتوان از آنها برای سنجش برنامههای نوشته شده و یادگیری مطالب کتاب بهره برد. پیوستهای ب و پ به ترتیب شامل کدهای متلب و فورترن الگوریتمهای ارائه شده در فصلهای 2، 3 و 5 میباشند. در پیوست ت جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه مثالهایی آموزش داده شده است. آخرین پیوست یعنی پیوست ث نیز به پیادهسازی مسائل بهینهسازی متنوع با استفاده از زبانهای ++ C و C میپردازد.
واژهنامه: در پایان کتاب نیز به جهت تفهیم هر چه بیشتر عبارات و اصطلاحات تخصصی به کار رفته در طول فصلها، واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
امید است که این کتاب برای دانشجویان، محققان و پژوهشگران مفید باشد و به عنوان گام کوچکی آنان را در مسیر اهداف علمی و عملیشان یاری رساند. واضح است که کارهایی از این دست خالی از عیب و نقص نیستند و بنابراین خوانندگان با ارائهی نظرات خود مولفین کتاب را در رفع اشکالها و نواقص احتمالی و بهبود نسخههای بعدی کتاب یاری خواهند کرد.
کتاب «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» توسط انتشارات دانشگاه علم و صنعت منتشر شد.
دکتر هادی شهريار شاهحسينی، دکتر سيدمحمدرضا موسوی ميرکلائی و مهندس مرتضی ملاجعفری با همکاری هم کتابی با عنوان «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» را تالیف کردهاند که در روزهای اول خرداد ماه امسال به چاپ رسیده است. این کتاب 616 صفحهای با شمارگان هزار نسخه منتشر شده و 10 هزار تومان قیمت دارد.

قابل تهیه در کتاب فروشی های روبروی دانشگاه تهران
لینک خرید اینترنتی:
http://www.iust.ac.ir/book_treasure.php?mod=viewbook&book_id=39575&slc_lang=fa&sid=10
آدرس ایمیل جهت خرید و تحویل کتاب:
m_mjafari85@yahoo.com
پیشگفتار کتاب
این کتاب بر روی روشهای فرامکاشفهای و به طور خاص الگوریتمهای ژنتیک متمرکز است. مخاطبین آن افرادی هستند که به گونهای با مسائل بهینهسازی سر و کار دارند و یا دانشجویانی که دارای دانش پایهای در علوم رایانه و به خصوص الگوریتمها هستند. اهمیت این کتاب در معرفی تاریخچه، مبانی، مباحث نظری ساده تا پیشرفته، کاربردها و در نهایت پیادهسازی الگوریتمهای ژنتیک است.
برای شروع، اطلاعاتی راجع به کلاسهای پیچیدگی، روشهای جستجو در هوش مصنوعی، روشهای بهینهسازی سنتی، اطلاعات پایهای در زمینهی ژنتیک و تکامل زیستی و تاریخچهای در مورد الگوریتمهای بهینهسازی طبیعی ارائه شده است. سپس الگوریتم ژنتیک به طور مفصل شرح داده شده و برای درک آن مثالهای کاربردی فراوانی به همراه کدهای پیادهسازی به زبانهای برنامهنویسی مختلف در اختیار خوانندگان قرار گرفته است.
روند کتاب به گونهای طراحی شده است تا خواننده با شروع از مطالب مقدماتی و سپس پیش رفتن گام به گام به سمت مباحث پیشرفته، خودآموزی پیش روی خود داشته باشد که وی را از مطالعهی منابع دیگر بینیاز سازد. مطالب این کتاب برای دانشجویان ترمهای آخر دورهی کارشناسی و سالهای اول تحصیلات تکمیلی مناسب است. برای درس پردازش تکاملی این کتاب میتواند به طور کامل در یک نیمسال تحصیلی مورد استفاده قرار گیرد. علاوه بر آن میتواند به عنوان کتاب مکمل جهت دروس دیگری همچون الگوریتمها، روشهای بهینهسازی ترکیبی، هوش مصنوعی و ... نیز به کار رود.
کتاب با پیشنیازهایی همچون نظریهی پیچیدگی محاسباتی و کاربرد روشهای مکاشفهای و فرامکاشفهای در هوش مصنوعی آغاز میشود. پس از آن تاریخچهی مختصری در مورد چگونگی پیدایش بهینهسازی الهام گرفته شده از طبیعت ارائه میگردد.
پس از بیان مقدمات لازم، مراحل مختلف یک الگوریتم ژنتیک گسسته ارائه میشود. به موازات آن برخی دستورهای اولیه جهت پیادهسازی مراحل ذکر شده در محیط متلب در اختیار قرار داده میشوند تا خواننده در کنار مطالب نظری، از مزایای شبیهسازی و درک عملی مباحث مطرح شده بهرهمند شود.
در ادامه، نوع دیگری از الگوریتم ژنتیک به نام الگوریتم ژنتیک پیوسته ارائه میشود که با حل مسئلهی مشابه آنچه توسط الگوریتم ژنتیک گسسته نیز حل شد، سعی در نشان دادن ویژگیها و برتریهای هر یک در شرایط و مسائل مختلف شده است. پس از بیان مفاهیم اولیه و پایه، چندین مثال کاربردی ساده به همراه پیادهسازی و نتایجشان ارائه گردیده است.
مطالبی
که در ادامه مطرح شدهاند شامل مفاهیم پیشرفته جهت افرادی است که
میخواهند از الگوریتم ژنتیک در سطوح بالاتر، برای حل مسائل پیچیدهتر و
رسیدن به نتایج مطلوبتر استفاده کنند. پس از بیان این مباحث، برای روشن
شدن مطالب ارائه شده و همچنین نمایش قدرت الگوریتمهای ژنتیک به مسائل
کاربردی پیشرفتهتر پرداخته
شده است.
در این مقطع، مباحث مربوط به الگوریتمهای ژنتیک به پایان رسیده و کتاب با ارائهی شرح مختصری راجع به چند الگوریتم بهینهسازی طبیعی دیگر ادامه مییابد. برای هر چه کاربردیتر شدن کتاب، آموزش جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه پیادهسازیهای فراوانی از مسائل متنوع به زبانهای متلب، فورترن، C و++ Cارائه گردیده است تا حد امکان نیازهای خواننده برطرف شود. ++ C
این کتاب سرشار از عبارات و اصطلاحات تخصصی در زمینهی زیستشناسی، ریاضیات و علوم رایانه است که در فارسی تا به حال معادلهای گویا و رسایی برای آنها یافت نشده است. گاه معادلهای فارسی جدید ساخته شده و گاهی نیز چارهای جز استفاده از اصطلاحات به زبان اصلی نبوده است. برای تفهیم هر چه بیشتر این عبارات و اصطلاحات، در پایان کتاب واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
کتاب حاوی مسائل کاربردی فراوانی است که به طور عمده از فصل 4 آغاز میشوند. در این فصل مثالها به گونهای طراحی شدهاند تا خواننده درک روشنی از الگوریتم ژنتیک و کاربرد آن به دست آورد. مجموعهی بعدی مسائل در فصل 6 ارائه شدهاند و شامل مسائل عملیتر و پیشرفتهتر میباشند. مسائل هر یک از فصلها با دقت انتخاب شدهاند به گونهای که فهم آنها فقط به مطالبی بستگی دارد که قبل از ارائهی آن مسئله شرح داده شده است. بنابراین خواننده میتواند بدون نیاز به مراجعه به بخشهای بعد، به مطالعه و پیادهسازی مسائل هر قسمت بپردازد. هر فصل کتاب شامل مسائل مرتبط با مطالب همان فصل است. اگرچه این کتاب میتواند به تنهایی برای درک و یادگیری مفاهیم الگوریتمهای ژنتیک به کار رود اما بهتر است که خواننده به همراه آن از یک برنامهی شبیهساز نیز استفاده کند. در حال حاضر نرمافزارهای فراوانی جهت شبیهسازی موجود میباشند که رایجترین آنها نرمافزار متلب است.
چشمانداز فصلها
چشمانداز فصلهای کتاب در ادامه ارائه شده است. هدف از ارائهی این قسمت کمک به خواننده است تا بتواند برای مطالعهی مطالب مورد نیازش تصمیمگیری کند. فصل 1 مقدمه است و شامل مطالبی است که ممکن است خوانندگان زیادی از قبل با آنها آشنا باشند. با این وجود، توصیه میشود که حتی خوانندگان مجرب نیز از خواندن این فصل به طور کامل صرف نظر نکنند. مطالب ارائه شده در فصلهای این کتاب به طور خلاصه به شرح زیر است:
فصل 1 نگاه
مختصری راجع به نظریهی پیچیدگی محاسباتی، روشهای جستجوی هوش مصنوعی و
بهنیهسازی سنتی به همراه تاریخچهای در مورد الگوریتمهای بهینهسازی
طبیعی ارائه میکند. خواننده با خواندن این فصل با کلاسها و معیارهای
پیچیدگی
آشنا میشود و به ناکارآمد بودن روشهای بهینهسازی سنتی و اهمیت روشهای تکاملی پی میبرد.
فصل 2 مفهوم الگوریتم ژنتیک و مراحل لازم برای یک الگوریتم ژنتیک گسسته را به همراه یک مثال ساده بیان میکند. خواننده با دنبال کردن مطالب این فصل نه تنها مفهوم الگوریتم ژنتیک را به خوبی درک خواهد کرد بلکه با مزایای آن نسبت به روشهای سنتی آشنا خواهد شد و قادر خواهد بود تا با پایان فصل، یک الگوریتم ژنتیک دودویی ساده را پیادهسازی کند.
فصل 3 دو هدف را دنبال میکند: یکی بیان الگوریتم ژنتیک پیوسته و دیگری نشان دادن مزایا و معایب آن در مقایسه با الگوریتم ژنتیک گسسته. خواندن مطالب این فصل برای درک مباحث ارائه شده در بخشهای بعدی کتاب ضروری است.
فصل 4 به ارائهی مثالهای کاربردی و پایهای میپردازد که با استفاده از مطالب بیان شده در دو فصل قبل به راحتی قابل حل میباشند. این فصل نشان میدهد که چگونه میتوان از الگوریتمهای ژنتیک برای حل مسائل ساده بهره برد و آنها را برای مسائلی که پیش رو داریم مناسبسازی کنیم.
فصل 5 در مورد مباحث پیشرفته در الگوریتمهای ژنتیک است. در این فصل مطالبی ارائه میشوند که کارایی و قدرت این الگوریتمها را به شدت افزایش میدهند. مطالبی همچون الگوریتمهای ژنتیک موازی، الگوریتم ژنتیک آشفته، الگوریتم ژنتیک مرکب، تاثیر چگونگی انتخاب مولفههای الگوریتم بر کارایی آن و... از جملهی مباحث مطرح شده در این فصل است.
فصل 6 به ارائهی مثالهای پیشرفته و کاربردیتری در زمینههای مختلف از مهندسی گرفته تا مدیریت، موسیقی و هنر میپردازد. فهم این مسائل مستلزم مطالعه و یادگیری مطالب ارائه شده در فصل 5 است.
فصل 7 جدا از فصلهای 2 تا 6 است و دیگر به الگوریتم ژنتیک نمیپردازد بلکه خواننده را با روشهای بهینهسازی طبیعی دیگر مثل تبرید تدریجی، اجتماع مورچهها و راهبردهای تکاملی آشنا و وی را به سمت مطالعهی روشهای هوش مصنوعی دیگر جهت بهینهسازی سوق میدهد.
پیوستها: در ادامهی کتاب 5 پیوست ارائه شده است. پیوست الف شامل 12 تابع آزمون معتبر است که میتوان از آنها برای سنجش برنامههای نوشته شده و یادگیری مطالب کتاب بهره برد. پیوستهای ب و پ به ترتیب شامل کدهای متلب و فورترن الگوریتمهای ارائه شده در فصلهای 2، 3 و 5 میباشند. در پیوست ت جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه مثالهایی آموزش داده شده است. آخرین پیوست یعنی پیوست ث نیز به پیادهسازی مسائل بهینهسازی متنوع با استفاده از زبانهای ++ C و C میپردازد.
واژهنامه: در پایان کتاب نیز به جهت تفهیم هر چه بیشتر عبارات و اصطلاحات تخصصی به کار رفته در طول فصلها، واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
امید است که این کتاب برای دانشجویان، محققان و پژوهشگران مفید باشد و به عنوان گام کوچکی آنان را در مسیر اهداف علمی و عملیشان یاری رساند. واضح است که کارهایی از این دست خالی از عیب و نقص نیستند و بنابراین خوانندگان با ارائهی نظرات خود مولفین کتاب را در رفع اشکالها و نواقص احتمالی و بهبود نسخههای بعدی کتاب یاری خواهند کرد.
کتاب «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» توسط انتشارات دانشگاه علم و صنعت منتشر شد.
دکتر هادی شهريار شاهحسينی، دکتر سيدمحمدرضا موسوی ميرکلائی و مهندس مرتضی ملاجعفری با همکاری هم کتابی با عنوان «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» را تالیف کردهاند که در روزهای اول خرداد ماه امسال به چاپ رسیده است. این کتاب 616 صفحهای با شمارگان هزار نسخه منتشر شده و 10 هزار تومان قیمت دارد.

قابل تهیه در کتاب فروشی های روبروی دانشگاه تهران
لینک خرید اینترنتی:
http://www.iust.ac.ir/book_treasure.php?mod=viewbook&book_id=39575&slc_lang=fa&sid=10
آدرس ایمیل جهت خرید و تحویل کتاب:
m_mjafari85@yahoo.com
پیشگفتار کتاب
این کتاب بر روی روشهای فرامکاشفهای و به طور خاص الگوریتمهای ژنتیک متمرکز است. مخاطبین آن افرادی هستند که به گونهای با مسائل بهینهسازی سر و کار دارند و یا دانشجویانی که دارای دانش پایهای در علوم رایانه و به خصوص الگوریتمها هستند. اهمیت این کتاب در معرفی تاریخچه، مبانی، مباحث نظری ساده تا پیشرفته، کاربردها و در نهایت پیادهسازی الگوریتمهای ژنتیک است.
برای شروع، اطلاعاتی راجع به کلاسهای پیچیدگی، روشهای جستجو در هوش مصنوعی، روشهای بهینهسازی سنتی، اطلاعات پایهای در زمینهی ژنتیک و تکامل زیستی و تاریخچهای در مورد الگوریتمهای بهینهسازی طبیعی ارائه شده است. سپس الگوریتم ژنتیک به طور مفصل شرح داده شده و برای درک آن مثالهای کاربردی فراوانی به همراه کدهای پیادهسازی به زبانهای برنامهنویسی مختلف در اختیار خوانندگان قرار گرفته است.
روند کتاب به گونهای طراحی شده است تا خواننده با شروع از مطالب مقدماتی و سپس پیش رفتن گام به گام به سمت مباحث پیشرفته، خودآموزی پیش روی خود داشته باشد که وی را از مطالعهی منابع دیگر بینیاز سازد. مطالب این کتاب برای دانشجویان ترمهای آخر دورهی کارشناسی و سالهای اول تحصیلات تکمیلی مناسب است. برای درس پردازش تکاملی این کتاب میتواند به طور کامل در یک نیمسال تحصیلی مورد استفاده قرار گیرد. علاوه بر آن میتواند به عنوان کتاب مکمل جهت دروس دیگری همچون الگوریتمها، روشهای بهینهسازی ترکیبی، هوش مصنوعی و ... نیز به کار رود.
کتاب با پیشنیازهایی همچون نظریهی پیچیدگی محاسباتی و کاربرد روشهای مکاشفهای و فرامکاشفهای در هوش مصنوعی آغاز میشود. پس از آن تاریخچهی مختصری در مورد چگونگی پیدایش بهینهسازی الهام گرفته شده از طبیعت ارائه میگردد.
پس از بیان مقدمات لازم، مراحل مختلف یک الگوریتم ژنتیک گسسته ارائه میشود. به موازات آن برخی دستورهای اولیه جهت پیادهسازی مراحل ذکر شده در محیط متلب در اختیار قرار داده میشوند تا خواننده در کنار مطالب نظری، از مزایای شبیهسازی و درک عملی مباحث مطرح شده بهرهمند شود.
در ادامه، نوع دیگری از الگوریتم ژنتیک به نام الگوریتم ژنتیک پیوسته ارائه میشود که با حل مسئلهی مشابه آنچه توسط الگوریتم ژنتیک گسسته نیز حل شد، سعی در نشان دادن ویژگیها و برتریهای هر یک در شرایط و مسائل مختلف شده است. پس از بیان مفاهیم اولیه و پایه، چندین مثال کاربردی ساده به همراه پیادهسازی و نتایجشان ارائه گردیده است.
مطالبی
که در ادامه مطرح شدهاند شامل مفاهیم پیشرفته جهت افرادی است که
میخواهند از الگوریتم ژنتیک در سطوح بالاتر، برای حل مسائل پیچیدهتر و
رسیدن به نتایج مطلوبتر استفاده کنند. پس از بیان این مباحث، برای روشن
شدن مطالب ارائه شده و همچنین نمایش قدرت الگوریتمهای ژنتیک به مسائل
کاربردی پیشرفتهتر پرداخته
شده است.
در این مقطع، مباحث مربوط به الگوریتمهای ژنتیک به پایان رسیده و کتاب با ارائهی شرح مختصری راجع به چند الگوریتم بهینهسازی طبیعی دیگر ادامه مییابد. برای هر چه کاربردیتر شدن کتاب، آموزش جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه پیادهسازیهای فراوانی از مسائل متنوع به زبانهای متلب، فورترن، C و++ Cارائه گردیده است تا حد امکان نیازهای خواننده برطرف شود. ++ C
این کتاب سرشار از عبارات و اصطلاحات تخصصی در زمینهی زیستشناسی، ریاضیات و علوم رایانه است که در فارسی تا به حال معادلهای گویا و رسایی برای آنها یافت نشده است. گاه معادلهای فارسی جدید ساخته شده و گاهی نیز چارهای جز استفاده از اصطلاحات به زبان اصلی نبوده است. برای تفهیم هر چه بیشتر این عبارات و اصطلاحات، در پایان کتاب واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
کتاب حاوی مسائل کاربردی فراوانی است که به طور عمده از فصل 4 آغاز میشوند. در این فصل مثالها به گونهای طراحی شدهاند تا خواننده درک روشنی از الگوریتم ژنتیک و کاربرد آن به دست آورد. مجموعهی بعدی مسائل در فصل 6 ارائه شدهاند و شامل مسائل عملیتر و پیشرفتهتر میباشند. مسائل هر یک از فصلها با دقت انتخاب شدهاند به گونهای که فهم آنها فقط به مطالبی بستگی دارد که قبل از ارائهی آن مسئله شرح داده شده است. بنابراین خواننده میتواند بدون نیاز به مراجعه به بخشهای بعد، به مطالعه و پیادهسازی مسائل هر قسمت بپردازد. هر فصل کتاب شامل مسائل مرتبط با مطالب همان فصل است. اگرچه این کتاب میتواند به تنهایی برای درک و یادگیری مفاهیم الگوریتمهای ژنتیک به کار رود اما بهتر است که خواننده به همراه آن از یک برنامهی شبیهساز نیز استفاده کند. در حال حاضر نرمافزارهای فراوانی جهت شبیهسازی موجود میباشند که رایجترین آنها نرمافزار متلب است.
چشمانداز فصلها
چشمانداز فصلهای کتاب در ادامه ارائه شده است. هدف از ارائهی این قسمت کمک به خواننده است تا بتواند برای مطالعهی مطالب مورد نیازش تصمیمگیری کند. فصل 1 مقدمه است و شامل مطالبی است که ممکن است خوانندگان زیادی از قبل با آنها آشنا باشند. با این وجود، توصیه میشود که حتی خوانندگان مجرب نیز از خواندن این فصل به طور کامل صرف نظر نکنند. مطالب ارائه شده در فصلهای این کتاب به طور خلاصه به شرح زیر است:
فصل 1 نگاه
مختصری راجع به نظریهی پیچیدگی محاسباتی، روشهای جستجوی هوش مصنوعی و
بهنیهسازی سنتی به همراه تاریخچهای در مورد الگوریتمهای بهینهسازی
طبیعی ارائه میکند. خواننده با خواندن این فصل با کلاسها و معیارهای
پیچیدگی
آشنا میشود و به ناکارآمد بودن روشهای بهینهسازی سنتی و اهمیت روشهای تکاملی پی میبرد.
فصل 2 مفهوم الگوریتم ژنتیک و مراحل لازم برای یک الگوریتم ژنتیک گسسته را به همراه یک مثال ساده بیان میکند. خواننده با دنبال کردن مطالب این فصل نه تنها مفهوم الگوریتم ژنتیک را به خوبی درک خواهد کرد بلکه با مزایای آن نسبت به روشهای سنتی آشنا خواهد شد و قادر خواهد بود تا با پایان فصل، یک الگوریتم ژنتیک دودویی ساده را پیادهسازی کند.
فصل 3 دو هدف را دنبال میکند: یکی بیان الگوریتم ژنتیک پیوسته و دیگری نشان دادن مزایا و معایب آن در مقایسه با الگوریتم ژنتیک گسسته. خواندن مطالب این فصل برای درک مباحث ارائه شده در بخشهای بعدی کتاب ضروری است.
فصل 4 به ارائهی مثالهای کاربردی و پایهای میپردازد که با استفاده از مطالب بیان شده در دو فصل قبل به راحتی قابل حل میباشند. این فصل نشان میدهد که چگونه میتوان از الگوریتمهای ژنتیک برای حل مسائل ساده بهره برد و آنها را برای مسائلی که پیش رو داریم مناسبسازی کنیم.
فصل 5 در مورد مباحث پیشرفته در الگوریتمهای ژنتیک است. در این فصل مطالبی ارائه میشوند که کارایی و قدرت این الگوریتمها را به شدت افزایش میدهند. مطالبی همچون الگوریتمهای ژنتیک موازی، الگوریتم ژنتیک آشفته، الگوریتم ژنتیک مرکب، تاثیر چگونگی انتخاب مولفههای الگوریتم بر کارایی آن و... از جملهی مباحث مطرح شده در این فصل است.
فصل 6 به ارائهی مثالهای پیشرفته و کاربردیتری در زمینههای مختلف از مهندسی گرفته تا مدیریت، موسیقی و هنر میپردازد. فهم این مسائل مستلزم مطالعه و یادگیری مطالب ارائه شده در فصل 5 است.
فصل 7 جدا از فصلهای 2 تا 6 است و دیگر به الگوریتم ژنتیک نمیپردازد بلکه خواننده را با روشهای بهینهسازی طبیعی دیگر مثل تبرید تدریجی، اجتماع مورچهها و راهبردهای تکاملی آشنا و وی را به سمت مطالعهی روشهای هوش مصنوعی دیگر جهت بهینهسازی سوق میدهد.
پیوستها: در ادامهی کتاب 5 پیوست ارائه شده است. پیوست الف شامل 12 تابع آزمون معتبر است که میتوان از آنها برای سنجش برنامههای نوشته شده و یادگیری مطالب کتاب بهره برد. پیوستهای ب و پ به ترتیب شامل کدهای متلب و فورترن الگوریتمهای ارائه شده در فصلهای 2، 3 و 5 میباشند. در پیوست ت جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه مثالهایی آموزش داده شده است. آخرین پیوست یعنی پیوست ث نیز به پیادهسازی مسائل بهینهسازی متنوع با استفاده از زبانهای ++ C و C میپردازد.
واژهنامه: در پایان کتاب نیز به جهت تفهیم هر چه بیشتر عبارات و اصطلاحات تخصصی به کار رفته در طول فصلها، واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
امید است که این کتاب برای دانشجویان، محققان و پژوهشگران مفید باشد و به عنوان گام کوچکی آنان را در مسیر اهداف علمی و عملیشان یاری رساند. واضح است که کارهایی از این دست خالی از عیب و نقص نیستند و بنابراین خوانندگان با ارائهی نظرات خود مولفین کتاب را در رفع اشکالها و نواقص احتمالی و بهبود نسخههای بعدی کتاب یاری خواهند کرد.
کتاب «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» توسط انتشارات دانشگاه علم و صنعت منتشر شد.
دکتر هادی شهريار شاهحسينی، دکتر سيدمحمدرضا موسوی ميرکلائی و مهندس مرتضی ملاجعفری با همکاری هم کتابی با عنوان «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» را تالیف کردهاند که در روزهای اول خرداد ماه امسال به چاپ رسیده است. این کتاب 616 صفحهای با شمارگان هزار نسخه منتشر شده و 10 هزار تومان قیمت دارد.

قابل تهیه در کتاب فروشی های روبروی دانشگاه تهران
لینک خرید اینترنتی:
http://www.iust.ac.ir/book_treasure.php?mod=viewbook&book_id=39575&slc_lang=fa&sid=10
آدرس ایمیل جهت خرید و تحویل کتاب:
m_mjafari85@yahoo.com
پیشگفتار کتاب
این کتاب بر روی روشهای فرامکاشفهای و به طور خاص الگوریتمهای ژنتیک متمرکز است. مخاطبین آن افرادی هستند که به گونهای با مسائل بهینهسازی سر و کار دارند و یا دانشجویانی که دارای دانش پایهای در علوم رایانه و به خصوص الگوریتمها هستند. اهمیت این کتاب در معرفی تاریخچه، مبانی، مباحث نظری ساده تا پیشرفته، کاربردها و در نهایت پیادهسازی الگوریتمهای ژنتیک است.
برای شروع، اطلاعاتی راجع به کلاسهای پیچیدگی، روشهای جستجو در هوش مصنوعی، روشهای بهینهسازی سنتی، اطلاعات پایهای در زمینهی ژنتیک و تکامل زیستی و تاریخچهای در مورد الگوریتمهای بهینهسازی طبیعی ارائه شده است. سپس الگوریتم ژنتیک به طور مفصل شرح داده شده و برای درک آن مثالهای کاربردی فراوانی به همراه کدهای پیادهسازی به زبانهای برنامهنویسی مختلف در اختیار خوانندگان قرار گرفته است.
روند کتاب به گونهای طراحی شده است تا خواننده با شروع از مطالب مقدماتی و سپس پیش رفتن گام به گام به سمت مباحث پیشرفته، خودآموزی پیش روی خود داشته باشد که وی را از مطالعهی منابع دیگر بینیاز سازد. مطالب این کتاب برای دانشجویان ترمهای آخر دورهی کارشناسی و سالهای اول تحصیلات تکمیلی مناسب است. برای درس پردازش تکاملی این کتاب میتواند به طور کامل در یک نیمسال تحصیلی مورد استفاده قرار گیرد. علاوه بر آن میتواند به عنوان کتاب مکمل جهت دروس دیگری همچون الگوریتمها، روشهای بهینهسازی ترکیبی، هوش مصنوعی و ... نیز به کار رود.
کتاب با پیشنیازهایی همچون نظریهی پیچیدگی محاسباتی و کاربرد روشهای مکاشفهای و فرامکاشفهای در هوش مصنوعی آغاز میشود. پس از آن تاریخچهی مختصری در مورد چگونگی پیدایش بهینهسازی الهام گرفته شده از طبیعت ارائه میگردد.
پس از بیان مقدمات لازم، مراحل مختلف یک الگوریتم ژنتیک گسسته ارائه میشود. به موازات آن برخی دستورهای اولیه جهت پیادهسازی مراحل ذکر شده در محیط متلب در اختیار قرار داده میشوند تا خواننده در کنار مطالب نظری، از مزایای شبیهسازی و درک عملی مباحث مطرح شده بهرهمند شود.
در ادامه، نوع دیگری از الگوریتم ژنتیک به نام الگوریتم ژنتیک پیوسته ارائه میشود که با حل مسئلهی مشابه آنچه توسط الگوریتم ژنتیک گسسته نیز حل شد، سعی در نشان دادن ویژگیها و برتریهای هر یک در شرایط و مسائل مختلف شده است. پس از بیان مفاهیم اولیه و پایه، چندین مثال کاربردی ساده به همراه پیادهسازی و نتایجشان ارائه گردیده است.
مطالبی
که در ادامه مطرح شدهاند شامل مفاهیم پیشرفته جهت افرادی است که
میخواهند از الگوریتم ژنتیک در سطوح بالاتر، برای حل مسائل پیچیدهتر و
رسیدن به نتایج مطلوبتر استفاده کنند. پس از بیان این مباحث، برای روشن
شدن مطالب ارائه شده و همچنین نمایش قدرت الگوریتمهای ژنتیک به مسائل
کاربردی پیشرفتهتر پرداخته
شده است.
در این مقطع، مباحث مربوط به الگوریتمهای ژنتیک به پایان رسیده و کتاب با ارائهی شرح مختصری راجع به چند الگوریتم بهینهسازی طبیعی دیگر ادامه مییابد. برای هر چه کاربردیتر شدن کتاب، آموزش جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه پیادهسازیهای فراوانی از مسائل متنوع به زبانهای متلب، فورترن، C و++ Cارائه گردیده است تا حد امکان نیازهای خواننده برطرف شود. ++ C
این کتاب سرشار از عبارات و اصطلاحات تخصصی در زمینهی زیستشناسی، ریاضیات و علوم رایانه است که در فارسی تا به حال معادلهای گویا و رسایی برای آنها یافت نشده است. گاه معادلهای فارسی جدید ساخته شده و گاهی نیز چارهای جز استفاده از اصطلاحات به زبان اصلی نبوده است. برای تفهیم هر چه بیشتر این عبارات و اصطلاحات، در پایان کتاب واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
کتاب حاوی مسائل کاربردی فراوانی است که به طور عمده از فصل 4 آغاز میشوند. در این فصل مثالها به گونهای طراحی شدهاند تا خواننده درک روشنی از الگوریتم ژنتیک و کاربرد آن به دست آورد. مجموعهی بعدی مسائل در فصل 6 ارائه شدهاند و شامل مسائل عملیتر و پیشرفتهتر میباشند. مسائل هر یک از فصلها با دقت انتخاب شدهاند به گونهای که فهم آنها فقط به مطالبی بستگی دارد که قبل از ارائهی آن مسئله شرح داده شده است. بنابراین خواننده میتواند بدون نیاز به مراجعه به بخشهای بعد، به مطالعه و پیادهسازی مسائل هر قسمت بپردازد. هر فصل کتاب شامل مسائل مرتبط با مطالب همان فصل است. اگرچه این کتاب میتواند به تنهایی برای درک و یادگیری مفاهیم الگوریتمهای ژنتیک به کار رود اما بهتر است که خواننده به همراه آن از یک برنامهی شبیهساز نیز استفاده کند. در حال حاضر نرمافزارهای فراوانی جهت شبیهسازی موجود میباشند که رایجترین آنها نرمافزار متلب است.
چشمانداز فصلها
چشمانداز فصلهای کتاب در ادامه ارائه شده است. هدف از ارائهی این قسمت کمک به خواننده است تا بتواند برای مطالعهی مطالب مورد نیازش تصمیمگیری کند. فصل 1 مقدمه است و شامل مطالبی است که ممکن است خوانندگان زیادی از قبل با آنها آشنا باشند. با این وجود، توصیه میشود که حتی خوانندگان مجرب نیز از خواندن این فصل به طور کامل صرف نظر نکنند. مطالب ارائه شده در فصلهای این کتاب به طور خلاصه به شرح زیر است:
فصل 1 نگاه
مختصری راجع به نظریهی پیچیدگی محاسباتی، روشهای جستجوی هوش مصنوعی و
بهنیهسازی سنتی به همراه تاریخچهای در مورد الگوریتمهای بهینهسازی
طبیعی ارائه میکند. خواننده با خواندن این فصل با کلاسها و معیارهای
پیچیدگی
آشنا میشود و به ناکارآمد بودن روشهای بهینهسازی سنتی و اهمیت روشهای تکاملی پی میبرد.
فصل 2 مفهوم الگوریتم ژنتیک و مراحل لازم برای یک الگوریتم ژنتیک گسسته را به همراه یک مثال ساده بیان میکند. خواننده با دنبال کردن مطالب این فصل نه تنها مفهوم الگوریتم ژنتیک را به خوبی درک خواهد کرد بلکه با مزایای آن نسبت به روشهای سنتی آشنا خواهد شد و قادر خواهد بود تا با پایان فصل، یک الگوریتم ژنتیک دودویی ساده را پیادهسازی کند.
فصل 3 دو هدف را دنبال میکند: یکی بیان الگوریتم ژنتیک پیوسته و دیگری نشان دادن مزایا و معایب آن در مقایسه با الگوریتم ژنتیک گسسته. خواندن مطالب این فصل برای درک مباحث ارائه شده در بخشهای بعدی کتاب ضروری است.
فصل 4 به ارائهی مثالهای کاربردی و پایهای میپردازد که با استفاده از مطالب بیان شده در دو فصل قبل به راحتی قابل حل میباشند. این فصل نشان میدهد که چگونه میتوان از الگوریتمهای ژنتیک برای حل مسائل ساده بهره برد و آنها را برای مسائلی که پیش رو داریم مناسبسازی کنیم.
فصل 5 در مورد مباحث پیشرفته در الگوریتمهای ژنتیک است. در این فصل مطالبی ارائه میشوند که کارایی و قدرت این الگوریتمها را به شدت افزایش میدهند. مطالبی همچون الگوریتمهای ژنتیک موازی، الگوریتم ژنتیک آشفته، الگوریتم ژنتیک مرکب، تاثیر چگونگی انتخاب مولفههای الگوریتم بر کارایی آن و... از جملهی مباحث مطرح شده در این فصل است.
فصل 6 به ارائهی مثالهای پیشرفته و کاربردیتری در زمینههای مختلف از مهندسی گرفته تا مدیریت، موسیقی و هنر میپردازد. فهم این مسائل مستلزم مطالعه و یادگیری مطالب ارائه شده در فصل 5 است.
فصل 7 جدا از فصلهای 2 تا 6 است و دیگر به الگوریتم ژنتیک نمیپردازد بلکه خواننده را با روشهای بهینهسازی طبیعی دیگر مثل تبرید تدریجی، اجتماع مورچهها و راهبردهای تکاملی آشنا و وی را به سمت مطالعهی روشهای هوش مصنوعی دیگر جهت بهینهسازی سوق میدهد.
پیوستها: در ادامهی کتاب 5 پیوست ارائه شده است. پیوست الف شامل 12 تابع آزمون معتبر است که میتوان از آنها برای سنجش برنامههای نوشته شده و یادگیری مطالب کتاب بهره برد. پیوستهای ب و پ به ترتیب شامل کدهای متلب و فورترن الگوریتمهای ارائه شده در فصلهای 2، 3 و 5 میباشند. در پیوست ت جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه مثالهایی آموزش داده شده است. آخرین پیوست یعنی پیوست ث نیز به پیادهسازی مسائل بهینهسازی متنوع با استفاده از زبانهای ++ C و C میپردازد.
واژهنامه: در پایان کتاب نیز به جهت تفهیم هر چه بیشتر عبارات و اصطلاحات تخصصی به کار رفته در طول فصلها، واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
امید است که این کتاب برای دانشجویان، محققان و پژوهشگران مفید باشد و به عنوان گام کوچکی آنان را در مسیر اهداف علمی و عملیشان یاری رساند. واضح است که کارهایی از این دست خالی از عیب و نقص نیستند و بنابراین خوانندگان با ارائهی نظرات خود مولفین کتاب را در رفع اشکالها و نواقص احتمالی و بهبود نسخههای بعدی کتاب یاری خواهند کرد.
کتاب «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» توسط انتشارات دانشگاه علم و صنعت منتشر شد.
دکتر هادی شهريار شاهحسينی، دکتر سيدمحمدرضا موسوی ميرکلائی و مهندس مرتضی ملاجعفری با همکاری هم کتابی با عنوان «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» را تالیف کردهاند که در روزهای اول خرداد ماه امسال به چاپ رسیده است. این کتاب 616 صفحهای با شمارگان هزار نسخه منتشر شده و 10 هزار تومان قیمت دارد.

قابل تهیه در کتاب فروشی های روبروی دانشگاه تهران
لینک خرید اینترنتی:
http://www.iust.ac.ir/book_treasure.php?mod=viewbook&book_id=39575&slc_lang=fa&sid=10
آدرس ایمیل جهت خرید و تحویل کتاب:
m_mjafari85@yahoo.com
پیشگفتار کتاب
این کتاب بر روی روشهای فرامکاشفهای و به طور خاص الگوریتمهای ژنتیک متمرکز است. مخاطبین آن افرادی هستند که به گونهای با مسائل بهینهسازی سر و کار دارند و یا دانشجویانی که دارای دانش پایهای در علوم رایانه و به خصوص الگوریتمها هستند. اهمیت این کتاب در معرفی تاریخچه، مبانی، مباحث نظری ساده تا پیشرفته، کاربردها و در نهایت پیادهسازی الگوریتمهای ژنتیک است.
برای شروع، اطلاعاتی راجع به کلاسهای پیچیدگی، روشهای جستجو در هوش مصنوعی، روشهای بهینهسازی سنتی، اطلاعات پایهای در زمینهی ژنتیک و تکامل زیستی و تاریخچهای در مورد الگوریتمهای بهینهسازی طبیعی ارائه شده است. سپس الگوریتم ژنتیک به طور مفصل شرح داده شده و برای درک آن مثالهای کاربردی فراوانی به همراه کدهای پیادهسازی به زبانهای برنامهنویسی مختلف در اختیار خوانندگان قرار گرفته است.
روند کتاب به گونهای طراحی شده است تا خواننده با شروع از مطالب مقدماتی و سپس پیش رفتن گام به گام به سمت مباحث پیشرفته، خودآموزی پیش روی خود داشته باشد که وی را از مطالعهی منابع دیگر بینیاز سازد. مطالب این کتاب برای دانشجویان ترمهای آخر دورهی کارشناسی و سالهای اول تحصیلات تکمیلی مناسب است. برای درس پردازش تکاملی این کتاب میتواند به طور کامل در یک نیمسال تحصیلی مورد استفاده قرار گیرد. علاوه بر آن میتواند به عنوان کتاب مکمل جهت دروس دیگری همچون الگوریتمها، روشهای بهینهسازی ترکیبی، هوش مصنوعی و ... نیز به کار رود.
کتاب با پیشنیازهایی همچون نظریهی پیچیدگی محاسباتی و کاربرد روشهای مکاشفهای و فرامکاشفهای در هوش مصنوعی آغاز میشود. پس از آن تاریخچهی مختصری در مورد چگونگی پیدایش بهینهسازی الهام گرفته شده از طبیعت ارائه میگردد.
پس از بیان مقدمات لازم، مراحل مختلف یک الگوریتم ژنتیک گسسته ارائه میشود. به موازات آن برخی دستورهای اولیه جهت پیادهسازی مراحل ذکر شده در محیط متلب در اختیار قرار داده میشوند تا خواننده در کنار مطالب نظری، از مزایای شبیهسازی و درک عملی مباحث مطرح شده بهرهمند شود.
در ادامه، نوع دیگری از الگوریتم ژنتیک به نام الگوریتم ژنتیک پیوسته ارائه میشود که با حل مسئلهی مشابه آنچه توسط الگوریتم ژنتیک گسسته نیز حل شد، سعی در نشان دادن ویژگیها و برتریهای هر یک در شرایط و مسائل مختلف شده است. پس از بیان مفاهیم اولیه و پایه، چندین مثال کاربردی ساده به همراه پیادهسازی و نتایجشان ارائه گردیده است.
مطالبی
که در ادامه مطرح شدهاند شامل مفاهیم پیشرفته جهت افرادی است که
میخواهند از الگوریتم ژنتیک در سطوح بالاتر، برای حل مسائل پیچیدهتر و
رسیدن به نتایج مطلوبتر استفاده کنند. پس از بیان این مباحث، برای روشن
شدن مطالب ارائه شده و همچنین نمایش قدرت الگوریتمهای ژنتیک به مسائل
کاربردی پیشرفتهتر پرداخته
شده است.
در این مقطع، مباحث مربوط به الگوریتمهای ژنتیک به پایان رسیده و کتاب با ارائهی شرح مختصری راجع به چند الگوریتم بهینهسازی طبیعی دیگر ادامه مییابد. برای هر چه کاربردیتر شدن کتاب، آموزش جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه پیادهسازیهای فراوانی از مسائل متنوع به زبانهای متلب، فورترن، C و++ Cارائه گردیده است تا حد امکان نیازهای خواننده برطرف شود. ++ C
این کتاب سرشار از عبارات و اصطلاحات تخصصی در زمینهی زیستشناسی، ریاضیات و علوم رایانه است که در فارسی تا به حال معادلهای گویا و رسایی برای آنها یافت نشده است. گاه معادلهای فارسی جدید ساخته شده و گاهی نیز چارهای جز استفاده از اصطلاحات به زبان اصلی نبوده است. برای تفهیم هر چه بیشتر این عبارات و اصطلاحات، در پایان کتاب واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
کتاب حاوی مسائل کاربردی فراوانی است که به طور عمده از فصل 4 آغاز میشوند. در این فصل مثالها به گونهای طراحی شدهاند تا خواننده درک روشنی از الگوریتم ژنتیک و کاربرد آن به دست آورد. مجموعهی بعدی مسائل در فصل 6 ارائه شدهاند و شامل مسائل عملیتر و پیشرفتهتر میباشند. مسائل هر یک از فصلها با دقت انتخاب شدهاند به گونهای که فهم آنها فقط به مطالبی بستگی دارد که قبل از ارائهی آن مسئله شرح داده شده است. بنابراین خواننده میتواند بدون نیاز به مراجعه به بخشهای بعد، به مطالعه و پیادهسازی مسائل هر قسمت بپردازد. هر فصل کتاب شامل مسائل مرتبط با مطالب همان فصل است. اگرچه این کتاب میتواند به تنهایی برای درک و یادگیری مفاهیم الگوریتمهای ژنتیک به کار رود اما بهتر است که خواننده به همراه آن از یک برنامهی شبیهساز نیز استفاده کند. در حال حاضر نرمافزارهای فراوانی جهت شبیهسازی موجود میباشند که رایجترین آنها نرمافزار متلب است.
چشمانداز فصلها
چشمانداز فصلهای کتاب در ادامه ارائه شده است. هدف از ارائهی این قسمت کمک به خواننده است تا بتواند برای مطالعهی مطالب مورد نیازش تصمیمگیری کند. فصل 1 مقدمه است و شامل مطالبی است که ممکن است خوانندگان زیادی از قبل با آنها آشنا باشند. با این وجود، توصیه میشود که حتی خوانندگان مجرب نیز از خواندن این فصل به طور کامل صرف نظر نکنند. مطالب ارائه شده در فصلهای این کتاب به طور خلاصه به شرح زیر است:
فصل 1 نگاه
مختصری راجع به نظریهی پیچیدگی محاسباتی، روشهای جستجوی هوش مصنوعی و
بهنیهسازی سنتی به همراه تاریخچهای در مورد الگوریتمهای بهینهسازی
طبیعی ارائه میکند. خواننده با خواندن این فصل با کلاسها و معیارهای
پیچیدگی
آشنا میشود و به ناکارآمد بودن روشهای بهینهسازی سنتی و اهمیت روشهای تکاملی پی میبرد.
فصل 2 مفهوم الگوریتم ژنتیک و مراحل لازم برای یک الگوریتم ژنتیک گسسته را به همراه یک مثال ساده بیان میکند. خواننده با دنبال کردن مطالب این فصل نه تنها مفهوم الگوریتم ژنتیک را به خوبی درک خواهد کرد بلکه با مزایای آن نسبت به روشهای سنتی آشنا خواهد شد و قادر خواهد بود تا با پایان فصل، یک الگوریتم ژنتیک دودویی ساده را پیادهسازی کند.
فصل 3 دو هدف را دنبال میکند: یکی بیان الگوریتم ژنتیک پیوسته و دیگری نشان دادن مزایا و معایب آن در مقایسه با الگوریتم ژنتیک گسسته. خواندن مطالب این فصل برای درک مباحث ارائه شده در بخشهای بعدی کتاب ضروری است.
فصل 4 به ارائهی مثالهای کاربردی و پایهای میپردازد که با استفاده از مطالب بیان شده در دو فصل قبل به راحتی قابل حل میباشند. این فصل نشان میدهد که چگونه میتوان از الگوریتمهای ژنتیک برای حل مسائل ساده بهره برد و آنها را برای مسائلی که پیش رو داریم مناسبسازی کنیم.
فصل 5 در مورد مباحث پیشرفته در الگوریتمهای ژنتیک است. در این فصل مطالبی ارائه میشوند که کارایی و قدرت این الگوریتمها را به شدت افزایش میدهند. مطالبی همچون الگوریتمهای ژنتیک موازی، الگوریتم ژنتیک آشفته، الگوریتم ژنتیک مرکب، تاثیر چگونگی انتخاب مولفههای الگوریتم بر کارایی آن و... از جملهی مباحث مطرح شده در این فصل است.
فصل 6 به ارائهی مثالهای پیشرفته و کاربردیتری در زمینههای مختلف از مهندسی گرفته تا مدیریت، موسیقی و هنر میپردازد. فهم این مسائل مستلزم مطالعه و یادگیری مطالب ارائه شده در فصل 5 است.
فصل 7 جدا از فصلهای 2 تا 6 است و دیگر به الگوریتم ژنتیک نمیپردازد بلکه خواننده را با روشهای بهینهسازی طبیعی دیگر مثل تبرید تدریجی، اجتماع مورچهها و راهبردهای تکاملی آشنا و وی را به سمت مطالعهی روشهای هوش مصنوعی دیگر جهت بهینهسازی سوق میدهد.
پیوستها: در ادامهی کتاب 5 پیوست ارائه شده است. پیوست الف شامل 12 تابع آزمون معتبر است که میتوان از آنها برای سنجش برنامههای نوشته شده و یادگیری مطالب کتاب بهره برد. پیوستهای ب و پ به ترتیب شامل کدهای متلب و فورترن الگوریتمهای ارائه شده در فصلهای 2، 3 و 5 میباشند. در پیوست ت جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه مثالهایی آموزش داده شده است. آخرین پیوست یعنی پیوست ث نیز به پیادهسازی مسائل بهینهسازی متنوع با استفاده از زبانهای ++ C و C میپردازد.
واژهنامه: در پایان کتاب نیز به جهت تفهیم هر چه بیشتر عبارات و اصطلاحات تخصصی به کار رفته در طول فصلها، واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
امید است که این کتاب برای دانشجویان، محققان و پژوهشگران مفید باشد و به عنوان گام کوچکی آنان را در مسیر اهداف علمی و عملیشان یاری رساند. واضح است که کارهایی از این دست خالی از عیب و نقص نیستند و بنابراین خوانندگان با ارائهی نظرات خود مولفین کتاب را در رفع اشکالها و نواقص احتمالی و بهبود نسخههای بعدی کتاب یاری خواهند کرد.
کتاب «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» توسط دانشگاه علم و صنعت منتشر شد.
دکتر هادی شهريار شاهحسينی، دکتر سيدمحمدرضا موسوی ميرکلائی و مهندس مرتضی ملاجعفری با همکاری هم کتابی با عنوان «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» را تالیف کردهاند که در روزهای اول خرداد ماه امسال به چاپ رسیده است. این کتاب 616 صفحهای با شمارگان هزار نسخه منتشر شده و 10 هزار تومان قیمت دارد.

قابل تهیه در کتاب فروشی های روبروی دانشگاه تهران
لینک خرید اینترنتی:
http://www.iust.ac.ir/book_treasure.php?mod=viewbook&book_id=39575&slc_lang=fa&sid=10
آدرس ایمیل جهت خرید و تحویل کتاب:
m_mjafari85@yahoo.com
پیشگفتار کتاب
این کتاب بر روی روشهای فرامکاشفهای و به طور خاص الگوریتمهای ژنتیک متمرکز است. مخاطبین آن افرادی هستند که به گونهای با مسائل بهینهسازی سر و کار دارند و یا دانشجویانی که دارای دانش پایهای در علوم رایانه و به خصوص الگوریتمها هستند. اهمیت این کتاب در معرفی تاریخچه، مبانی، مباحث نظری ساده تا پیشرفته، کاربردها و در نهایت پیادهسازی الگوریتمهای ژنتیک است.
برای شروع، اطلاعاتی راجع به کلاسهای پیچیدگی، روشهای جستجو در هوش مصنوعی، روشهای بهینهسازی سنتی، اطلاعات پایهای در زمینهی ژنتیک و تکامل زیستی و تاریخچهای در مورد الگوریتمهای بهینهسازی طبیعی ارائه شده است. سپس الگوریتم ژنتیک به طور مفصل شرح داده شده و برای درک آن مثالهای کاربردی فراوانی به همراه کدهای پیادهسازی به زبانهای برنامهنویسی مختلف در اختیار خوانندگان قرار گرفته است.
روند کتاب به گونهای طراحی شده است تا خواننده با شروع از مطالب مقدماتی و سپس پیش رفتن گام به گام به سمت مباحث پیشرفته، خودآموزی پیش روی خود داشته باشد که وی را از مطالعهی منابع دیگر بینیاز سازد. مطالب این کتاب برای دانشجویان ترمهای آخر دورهی کارشناسی و سالهای اول تحصیلات تکمیلی مناسب است. برای درس پردازش تکاملی این کتاب میتواند به طور کامل در یک نیمسال تحصیلی مورد استفاده قرار گیرد. علاوه بر آن میتواند به عنوان کتاب مکمل جهت دروس دیگری همچون الگوریتمها، روشهای بهینهسازی ترکیبی، هوش مصنوعی و ... نیز به کار رود.
کتاب با پیشنیازهایی همچون نظریهی پیچیدگی محاسباتی و کاربرد روشهای مکاشفهای و فرامکاشفهای در هوش مصنوعی آغاز میشود. پس از آن تاریخچهی مختصری در مورد چگونگی پیدایش بهینهسازی الهام گرفته شده از طبیعت ارائه میگردد.
پس از بیان مقدمات لازم، مراحل مختلف یک الگوریتم ژنتیک گسسته ارائه میشود. به موازات آن برخی دستورهای اولیه جهت پیادهسازی مراحل ذکر شده در محیط متلب در اختیار قرار داده میشوند تا خواننده در کنار مطالب نظری، از مزایای شبیهسازی و درک عملی مباحث مطرح شده بهرهمند شود.
در ادامه، نوع دیگری از الگوریتم ژنتیک به نام الگوریتم ژنتیک پیوسته ارائه میشود که با حل مسئلهی مشابه آنچه توسط الگوریتم ژنتیک گسسته نیز حل شد، سعی در نشان دادن ویژگیها و برتریهای هر یک در شرایط و مسائل مختلف شده است. پس از بیان مفاهیم اولیه و پایه، چندین مثال کاربردی ساده به همراه پیادهسازی و نتایجشان ارائه گردیده است.
مطالبی که در ادامه مطرح شدهاند شامل مفاهیم پیشرفته جهت افرادی است که میخواهند از الگوریتم ژنتیک در سطوح بالاتر، برای حل مسائل پیچیدهتر و رسیدن به نتایج مطلوبتر استفاده کنند. پس از بیان این مباحث، برای روشن شدن مطالب ارائه شده و همچنین نمایش قدرت الگوریتمهای ژنتیک به مسائل کاربردی پیشرفتهتر پرداخته
شده است.
در این مقطع، مباحث مربوط به الگوریتمهای ژنتیک به پایان رسیده و کتاب با ارائهی شرح مختصری راجع به چند الگوریتم بهینهسازی طبیعی دیگر ادامه مییابد. برای هر چه کاربردیتر شدن کتاب، آموزش جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه پیادهسازیهای فراوانی از مسائل متنوع به زبانهای متلب، فورترن، C و++ Cارائه گردیده است تا حد امکان نیازهای خواننده برطرف شود. ++ C
این کتاب سرشار از عبارات و اصطلاحات تخصصی در زمینهی زیستشناسی، ریاضیات و علوم رایانه است که در فارسی تا به حال معادلهای گویا و رسایی برای آنها یافت نشده است. گاه معادلهای فارسی جدید ساخته شده و گاهی نیز چارهای جز استفاده از اصطلاحات به زبان اصلی نبوده است. برای تفهیم هر چه بیشتر این عبارات و اصطلاحات، در پایان کتاب واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
کتاب حاوی مسائل کاربردی فراوانی است که به طور عمده از فصل 4 آغاز میشوند. در این فصل مثالها به گونهای طراحی شدهاند تا خواننده درک روشنی از الگوریتم ژنتیک و کاربرد آن به دست آورد. مجموعهی بعدی مسائل در فصل 6 ارائه شدهاند و شامل مسائل عملیتر و پیشرفتهتر میباشند. مسائل هر یک از فصلها با دقت انتخاب شدهاند به گونهای که فهم آنها فقط به مطالبی بستگی دارد که قبل از ارائهی آن مسئله شرح داده شده است. بنابراین خواننده میتواند بدون نیاز به مراجعه به بخشهای بعد، به مطالعه و پیادهسازی مسائل هر قسمت بپردازد. هر فصل کتاب شامل مسائل مرتبط با مطالب همان فصل است. اگرچه این کتاب میتواند به تنهایی برای درک و یادگیری مفاهیم الگوریتمهای ژنتیک به کار رود اما بهتر است که خواننده به همراه آن از یک برنامهی شبیهساز نیز استفاده کند. در حال حاضر نرمافزارهای فراوانی جهت شبیهسازی موجود میباشند که رایجترین آنها نرمافزار متلب است.
چشمانداز فصلها
چشمانداز فصلهای کتاب در ادامه ارائه شده است. هدف از ارائهی این قسمت کمک به خواننده است تا بتواند برای مطالعهی مطالب مورد نیازش تصمیمگیری کند. فصل 1 مقدمه است و شامل مطالبی است که ممکن است خوانندگان زیادی از قبل با آنها آشنا باشند. با این وجود، توصیه میشود که حتی خوانندگان مجرب نیز از خواندن این فصل به طور کامل صرف نظر نکنند. مطالب ارائه شده در فصلهای این کتاب به طور خلاصه به شرح زیر است:
فصل 1 نگاه مختصری راجع به نظریهی پیچیدگی محاسباتی، روشهای جستجوی هوش مصنوعی و بهنیهسازی سنتی به همراه تاریخچهای در مورد الگوریتمهای بهینهسازی طبیعی ارائه میکند. خواننده با خواندن این فصل با کلاسها و معیارهای پیچیدگی
آشنا میشود و به ناکارآمد بودن روشهای بهینهسازی سنتی و اهمیت روشهای تکاملی پی میبرد.
فصل 2 مفهوم الگوریتم ژنتیک و مراحل لازم برای یک الگوریتم ژنتیک گسسته را به همراه یک مثال ساده بیان میکند. خواننده با دنبال کردن مطالب این فصل نه تنها مفهوم الگوریتم ژنتیک را به خوبی درک خواهد کرد بلکه با مزایای آن نسبت به روشهای سنتی آشنا خواهد شد و قادر خواهد بود تا با پایان فصل، یک الگوریتم ژنتیک دودویی ساده را پیادهسازی کند.
فصل 3 دو هدف را دنبال میکند: یکی بیان الگوریتم ژنتیک پیوسته و دیگری نشان دادن مزایا و معایب آن در مقایسه با الگوریتم ژنتیک گسسته. خواندن مطالب این فصل برای درک مباحث ارائه شده در بخشهای بعدی کتاب ضروری است.
فصل 4 به ارائهی مثالهای کاربردی و پایهای میپردازد که با استفاده از مطالب بیان شده در دو فصل قبل به راحتی قابل حل میباشند. این فصل نشان میدهد که چگونه میتوان از الگوریتمهای ژنتیک برای حل مسائل ساده بهره برد و آنها را برای مسائلی که پیش رو داریم مناسبسازی کنیم.
فصل 5 در مورد مباحث پیشرفته در الگوریتمهای ژنتیک است. در این فصل مطالبی ارائه میشوند که کارایی و قدرت این الگوریتمها را به شدت افزایش میدهند. مطالبی همچون الگوریتمهای ژنتیک موازی، الگوریتم ژنتیک آشفته، الگوریتم ژنتیک مرکب، تاثیر چگونگی انتخاب مولفههای الگوریتم بر کارایی آن و... از جملهی مباحث مطرح شده در این فصل است.
فصل 6 به ارائهی مثالهای پیشرفته و کاربردیتری در زمینههای مختلف از مهندسی گرفته تا مدیریت، موسیقی و هنر میپردازد. فهم این مسائل مستلزم مطالعه و یادگیری مطالب ارائه شده در فصل 5 است.
فصل 7 جدا از فصلهای 2 تا 6 است و دیگر به الگوریتم ژنتیک نمیپردازد بلکه خواننده را با روشهای بهینهسازی طبیعی دیگر مثل تبرید تدریجی، اجتماع مورچهها و راهبردهای تکاملی آشنا و وی را به سمت مطالعهی روشهای هوش مصنوعی دیگر جهت بهینهسازی سوق میدهد.
پیوستها: در ادامهی کتاب 5 پیوست ارائه شده است. پیوست الف شامل 12 تابع آزمون معتبر است که میتوان از آنها برای سنجش برنامههای نوشته شده و یادگیری مطالب کتاب بهره برد. پیوستهای ب و پ به ترتیب شامل کدهای متلب و فورترن الگوریتمهای ارائه شده در فصلهای 2، 3 و 5 میباشند. در پیوست ت جعبهابزار الگوریتمهای تکاملی نرمافزار متلب به همراه مثالهایی آموزش داده شده است. آخرین پیوست یعنی پیوست ث نیز به پیادهسازی مسائل بهینهسازی متنوع با استفاده از زبانهای ++ C و C میپردازد.
واژهنامه: در پایان کتاب نیز به جهت تفهیم هر چه بیشتر عبارات و اصطلاحات تخصصی به کار رفته در طول فصلها، واژهنامهی نسبتا جامعی ارائه شده است که امید است خواننده با مراجعه به آن مشکلی در فهم مطالب کتاب پیدا نکند.
امید است که این کتاب برای دانشجویان، محققان و پژوهشگران مفید باشد و به عنوان گام کوچکی آنان را در مسیر اهداف علمی و عملیشان یاری رساند. واضح است که کارهایی از این دست خالی از عیب و نقص نیستند و بنابراین خوانندگان با ارائهی نظرات خود مولفین کتاب را در رفع اشکالها و نواقص احتمالی و بهبود نسخههای بعدی کتاب یاری خواهند کرد.
الگوریتم ژنتیک، الگوریتم های ژنتیک، الگوریتم بهینه سازی اجتماع مورچگان، الگوریتم بهینه سازی کولونی مورچگان، الگوریتم بهینه سازی هجوم ذرات، الگوریتم بهینه سازی اجتماع ذرات، الگوریتم تبرید تدریجی، الگوریتم شبیه سازی تبرید فلزات، الگوریتم بهینه سازی زنبور عسل، بهینه سازی، پیچیدگی محاسباتی، هوش مصنوعی، جستجوی ناآگاهانه، جستجوی عمومی، جستجوی عمقی، جستجوی سطحی، جستجوی مکاشفه ای، جستجوی حریصانه، الگوریتم تپه نوردی، الگوریتم جستجوی تابو، جستجوی جامع، بهینه سازی تحلیلی، روش غیرمرکب سرازیری نلدر مید، ادغام، جهش، نسل، همگرایی، الگوریتم ژنتیک پیوسته، الگوریتم ژنتیک گسسته، بهینه سازی چندمنظوره، بهینه سازی پارتو، ژنتیک مرکب، مسائل جایگشت، غالب و مغلوب، نیچ، متاژنتیک، نژادمانه، رخ مانه، ژنتیک موازی، مسئله فروشنده دوره گرد، طراحی خط سیر روبات، طراحی حرکت رادارگریز، ساخت مدل های معکوس دینامیکی خطی و غیر خطی، مسائل زمان بندی، بهنیه سازی شبکه های عصبی مصنوعی، حل معادلات دیفرانسیل جزئی غیرخطی مرتبه بالا، تابع شایستگی، تابع آزمون، متلب، فرترن، ++C، C