You are on page 1of 23

‫الگوریتم ژنتیک‬

Genetic Algorithms (GA)

Company
LOGO

Genetic Algorithms (GA)


‫‪Company‬‬
‫‪LOGO‬‬ ‫فهرست مطالب‬
‫اصلی)‬
‫ایدهاصلی)‬ ‫‪(GA‬تاریخچه‬
‫(تاریخچهووایده‬ ‫ژنتیک‪GA‬‬
‫الگوریتمژنتیک‬
‫‪--11‬الگوریتم‬
‫ژنتیک‬
‫درژنتیک‬
‫شدهدر‬
‫‌سازیشده‬
‫شبیهه‬
‫‌سازی‬ ‫تکاملشبی‬
‫‪--22‬تکامل‬
‫ژنتیک‬
‫الگوریتمژنتیک‬
‫کاریالگوریتم‬
‫اصولکاری‬
‫‪--33‬اصول‬
‫ژنتیک‬
‫درژنتیک‬
‫مسألهدر‬
‫متغیرهایمسأله‬
‫کدبندیمتغیرهای‬
‫‪--44‬کدبندی‬
‫ژنتیک‬
‫الگوریتمژنتیک‬
‫درالگوریتم‬
‫برازندگیدر‬
‫تابعبرازندگی‬
‫‪--55‬تابع‬
‫ژنتیک‬
‫الگوریتمژنتیک‬
‫عملگرهایالگوریتم‬
‫‪--66‬عملگرهای‬
‫سنتی‬
‫جستجویسنتی‬
‫‌سازیووجستجوی‬
‫بهینهه‬
‫‌سازی‬ ‫‌هایبهین‬
‫الگوریتمم‌های‬
‫ژنتیکووالگوریت‬
‫الگوریتمژنتیک‬
‫تفاوتالگوریتم‬
‫‪--77‬تفاوت‬
‫‪ -8‬کاربردهای الگوریتم ژنتیک‬
‫گیری‬
‫نتیجهگیری‬
‫‪--99‬نتیجه‬
‫)‪Genetic Algorithms (GA‬‬ ‫‪2‬‬
‫‪Company‬‬
‫‪LOGO‬‬ ‫الگوریتم ژنتیک ‪( GA‬تاریخچه و ایده اصلی)‬

‫• بسیاری از اختراعات بشری از طبیعت الهام گرفته شده‌اند‪« .‬شبکه‌های عصبی‬


‫مصنوعی» ‪ Artificial Neural Network‬نمونه بارز چنین ابداعاتی هستند‪ .‬یکی‬
‫دیگر از چنین ابداعاتی‪ ،‬توسعه ایده الگوریتم ژنتیک است‪.‬‬

‫• الگوریتم‌ ژنتیک خانواده‌ای از «مدل‌های محاسباتی» است که از مفهوم «تکامل»‬


‫الهام گرفته‌ شده‌اند‪.‬‬
‫• این دس ته از الگوریتم‌ه ا‪« ،‬جواب‌ه ای محتم ل» ی ا «جواب‌ه ای کاندی د» و ی ا‬
‫«فرض یه‌های محتم ل» ب رای ی ک مس أله خ اص را در ی ک س اختار داده‌ای‬
‫«کروموزوم مانند» کدبندی می‌کنند‪.‬‬
‫• الگ وریتم ژنتی ک از طری ق اعم ال «عملگره ای ب ازترکیب» روی س اختارهای‬
‫داده‌ای کروموزوم مانند‪ ،‬اطالعات حیاتی ذخیره شده در این ساختارهای داده‌ای را‬
‫حفظ می‌کند‪.‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪3‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫الگوریتم ژنتیک ‪( GA‬تاریخچه و ایده اصلی)‬

‫• در بس یاری از م وارد‪ ،‬از الگوریتم‌ه ای ژنتی ک ب ه عن وان‬


‫الگوریتم‌ه ای «بهینه‌س از ت ابع» ی اد می‌ش ود؛ یع نی‪،‬‬
‫الگوریتم‌ه ایی ک ه ب رای بهینه‌س ازی «تواب ع ه دف» مس ائل‬
‫مختل ف ب ه ک ار می‌رون د‪ .‬البت ه‪ ،‬گس تره کاربرده ایی ک ه از‬
‫الگوریتم ژنتیک‪ ،‬برای حل مسئله در دامنه کاربردی خود‬
‫استفاده می‌کنند‪ ،‬بسیار وسیع است‪.‬‬

‫• این شاخه از حوزه «هوش مصنوعی» ‪Artificial‬‬


‫‪ ،Intelligence‬ب ر پای ه مک انیزم تکام ل موج ودات زن ده و‬
‫تولید گونه‌های موفق‌تر و برازنده‌تر در طبیعت الهام گرفته‬
‫شده است‪ .‬به عبارت دیگر‪ ،‬ایده اصلی الگوریتم‌های ژنتیک‪،‬‬
‫«بقای برازنده‌ترین‌ها» است‪.‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪4‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫الگوریتم ژنتیک ‪( GA‬تاریخچه و ایده اصلی)‬

‫یک کروم وزوم‪ ،‬رش ته‌ای بلن د و پیچی ده از «اس ید دی‌اکس ی ریبونوکلئی ک»‬
‫‪ Deoxyribonucleic Acid‬یا ‪ DNA‬است‪ .‬عوامل ارثی که ویژگی‌ها یا خصیصه‌های‬
‫یک «فرد» را مشخص می‌کنند‪ ،‬در طول این کروموزوم‌ها نقش یافته‌اند‪ .‬هر یک از‬
‫خصیصه‌های موجود در افراد‪ ،‬به وسیله ترکیبی از ‪ ،DNA‬در ژن‌های انسان کدبندی‬
‫می‌شوند‪ .‬در بدن موجودات زنده‪ ،‬معموال چهار «پایه» برای تولید کروموزوم‌ها از‬
‫روی ‪ DNA‬وجود دارد‪:‬‬

‫‪ ‬پایه ‪ A‬یا ‪Adenine‬‬


‫‪ ‬پایه ‪ C‬یا ‪Cytosine‬‬
‫‪ ‬پایه ‪ G‬یا ‪Thymine‬‬
‫‪ ‬پایه ‪ T‬یا ‪Guanine‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪5‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫تکامل شبیه‌سازی شده در ژنتیک‬

‫• برای شبیه‌سازی فرایند انتخاب طبیعی توسط سیس‪E‬تم‌های ک‪E‬امپیوتری و حل مسأله با‬
‫استفاده از الگوریتم‌های الهام گرفته شده از انتخاب طبیعی‪ ،‬ابتدا باید مدل‌های نمایشی‬
‫جهت مدل‌سازی متغیرهای مسأله تعریف شوند‪.‬‬

‫• نمایشی از یک «موجودیت» در هر نقطه از فضای جستجوی مسأله در طول فرایند‬


‫جستجو برای یافتن جواب بهینه‪ :‬برای چنین کاری‪ ،‬مفهوم «نسل‌های» ‪Generation‬‬
‫متوالی از موجودیت‌ها مطرح می‌شود‪.‬‬
‫• هر موجودیت یک ساختار داده‌ای خواهد بود که «ساختار ژنتیکی» یک جواب یا‬
‫فرضیه محتمل‪/‬کاندید را نمایش می‌دهد‪ .‬همانند یک کروموزوم‪ ،‬ساختار ژنتیکی یک‬
‫موجودیت توسط الفبایی ثابت و محدود توصیف خواهد شد‪.‬‬
‫• به عنوان نمونه‪ ،‬الگوریتم ژنتیک از الفبای مبتنی بر رشته‌های «باینری» مقادیر‬
‫صحیح یا «مقادیر حقیقی» به عنوان تفسیری از جواب‌های محتمل برای یک مسأله‬
‫خاص استفاده می‌کند‪.‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪6‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫اصول کاری الگوریتم ژنتیک‬

‫اصول کاری الگوریتم ژنتیک‪ ،‬در ساختار الگوریتمی زیر نمایش داده شده است‪.‬‬

‫فرموله کردن جمعیت اولیه متشکل از جواب‌های مسأله‬ ‫•‬


‫مق دار‌دهی اولی ه و تص ادفی جمعیت اولی ه متش کل از جواب‌ه ای‬ ‫•‬
‫مسأله‬
‫حلقه تکرار‪:‬‬ ‫•‬
‫• ارزیابی تابع هدف مسأله‬
‫• پیدا کردن تابع برازندگی مناسب‬
‫• انج ام عملی ات روی جمعیت متش کل از جواب‌ه ای مس أله ب ا‬
‫استفاده از عملگرهای ژنتیک‬
‫• عملگر «تولید مثل» ‪Reproduction‬‬
‫• عملگر «ترکیب یا آمیزش»‪Crossover‬‬
‫• عملگر «جهش» ‪Mutation‬‬
‫تا زمانی که‪ :‬شرط توقف ارضا شود‪.‬‬ ‫•‬
‫)‪Genetic Algorithms (GA‬‬ ‫‪7‬‬
Company
LOGO ‫اصول کاری الگوریتم ژنتیک‬

Genetic Algorithms (GA) 8


‫‪Company‬‬
‫‪LOGO‬‬ ‫اصول کاری الگوریتم ژنتیک‬

‫برای نم ایش اص ول ک اری الگ وریتم ژنتی ک‪ ،‬ی ک مس أله بهینه‌س ازی در نظ ر گرفت ه‬
‫می‌شود‪ .‬فرض کنید که مسأله بهینه‌سازی زیر داده شده است و هدف الگوریتم ژنتیک‬
‫بیشینه‌سازی‪ Maximizing‬تابع زیر باشد‪:‬‬

‫در این رابطه‪ ،‬و حد باال و حد پایین تعیین شده برای مقادیر متغیر است‪ .‬اگر چه‬
‫در اینجا از یک مسأله بیشینه‌سازی برای نمایش اصول کاری الگوریتم ژنتیک استفاده‬
‫است‪ ،‬با این حال‪ ،‬الگوریتم ژنتیک به راحتی قادر به کمینه‌سازی مسائل مختلف نیز‬
‫خواه د ب ود‪ .‬ب رای پیاده‌س ازی الگوریتم‌ه ای ژنتی ک‪ ،‬وظ ایف خاص ی بای د تعری ف‬
‫و توسط این الگوریتم‪ ،‬جهت بهینه‌سازی توابع مختلف‪ ،‬اجرا شوند‪.‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪9‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫کدبندی متغیرهای مسأله در ژنتیک‬

‫برای اینکه الگوریتم ژنتیک قادر باشد تا تابع ارائه شده در اسالید قبلی را بیشینه کند‪،‬‬
‫متغیرهای باید توسط یک ساختار رشته‌ای کدبندی شوند‪.‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪10‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫تابع برازندگی در الگوریتم ژنتیک‬

‫به طور کلی‪ ،‬یک «ت‪E‬ابع برازن‪E‬دگی» ‪ Fitness Function‬یا ‪ ،‬در ابتدا با استفاده از‬
‫ت ابع ه دف فرمول ه می‌ش ود و در عملی ات ژن تیکی مت والی در نس ل‌های الگ وریتم‬
‫ژنتیک مورد استفاده قرار می‌گیرد‪.‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪11‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫تابع برازندگی در الگوریتم ژنتیک‬

‫در الگوریتم ژنتیک‪ ،‬کروموزوم‌ها یا موجودیت‌هایی که بیشترین برازندگی را‬


‫دارند‪ ،‬نسبت به دیگر کروموزوم‌های موجود در جمعیت‪ ،‬شانس بیشتری برای‬
‫ترکیب و جهش (عملگرهای ژنتیکی) خواهند داشت‪ .‬عملکرد صحیح برخی از‬
‫عملگرهای ژنتیکی منوط به تعریف توابع برازندگی نامنفی است؛ با این حال‪،‬‬
‫دیگر عملگرهای ژنتیکی‪ ،‬پیش‌شرط نامنفی بودن تابع برازندگی را برای انجام‬
‫عملیات خود تعریف نمی‌کنند‪ .‬در مسائل بیشینه‌سازی‪ ،‬می‌توان تابع برازندگی را‬
‫معادل تابع هدف در گرفت‪ .‬به عبارت دیگر‪:‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪12‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫عملگرهای الگوریتم ژنتیک‬

‫یک چرخ ه (حلق‪E‬ه تک‪E‬رار) از فراین د دس تکاری جمعیت متش کل از کروموزوم‌ه ا ی ا‬


‫بردارهای جواب‪ ،‬توسط عملگرهای تولید مثل‪ ،‬ترکیب و جهش و ارزیابی متعاقب‬
‫آن‌ها‪ ،‬به عنوان یک نسل از الگوریتم ژنتیک شناخته می‌شود‪ .‬در ادامه‪ ،‬هر یک از‬
‫عملگرهای الگوریتم ژنتیک به تفصیل شرح داده خواهند شد‪.‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪13‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫عملگرهای الگوریتم ژنتیک‬

‫عملگر تولید مثل‬

‫عملگر تولید مثل یا انتخاب‪ ،‬عملگری است که بهترین رشته‌ها در یک جمعیت جدید را‬
‫کپی می‌کند (منظور‪ ،‬بهترین کروموزوم‌ها یا بردارهای جواب کاندید در یک نسل‬
‫است)‪ .‬عملگر تولیِد مثل‪ ،‬معموال اولین عملگری است که برای دستکاری جمعیت مورد‬
‫اس تفاده ق رار می‌گ یرد و روی کروموزوم‌ه ا اعم ال می‌ش ود‪ .‬این عملگ ر‪ ،‬رش ته‌ها ی ا‬
‫کروموزوم‌های خوب جمعیت را انتخاب می‌کند و آن‌ها را در مخزنی که در اصطالح‬
‫به آن‪ Mating Pool‬گفته می‌شود‪ ،‬قرار می‌دهد؛ به همین دلیل است که به عملگر تولید‬
‫مثل‪ ،‬عملگر انتخاب نیز گفته می‌شود‪.‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪14‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫عملگرهای الگوریتم ژنتیک‬

‫عملگر انتخاب مبتنی بر چرخ رولت‬

‫یکی از عملگره ای ش ایع و پرک اربرد ب رای تولی د مث ل در الگ وریتم ژنتی ک‪ ،‬روش‬
‫انتخاب چرخ رولت نام دارد‪ .‬در این عملگر‪ ،‬احتمال انتخاب یک رشته یا کروموزوم‬
‫برای قرار گرفتن در مخزن ‪ ،Mating Pool‬متناسب با برازندگی آن رشته یا کروموزم‬
‫)‪Genetic Algorithms (GA‬‬
‫محاسبه می‌شود‪.‬‬
‫‪15‬‬
‫‪Company‬‬
‫‪LOGO‬‬ ‫عملگرهای الگوریتم ژنتیک‬

‫عملگر انتخاب باقی مانده تصادفی (بدون جایگذاری)‬


‫این عملگر‪ ،‬روش بهتری برای انتخاب رشته‌ها یا کروموزوم‌ها است‪ .‬ایده اصلی این‬
‫روش این است که رشته‌ها یا کروموزوم‌ها‪ ،‬بر اساس تعداد دفعات تولید مثل از آن‌ها‪،‬‬
‫از جمعیت جدی د ح ذف و ی ا در جمعیت جدی د تکث یر می‌ش وند‪ .‬ب رای چ نین ک اری‪،‬‬
‫پارامتر تعداد دفعات تولید مثل به ازاء هر کدام از رشته‌ها یا کروموزوم‌ها محاسبه‬
‫می‌شود‪.‬‬
‫عملگر ترکیب یا آمیزش‬
‫از عملگر ترکیب یا آمیزش‪ ،‬برای باز‌ترکیب دو رشته استفاده می‌شود‪ .‬این کار‪ ،‬با‬
‫هدف تولید رشته‌ها یا کروموزوم‌های بهتر انجام می‌شود‪ .‬در عملیات ترکیب در‬
‫الگ وریتم ژنتی ک‪ ،‬طری ق ت رکیب ک ردن م واد ژن تیکی دو کروم وزوم موج ود در‬
‫جمعیت نسل قبل‪ ،‬کروموزوم‌های جدیدی در نسل‌های فعلی می‌شود‪.‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪16‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫عملگرهای الگوریتم ژنتیک‬

‫عملگر جهش‬
‫عملگر جهش یکی از مهم‌ترین فرایندهای تکاملی برای رس‪E‬یدن ب‪E‬ه ج‪E‬واب بهین‪E‬ه در‬
‫الگ وریتم ژنتی ک محس وب می‌ش ود‪ .‬در عملگ ر جهش‪ ،‬ب ه ش کل تص ادفی‪ ،‬اطالع ات‬
‫جدیدی به فرایند جستجو در الگوریتم ژنتیک اضافه می‌شود‪.‬‬
‫چنین ویژگی مهمی به الگوریتم ژنتیک کمک‬
‫می‌کند تا از قرار گرفتن در دام بهینه محلی‬
‫‪ Local Optimum‬فرار کند‪.‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪17‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫تفاوت الگوریتم ژنتیک و الگوریتم‌های بهینه‌سازی و جستجوی سنتی‬

‫الگوریتم ژنتیک‪ ،‬تفاوت‌های بنیادی با الگوریتم‌های جستجو و بهینه‌سازی سنتی دارد‪.‬‬


‫که در ادامه اسالید به آنها اشاره خواهیم کرد‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪18‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫تفاوت الگوریتم ژنتیک و الگوریتم‌های بهینه‌سازی و جستجوی سنتی‬

‫• الگوریتم ژنتیک از طریق کدبندی مجموعه جواب‌های کاندید‪ ،‬توابع را بهینه و‬


‫مسائل بهینه‌سازی را حل می‌کند‪ .‬در حالی که الگوریتم‌های‌بهینه‌سازی و جستجوی‬
‫سنتی‪ ،‬از مجموعه جواب‌های کاندید برای بهینه‌سازی استفاده می‌کنند‪.‬‬

‫• الگ وریتم ژنتی ک‪ ،‬مجم وعه‌ای از جواب‌ه ای کاندی د را ب رای ی افتن ج واب بهین ه‬
‫جستجو می‌کند‪ .‬در حالی که الگوریتم‌های بهینه‌سازی و جستجوی سنتی‪ ،‬از همان‬
‫ابتدا به دنبال یک جواب واحد هستند‪.‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪19‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫تفاوت الگوریتم ژنتیک و الگوریتم‌های بهینه‌سازی و جستجوی سنتی‬

‫• الگوریتم ژنتیک‪ ،‬از اطالعات مرتبط با تابع برازندگی برای حل مسائل بهینه‌سازی‬
‫بهره می‌برد‪ .‬در حالی که الگوریتم‌های بهینه‌سازی و جستجوی سنتی‪ ،‬از مشتق‬
‫تابع هدف و دیگر اطالعات کمکی استفاده می‌کنند‪.‬‬

‫• الگوریتم ژنتیک از قوانین گذار «احتمالی» برای بهینه‌سازی و جستجو استفاده‬


‫می‌کنن د‪ .‬در ح الی ک ه الگوریتم‌ه ای بهینه‌س ازی و جس تجوی س نتی‪ ،‬از ق وانین‬
‫«قطعی» بهره می‌گیرند‪.‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪20‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫کاربردهای الگوریتم ژنتیک‬

‫از الگوریتم‌های ژنتیک‪ ،‬جهت ح‪E‬ل مس‪E‬أله و مدل‌س‪E‬ازی استفاده می‌شود‪ .‬امروزه‪ ،‬از‬
‫الگوریتم‌های ژنتیک و مشتقات آن‪ ،‬در دامنه وسیعی از مسائل علمی و مهندسی استفاده‬
‫می‌شود‪ .‬مهم‌ترین کاربردهای الگوریتم ژنتیک عبارتند از‪:‬‬

‫بهینه‌سازی‬ ‫•‬
‫برنامه‌نویسی خودکار‬ ‫•‬
‫یادگیری ماشین‬ ‫•‬
‫مدل‌های «سیستم ایمنی»‬ ‫•‬
‫مدل‌های اقتصادی‬ ‫•‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪21‬‬


‫‪Company‬‬
‫‪LOGO‬‬ ‫نتیجه گیری‬

‫الگوریتم‌ه ای ژنتی ک‪ ،‬ب ه راح تی در دامن ه وس یعی از مس ائل‪ ،‬از جمل ه مس‪E‬ائل‬
‫بهینه‌س‪E‬ازی نظ یر «مس أله فروش نده دوره‌گرد» و مس‪E‬ائل مرتب‪E‬ط ب‪E‬ا «برن‪E‬امه‌ریزی»‬
‫می‌توانند مورد استفاده قرار بگیرند‪ .‬نتایج حاصل از الگوریتم ژنتیک برای برخی از‬
‫مسائل ممکن است بسیار خوب و برای برخی دیگر از مسائل‪ ،‬ممکن است بسیار‬
‫ضعیف باشد‪ .‬اگر تنها از عملگر جهش در الگوریتم ژنتیک استفاده شود‪ ،‬الگوریتم‬
‫بس یار کن د می‌ش ود‪ .‬اس تفاده از عملگ ر ت رکیب‪ ،‬س بب س رعت بخش یدن ب ه فراین د‬
‫همگرایی در الگوریتم ژنتیک خواهد شد‪.‬‬

‫)‪Genetic Algorithms (GA‬‬ ‫‪22‬‬


Company
LOGO References

• Goldberg, David E (1989), Genetic Algorithms in Search,


Optimization and Machine Learning, Kluwer Academic
Publishers, Boston, MA.

• Schmitt, Lothar M (2001), Theory of Genetic Algorithms,


Theoretical Computer Science (259), pp. 1–61

• Mitchell, Melanie, (1996), An Introduction to Genetic


Algorithms, MIT Press, Cambridge, MA.

Genetic Algorithms (GA) 23

You might also like