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