MATLAB用for循环求最小值,matlab下用遗传算法求最小值的问题 - 程序语言 - 小木虫 - 学术 科研 互动社区...
shu_fyh求人来解答啊。。feifeiyin12可以实现,代码很简单,这个应该可以用非线性规划,随便找本matlab方面的书,半个小时可以搞定。手机不好发代码。你编程有问题可以去matlab论坛上问,那里这方面回答的人多些shu_fyh引用回帖:feifeiyin12 at 2013-11-21 13:28:04可以实现,代码很简单,这个应该可以用非线性规划,随便找本matlab方面的书,半个
shu_fyh
求人来解答啊。。
feifeiyin12
可以实现,代码很简单,这个应该可以用非线性规划,随便找本matlab方面的书,半个小时可以搞定。手机不好发代码。你编程有问题可以去matlab论坛上问,那里这方面回答的人多些
shu_fyh
引用回帖:
feifeiyin12 at 2013-11-21 13:28:04
可以实现,代码很简单,这个应该可以用非线性规划,随便找本matlab方面的书,半个小时可以搞定。手机不好发代码。你编程有问题可以去matlab论坛上问,那里这方面回答的人多些
...
额,我说的是能不能用遗传算法搞定。。
月只蓝
引用回帖:
shu_fyh at 2013-11-21 14:08:03
额,我说的是能不能用遗传算法搞定。。...
可以用遗传算法来求解。
shu_fyh
引用回帖:
月只蓝 at 2013-11-21 16:06:11
可以用遗传算法来求解。...
遗产算法的过程我已经写出来了,就是不知道怎么用matlab来实现
月只蓝
引用回帖:
shu_fyh at 2013-11-21 16:53:14
遗产算法的过程我已经写出来了,就是不知道怎么用matlab来实现...
MATLAB有自带的遗传算法函数ga,虽然说MATLAB的内置的遗传算法并不是最优秀的,但求解你的问题应该没问题。
ga函数调用格式很方便,见MATLAB help:
GA Constrained optimization using genetic algorithm.
GA attempts to solve problems of the form:
min F(X) subject to: A*X <= B, Aeq*X = Beq (linear constraints)
X C(X) <= 0, Ceq(X) = 0 (nonlinear constraints)
LB <= X <= ub
X = GA(FITNESSFCN,NVARS) finds a local unconstrained minimum X to the
FITNESSFCN using GA. NVARS is the dimension (number of design
variables) of the FITNESSFCN. FITNESSFCN accepts a vector X of size
1-by-NVARS, and returns a scalar evaluated at X.
X = GA(FITNESSFCN,NVARS,A,b) finds a local minimum X to the function
FITNESSFCN, subject to the linear inequalities A*X <= B. Linear
constraints are not satisfied when the PopulationType option is set to
'bitString' or 'custom'. See the documentation for details.
X = GA(FITNESSFCN,NVARS,A,b,Aeq,beq) finds a local minimum X to the
function FITNESSFCN, subject to the linear equalities Aeq*X = beq as
well as A*X <= B. (Set A=[] and B=[] if no inequalities exist.) Linear
constraints are not satisfied when the PopulationType option is set to
'bitString' or 'custom'. See the documentation for details.
X = GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub) defines a set of lower and
upper bounds on the design variables, X, so that a solution is found in
the range lb <= X <= ub. Use empty matrices for lb and ub if no bounds
exist. Set lb(i) = -Inf if X(i) is unbounded below; set ub(i) = Inf if
X(i) is unbounded above. Linear constraints are not satisfied when the
PopulationType option is set to 'bitString' or 'custom'. See the
documentation for details.
X = GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub,NONLCON) subjects the
minimization to the constraints defined in NONLCON. The function
NONLCON accepts X and returns the vectors C and Ceq, representing the
nonlinear inequalities and equalities respectively. GA minimizes
FITNESSFCN such that C(X)<=0 and Ceq(X)=0. (Set lb=[] and/or ub=[] if
no bounds exist.) Nonlinear constraints are not satisfied when the
PopulationType option is set to 'bitString' or 'custom'. See the
documentation for details.
X = GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub,NONLCON,options) minimizes
with the default optimization parameters replaced by values in the
structure OPTIONS. OPTIONS can be created with the GAOPTIMSET function.
See GAOPTIMSET for details.
X = GA(PROBLEM) finds the minimum for PROBLEM. PROBLEM is a structure
that has the following fields:
fitnessfcn: <Fitness function>
nvars: <Number of design variables>
Aineq: <A matrix for inequality constraints>
bineq: <b vector for inequality constraints>
Aeq: <Aeq matrix for equality constraints>
beq: <beq vector for equality constraints>
lb: <Lower bound on X>
ub: <Upper bound on X>
nonlcon: <nonlinear constraint function>
options: <Options structure created with GAOPTIMSET>
rngstate: <State of the random number generator>
[X,FVAL] = GA(FITNESSFCN, ...) returns FVAL, the value of the fitness
function FITNESSFCN at the solution X.
[X,FVAL,EXITFLAG] = GA(FITNESSFCN, ...) returns EXITFLAG which
describes the exit condition of GA. Possible values of EXITFLAG and the
corresponding exit conditions are
1 Average change in value of the fitness function over
options.StallGenLimit generations less than options.TolFun and
constraint violation less than options.TolCon.
3 The value of the fitness function did not change in
options.StallGenLimit generations and constraint violation less
than options.TolCon.
4 Magnitude of step smaller than machine precision and constraint
violation less than options.TolCon. This exit condition applies
only to nonlinear constraints.
5 Fitness limit reached and constraint violation less than
options.TolCon.
0 Maximum number of generations exceeded.
-1 Optimization terminated by the output or plot function.
-2 No feasible point found.
-4 Stall time limit exceeded.
-5 Time limit exceeded.
[X,FVAL,EXITFLAG,OUTPUT] = GA(FITNESSFCN, ...) returns a
structure OUTPUT with the following information:
rngstate: <State of the random number generator before GA started>
generations: <Total generations, excluding HybridFcn iterations>
funccount: <Total function evaluations>
maxconstraint: <Maximum constraint violation>, if any
message: <GA termination message>
[X,FVAL,EXITFLAG,OUTPUT,POPULATION] = GA(FITNESSFCN, ...) returns the
final POPULATION at termination.
[X,FVAL,EXITFLAG,OUTPUT,POPULATION,SCORES] = GA(FITNESSFCN, ...) returns
the SCORES of the final POPULATION.
Example:
Unconstrained minimization of 'rastriginsfcn' fitness function of
numberOfVariables = 2
x = ga(@rastriginsfcn,2)
Display plotting functions while GA minimizes
options = gaoptimset('PlotFcns',...
{@gaplotbestf,@gaplotbestindiv,@gaplotexpectation,@gaplotstopping});
[x,fval,exitflag,output] = ga(@rastriginsfcn,2,[],[],[],[],[],[],[],options)
An example with inequality constraints and lower bounds
A = [1 1; -1 2; 2 1]; b = [2; 2; 3]; lb = zeros(2,1);
% Use mutation function which can handle constraints
options = gaoptimset('MutationFcn',@mutationadaptfeasible);
[x,fval,exitflag] = ga(@lincontest6,2,A,b,[],[],lb,[],[],options);
FITNESSFCN can also be an anonymous function:
x = ga(@(x) 3*sin(x(1))+exp(x(2)),2)
If FITNESSFCN or NONLCON are parameterized, you can use anonymous
functions to capture the problem-dependent parameters. Suppose you want
to minimize the fitness given in the function myfit, subject to the
nonlinear constraint myconstr, where these two functions are
parameterized by their second argument a1 and a2, respectively. Here
myfit and myconstr are M-file functions such as
function f = myfit(x,a1)
f = exp(x(1))*(4*x(1)^2 + 2*x(2)^2 + 4*x(1)*x(2) + 2*x(2) + a1);
and
function [c,ceq] = myconstr(x,a2)
c = [1.5 + x(1)*x(2) - x(1) - x(2);
-x(1)*x(2) - a2];
% No nonlinear equality constraints:
ceq = [];
To optimize for specific values of a1 and a2, first assign the values
to these two parameters. Then create two one-argument anonymous
functions that capture the values of a1 and a2, and call myfit and
myconstr with two arguments. Finally, pass these anonymous functions to
GA:
a1 = 1; a2 = 10; % define parameters first
% Mutation function for constrained minimization
options = gaoptimset('MutationFcn',@mutationadaptfeasible);
x = ga(@(x)myfit(x,a1),2,[],[],[],[],[],[],@(x)myconstr(x,a2),options)
,
木头919
在命令窗口输入gatool,调出工具箱,一目了然
更多推荐
所有评论(0)