1. 程式人生 > >MATLAB中自帶遺傳演算法函式GA的用法

MATLAB中自帶遺傳演算法函式GA的用法

ga
用遺傳演算法尋找函式的最優解

語法規則

x = ga(fitnessfcn,nvars)
x = ga(fitnessfcn,nvars,A,b)
x = ga(fitnessfcn,nvars,A,b,Aeq,beq)
x = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB)%

其中fitnessfc為函式的控制代碼或者為匿名函式

    nvars,表示自變數個個數(例如自變數為向量X,nvars代表X中的元素個數)

    A,b就是表示式A*X<=b;

    Aeq:表示線性等式約束矩陣,若是沒有等式約束就寫為[];

    Beq:表示線性等式約束的個數Beq=length(nvars);


x = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon)
x = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon,options)
x = ga(problem)
[x,fval] = ga(...)

例子

A = [1 1; -1 2; 2 1];  b = [2; 2; 3];  lb = zeros(2,1);  [x,fval,exitflag] = ga(@lincontest6,2,A,b,[],[],lb)  %lb表示x的下界,up表示上界  Optimization terminated:   average change in the fitness value less than   options.TolFun.    x =     0.7794   1.2205    fval =     -8.03916    exitflag =