کتاب «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» توسط انتشارات دانشگاه علم و صنعت منتشر شد.
دکتر هادی شهريار شاهحسينی، دکتر سيدمحمدرضا موسوی ميرکلائی و مهندس مرتضی ملاجعفری با همکاری هم کتابی با عنوان «الگوریتمهای تکاملی؛ مبانی، کاربردها و پیادهسازی» را تالیف کردهاند که در روزهای اول خرداد ماه امسال به چاپ رسیده است. این کتاب 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