در این قسمت تیم کدگیت سورس الگوریتم ژنتیک در جاوا را تهیه کرده است. الگوریتم ژنتیک یک الگوریتم تکاملی است که معمولاً در مسائل بهینه سازی از آن استفاده میشود. ایده اصلی این الگوریتم از تئوری تکامل میباشد که در آن نسل گونههای برتر ادامه پیدا کرده و گونههای ضعیفتر توسط طبیعت حذف میشوند. با ما همراه باشید تا کد الگوریتم ژنتیک را به شما معرفی کنیم. همچنین پیشنهاد میکنیم از دیگر کدهای ما دیدن فرمایید:
- سورس مرتب سازی مبنایی در جاوا
- سورس مرتب سازی صدفی در جاوا
- سورس مرتب سازی هرمی در جاوا
- سورس ماشین حساب در جاوا
- سورس بازی minesweeper در جاوا
- سورس رگرسیون خطی در جاوا
- سورس رگرسیون خطی چندگانه در جاوا
- سورس بازی 2048 در جاوا
سورس الگوریتم ژنتیک در جاوا
همانطور که گفتیم الگوریتم ژنتیک از ایده تکامل کمک گرفته است. در این الگوریتم ابتدا یک جمعیتی از یک گونه(individuals) تعریف میشوند. سپس با کمک تابع ارزیابی (fitness) میزان تطابق آنها با شرایط اندازهگیری میشود. آن گونههایی که تطبیق پذیر تر بوده از خود فرزندی را تولید کرده و جایگزین گونههای ضعیف میکنند. این روال آنقدر ادامه پیدا میکند تا به شرط پایان الگوریتم برسیم.
نحوه فرزندآوری گونه ها بدین صورت است که دو گونه انتخاب میشود و با کمک فرآیند Crossover و Mutation فرزند جدیدی با کمک ژنهای هردو گونه تولید میشود. پس از آن فرزند جدید به احتمال قوی نسبت به شرایط تطبیق پذیر تر بوده و احتمال حذف آن بسیار کمتر میشود چراکه ویژگیهای خود را از دو ژن برتر به ارث برده است. تمام این فرآیندی که با یکدیگر بررسی کردیم در سورس کد الگوریتم ژنتیک پیاده سازی گردیده است.
در سورس پیاده سازی گردیده هر گونه شامل 20 ژن میباشد. ژنها اعداد صفر یا یک هستند. هدف پیدا کردن گونهای است که همه ژنهای آن عدد یک باشند. جمعیت ما در این مسئله 5 عدد است و بعد از ایجاد 5 گونه به صورت تصادفی مسئله آغاز میشود و الگوریتم ژنتیک سعی در بهبود گونها دارد به طوریکه تمام ژنهای یک گونه عدد یک باشد. بعد از رسیدن به شرط پایان الگوریتم متوقف میشود.
نحوه اجرا سورس الگوریتم ژنتیک در جاوا
زبان برنامه نویسی کد الگوریتم ژنتیک، جاوا میباشد. بعد از تهیه این سورس کد فایلی با فرمت zip در اختیار شما قرار میگیرد. فایل را از حالت zip خارج کنید تا سورسها را ببینید. فایلی با نام SimpleDemoGA.java فایلی اصلی برنامه بوده و با اجرای آن، الگوریتم ژنتیک اجرا خواهد شد. بعد از اجرای برنامه خروجی برنامه به صورت زیر خواهد بود(البته دقت کنید ما یک iteration را چاپ کردیم):
Generation: 21 Fittest score: 19
==Genetic Pool==
Individual 0 | [genes=[1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1]] |
ndividual 1 | [genes=[1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] |
Individual 2 | [genes=[1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] |
Individual 3 | [genes=[1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] |
ndividual 4 | [genes=[1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] |
================
نقد و بررسیها
هنوز بررسیای ثبت نشده است.