الگوریتم ژنتیک در زبان برنامه نویسی c++


دنلود مقاله و پروژه و پایان نامه دانشجوئی

مقاله  الگوریتم ژنتیک در زبان برنامه نویسی c++  مربوطه  به صورت فایل ورد  word و قابل ویرایش می باشد و دارای ۱۴۰  صفحه است . بلافاصله بعد از پرداخت و خرید لینک دنلود مقاله الگوریتم ژنتیک در زبان برنامه نویسی c++   نمایش داده می شود، علاوه بر آن لینک مقاله مربوطه به ایمیل شما نیز ارسال می گردد

چکیده ۱
مقدمه ۲
الگوریتم ژنتیک ۵
تعریف خروجی(نمایش) ۸
عملگرهای مجموعه ژن ۱۰
شئ جمعیت ۱۳
توابع شئ و مقیاس گذاری مناسب ۱۴
نمایش الگوریتم ژنتیک درc++ 15
توانایی عملگرها ۱۷
چگونگی تعریف عملگرها ۱۸
چگونگی تعریف کلاس مجموعه ژن ۲۲
سلسله مراتب کلاس ها ۲۳
۱٫ سلسله مراتب کلاس GALib – گرافیکی ۲۳
۲٫ سلسله مراتب کلاس GALib – مراتب ۲۴
رابط برنامه نویسی ۲۵
نام پارامترها و گزینه های خط فرمان ۲۶
رفع خطا ۲۸
توابع اعداد تصادفی ۲۹
GAGeneticAlgorithm 31
GADemeGA 42
GAIncrementalGA 44
GASimpleGA 47
GASteadyStateGA 50
Terminators 52
Replacement Schemes 54
GAGenome 55
GA1DArrayGenome<T> 62
GA1DArrayAlleleGenome<T> 65
GA2DArrayGenome<T> 67
GA2DArrayAlleleGenome<T> 70
GA3DArrayGenome<T> 72
GA3DArrayAlleleGenome<T> 76
GA1DBinaryStringGenome 78
GA2DBinaryStringGenome 81
GA3DBinaryStringGenome 85
GABin2DecGenome 88
GAListGenome<T> 91
GARealGenome 92
GAStringGenome 94
GATreeGenome<T> 96
GAEvalData 97
GABin2DecPhenotype 98
GAAlleleSet<T> 100
GAAlleleSetArray<T> 103
GAParameter and GAParameterList 104
GAStatistics 108
GAPopulation 113
GAScalingScheme 123
GASelectionScheme 127
GAArray<T> 130
GABinaryString 132
نتیجه گیری ۱۳۵
مراجع ۱۳۶

چکیده

علم ژنتیک، علمی است که به تازگی وارد علوم کامپیوتر شده و با استفاده از اجزا مورد نیاز ژنتیک و شبیه سازی آن در کامپیوتر، انسان را قادر می سازد تا بعضی از مسائل مختلف و پیچیده ای که در اوایل حل نشدنی بودند، را حل کند.
این مستند، یک کتابخانه از اشیا الگوریتم ژنتیک به زبان c++ می باشد. این کتابخانه شامل ابزاریست که برای بهبود هر برنامه ای به زبان c++ و هر خروجی و هر عملگر ژنتیکی، استفاده می شوند. در اینجا، با پیاده سازی الگوریتم ژنتیک، رابط برنامه نویسی آن و اشکالی برای راهنمایی، آشنا خواهید شد.

 

 مقدمه

این مستند محتویات کتابخانه الگوریتم ژنتیک را رمز بندی می کند و بعضی از فلسفه های طراحی را که در پشت پیاده سازی هستند، نمایش می دهد. بعضی از مثال های کد منبع در آخر صفحه مشخص شده تا ساختار اصلی برنامه، توانایی های عملگرها، تطابق عملگرها با نیاز کاربر و مشتقاتی از کلاس های جدید مجموعه ژن را نمایش بدهند. وقتی که شما از یک کتابخانه استفاده می کنید به صورت ابتدایی با دو نوع کلاس کار می کنید الگوریتم مجموعه ژن و الگوریتم ژنتیک. هر نمونه ای از مجموعه ژن یک راه حل برای مسئله شما نشان می دهد. شی الگوریتم ژنتیک توضیح می دهد که چگونه سیر تکامل باید طی شود. الگوریتم ژنتیک از یک تابع عضو شی ای که توسط شما تعریف شده است استفاده می کند تا معین کند چگونه هر مجموعه ژن برای زنده ماندن مناسب است؟
الگوریتم ژنتیک از عملگر های مجموعه ژن ( که در داخل مجموعه هستند) و استراتژی های انتخاب/ جایگزینی ( که در داخل الگوریتم ساخته می شود ) برای تولید یک مجموعه ژن جدید مجزا ، استفاده می کند.
سه چیز برای حل مسئله با استفاده از الگوریتم ژنتیک وجود دارد :
۱٫ تعریف خروجی های که نشان داده میشوند
۲٫ تعریف عملگر های ژنتیکی
۳٫ تعریف تابع عضو شی را

GALIB (کتابخانه الگوریتمهای ژنتیک ) به شما در دومورد اول به وسیله مهیا کردن مثال های زیاد وتکه برنامه هایی که شما می توانید ، خروجی ها و عملگر های خود را بسازید کمک می کند . در خیلی از موارد شما می توانید از ساختار خروجی ها و عملگر ها با کمی یا هیچ اصلاحی استفاده کنید . تابع عضو شی کاملا به شما مربوط می شود .
در صورتی که شما خروجی ها ، عملگرها و موارد شی را داشته باشید ، می توانید هر کدام از الگوریتم های ژنتیک را برای پیدا کردن راه حل بهتر و مناسبتر برای مسئله تان به کار بگیرید. موقعی که شما از الگوریتم ژنتیک برای حل یک مشکل بهینه استفاده می کنید، باید قادر باشید که یک راه حل برای مسئله در یک ساختمان داده ارائه بدهید . الگوریتم ژنتیک یک جمعیت از راه حل هایی که بر طبق نمونة ساختمان دادهایی که به وجود آورده اید، ایجاد می کند . بعد الگوریتم ژنتیک بر روی این جمعیت عمل می کند تا بهترین راه حل را ازآن استخراج کند.در GALIB کتابخانه الگوریتم ژنتیک به نمونة ساختمان داده GAGENOME گفته می شود (بعضی ها به آن کروموزوم نیز می گویند ). این کتابخانه شامل چهار نوع از این مجموعه هاست GALISTGENOME ( لیست پیوندی مجموعه ژن)GATREEGAGENOME (درخت مجموعه ژن) GAARRYGENOME( آرایه مجموعه ژن) GABINARYSTRINGGENOME(رشته دودویی مجموعه ژن). این کلاس ها از کروموزوم یا کلاس GAGENOME اصلی و یک کلاس ساختمان داده ای که بوسیله نامشان مشخص شده اند، مشتق شده اند.
برای مثال لیست پیوندی مجموعه ژن از کلاس GALIST و همچنین کلاس مجموعه ژن GAGENOME مشتق شده است. از ساختمان داد ه ای که با تعریفات مسئله شما همخوانی دارد، استفاده کنید. برای مثال ، اگر شما سعی می کنید که یک تابعی را بهینه سازی کنید که به پنج عدد حقیقی وابسته است ، پس به عنوان مجموعه ژن خود از یک آرایه یک بعدی با پنج عنصر اعشاری استفاده کنید.
الگوریتم های ژنتیک مختلف زیادی وجود دارند. GALIB (کتابخانه الگوریتم ژنتیک) شامل سه نوع اصلی می باشد:
۱٫ حالت ساده
۲٫ حالت ساکن یا ثابت یا یکنواخت
۳٫ حالت افزایش
این الگوریتم ها در طریق های که مجموعه های جدید مجاز را ایجاد می کند ومجموعه های قدیمی را درزمان سیرتکامل جایگزین می کنند ، با یکدیگر تفاوت دارند.
GALIB دو مکانیسم اولیه برای گسترش قابلیت های ساخت شی را مهیا می کند اول از همه (و مهمتر از همه از نظر برنامه نویسی C++ ) شما می توانید کلاس های خودتان را درست کنید و تابع های عضو جدیدی را تعریف کنید . اگر شما احتیاج دارید که فقط تنظیمات کمی را بر روی رفتار کلاس GALIB اعمال کنید ، در بیشتر موارد می توانید یک تابع تعریف کنید و به کلاس GALIB بگویید که از آن به عنوان پیش فرض استفاده کند .
الگوریتم های ژنتیک اگر به درستی پیاده سازی شوند، قابلیت هر دو مورد پویش( پیدا کردن وسیع)و کاوش (پیداکردن محلی )در فضای SEARCH را، دارند. نوع رفتار یا عملکردی را که شما می بینید، بستگی به این دارد که چگونه عملگرها کار می کنند و همچنین بستگی به شکل یا فرم فضای SEARCH شما دارد.

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

شی الگوریتم ژنتیک معین می کند که کدام سلول مجرد باید زنده بماند، کدام یک باید دوباره تولید شود و کدام یک باید بمیرد. شیء‌الگوریتم ژنتیک می‌تواند آمارها را ضبط کرده و تصمیم بگیرد که چه مدت تکامل ادامه پیدا کند. معمولا یک الگوریتم ژنتیک هیچ نقطه پایان دقیقی ندارد وشما باید الگوریتم فرمان بدهید که چه موقع تمام شود. از تعداد نسل‌ها برای پایان الگوریتم استفاده می‌شود. ولی شما می‌توانید از خوبی بهترین راه حل یا جمعیت‌ها یا هر استاندارد مخصوصی برای مشکل خودکه مایل هستید، برای پایان الگوریتم استفاده کنید.
این کتابخانه شامل چهار نوع از الگوریتم ژنتیک می‌باشد. اولین آنها استاندارد الگوریتم ژنتیک ساده است که توسط Goldberg در کتابش توضیح داده شده است. این الگوریتم از جمعیت‌های بدون اشتراک و بهترین‌های قابل انتخاب، استفاده می‌کند. هر نسلی که الگوریتم ژنتیک ایجاد می کند یک مجموعه اجزاء جدید جمعیت، بوجود می‌آید. دومین نوع الگوریتم ژنتیک،‌ الگوریتم حالت ساکن یا یکنواخت می‌باشد که از جمعیت اشتراکی استفاده می‌کند. دراین گونه شما می توانید مشخص کنید که چه مقدار از جمعیت باید در هر نسلی جایگزین شوند. سومین نوع، الگوریتم ژنتیک افزایش است که درآن هر نسلی شامل یک یا دو فرزند می‌باشد. الگوریتم به متدهای جایگزینی دلخواه اجازه می‌دهد چگونگی یکپارچگی جمعیت از یک نسل جدید دخیل تعریف کنند. به عنوان مثال یک فرزند جدید تولید شده می‌‌تواند جای والدین خود را بگیرد یا به جای افراد مختلف در جمعیت جایگزین شود و یا جایگزین فردی که بیشترین شباهت را به او دارد شود. نوع چهارم، الگوریتم ژنتیک مرتبط می باشد این نوع الگوریتم چندین جمعیت را به صورت موازی با استفاده از الگوریتم حالت یکنواخت نمو می‌دهد. هر نسل الگوریتم بعضی از افراد را از یک جمعیت به جمعیت دیگری انتقال می‌دهد.
به علاوه این نوع های اصلی ، Galib یک ترکیب از کلاسهای الگوریتم ژنتیکی که شما نیاز دارید تا کلاس‌های دلخواه خودتان را داشته باشید، تعریف می‌کند. مثال‌ها شامل بعضی از مشتقات دارای (۱) یک الگوریتم ژنتیک که از چندین جمعیت وانتقال بین جمعیت بر روی cpu های مختلف استفاده کند. (۲) یک الگوریتم ژنتیک که انبوه سازی وابسته به ورودی را انجام می‌دهد، تا گونه‌های مختلف افراد را در حین سیر تکامل حفظ کند.
کلاس پایه‌ای الگوریتم ژنتیک شامل عملگرها و داده‌های معمول برای بیشترین نوع الگوریتم ژنتیک است. وقتی شما الگوریتم ژنتیک دلخواه خود را می‌خواهید درست کنید می‌توانید از این اعضا داده و تابع‌ها برای داشتن آمارها و نظارت بر اجرا، استفاده کنید.
الگوریتم ژنتیک شامل آمارها، استراتژی جایگزینی و پارامترها، برای راه اندازی و اجرا الگوریتم می‌باشد. شی جمعیت ظرفی برای مجموعه ژن، همچنین بعضی از آمارها و عملگرهای انتخاب و اندازه‌گیری را نیز داراست. یک الگوریتم ژنتیک معمولی برای همیشه اجرا می شود. کتابخانه تابعی را برای مشخص کردن این که در چه زمانی الگوریتم باید پایان یابد، ایجاد کرده است که شامل پایان بر روی نسل، که در آن شما یک شماره از نسل ها را تعیین می کنیدکه الگوریتم باید تا آنجا اجرا شود و پایان برروی همگرایی، که در آن ارزشی را مشخص می‌کنید که بهترین امتیاز از نسل‌ها باید همگرا شوند. شما می‌توانید توابع پایانی را به طور دلخواه تنظیم کنید و از ملاک خود برای پایان استفاده کنید.
تعداد ارزشیابی توابع، راه خوبی برای مقایسه الگوریتم‌های ژنتیک با متدهای مختلف جستجوی دیگر می‌باشد. الگوریتم‌های ژنتیک Galib هر دو سنجش‌های جمعیت و تعداد مجموعه ژنها را می‌تواند داشته باشد.

 تعریف خروجی ( نمایش)

از ساختمان داده مناسبی برای مسئله‌تان استفاده کنید. اگر شما یک تابع از اعداد حقیقی را بهبود می‌بخشید، از اعداد حقیقی در مجموعه ژنها استفاده کنید. اگر راه حل مشکلتان می‌تواند بوسیله اعداد تصویری یا ارزش صحیح دیگر، نمایش داده‌ شود، از آنها برای تعریف مجموعه ژنها استفاده کنید.
تعریف یک خروجی مناسب ا زهنرهای استفاده از الگوریتم است. (و هنوز یک هنر است نه یک علم) از حداقل خروجی استفاده کنید که کاملا تشریح کننده می‌باشد. خروجی شما باید بتواند تمامی راه حل‌ها برای مسئله‌تان را نمایش دهد. ولی اگر شما باید آن را طراحی کنید تا نتواند راه حل غیر علمی را برای مسئله نمایش دهد،‌بخاطر داشته باشید که اگر مجموعه ژنها بتواند راه‌حل‌های غیر علمی را نمایش دهد در اینصورت تابع باید طوری طراحی شود که به راه‌حل‌های غیر علمی یک ارزش ناتمامی بدهد.

120,000 ریال – خرید

تمام مقالات و پایان نامه و پروژه ها به صورت فایل دنلودی می باشند و شما به محض پرداخت آنلاین مبلغ همان لحظه قادر به دریافت فایل خواهید بود. این عملیات کاملاً خودکار بوده و توسط سیستم انجام می پذیرد.

 جهت پرداخت مبلغ شما به درگاه پرداخت یکی از بانک ها منتقل خواهید شد، برای پرداخت آنلاین از درگاه بانک این بانک ها، حتماً نیاز نیست که شما شماره کارت همان بانک را داشته باشید و بلکه شما میتوانید از طریق همه کارت های عضو شبکه بانکی، مبلغ  را پرداخت نمایید. 

مطالب پیشنهادی:
  • مقاله بیسیک
  • مقاله کاربرد الگوریتم ژنتیک در برنامه ریزی فرآیند به کمک کامپیوتر(CAPP) در محیطهای صنعتی مختلف
  • مقاله کاربرد الگوریتم ژنتیک در مسیریابی شبکه
  • مقاله مدلسازی و حل مسئله زمانبندی جریان کارگاهی با زمانهای تنظیم وابسته به توالی
  • مقاله ژنتیک
  • برچسب ها : , , , , , , , ,
    برای ثبت نظر خود کلیک کنید ...

    براي قرار دادن بنر خود در اين مکان کليک کنيد
    به راهنمایی نیاز دارید؟ کلیک کنید
    

    جستجو پیشرفته مقالات و پروژه

    سبد خرید

    • سبد خریدتان خالی است.

    دسته ها

    آخرین بروز رسانی

      شنبه, ۱۳ آذر , ۱۳۹۵
    
    اولین پایگاه اینترنتی اشتراک و فروش فایلهای دیجیتال ایران
    wpdesign Group طراحی و پشتیبانی سایت توسط دیجیتال ایران digitaliran.ir صورت گرفته است
    تمامی حقوق برایdjkalaa.irمحفوظ می باشد.