遗传算法和标准算法的比较
标准算法 | 遗传算法 |
---|---|
每次选代产生一个单点,点的序列逼近一个优化解 | 每次迭代产生一个种群,种群通近一个优化解 |
通过确定性的计算在该序列中选择下一个点 | 通过随机进化选择计算来选择下一代种群 |
遗传算法使用方式
遗传算法工具有两种使用方式:
- 以命令行方式调用遗传算法函数ga。
- 通过用户图形界面使用遗传算法工具。
在命令行使用遗传算法,可以用下列语法调用遗传算法函数ga
[x, fval]= ga(@ fitnessfun ,nvars ,A,b,Aeq,beq,LB,UB,@ nonlcon, opt ions)
其中:
- @ftnessfun是目标函数句柄;
- nvars是目标函数中独立变量的个数;
- options是一个包含遗传算法选项参数的数据结构
- 其他参数的含义与非线性规划fmincon中的参数相同。
函数返回值x为最终值到达的点,这里x为行向量,fval为目标丽数的最终值。
例题:
function y = ycfun1(x)
c1=[2 3 1];
c2=[3 1 0];
y=c1*x'+c2*x'.^2;
y=-y;
end
function [f,g] = ycfun2(x)
f=[x(1)+2*x(1)^2+x(2)+2*x(2)^2+x(3)-10
x(1)+x(1)^2+x(2)+x(2)^2-x(3)-50
2*x(1)+x(1)^2+2*x(2)++x(3)-40];
g=x(1)^2+x(3)-2;
end
clc,clear
a=[-1 -2 0;-1 0 0];
b=[-1;0];
[x,y]=ga(@ycfun1,3,a,b,[],[],[],[],@ycfun2);
x,y=-y