جعبهابزار الگوريتم ژنتيك در نرم افزار MATLAB
جعبهابزار الگوريتم ژنتيك
جعبه ابزار الگوريتم ژنتيك مجموعهاي از تابعهايي هستند كه توانايي اپيتيمم كردن را با استفاده از محيط محاسبات عددي دارد . اين الگوريتم قابليت حل مسائل مختلف در زمينه بهينهسازي است تمام توابع اين جعبه ابزار از M فايلهاي مطلب هستند كه تابع را بهينه ميكند.البته ميتوانيد قابليتهاي الگوريتم ژنتيك را توسط M فايلي كه خودتان مينويسيد يا با تركيب تابعهاي مطلب افزايش دهيد.
فیلم آموزش فارسی الگوریتم ژنتیک در متلب MATLAB
(بر روی عکس زیر کلیک کنید)
نوشتن M فايل
در اين قسمت نشان مي دهيم كه چهطور ميتوان يك M فايل براي تابع نوشت كه ميخواهيم آن را بهينه كنيم فرض كنيم ميخواهيم تابع زير را بهينه كنيم.
مراحل زير را انجام دهيد
1- new را از منوي فايل انتخاب كنيد
2- M فايل را انتخاب كنيد.
3- كدهاي زير را در داخل m فايل بنويسيد.
– فايل را ذخيره كنيد
اگر شما بخواهيد اين فايل را ماكزيمم كنيد ميتوانيد f(X) -را مينيمم كنيد چون مينيمم در همان نقطه اتفاق ميافتد كه ماكزيمم در f(x) وجود دارد.
فراخواني الگوريتم ژنتيك
براي استفاده از اين الگوريتم در خط دستور، دستور زير را در خط دستور تايپ كنيد
كه
fitnessfun – @ كه تابع مورد نظر است
n vars- تعداد متغيرهاي مستقل در داخل تابع است
در نتايج داريم:
fval * مقدار نهايي تابع
* xنقطهاي كه در آن تابع بهينه است.
استفاده از جعبه ابزار الگوريتم ژنتيك.
اين جعبه ابزار يك جعبه ابزرا گرافيكي است كه كاربر را قادر ميسازد كه از اين الگوريتم بدون خط دستور استفاده كرد اما بايد در خط دستور
>>gatool
-Fitness function تابعي را كه ميخواهيد بهينه كنيد در اين قسمت تايپ كنيد.
Number of variables-تعداد متغيرهاي مستقل كه در تابع وجود دارد.
براي شروع حل كليد start را در قسمت run solver بزنيد.
در قسمت current generation تعداد نسل را توضيح ميدهد. شما ميتوانيد حل را توسط دكمه puase موقتاً متوقف كنيد.
* در قسمت status & result اطلاعات زير نمايش داده ميشود
مقدار نهايي تابع وقتي الگوريتم تمام ميشود
دليل تمام شدن الگوريتم
نقطهاي كه تابع در آن نقطه بهينه است.
پلات
در قسمت plots ميتوانيد انواع اطلاعات را در زمان اجراي برنامه مشاهده كنيد. شما ميتوانيد با مشاهده نتايج و اعمال تغييرات مناسب به جواب بهتري برسيد با انتخاب best fitness ميتوانيد بهترين و متوسط تابع مورد نظر را در هر نسل ببينيد.
مثال:
تابع رستريجين با دو متغير مستقل را در نظر بگيريد
شكل تابع
اين تابع اكترمهاي محلي زيادي دارد اما در نقطه [o.o] مينيمم مطلق دارد كه توسط خط عمودي نشان داده شده است كه مقدار تابع در اين مينيمم برابر صفر است
پيدا كردن نقطه مينيمم تابع رسترينج
در اين قسمت توضيح ميدهيم كه چگونه با استفاده از الگوريتم ژنتيك مينيمم تابع را به دست آوريم.
1- در خط دستور gatoal را تايپ كنيد
. اين تابع ميتواند مثال خوبي براي تست كردن اين الگوريتم باشد در ادامه كانتور محل ماكزيمم و مينيمم آمده است.
– در قسمت fitness funetion كلمهrastriginsfcn.@ را وارد كنيد
– در number variable عدد 2 را وارد كنيد
– با زدن start الگوريتم شروع به كار ميكند.
براي پيدا كردن مينيمم با استفاده از خط دستور ميتوان مراحل زير را انجام داد.
اصطلاحات جعبه ابزار الگوريتم ژنتيك در نرمافزار MATLAB
افراد Individual
به عنوان مثال براي تابع زير بردار (2, 3, 1) يك فرد است و f(2, 3, 1)=51 امتياز اين فرد است. فرد ممكن است به عنوان ژن معرفي شود.
جمعيت و نسل Generation
جمعيت آرايهاي از افراد است به عنوان مثال اگر تابع متغير داشته باشد و اندازه جمعيت 100 باشد يك آرايه 3×100 داريم.
Diversity
: ميانگين فاصله بين افراد تعريف ميشود كه جمعيت با متوسط فاصله زياد دايورسيتي زياد دارد.
مقدار فيتنس و بهترين فيتنس Fitness Values and Best Fitness Values
مقدار فيتنس مقدار تابع براي افراد مختلف ميباشد. به دليل اين كه اين جعبه ابزار وظيفه پيدا كردن كمترين فيتنس تابع را دارد. بهترين فيتنس براي يك جمعيت كمترين فيتنس ميباشد.
والدين و بچههاParents and children
براي به وجود آوردن نسل بعدي، الگوريتم ژنتيك يك سري افراد را از جمعيت فعلي انتخاب كرده و به نام والدين و از آنها براي به وجود آوردن نسل بعدي استفاده ميكند كه بچهها نام دارد اين الگوريتم والدين را انتخاب ميكند كه فيت نس بهتري داشته باشد.
موارد زير مراحل مينيمم كردن اين الگوريتم را توضيح ميدهد
1- الگوريتم جمعيت اوليه را رندم انتخاب ميكند.
2-الگوريتم جمعيت بعدي را از جمعيت فعلي به وجود ميآورد براي به دست آوردن نسل بعدي الگوريتم موارد زير را اجرا ميكند.
(a امتيازدهي به هر عضو جمعيت با حساب كردن مقدار فيتنس
(b مقياسبندي امتيازات داده شده براي استفاده بهتر از امتيازات و جمعيت
(c انتخاب بچهها از والدين. توليدمثل با تغيير اندامي از يكي از والدين- جهش ژنتيكي و يا تركيب والدين براي توليد مثل
(d انتخاب والدين بر اساس فيتنس
(e جايگزيني نسل جديد با نسل قديم
3- اين الگوريتم زمان متوقف ميشود كه به معيار توقف برسد
شرايط توقف براي الگوريتم
اين الگوريتم از پنج شرايط براي توقف الگوريتم استفاده ميكند.
– Generations: زماني كه تعداد نسلها به عدد مورد نظر برسد
– Time limit: وقتي زمان اجرا برنامه به ثانيه به عدد موردنظر برسد
– Fitness limit : وقتي كه مقدار فيتنس تابع در بهترين نقطه نسل جاري كمتر از عدد مورد نظر باشد.
Stall generations زماني كه متغير بهتري در نسلها ايجاد نشود.
Stall time limit زماني كه متغير بهتري در نسلها ايجاد نشود بين دو زمان به ثانيه الگوريتم متوقف ميشود.
اگر هر كدام از شرايط زير اول اتفاق بيفتد الگوريتم متوقف ميشود
Plat option
با فعال كردن موارد موجود درplat ميتوانيد در هنگام اجرا برنامه روند كار را ببينيد
فانكشنهاي زير در plat موجودند
Plot interval (PlotInterval): تعداد نسلهايي كه در پلات از آن ها استفاده ميكند
Best fitness (@gaplotbestf): كشيدن بهترين مقدار تابع در هر نسل
Expectation (@gaplotexpectation): كشيدن تعداد بچههايي كه انتظار ميرود در مقابل امتيازات هر نسل
Score diversity (@gaplotscorediversity): كشيدن هيستوگرام از امتيازات براي هر نسل
Stopping (@plotstopping): كشيدن معيار توقف در هر سطح
Best individual (@gaplotbestindiv): كشيدن بردار هر فرد با بهترين فيتنس
Genealogy (@gaplotgenealogy): كشيدن نوع توليد نسل بعدي
Scores (@gaplotscores): كشيدن امتياز هر فرد در نسل خودش
Distance (@gaplotdistance): كشيدن متوسط فاصله بين افراد در هر نسل
Range (@gaplotrange): كشيدن مينيمم، ماكزيمم متوسط مقدار تابع در هر نسل
Selection (@gaplotselection): كشيدن هيستوگرام والدين
Population option
Population tyme: مشخص كردن اطلاعات ورودي براي تابع فيتنس
Populatin sice: مشخص كردن تعداد افراد در هر نسل. با تعداد بالا جمعيت الگوريتم تعداد بيشتري از فيتنسها را چك ميكند و شانس پيدا كردن اكسترمم نسبي نسبت به اكسترمم مطلق كاهش مييابد اما سرعت جواب گرفتن كاهش مييابد.
Creat function: مشخص كردن فانكشني براي به دست آوردن جمعيت اوليه
Initial population: شما را قادر ميسازد كه تعداد افراد امتياز و رنج در اولين جمعيت را مشخص سازيد.
Fitness scaling option
اين فانكشن امتياز هر فيتنس را به يك مقياس خاص تبديل ميكند كه براي فانكشن انتخاب مناسب باشد.
پيشفرض اين قسمت rank ميباشد مقياسبندي بر اساس چيدمان هر فرد است به جاي استفاده از امتياز
proportional مقياسبندي بر اساس امتياز هر فرد.
Selection- option
اين اپشن مشخص ميكند كه الگوريتم بر چه اساس والدين را براي تشكيل نسل بعدي انتخاب كند.
Reproduction:
اين اپشن مشخص ميكند كه الگوريتم بر چه اساس فرزندان را براي نسل بعدي انتخاب كند.
Mutation option
: اين اپشن مشخص ميكند كه چگونه اين الگوريتم كه چگونه تغيير رندمي كوچكي در هر فرد را براي جهش ژنتيكي دهد. جهش ژنتيكي اجازه گفتن فضاي وسيعتري را به الگوريتم ميدهد.
Crossover:
اين اپشن مشخص ميكند كه چگونه الگوريتم از دو فرد فرد جديد را توليد كند.
Migration option
در اين مشخص مي شود که چگونه افراد بين زير جمعيتها حرکت کنند.اين مهاجرت وقتي اتفاق مي افتد که اندازه بردار جمعيت بزرگتر از يک شود .وقتي اين عمل اتفاق بيفتد بهترين افراد از يک جمعيت جاي خود را با بدترين افراد از يک زير جمعيت ديگر عوض مي کنند. اين تعويض بصورت کپي است
Hybrid Function Option
اين فانکشن يک تابع بهينه سازي ديگر است که در صورت فعال بودن بعد از اين که الگوريتم ژنتيک تمام شد اجرا مي شود
مثال
در اين مثال الگوريتم ژنتيک در تابع رزنبرگ نقطه اي نزديک مينيمم پيدا مي کند
Set Fitness function to @dejong2fcn
Set Number of variables to 2.
Set Population size to 10
سپس مي توانيد با استفاده از Hybrid Function اين بهينه سازي را بهبود ببخشيد
و جواب نزديکتري به نقطه مينيمم پيدا کنيد
.
کدهای اماده الگوریتم ژنتیک به همراه یک فیلم آموزشی فارسی از این الگوریتم توسط گروه ایران متلب آماده شده است که شما می توانید تقاضای این کد و فیلم آموزش فارسی را از برای ما ارسال کنید.
بعد از واریز هزینه کدها آماده متلب MATLAB ، الگوریتم ژنتیک به همراه یک فیلم آموزشی فارسی برای شما ارسال و می توانید آنها را دانلود کنید و در پروژه یا پایان نامه خود استفاده کنید.
با سلام
خسته نباشید
من یک مدل برنامه ریزی یک هدفه دارم که می خواهم دو هدفه بشه و با الگوریتم ژنتیک و کرم شب تاب حل بشه ولی بلد نیستم
شما بلدین این کارو کنین؟؟؟
هزینه اش رو هم می پردازم.
بله شما می توانید به ما ایمیل بزنید تا به شما کمک کنیم
سلام پسوردش چیه ؟
matlab1.ir
سلام
من یه پروژه الگوریتم ژنتیک هیبریدی که مساله فروشنده دوره گرد رو حل میکنه در اختیار دارم اما مشکلی داره که ران نمیشه .میتونید راهنماییم کنید؟؟
سلام
شما باید یاد بگیرید چگونه یک فایل متلب را خطایابی کنیم که به اسم debugging در متلب شناخته می شود.
شما می بایست کد را step با step با ایجاد beakpoint اجرا کنید.
یک ویدئو خوب از سایت دانشگاه MIT در این رابطه
http://ocw.mit.edu/courses/mathematics/18-s997-introduction-to-matlab-programming-fall-2011/debugging-with-matlab/
با سلام
اینجانب به دلیل مشکل مالی قادر به پرداخت وجه نمی باشم اگه راهی داره کد الگوریتم ژنتیک در مطلب با اموزش وارد کردن کدها در نرم افزار مطلب برام بفرست
سلام
متاسفانه این ویدئوهای آموزشی توسط اساتید دانشگاه تهیه شده است و بنده اجازه ارسال آنها را بدون پرداخت وجه ندارم.
قیمت این فیلم آموزشی خیلی پایین گذاشته شده است. شما الان بخواهید در کلاس شرکت کنید کمتر از 200 یا 300 نباید پرداخت کنید. اما این فیلم را می توانید با پرداخت هزینه بسیار ناچیزی دانلود کنید.
تشکر از شما
با سلام
میخاستم بدونم کدنویسی ژنتیک در متلب که گفتید فیلمهای آموزشیش با قیمت مناسب رو دارید ،هزینشو بفرمایید چقدره ؟
هزینه فیلم آموزشی الگوریتم ژنتیک 21 هزارتومان می باشد که در سایت ایران متلب می توانید سفارش دهید.
ببخشید پس اگر خودتون کدنویسی آماده ژنتیک در متلب رو برام انجام بدید هزینش چقدر میشه ؟ چقدر طول میکشه ؟
سلام
با ایمیل گروه در تماس باشید
eeiranmatlab [at] gmail.com
سلام
نحوه دریافت فیلم آموزشی الگوریتم ژنتیک به چه صورت است؟
سلام
برای دریافت فیلم آموزشی الگوریتم ژنتیک به این صفحه مراجعه کنید
البته می بایست متذکر شد که برای یادگیری بهتر الگوریتم ژنتیک حتما قبلش فیلم آموزشی بهینه سازی را ببینید
http://iran-matlab.ir/?product=%D9%81%DB%8C%D9%84%D9%85-%D8%AC%D8%A7%D9%85%D8%B9-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%DA%98%D9%86%D8%AA%DB%8C%DA%A9-%D8%AF
ممنون از ایران متلب
با کمک شما تونستم کار پایان نامه ام را انجام بدم.
ممنون
با سلام
کار پایان نامه من بهینه سازی چندهدفه اس، من چیزی از متلب نمیدونم و وقت هم ندارم باید زودتر جمعش کنم. ممکنه شما کمکم کنید. فقط یه مشکلی هست من باید کلا از برنامه سر در بیارم چون استاد گیری دارم. ممکنه راهنمایی کنید؟ این کار امکان پذیره؟
سلام لطفا برای درخواست کدهای آماده و آموزش فارسی الگوریتم ژنتیک به کدام ایمیل باید بفرستیم؟
سلام
کافی است به لینک زیر مراجعه فرمایید
آموزش فارسی الگوریتم ژنتیک
من یک بهینه سازی چند هدفه با الگوریتم تکاملی تفاضلی میخوام انجام بدم لطفا راهنمایی کنید
سلام… من یه سبد سهام متشکل از 5 سهم دارم که می خوام با استفاده از الگوریتم ژنتیک ، مقدار بهینه اوزان هر یک از سهام در پرتفوی بهینه رو بدست بیارم ….
میخواستم ببینم شما میتونید توو این زمینه کمکی بهم بکنید؟
سلام
اساسا کار الگوریتم ژنتیک همینه. پیدا کردن مقادیر بهینه ضرایب.
شما می تونید به دو فیلم آموزشی زیر مراجعه فرمایید. کامل همه چیز توضیح داده شده است :
آموزش بهینه سازی در متلب
آموزش الگوریتم ژنتیک
با سلام من برای تطبیق امپدانس دریک بازه فرکانسی میخام از این الگوریتم استفاده کنم اینکارو شما انجام میدین؟هزینش چقدره؟
خیر
سلام من اموزش لينك كردن matlabباetabs رو ميخوام لطفا راهنمايي منيد
سلام و وقت بخیر من به کد متلبی برای برای یه سمینار درسی به احتیاج دارم که بخش مهمیش بهینه سازی هست ایا می تونید برام انجام بدید و همراه با توضیحات کامل بهم بدید مثلا بگید چرا اینجا از این استفاده کردیم و این چی هست و … این توضیحات که اگه ازم سوال شد من نمونم برای جواب؟
هزینه حدودی رو هم اگه بهم بگید ممنون میشم
سلام
بله می می تونیم کمکتون کنیم.
سلام
من یه تحقیقی در مبحثGA_LSBMR که کدنویسی پنهان نگاری روی تصویر سیاه و سفید رو انجام بده، واسه من انجام بدین،
اگه می تونین کمکم کنین در ای مبحث
تشکر
سلام من یک مساله بهینه سازی دو هدفه دارم که دو هدف را با هم ترکیب کردم (به کمک برنامه ریزی ارمانی) ،الان میخوام با الگوریتم ژنتیک حلش کنم، میخاستم ببینم میتونین کمک کنید و هزینه رو هم بفرمایید
باسلام و احترام
من یک کد متلب با پنج متغیر ورودی و دو خروجی به عنوان تابع هدف دارم. مشکلم اینجاست که وقتی الگوریتم ژنتیک چندهدفه را در تولباکس فراخوانی می کنم نمی دانم چگونه آن را با برنامه متلب لینک کرده و در قسمت fitness function اولا چه تابعی معرفی کنم و دوما این تابع را از قبل در متلب به چه صورت معرفی کنم.
در صورت امکان راهنمایی بفرمایید
با سلام و احترام
خدمت شما
پاسخ سوال شما را به صورت نوشته نمی توان داد ولی در فیلم آموزشی بهینه سازی در متلب این موضوع صحبت شده است.
با سلام
میخواستم ببینم ممکنه مشخص کنید در کدام قسمت الگوریتم ژنتیک میتونم تغییراتی ایجاد کنم که خروجی بهم فرمول ارائه بده
به عنوان مثال
چه روشی یه فرمول ریاضی بین ورودی و خروجی های ما بهمون میده مشابه رگرسیون خطی اما درمورد الگوریتم ها به عنوان مثال الگوریتم ژنتیک و یا هر الگوریتمی که سریع به جواب برسم
با سلام و احترام
من نیاز به کد متلب بهینه سازی کنترل مد لغزشی با الگوریتم ژنتیک دارم.
در صورت امکان راهنمایی کنید.
ممنون
با سلام و احترام برای بدست آوردن سیستم فازی affine معادل با یک سیستم غیرخطی توابع عضویت معمولا به صورت ذوزنقه ای در نظر گرفته می شوند و پارامترهای توابع عضویت را می توان با استفاده از الگوریتم های بهینه تکاملی مثلا ژنتیک به دست آورد میخاستم ببینم اگر شما می توانید ای کار را انجام بدید دو مقاله بفرستم برام کدنویسی کنید وهزینشم خدمتتون چشم واریز می کنم.
با سلام و تشکر از شما
ما اصلا انجام پروژه نداریم و تنها آموزش می دهیم و خودتون می تونید شروع کنید و ما راهنمایی می کنیم.
کار بسیار ساده می باشد. کافی است تابع هزینه ای بنویسید که پارامترهای توابع عضویت به عنوان ورودی بگیرد و در خروجی یک امتیاز به این بردار بدهد. این امتیاز متناسب با کاربرد شما تعیین می شود مثلا اگر کار دسته بندی انجام می دهید می شود راندمان دسته بندی کننده یا اگر کار رگرسیون انجام می دهید می شود مقدار میانگین مربعات خطا و …
بعد از تعریف تابع هزینه تنها کافی است این تابع عضویت را برای الگوریتم ژنتیک مشخص کنید.
البته طول کروموزوم را در الگوریتم ژنتیک باید همان پارامترهای توابع عضویت باشد و بازه تغییرات هم به همین صورت مشخص می شود.
آموزش های زیر می توانند به شما کمک کنند که کار شروع کنید :
بهینه سازی در متلب
الگوریتم ژنتیک در متلب
بسته آموزش فازی
به نظرم خودتون شروع کنید و لذت کدنویسی را تجربه کنید.
به مشکل خوردید از مشاوران ایران متلب استفاده کنید.
رفع اشکال و آموزش متلب
سلام وقتتون بخیر. من شیراز هستم ولی خب فرصت نشده حضوری بیام خدمتتون. در مورد الگوریتم ژنتیک چیزی که استادمون ازمون خواسته بیشترشو انجام دادم ولی اخراشو گیر کردم. خواستم اگر ایمیل یا شماره ی واتساپی دارید لطف کنید که من اونجا ازتون کمک بگیرم
سلام
آدرس و شماره تماس در سایت ایران متلب موجود می باشد.