گزینه های GA را با استفاده از OptimOptions تنظیم کنید.
برخی از گزینه ها در ایتالیایی ها ذکر شده است. این گزینه ها در لیستی که OptimOptions برمی گردد ظاهر نمی شوند. برای دیدن اینکه چرا OptimOptions این مقادیر گزینه را پنهان می کند ، گزینه هایی را مشاهده کنید که OptimOptions پنهان است.
اطمینان حاصل کنید که گزینه ها را به حل کننده منتقل می کنید. در غیر این صورت ، Pattesearch از مقادیر گزینه پیش فرض استفاده می کند.
گزینه های توطئه
PlotFCN عملکرد نقشه یا توابع نامیده شده در هر تکرار توسط GA یا GamultioBJ را مشخص می کند. گزینه PlotFCN را تنظیم کنید تا یک نام تابع نقشه داخلی یا یک دسته در عملکرد Plot باشد. می توانید با کلیک روی دکمه Stop روی پنجره Plot ، الگوریتم را در هر زمان متوقف کنید. به عنوان مثال ، برای نمایش بهترین مقدار عملکرد ، گزینه ها را به شرح زیر تنظیم کنید:
برای نمایش چندین قطعه ، از یک آرایه سلول از نام های توابع داخلی یا یک مجموعه سلول از دستگیره های عملکرد استفاده کنید:
جایی که @plotfun1 ، @plotfun2 و غیره دستگیره عملکرد توابع نقشه هستند. اگر بیش از یک تابع نقشه را مشخص کنید ، تمام توطئه ها به عنوان زیرمجموعه ها در همان پنجره ظاهر می شوند. برای به دست آوردن نسخه بزرگتر در یک پنجره شکل جداگانه ، روی هر زیرمجموعه کلیک راست کنید.
توابع نقشه موجود برای GA یا GamultioBJ:
"Gaplotscrediversity" هیستوگرام نمرات را در هر نسل ترسیم می کند.
توطئه های "Gaplotstopping" سطح معیارها را متوقف می کند.
"Gaplotgenealogy" شجره نامه افراد را ترسیم می کند. خطوط از یک نسل به نسل دیگر به شرح زیر از رنگ کدگذاری شده اند:
خطوط قرمز نشان دهنده کودکان جهش است.
خطوط آبی نشان دهنده کودکان متقاطع است.
خطوط سیاه افراد نخبه را نشان می دهد.
"Gaplotscores" نمرات افراد را در هر نسل ترسیم می کند.
"Gaplotdistance" میانگین فاصله بین افراد را در هر نسل ترسیم می کند.
"Gaplotselection" هیستوگرام والدین را ترسیم می کند.
"GaplotMaxConst" حداکثر نقض محدودیت غیرخطی را در هر نسل ترسیم می کند. برای GA ، فقط در دسترس است که گزینه غیر خطی constraintalgorithm "Auglag" باشد (پیش فرض برای مشکلات غیر اینتگر). بنابراین ، برای مشکلات محدود شده با عدد صحیح در دسترس نیست ، زیرا آنها از الگوریتم محدودیت غیرخطی "مجازات" استفاده می کنند.
همچنین می توانید عملکرد نقشه خود را ایجاد و استفاده کنید. ساختار توابع نقشه ساختار یک تابع نقشه سفارشی را توصیف می کند. هر عملکرد سفارشی را به عنوان یک دسته عملکرد منتقل کنید.
توابع طرح زیر فقط برای GA در دسترس است:
'GaplotBestf' بهترین ارزش نمره و میانگین نمره را در مقابل نسل ترسیم می کند.
"GaplotBestindiv" ورودی های بردار فرد را با بهترین مقدار عملکرد تناسب اندام در هر نسل ترسیم می کند.
"GaplotExpectation" تعداد مورد انتظار کودکان در مقابل نمرات خام در هر نسل را ترسیم می کند.
"Gaplotrange" حداقل ، حداکثر و میانگین نمره را در هر نسل ترسیم می کند.
توابع طرح زیر فقط برای GamultioBJ در دسترس است:
"Gaplotpareto" جلوی پارتو را برای دو یا سه عملکرد هدف اول ترسیم می کند.
"Gaplotparetodistance" نمودار نوار فاصله هر فرد را از همسایگان خود ترسیم می کند.
"Gaplotrankhist" هیستوگرام از رده های افراد را ترسیم می کند. افراد رتبه 1 در مرز پارتو قرار دارند. افراد رتبه 2 پایین تر از حداقل یک رتبه 1 فرد هستند ، اما از سایر افراد از سایر رده ها و غیره پایین تر نیستند.
"GaplotsPread" میانگین گسترش را به عنوان تابعی از شماره تکرار ترسیم می کند.
ساختار توابع طرح
خط اول یک تابع طرح دارای این فرم است:
آرگومان های ورودی به عملکرد هستند
گزینه ها - ساختار حاوی تمام تنظیمات گزینه های فعلی.
حالت - ساختار حاوی اطلاعات مربوط به نسل فعلی. ساختار دولت زمینه های دولت را توصیف می کند.
پرچم - توضیحات مرحله ای که الگوریتم در حال حاضر در آن قرار دارد. برای جزئیات ، به گزینه های عملکرد خروجی مراجعه کنید.
عبور از پارامترهای اضافی نحوه ارائه پارامترهای اضافی برای عملکرد را توضیح می دهد.
حالت استدلال خروجی یک ساختار حالت نیز هست. در صورت تمایل ، آرگومان ورودی را اصلاح کنید. به تغییر ساختار حالت مراجعه کنید. برای متوقف کردن تکرارها ، State. stopflag را به یک بردار شخصیت غیر خالی ، مانند "Y" تنظیم کنید.
ساختار دولت
GA. ساختار حالت برای GA ، که یک آرگومان ورودی برای ترسیم ، جهش و توابع خروجی است ، شامل زمینه های زیر است:
نسل - شماره نسل فعلی.
StartTime - زمان شروع الگوریتم ژنتیکی ، توسط TIC بازگشت.
Stopflag - دلیل توقف ، یک بردار کاراکتر.
LastImprovement - نسلی که آخرین پیشرفت در ارزش تناسب اندام رخ داده است.
LastImprovementTime - زمانی که آخرین پیشرفت در آن رخ داده است.
بهترین - بردار حاوی بهترین امتیاز در هر نسل.
چگونه - الگوریتم محدودیت غیرخطی "Auglag" یکی از اقدامات زیر را گزارش می کند: "نکته غیرقابل نفوذ" ، "به روزرسانی چند برابر" یا "افزایش مجازات". به الگوریتم ژنتیکی Lagrangian تقویت شده مراجعه کنید.
FUNEVAL - تعداد تجمعی ارزیابی عملکرد.
انتظار - انتظار برای انتخاب افراد.
انتخاب - شاخص های افراد انتخاب شده برای نخبگان ، متقاطع و جهش.
جمعیت - جمعیت در نسل فعلی.
نمره - نمرات جمعیت فعلی.
NONLININEQ - محدودیت های نابرابری غیرخطی در نقطه فعلی ، فقط در صورت مشخص شدن یک تابع محدودیت غیرخطی وجود دارد ، هیچ متغیرهای عدد صحیح وجود ندارد ، پرچم "قطع" نیست ، و غیر خطی کانچینلگوریتم "Auglag" است.
NONLINEQ - محدودیت های برابری غیرخطی در نقطه فعلی ، فقط در صورت مشخص شدن یک تابع محدودیت غیرخطی وجود دارد ، هیچ متغیرهای عدد صحیح وجود ندارد ، پرچم "قطع" نیست ، و غیر خطی کانستراستالگوریتم "Auglag" است.
ارزيابي ها - ارزش منطقی نشان مي دهد كه آیا GA كاركرد تناسب اندام افراد نخبه را ارزیابی مي كند. در ابتدا ، این مقدار درست است. در نسل اول ، اگر افراد نخبه به مقادیر قبلی خود ارزیابی کنند (که نشان می دهد عملکرد تناسب اندام قطعی است) ، پس این مقدار به طور پیش فرض برای تکرارهای بعدی نادرست می شود. هنگامی که ارزیابی ها نادرست است ، GA عملکرد تناسب اندام افراد نخبه را مجدداً ارزیابی نمی کند. شما می توانید با تغییر وضعیت خروجی ، این رفتار را در یک عملکرد نقشه سفارشی یا عملکرد خروجی سفارشی نادیده بگیرید.
Haveduplicates - مقدار منطقی نشان می دهد که آیا GA افراد تکراری را برای جمعیت اولیه اضافه می کند. GA از یک تحمل نسبی کوچک برای تعیین اینکه فرد کپی شده یا منحصر به فرد است ، استفاده می کند. اگر Haveduplicates صحیح باشد ، GA افراد منحصر به فرد را پیدا می کند و عملکرد تناسب اندام را فقط یک بار برای هر فرد منحصر به فرد ارزیابی می کند. GA مقادیر عملکرد تناسب اندام و محدودیت را برای کپی کردن افراد کپی می کند. GA آزمایش را در هر نسل تکرار می کند تا همه افراد بی نظیر باشند. این آزمایش به ترتیب n*m*log (m) انجام می شود ، جایی که m اندازه جمعیت و n nvars است. برای غلبه بر این آزمون در یک تابع نقشه سفارشی یا عملکرد خروجی سفارشی ، حالت خروجی را تنظیم کنید.
gamultiobj. ساختار حالت GamultioBJ ، که یک آرگومان ورودی برای توابع ، جهش و عملکردهای خروجی است ، شامل زمینه های زیر است:
جمعیت - جمعیت در نسل فعلی
نمره - نمرات جمعیت فعلی ، یک ماتریس جمعیتی - در جایی که افراد ناچیز تعداد اهداف است
نسل - شماره نسل فعلی
StartTime - زمان شروع الگوریتم ژنتیکی ، توسط TIC برگردانده شد
Stopflag - دلیل توقف ، یک بردار کاراکتر
FUNEVAL - تعداد تجمعی ارزیابی عملکرد
انتخاب - شاخص های افراد انتخاب شده برای نخبگان ، متقاطع و جهش
رتبه - بردار صفوف اعضای جمعیت
فاصله - بردار مسافت هر یک از اعضای جمعیت به نزدیکترین عضو همسایه
میانگین - انحراف استاندارد (نه متوسط) فاصله
گسترش - وکتور که در آن ورودی ها در هر نسل گسترش یافته است
Mineq - تعداد محدودیت های نابرابری غیرخطی
MEQ - تعداد محدودیت های برابری غیرخطی
Mall - تعداد کل محدودیت های غیرخطی ، MALL = Mineq + Meq
ج - محدودیت های نابرابری غیرخطی در نقطه فعلی ، یک ماتریس Minaq جمعیتی
CEQ - محدودیت های برابری غیرخطی در نقطه فعلی ، یک ماتریس MEQ جمعیتی
ISFEAS - امکان سنجی جمعیت ، یک بردار منطقی با عناصر جمعیتی
Maxlininfeas - حداکثر نفوذ در رابطه با محدودیت های خطی برای جمعیت
گزینه های جمعیتی
گزینه های جمعیت به شما امکان می دهد پارامترهای جمعیتی را که الگوریتم ژنتیکی از آن استفاده می کند ، مشخص کنید.
PlateMtype نوع ورودی به عملکرد تناسب اندام را مشخص می کند. انواع و محدودیت های آنها عبارتند از:
"DoubleVector" - اگر افراد در جمعیت دارای دو برابر هستند ، از این گزینه استفاده کنید. از این گزینه برای برنامه نویسی عدد صحیح مختلط استفاده کنید. این پیش فرض است.
"Bitstring" - اگر افراد در جمعیت دارای مؤلفه هایی هستند که 0 یا 1 دارند ، از این گزینه استفاده کنید.
احتیاط
افراد در جمعیت کمی رشته بردارهایی از نوع دو برابر هستند ، نه رشته ها یا شخصیت ها.
برای CreationFCN و MutationFCN ، از "GacreationUniform" و "MutationUniform" استفاده کنید یا به توابع سفارشی دست دهید. برای CrossOverfcn ، از "Crossoversctatted" ، "CrossoversinglePoint" ، "CrossOvertWopoint" یا دسته ای از یک عملکرد سفارشی استفاده کنید. شما نمی توانید از Hybridfcn استفاده کنید ، و GA همه محدودیت ها ، از جمله مرزها ، محدودیت های خطی و محدودیت های غیرخطی را نادیده می گیرد.
"سفارشی" - یک نوع جمعیت سفارشی را نشان می دهد. در این حالت ، شما همچنین باید از یک متقاطع سفارشی و MutationFCN استفاده کنید. شما باید یک تابع ایجاد سفارشی یا یک propopulationmatrix اولیه ارائه دهید. شما نمی توانید از Hybridfcn استفاده کنید ، و GA همه محدودیت ها ، از جمله مرزها ، محدودیت های خطی و محدودیت های غیرخطی را نادیده می گیرد.
Companingize مشخص می کند که در هر نسل چه تعداد از افراد وجود دارد. با وجود جمعیت زیاد ، الگوریتم ژنتیکی فضای راه حل را با دقت بیشتری جستجو می کند ، در نتیجه این احتمال را کاهش می دهد که الگوریتم حداقل محلی را برگرداند که حداقل جهانی نیست. با این حال ، اندازه جمعیت زیادی نیز باعث می شود که الگوریتم آهسته تر اجرا شود. پیش فرض '50 است که تعداد شماره های
اگر جمعیتی را به یک بردار تنظیم کنید ، الگوریتم ژنتیکی چندین زیرمجموعه ایجاد می کند که تعداد آن طول بردار است. اندازه هر زیرمجموعه ورودی مربوط به بردار است. توجه داشته باشید که این گزینه مفید نیست. گزینه های مهاجرت را مشاهده کنید.
CreationFCN عملکردی را که جمعیت اولیه را برای GA ایجاد می کند ، مشخص می کند. انتخاب کنید:
[] از عملکرد پیش فرض ایجاد برای نوع مشکل شما استفاده می کند.
"GacreationUniform" یک جمعیت اولیه تصادفی با توزیع یکنواخت ایجاد می کند. این پیش فرض است که محدودیت خطی وجود ندارد ، یا محدودیت های عدد صحیح وجود دارد. توزیع یکنواخت در محدوده اولیه جمعیت (InitialPosbulationRange) است. مقادیر پیش فرض برای PrositipolulationRange [-10 ؛ 10] برای هر مؤلفه است ، یا [-9999 ؛ 10001] در صورت وجود محدودیت های عدد صحیح. این مرزها برای مطابقت با هر مرز موجود LB و UB تغییر یافته و مقیاس بندی می شوند.
احتیاط
هنگامی که محدودیت های خطی دارید از "gacreationUniform" استفاده نکنید. در غیر این صورت ، جمعیت شما ممکن است محدودیت های خطی را برآورده نکند.
"gacreationlinearfeaciable" پیش فرض است که محدودیت های خطی وجود دارد و هیچ محدودیت عدد صحیح وجود ندارد. این انتخاب یک جمعیت اولیه تصادفی ایجاد می کند که تمام مرزها و محدودیتهای خطی را برآورده می کند. اگر محدودیت های خطی وجود داشته باشد ، "gacreationlinearfeacible" بسیاری از افراد را در مرزهای منطقه محدودیت ایجاد می کند و جمعیتی به خوبی پراکنده ایجاد می کند."gacreationlinearfeaciable" اولیه را نادیده می گیرد."gacreationlinearfeaciable" از LinProg فرا می خواند تا با توجه به مرزها و محدودیتهای خطی ، جمعیتی عملی ایجاد کند.
"GacredateNonlineArfeaciable" عملکرد پیش فرض ایجاد الگوریتم محدودیت غیرخطی "مجازات" است. برای جزئیات بیشتر ، به پارامترهای محدودیت مراجعه کنید.
"GacredateUniformint" عملکرد پیش فرض ایجاد GA است که مشکل دارای محدودیت های عدد صحیح است. این عملکرد یک مصنوعی مصنوعی به اجزای بدون مرز اعمال می شود ، افراد را به طور یکنواخت به طور تصادفی در محدوده ها تولید می کند ، و سپس محدودیت های عدد صحیح را اعمال می کند.
توجه داشته باشید
هنگامی که مشکل شما محدودیت های عدد صحیح دارد ، GA و GamultioBJ این محدودیت ها ، مرزها و همه محدودیت های خطی را در هر تکرار عملی می کنند. برای جهش Nondefault ، متقاطع ، ایجاد و توابع انتخاب ، GA و GamultioBJ روال امکان سنجی اضافی را پس از عملکرد توابع اعمال می کنند.
"GacretrouteSobol" تابع ایجاد پیش فرض برای GamultioBJ است که مشکل دارای محدودیت های عدد صحیح است. تابع ایجاد از یک توالی sobol quasirandom برای تولید یک جمعیت اولیه به خوبی پراکنده استفاده می کند. جمعیت با توجه به مرزها ، محدودیتهای خطی و محدودیت های عدد صحیح امکان پذیر است.
یک دسته تابع به شما امکان می دهد عملکرد ایجاد خود را بنویسید ، که باید داده هایی از نوع را که در PlateMtype مشخص کرده اید تولید کنید. مثلا،
عملکرد ایجاد شما باید نحو فراخوانی زیر را داشته باشد.
آرگومان های ورودی به عملکرد عبارتند از:
طول ژنوم - تعداد متغیرهای مستقل برای عملکرد تناسب اندام
Fitnessfcn - عملکرد تناسب اندام
این عملکرد جمعیت ، جمعیت اولیه برای الگوریتم ژنتیکی را برمی گرداند.
عبور از پارامترهای اضافی نحوه ارائه پارامترهای اضافی برای عملکرد را توضیح می دهد.
احتیاط
هنگامی که محدودیت ها یا محدودیت های خطی دارید ، اطمینان حاصل کنید که عملکرد ایجاد شما افرادی را ایجاد می کند که این محدودیت ها را برآورده می کنند. در غیر این صورت ، جمعیت شما ممکن است محدودیت ها را برآورده نکند.
InitialPobulationMatrix جمعیت اولیه را برای الگوریتم ژنتیکی مشخص می کند. مقدار پیش فرض [] است ، که در این حالت GA از ایجاد پیش فرض CreationFCN برای ایجاد یک جمعیت اولیه استفاده می کند. اگر وارد یک آرایه غیر خالی در PriordalPobulationMatrix شوید ، آرایه نباید بیش از ردیف های جمعیتی و دقیقاً ستون های NVARS باشد ، جایی که NVARS تعداد متغیرها ، ورودی دوم GA یا GamultioBJ است. اگر یک جمعیت اولیه جزئی دارید ، به معنای کمتر از ردیف های جمعیتی ، الگوریتم ژنتیکی برای تولید افراد باقی مانده از ایجاد ایجاد می کند.
InitialScorematrix نمرات اولیه را برای جمعیت اولیه مشخص می کند. نمرات اولیه نیز می تواند جزئی باشد. اگر مشکل شما محدودیت های غیرخطی دارد ، الگوریتم از اولیه SSCOREMATRIX استفاده نمی کند.
InitialPobulationRange دامنه بردارها را در جمعیت اولیه که توسط عملکرد ایجاد GacreationUiform ایجاد می شود ، مشخص می کند. شما می توانید PrimalPobulationRange را به عنوان یک ماتریس با دو ردیف و ستون NVARS تنظیم کنید ، که هر ستون از آن دارای فرم [lb ؛ UB] است ، جایی که LB محدوده پایین است و UB حد بالایی برای ورودی های موجود در آن مختصات است. اگر مشخص کنید که PRIONISALPOPULATIONRANGE یک وکتور 2 به 1 است ، هر ورودی به یک ردیف ثابت از NVARs گسترش می یابد. اگر شما یک prospopulationRange اولیه را مشخص نکنید ، پیش فرض [-10 ؛ 10] ([-1e4+1 ؛ 1E4+1] برای مشکلات محدود شده با عدد صحیح) است ، اصلاح شده برای مطابقت با هر مرز موجود."gacreationlinearfeaciable" اولیه را نادیده می گیرد. برای مثال ، محدوده اولیه را مشاهده کنید.
گزینه های مقیاس بندی تناسب اندام
مقیاس بندی تناسب اندام نمرات تناسب اندام خام را که توسط عملکرد تناسب اندام به مقادیر در محدوده ای مناسب برای عملکرد انتخاب بازگردانده می شود ، تبدیل می کند.
FitnessScalingFCN عملکردی را که مقیاس بندی را انجام می دهد مشخص می کند. گزینه ها هستند
"fitscalingrank" - عملکرد پیش فرض مقیاس بندی تناسب اندام ، "fitscalingrank" ، نمرات خام را بر اساس رتبه هر فرد به جای نمره خود مقیاس می دهد. رتبه یک فرد موقعیت آن در نمرات مرتب شده است. یک فرد با رتبه R نمره متناسب با 1 / r را مقیاس می دهد. بنابراین نمره مقیاس پذیر متناسب ترین فرد متناسب با 1 است ، نمره مقیاس یافته بعدی متناسب با 1/2 و غیره است. مقیاس تناسب اندام رتبه بندی اثر گسترش نمرات خام را از بین می برد. ریشه مربع باعث می شود افراد دارای رتبه ضعیف در نمره تقریباً برابر باشند ، در مقایسه با امتیاز دهی به رتبه. برای اطلاعات بیشتر ، به مقیاس تناسب اندام مراجعه کنید.
"FitscalingProp" - مقیاس بندی متناسب باعث می شود مقدار مقیاس شده یک فرد متناسب با نمره تناسب اندام خام آن باشد.
"fitscalingtop" - مقیاس مقیاس بالا افراد برتر را به طور مساوی. می توانید با استفاده از یک پارامتر اضافی ، مقیاس بالا را تغییر دهید:
کمیت تعداد افرادی را که مقادیر مقیاس مثبت مثبت دارند مشخص می کند. مقدار می تواند یک عدد صحیح از 1 از طریق اندازه جمعیت یا کسری از 0 تا 1 باشد که بخشی از اندازه جمعیت را مشخص می کند. مقدار پیش فرض 0. 4 است. به هر یک از افرادی که فرزندان تولید می کنند ، یک مقدار مقیاس مساوی اختصاص داده می شود ، در حالی که به بقیه مقدار 0 اختصاص داده می شود. مقادیر مقیاس دار دارای فرم [01/n 1/n 0 0 1/n 0 0 1/n هستند.].
"FitscalingShiftlinear" - مقیاس مقیاس خطی را تغییر دهید و نمرات خام را به گونه ای تغییر دهید که انتظار از فرد مناسب ترین برابر با یک نرخ ثابت به نام ثابت باشد که با میانگین نمره ضرب می شود. می توانید پارامتر نرخ را تغییر دهید:
مقدار پیش فرض نرخ 2 است.
یک دسته عملکرد به شما امکان می دهد عملکرد مقیاس بندی خود را بنویسید.
عملکرد مقیاس گذاری شما باید نحو فراخوانی زیر را داشته باشد:
آرگومان های ورودی به عملکرد عبارتند از:
نمرات - بردار مقیاس ، یکی برای هر یک از اعضای جمعیت
nartarents - تعداد والدین مورد نیاز این جمعیت
این تابع انتظار را برمی گرداند ، یک بردار ستون از مقیاس به همان طول نمرات ، و مقادیر مقیاس یافته هر یک از اعضای جمعیت را می دهد. مجموع ورودی های انتظار باید برابر با Nartarents باشد.
عبور از پارامترهای اضافی نحوه ارائه پارامترهای اضافی برای عملکرد را توضیح می دهد.
برای اطلاعات بیشتر به مقیاس تناسب اندام مراجعه کنید.
گزینه های انتخابی
گزینه های انتخاب مشخص می کند که چگونه الگوریتم ژنتیکی والدین را برای نسل بعدی انتخاب می کند.
گزینه SelectionFCN عملکرد انتخاب را مشخص می کند.
GamultioBJ فقط از عملکرد انتخاب "انتخاب" استفاده می کند.
برای GA گزینه ها عبارتند از:
"SelectionStochunif" - عملکرد انتخاب پیش فرض GA ، "SelectionStochunif" ، خطی را ارائه می دهد که در آن هر والدین با بخشی از خط طول متناسب با مقدار مقیاس آن مطابقت دارد. الگوریتم در مراحل اندازه مساوی در امتداد خط حرکت می کند. در هر مرحله ، الگوریتم والدین را از بخشی که روی آن قرار دارد اختصاص می دهد. مرحله اول یک عدد تصادفی یکنواخت کمتر از اندازه مرحله است.
"SelectionRemainder" - انتخاب باقیمانده والدین را به طور قطعی از قسمت عدد صحیح مقدار مقیاس شده هر فرد اختصاص می دهد و سپس از انتخاب رولت در قسمت کسری باقی مانده استفاده می کند. به عنوان مثال ، اگر مقدار مقیاس شده یک فرد 2. 3 باشد ، آن فرد دو بار به عنوان والدین ذکر شده است زیرا قسمت عدد صحیح 2 است. بصورت تصادفیاحتمال انتخاب والدین در این مرحله متناسب با قسمت کسری از مقدار مقیاس آن است.
"SelectionUniform" - انتخاب یکنواخت والدین را با استفاده از انتظارات و تعداد والدین انتخاب می کند. انتخاب یکنواخت برای اشکال زدایی و آزمایش مفید است ، اما یک استراتژی جستجوی بسیار مؤثر نیست.
"SelectionRoulette" - انتخاب رولت والدین را با شبیه سازی چرخ رولت انتخاب می کند ، که در آن مساحت بخش چرخ مربوط به یک فرد متناسب با انتظار فرد است. این الگوریتم از یک عدد تصادفی برای انتخاب یکی از بخش ها با احتمال برابر با منطقه آن استفاده می کند.
"SelectionTouament" - انتخاب مسابقات با انتخاب بازیکنان اندازه به طور تصادفی و سپس انتخاب بهترین فرد از این مجموعه ، هر والدین را انتخاب می کند. اندازه باید حداقل 2 باشد. مقدار پیش فرض اندازه 4 است. اندازه را به شرح زیر تنظیم کنید:
هنگامی که NonlineArconstraintalGorithm پنالتی است ، GA از "SelectionTouament" با اندازه 2 استفاده می کند.
توجه داشته باشید
هنگامی که مشکل شما محدودیت های عدد صحیح دارد ، GA و GamultioBJ این محدودیت ها ، مرزها و همه محدودیت های خطی را در هر تکرار عملی می کنند. برای جهش Nondefault ، متقاطع ، ایجاد و توابع انتخاب ، GA و GamultioBJ روال امکان سنجی اضافی را پس از عملکرد توابع اعمال می کنند.
یک دسته تابع شما را قادر می سازد تا عملکرد انتخاب خود را بنویسید.
عملکرد انتخاب شما باید نحو فراخوانی زیر را داشته باشد:
GA انتظار آرگومان های ورودی ، والدین و گزینه ها را ارائه می دهد. عملکرد شما شاخص های والدین را برمی گرداند.
آرگومان های ورودی به عملکرد عبارتند از:
برای GA ، انتظار یک بردار ستون از تناسب اندام مقیاس پذیر هر یک از اعضای جمعیت است. مقیاس بندی از گزینه های مقیاس بندی تناسب اندام حاصل می شود.
نکته
شما می توانید با استفاده از انتظار ، یک وکتور ستون داشته باشید (: ، 1). به عنوان مثال ، SelectionStochunif یا هر یک از سایر توابع انتخاب داخلی را ویرایش کنید.
برای GamultioBJ ، انتظار یک ماتریس است که ستون اول آن منفی درجه افراد است و ستون دوم آن اندازه گیری فاصله افراد است. به گزینه های multiObjective مراجعه کنید.
nartarents - تعداد والدین برای انتخاب.
گزینه ها - گزینه های الگوریتم ژنتیکی.
این عملکرد والدین را برمی گرداند ، یک بردار ردیف از نامترات های طول که حاوی شاخص های والدینی است که شما انتخاب می کنید.
عبور از پارامترهای اضافی نحوه ارائه پارامترهای اضافی برای عملکرد را توضیح می دهد.
برای اطلاعات بیشتر به انتخاب مراجعه کنید.
گزینه های تولید مثل
گزینه های تولید مثل مشخص می کنند که چگونه الگوریتم ژنتیکی کودکان را برای نسل بعدی ایجاد می کند.
Elitecount تعداد افرادی را که برای زنده ماندن در نسل بعدی تضمین شده اند ، مشخص می کند. Elitecount را به یک عدد صحیح مثبت کمتر از یا مساوی با اندازه جمعیت تنظیم کنید. مقدار پیش فرض برای مشکلات مداوم CEIL (0. 05*جمعیت) و 0. 05*(پیش فرض جمعیت) برای مشکلات مخلوط مخلوط است.
CrossoVercraction کسری از نسل بعدی ، غیر از کودکان نخبه را که توسط متقاطع تولید می شود ، مشخص می کند. متقاطع را تنظیم کنید تا کسری بین 0 تا 1 باشد. مقدار پیش فرض 0. 8 است.
برای مثال به "تنظیم کسری متقاطع" در جهش و متقاطع متفاوت مراجعه کنید.
گزینه های جهش
گزینه های جهش مشخص می کند که چگونه الگوریتم ژنتیکی باعث ایجاد تغییرات تصادفی کوچک در افراد در جمعیت برای ایجاد کودکان جهش می شود. جهش تنوع ژنتیکی را فراهم می کند و الگوریتم ژنتیکی را قادر می سازد تا یک فضای گسترده تر را جستجو کند. عملکرد جهش را در گزینه MutationFCN مشخص کنید.
"Mutationgaussian" - عملکرد جهش پیش فرض برای GA برای مشکلات نامشخص ، "Mutationgaussian" ، یک عدد تصادفی گرفته شده از توزیع گاوسی با میانگین 0 به هر ورودی وکتور والدین را اضافه می کند. انحراف استاندارد این توزیع توسط مقیاس پارامترها و کوچک شدن و با گزینه اولیه pobolationRange تعیین می شود. مقیاس را تنظیم کنید و به شرح زیر کوچک شوید:
پارامتر مقیاس انحراف استاندارد را در نسل اول تعیین می کند. اگر تنظیمات اولیه را به عنوان یک بردار 2 به 1 V تنظیم کنید ، انحراف استاندارد اولیه در تمام مختصات بردار والدین یکسان است و توسط مقیاس *(v (2) -v (1)) داده می شود.
اگر تنظیمات اولیه را به عنوان یک بردار V با دو ردیف و ستون NVARS تنظیم کنید ، انحراف استاندارد اولیه در مختصات I بردار والدین توسط مقیاس *(v (i ، 2) - v (i ، 1)) داده می شود.
پارامتر Shrink نحوه کاهش انحراف استاندارد را با گذشت نسل ها کنترل می کند. اگر تنظیمات اولیه را به عنوان یک بردار 2 به 1 تنظیم کنید ، انحراف استاندارد در نسل K ، σk، در تمام مختصات بردار والدین یکسان است و توسط فرمول بازگشتی داده می شود
σ k = σ k - 1 (1 - نسل های کوچک K).
اگر تنظیمات اولیه را به عنوان یک بردار با دو ردیف و ستون NVARS تنظیم کنید ، انحراف استاندارد در مختصات I بردار والدین در نسل K ، σi,k، توسط فرمول بازگشتی داده شده است
σ i ، k = σ i ، k - 1 (1 - نسل های کوچک K).
اگر به 1 ضربه بزنید ، الگوریتم انحراف استاندارد را در هر مختصات به صورت خطی کاهش می دهد تا اینکه در نسل آخر به 0 برسد. مقدار منفی کوچک شدن باعث رشد انحراف استاندارد می شود.
مقدار پیش فرض هر دو مقیاس و کوچک شدن 1 است.
احتیاط
در صورت محدودیت یا محدودیت های خطی از MutationGaussian استفاده نکنید. در غیر این صورت ، جمعیت شما لزوماً محدودیت ها را برآورده نمی کند. در عوض ، از "MutationAdaptfeaciable" یا یک تابع جهش سفارشی استفاده کنید که محدودیت های خطی را برآورده می کند.
"MutationUniform"-جهش یکنواخت یک فرآیند دو مرحله ای است. اول ، الگوریتم بخشی از ورودی های بردار یک فرد را برای جهش انتخاب می کند ، جایی که هر ورودی میزان احتمالی جهش یافته را دارد. مقدار پیش فرض نرخ 0. 01 است. در مرحله دوم ، الگوریتم جایگزین هر ورودی انتخاب شده توسط یک عدد تصادفی که به طور یکنواخت از محدوده آن ورودی انتخاب شده است.
برای تغییر مقدار پیش فرض نرخ ،
احتیاط
در هنگام محدودیت یا محدودیت های خطی از MutationUniform استفاده نکنید. در غیر این صورت ، جمعیت شما لزوماً محدودیت ها را برآورده نمی کند. در عوض ، از "MutationAdaptfeaciable" یا یک تابع جهش سفارشی استفاده کنید که محدودیت های خطی را برآورده می کند.
"MutationAdaptfeaciable" ، عملکرد جهش پیش فرض برای GamultioBJ و GA در صورت وجود محدودیت های غیر انتهایی ، به طور تصادفی جهت هایی را ایجاد می کند که با توجه به آخرین نسل موفق یا ناموفق سازگار هستند. جهش یک جهت و طول مرحله را انتخاب می کند که مرزها و محدودیتهای خطی را برآورده می کند.
"MutationPower" تابع جهش پیش فرض برای GA و GamultioBJ است که مشکل دارای محدودیت های عدد صحیح است. جهش قدرت از طریق موارد زیر ، والدین ، x را جهش می دهد. برای هر مؤلفه والدین ، مؤلفه اول کودک توسط:
mutationchild (i) = x (i) - s (x (i) - lb (i)) اگر t< r
= x(i) + s(ub(i) - x(i)) if t >= r.
در اینجا ، T فاصله مقیاس x (i) از مؤلفه i از محدوده پایین ، lb (i) است. S یک متغیر تصادفی است که از توزیع برق گرفته شده و R یک عدد تصادفی است که از توزیع یکنواخت گرفته می شود.
این عملکرد می تواند LB (i) = UB (i) را اداره کند. کودکان جدید با مؤلفه I Th تنظیم شده به LB (I) تولید می شوند که برابر با UB (I) است. برای اطلاعات بیشتر در مورد این عملکرد متقاطع به بخش 2. 1 مرجع زیر مراجعه کنید:
Kusum Deep ، Krishna Pratap Singsh ، M. L. Kansal ، C. Mohan. یک الگوریتم ژنتیکی رمزگذاری شده واقعی برای حل مشکلات بهینه سازی عدد صحیح و مخلوط. ریاضیات و محاسبات کاربردی ، 212 (2009) ، 505-518.
توجه داشته باشید
هنگامی که مشکل شما محدودیت های عدد صحیح دارد ، GA و GamultioBJ این محدودیت ها ، مرزها و همه محدودیت های خطی را در هر تکرار عملی می کنند. برای جهش Nondefault ، متقاطع ، ایجاد و توابع انتخاب ، GA و GamultioBJ روال امکان سنجی اضافی را پس از عملکرد توابع اعمال می کنند.
"MutationPositiveBasis" - این عملکرد جهش مشابه مراحل MADS متعامد است که برای محدودیت ها و مرزهای خطی اصلاح شده است.
آموزش فارکس برای مبتدی ها...
ما را در سایت آموزش فارکس برای مبتدی ها دنبال می کنید
برچسب :
نویسنده : Mihayloo
بازدید : <-PostHit->
تاريخ : دوشنبه
8 اسفند
1401 ساعت: 12:56