سلام
من هنگام run کردن GA به یکسری error هایی برخوردم!
برنامه به این شکل هست که می خوام ga درون یک حلقه while بزارم.شکل برنامه به شکل زیر هست:
clc;
clear;
delta=1;
while delta>0.01
%Fitness function
fitnessFunction = @y;
%Number of Variables
nvars = 6 ;
%Linear inequality constraints
Aineq = [];
Bineq = [];
%Linear equality constraints
Aeq = [];
Beq = [];
%Bounds
LB = 1e-005;
UB = 1 ;
%Nonlinear constraints
nonlconFunction = [];
%Start with default options
options = gaoptimset;
%Modify some parameters
options = gaoptimset(options,'MutationFcn' ,{ @mutationgaussian 1 1 });
options = gaoptimset(options,'Display' ,'off');
options = gaoptimset(options,'PlotFcns' ,{ @gaplotbestf @gaplotbestindiv });
%Run GA
[X,FVAL,REASON,OUTPUT,POPULATION,SCORES] = ga(fitnessFunction,nvars,Aineq,Bineq,Aeq,Beq,LB,UB ,nonlconFunction,options);
end
1- از طریق creat M-file برنامه ایجاد شده و سپس درون حلقه ی مورد نظرم قرار دادمش .نمی دونم کارم درست بو ده یا نه؟؟؟
2- fitness function با نام y به صورت زیر در فایل جداگانه ای با همین نام می باشد::
function[delta]=y(x1,x2,x3,x4,x5,x6
6
تا متغیر دارم.ga می بایست این متغیر ها را تولید کنه.
این متغیر ها توسط نرم افزار مورد استفاده قرار می گیره سپس از نرم افزار خروجی گرفته .
با استفاده از داده های خروجی ... آنها در یک ماتریس ذخیره می کنم.
و عملیات محاسباتی زیر را بر روی آن انجام می دهیم:
for j=1:3;
for i=1:31
sum=sum+(obs_M(i,j)-cal_M(i,j))^2;
end
end
مقدار sum را درون delta قرار دادم.
delta=sum;
پایان function
سوال من اینجاست که من می خوام تا جایی ga تولید متغیر کنه که این delta از تلرانسی که براش گذاشتم کمتر بشه. (delta<0.01 شود)
ولی error میده
اصلا ga درست نوشته شده؟؟؟
ممنون می شم راهنماییم کنید.
ایرادها::
??? Error using ==> gads\private\makeState
GA cannot continue because user supplied fitness function failed with the following error:
Input argument "x2" is undefined.
Error in ==> gads\private\galincon at 141
state = makeState(GenomeLength,FitnessFcn,options);
Error in ==> ga at 256
[x,fval,exitFlag,output,population,scores] = galincon(FUN,GenomeLength,Aineq,Bineq,Aeq,Beq,LB,U B,options);
Error in ==> ga1 at 33
[X,FVAL,REASON,OUTPUT,POPULATION,SCORES] = ga(fitnessFunction,nvars,Aineq,Bineq,Aeq,Beq,LB,UB ,nonlconFunction,options);
علاقه مندی ها (Bookmarks)