الگوریتم بهینه سازی ژنتیک، از الگوریتمهای بسیار کارآمد در حل مسائل بهینهسازی ترکیبی است. الگوریتم ژنتیک در حوزههای مختلف مسائل بهینهسازی کاربرد دارد. بهینهسازی فرآیندی برای تعیین بهترین راهحل است . این الگوریتم از روش به کمینه یا به حداکثر رساندن پارامترهای درگیر در مسائل استفاده میکند . در چند سال اخیر، الگوریتمهای الهام گرفتهشده از طبیعت و فرایندهای زیستی از قدرتمندترین راهحلها برای بهینهسازی عددی بودهاند. در این مقاله شبه کد ااگوریتم ژنتیک ، پیدایش الگوریتم ژنتیک و کاربرد الگوریتم بهینه سازی ژنتیک فلوچارت و رفتار آن بیان شده است.همچنین بهبود شبکه عصبی با الگوریتم ژنتیک یک موضوع تحقیقاتی مهم است.
بهینهسازیِ نسلِ موجودات بر روی کرهی خاکی به وسیلهی ژنهای موجود در موجودات انجام شده است . دانشمندانِ علومکامپیوتر و هوشمصنوعی با الهام از این نظریه، به الگوریتمی به نام الگوریتمِ ژنتیک یا همان Genetic Algorithm رسیده است .
یکی دیگر از الگوریتمهای بسیار کارآمد الگوریتم های ژنتیک یا همان GA است.الگوریتم GA ، یک الگوریتم بهره برداری بهینه شده هوشمندانه از جستجوی تصادفی به وجود میآید . این الگوریتم داده های تاریخی تهیه شده است تا جستجو به منطقه ای با عملکرد بهتر در فضای راه حل هدایت شود. از آن ها برای تولید راه حلی با کیفیت بالا برای مشکلات بهینه سازی ، جستجو استفاده شده است. الگوریتم بهینه سازی ژنتیک، تکنیکی در علم کامپیوتر برای جستجو و پیداکردن یک راه حل بهینه می باشد. این الگوریتم ها نوعی از الگوریتم های تکاملی هستند . از علم های چون زیست شناسی ، وراثت ، جهش ، انتخاب ناگهانی ، انتخاب طبیعی و ترکیب الهام گرفته است .
الگوریتم GA الگوریتم های اکتشافی جهت جستجوی تطبیقی هستند. الگوریتم های ژنتیکی فرایند تولید انتخاب طبیعی را شبیه سازی کرده ند . به گونه ای که بتوانند با تغییرات در محیط خود سازگار بشوند. الگوریتم بهینه سازی ژنتیک، قادر به زنده ماندن و تولید مثل هستند.
الگوریتم ژنتیک با انجام عملیاتِ جابهجایی و جهش میتوانند نسلها و کروموزومهای بهینهتری را تولید کند .الگوریتم بهینه سازی ژنتیک، در نهایت به یک جواب خوب بدون گشتن و امتحان کردنِ تمامیِ حالت ها میرسد .
در دهه هفتاد جان هلند ایده استفاده از الگوریتم ژنتیک را در بهینهسازیهای مهندسی مطرح کرده بود. ایده اساسی این الگوریتم انتقال خصوصیات موروثی توسط ژن است . شروع این الگوریتم با مجموعه اولیه ای از راه حل های تصادفی است که جمعیت اولیه نامیده می شود. هر عضو یک کروموزوم نام دارد. ژن های نسل قبل نسبت به نسل جدید بهتر شده است. بنابراین هر نسل جدید راه حل های جزئی بهتری نسبت به نسلهای گذشته دارد. اگر فرزندان تولید شده هیچ تفاوت معناداری با فرزندان حاصل از جمعیت قبلی نداشته باشد جمعیت همگرا می شود. این الگوریتم به مجموعه ای از راه حل های این مشکل همگرا شده است.
تفاوت الگوریتم های ژنتیک با ساختار ژنتیکی، رفتار کروموزوم جمعیتی است. افرادی در جمع برای منابع رقابت می کنند. آن دسته از افراد موفق بعد از جفت گیری سعی میکنند تا فرزندان بیشتری را نسبت به دیگران به وجود آورند. ژنهای والدین مناسب ترین در سراسر نسل تبلیغ می شوند . این بدین معنا است که بعضی اوقات والدین فرزندان به وجود می آورند که بهتر از والدین است. بنابراین هر نسل موفق برای محیط خود مناسب تر است. الگوریتم بهینه سازی ژنتیک با رشته بیتی کار می کند. در هر تکرار چند نقطه ای را از فضای جستجو درنظر میگیرد. شرایط جمعیت در رسیدن به جواب درست بسیار تاثیر گذار است. باتوجه به پارامترهای تصادفی حتی در صورت استفاده جمعیت اولیه یکسان امکان دارد جواب ها یکسان نباشد.تابع ارزش در این الگوریتم اهمیت زیادی دارد.
الگوریتم بهینه سازی ژنتیک، روش قدرتمندی برای توسعه اکتشافی مسائل بهینه سازی ترکیبی مقیاس بزرگ است. این الگوریتم مسئله را به صورت مجموعه ای از رشته ها که شامل ذرات ریز هستند کدگذاری می کند. سپس برای تحریک فرایند تکامل تدریجی تغییراتی را بر روی رشته ها اعمال دارد .
پس از ایجاد نسل اولیه ، الگوریتم با استفاده از اپراتورهای زیر تکامل پیدا می کند.
عملگر انتخاب: ایده این است که به افراد دارای نمرات آمادگی جسمانی اولویت داده شود . به آنها اجازه داده شود ژن ها را به نسل های بعدی منتقل کنند.
اپراتور متقاطع: این نشان دهنده جفت گیری بین افراد است. دو نفر با استفاده از عملگر انتخاب، انتخاب می شوند . سایت های متقاطع به طور تصادفی مورد انتخاب قرار می گیرند. سپس ژنهای موجود در این سایت های متقاطع رد و بدل می شوند . بدین ترتیب فرد کاملاً جدیدی (فرزندان) ایجاد می شوند.
عملگر جهش: ایده اصلی درج قرار دادن ژن های تصادفی در فرزندان برای حفظ تنوع در جمعیت برای جلوگیری از همگرایی زودرس است.
انواع مختلفی از شبکه های عصبی مصنوعی موجود میباشند. این شبکه ها به طور کلی شامل دو بخش بهینه ساز و سازنده هستند. فاز سازنده که باعث شهرهای توسعه شبکه میشود و فاز بهینه ساز مجموعه راه حل ها را در هر تکرار بهبود میبخشد. با توجه به توضیحات الگوریتم بهینه سازی ژنتیک بکارگیری این الگوریتم باعث بهبود کارایی شبکه عصبی خواهد شد.بهبود شبکه عصبی با الگوریتم ژنتیک در کاربردهای متفاوت و مسایل مختلف پیچیده که نیاز به یادگیری دارند میتواند موثر واقع شود. به عنوان مثال میتوان به یک شبکه عصبی فازی ژنتیکی جدید برای حل مسأله فروشنده دوره گرد اشاره نمود. به طوریکه در هر مرحله از فاز سازنده کدام شهر در مسیر قرار گیرد. در نرون های لایه های سوم و چهارم تعیین می شود که کدام نرون باید در کجای مسیر قرار گیرد.
از دیگ موارد مهم در شبکه های عصبی انتخاب یک توپولوژی خوب برای یک شبکه عصبی عمیق است. این مساله ، یک کار پیچیده است و برای هر یادگیری عمیق ضروری است. انجام این کار نیازمند دانش از تجربه های قبلی است ، زیرا بیشتر بودن این دانش باعث افزایش منابع محاسباتی میشود و خطا را در رویکردهای آزمایشی کم می کند. استفاده از الگوریتم های ژنتیکی در انتخاب توپولوژی شبکه های عصبی عمیق باعث بهبود عملکرد این الگوریتم ها میشود. الگوریتم های ارزیابی شده قادر به یافتن توپولوژی رقابتی هستند . این در حالی است که منابع محاسباتی کمتری را در مقایسه با روش های دیگر نیاز دارند.
شبکه های عصبی در بسیاری از کاربردها دچار چالش هایی میشوند. به عنوان مثال در جستجوی تصادفی خالص ، تلاش برای یافتن راه حل مناسب پاداش نمی گیرد زیرا سایر راه حل ها به طور مساوی از فضای جستجو نمونه برداری می شوند. اگر فضای جستجو بیش از حد بزرگ باشد ، جستجوی شبکه نیز غیرممکن است . همچنین در صورت انتخاب یک فضای فرعی غیر نماینده ، همگرایی محلی رخ میدهد. در یادگیری انتقال ، پیچیدگی توپولوژی های موجود ممکن است مشکل ساز شود . برآورده شدن محدودیت های شدید در زمان واقعی از این دسته است. این بدین معنا است که توسعه روشهایی برای کمک به طراحی توپولوژیهای جدید ANN ، با حداقل مداخله و منابع محاسباتی محدود ، یک موضوع مهم پژوهشی است.
مورد دیگر توجه به تعداد بالای پارامترهایی است که باید انتخاب شوند . تعریف توپولوژی DNN برای یک مسئله خاص می تواند به صورت یک مسئله بهینه سازی در نظر گرفته شود. برخی از این پارامترها ، از جمله تعداد لایه ها ، سلول های عصبی در هر لایه ، عملکردهای فعال سازی و الگوریتم های یادگیری ، فضای جستجوی گسترده ای را تشکیل می دهند که جستجوی جامع را عملاً غیرممکن می کند . بنابراین ، نیاز به الگوریتم های بهینه سازی قوی بوجود می آید.
Matlabanalysis2012@gmail.com