در این پست سورس کد الگوریتم ژنتیک GA در پایتون Python قرار گرفته شده است. این سورس کد به زبان پایتون Python برای الگوریتم ژنتیک نوشته شده است. این سورس کد بر اساس 12 توابع تست الگوریتم GA را اجرا می کند. برای اینکه بتوانید مسئله الگوریتم ژنتیک را واضح و کامل درک کنید مقاله ای کامل با عنوان الگوریتم ژنتیک در همین سایت آماده کرده ایم که می توانید مطالعه کنید. در ادامه مختصری از الگوریتم برای درک کد الگوریتم GA در پایتون بیان می شود.
تیم برنامه نویسی پی استور یکی از اولین گروههای تشکیل شده در مجموعه آموزشی پی استور میباشد. این تیم از اساتید مجرب و فارغ التحصیلان رشتههای فنی و مهندسی تشکیل شده که در زمینههای مختلف برنامهنویسی و تهیه سورس کد فعال هستند.
الگوریتم ژنتیک
الگوریتم ژنتیک روشی برای بهینه سازی با جستجوی وسیع است و کارکرد آن بر اصول انتخاب طبیعی حاکم بر ژنتیک طبیعی استوار است. ایده این الگوریتم از نظریه تکامل داروین الهام گرفته شده است. اگرچه این الگوریتم روشی برای جستجوی تصادفی است، ویژگی های خاص آن موجب می شود که نتوان آن را یک جستجوی تصادفی ساده قلمداد کرد. در این الگوریتم اطلاعات تاریخی از چگونگی تکامل، به شکلی کارا استخراج شده و در روند جستجو استفاده می شود. الگوریتم ژنتیک روشی قدرتمند بوده و بر روی دسته وسیعی از مسائل بهخوبی عمل می کند.
الگوریتم ژنتیک واقعی که بر اساس ایده ی تکامل بیولوژیکی در طبیعت عمل می نمایند، بر روی جمعیتی از راه حل های بالقوه یا کروموزوم ها که هر یک می توانند بهعنوان پاسخی از مسئله تلقی شوند، با اعمال عملگرهای ژنتیکی به جستجوی راه حل نهایی می پردازند. در الگوریتم ژنتیکی، بسیاری از مکانیزم هایی که در زیست شناسی وجود دارد، نظیر انتخاب ژن برتر، ترکیب ژن ها، جهش ژن ها، مهاجرت افراد جمعیت، محلی بودن گونه ها و … شبیه سازی می شوند. در این الگوریتم ها، جستجو بر روی مجموعه هایی از راه حل ها بهصورت موازی انجام می شود، درحالیکه در روش های سنتی جستجو بهصورت ترتیبی است.
نحوه کار الگوریتم
در آغاز الگوریتم، تعدادی از افراد بهعنوان جمعیت اولیه و معمولاً بهصورت تصادفی ساختهشده و معیاری از کیفیت به نام تابع هدف یا برازندگی برای تک تک آن ها ارزیابی می شود. اگر شرط رسیدن به جواب برقرار نباشد (به جواب بهینه نرسیده باشیم)، نسل بعدی با انتخاب والدین بر اساس میزان برازندگی آن ها تولید می شود. در هر نسل، بهترین های آن نسل انتخاب می شوند و پس از زادوولد، مجموعه جدیدی از فرزندان را تولید می کنند.
کروموزوم های موجود در جمعیت بر اساس مقدار برازندگی بهعنوان والد انتخاب می شوند. سپس تولید مثل، بین جفت کروموزوم ها انجام می گیرد تا فرزندان ایجاد شوند و فرزندان با احتمالی ثابت دچار جهش می شوند. سپس میزان برازندگی فرزندان جدید محاسبهشده و جمعیت جدید، از جایگزینی فرزندان با والدین ایجاد می شود و جمعیت ایجادشده جدید بهعنوان نسل بعدی شناخته میشود و فرایند تکرار می شود.
در این فرایند، افراد مناسب تر با احتمال بیشتری در نسل های بعد باقی خواهند ماند و این فرایند تا برقرار شدن شرط خاتمه تکرار می شود. الگوریتم زمانی پایان خواهد یافت که بهبودی بر روی جواب ها صورت نگیرد و یا اینکه تعداد مشخصی نسل تولید شود.
کد ژنتیک با پایتون
سورس کد الگوریتم GA در پایتون شامل توابعی است که اسکریپت GA.py در واقع کد اصلی برنامه می باشد و بقیه فراخوانی ها از آنجا انجام می شود. توابع تست برای این الگوریتم 12 تابع می باشد که از معروف ترین آنها در زیر تعدادی را مشاهده می کنید.
- تابع SPHERE
- تابع ACKLEY
- تابع SUM SQUARES
- تابع ROSENBROCK
- تابع SUM OF DIFFERENT POWERS
- تابع ZAKHAROV
- تابع Rastrigin
توابع تست برای ارزیابی الگوریتم های بهینه سازی بکار می روند که در اینجا ما به این 7 تابع اکتفا کرده ایم ولی در سورس کد با 12 نوع تابع مختلف (همانند مقاله) ارزیابی شده است.
همچنین لازم به ذکر است که برای اجرای الگوریتم بهینه سازی روی مسئله مورد نظر تابع هزینه یا Cost Function آن تغییر خواهد کرد و بقیه الگوریتم دست نخورده باقی می ماند بنابراین برای اجرای الگوریتم GA در پایتون برای بهینه سازی مسئله خودتان تابع هزینه خود را بر اساس پارامترهای مسئله خود تعریف کنید.
قسمت هایی از سورس کد الگوریتم ژنتیک در پایتون
iters=500 lb=-100 ub=100 dim=30 popSize=50 cp = 1 #crossover Probability mp = 0.01 #Mutation Probability keep = 2; # elitism parameter: how many of the best individuals to keep from one generation to the next if not isinstance(lb, list): lb = [lb] * dim if not isinstance(ub, list): ub = [ub] * dim bestIndividual=numpy.zeros(dim) scores=numpy.random.uniform(0.0, 1.0, popSize) bestScore=float("inf") ga = numpy.zeros((popSize, dim)) for i in range(dim): ga[:, i]=numpy.random.uniform(0,1,popSize) * (ub[i] - lb[i]) + lb[i] convergence_curve=numpy.zeros(iters) for l in range(iters): #crossover ga = crossoverPopulaton(ga, scores, popSize, cp, keep) #mutation mutatePopulaton(ga, popSize, mp, keep, lb, ub) ga = clearDups(ga, lb, ub) scores = calculateCost(ga, popSize, lb, ub) bestScore = min(scores) #Sort from best to worst ga, scores = sortPopulation(ga, scores)
ویدیو معرفی محصول
*** توجه ***
قبل از اجرای سورس کد الگوریتم در محیط پایتون حتماً از نصب پکیج های مورد استفاده در این سورس کد در Python خود مطمئن شوید پکیج های استفاده شده در این سورس کد numpy و matplotlib می باشد که اولی پکیج مربوط به استفاده از آرایه ها و ماتریس ها در پایتون و دومی مربوط به عملیات های نموداری و Plot گرفتن می باشد. پیشنهاد ما نصب اسپایدر (Spyder (Python 3.7 می باشد که هم پایتون و پکیج های مختلف و هم IDE های مختلفی را همراه با امکان آپدیتشان نصب می کند.
درباره محصول
سورس کد الگوریتم ژنتیک GA در پایتون Python عنوان محصولی است که در این پست به آن پرداخته شده است. محصول در پایتون و با IDE اسپایدر (Spyder (Python 3.7 نوشته شده و بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید.
مباحث مرتبط با موضوع
اطلاعات تکمیلی محصول
نام محصول: | کد الگوریتم ژنتیک در پایتون Python |
---|---|
نوع محصول: | سورس کد |
حجم فایل: | 5.1 کیلوبایت |
فرمت فایل: | py. در قالب پایتون |
قابل اجرا در: | (Spyder (Python 3.8 و بالاتر |
تضمین کیفیت و گارانتی بازگشت هزینه
توجه: کیفیت این محصول توسط پی استور تضمین شده و در صورت عدم رضایت از محصول، به انتخاب شما:
- ۱۰۰ درصد مبلغ پرداختی در حساب کاربری شما شارژ میشود.
- و یا 80 درصد مبلغ پرداختی به حساب بانکی شما عودت داده میشود.
کد الگوریتم ژنتیک در پایتون Python
حجم فایل: | 5.1 کیلوبایت |
---|---|
فرمت فایل | py. در قالب پایتون |
هماهنگی با: | (Spyder (Python 3.8 و بالاتر |
تاکنون 779 نفر این محصول را تهیه کرده اند و 2 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
کد الگوریتم ژنتیک در پایتون Python
هزینه سفارش: 99,000 تومان
با تخفیف 40 درصدی: فقط 59,400 تومان
حجم فایل: | 5.1 کیلوبایت |
---|---|
فرمت فایل | py. در قالب پایتون |
هماهنگی با: | (Spyder (Python 3.8 و بالاتر |
2 بازخورد (مشاهده نظرات)
هزینه سفارش: 99,000 تومان
هادی
ایول دمتون گرم 👏👏👏
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.