Matlab遗传算法

介绍如何使用Matlab自带的遗传算法来解决寻优问题

ga函数官方文档

只截取了部分形式的常用函数,详细的可在matlab命令窗口中输入help ga查看

  • x = ga(fun,nvars)
  • x = ga(fun,nvars,A,b)
  • x = ga(fun,nvars,A,b,Aeq,beq)
  • x = ga(fun,nvars,A,b,Aeq,beq,lb,ub)
  • x = ga(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon)
  • x = ga(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options)
  • x = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon)
  • x = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon,options)

参数如下图所示

目标函数代码

function y = fun (t)
y = 目标函数代码;
end

非线性约束函数

function [c,ceq] = nonlconfun(x)
    % 入口参数 x:为自变量的行向量
    % 出口参数   
    %            c:非线性不等式约束函数值
    %            ceq:非线性等式约束的函数值,由于本题有两个等式约束,同c一样
    %            ceq(1,1)为第一个等式约束函数值,ceq(2,1)为第二个等式约束函数值

    c(1,1) = 约束函数1;
    c(2,1) = 约束函数2;
    %假如没有非线性等式约束
    ceq = [];
    %假如有非线性等式约束
    ceq(1,1) = 非线性等式约束1;
    ceq(2,1) = 非线性等式约束2;
end

主函数

​A = [1, -1, 0, 0; 0, 1, -1, 0; 0, 0, 1, -1;0, 0, 0, 0];
b = [-1, -1, -1, 0]';%保证t1<t2<t3<t4
lb = [t0,t0,t0,t0];
ub = [tn,tn,tn,tn];
% options = gaoptimset;
options = gaoptimset('PopulationSize', 100, 'Generations', 200);
[x,fval] = ga(@fun,4,A,b,[],[],lb,ub,@nonlconfun)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值