matlab 翻译成c代码 编译器,求助高手将以下C语言翻译为Matlab语言,急急急! - 程序语言 - 小木虫 - 学术 科研 互动社区...

CODE:

>> help ga

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:

nvars:

Aineq:

bineq:

Aeq:

beq:

lb:

ub:

nonlcon:

options:

rngstate:

[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:

generations:

funccount:

maxconstraint: , if any

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)

See also gaoptimset, fitnessfunction, gaoutputfcntemplate, patternsearch, @.

Reference page in Help browser

doc ga

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值