matlab ga 目标函数,关于ga函数的目标函数问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

N0=(reshape(n0',1,180))';

a1=zeros(10,180);

a1(1,1:18)=1;a1(2,19:36)=1;a1(3,37:54)=1;a1(4,55:72)=1;a1(5,73:90)=1;a1(6,91:108)=1;a1(1,109:26)=1;

a1(1,127:144)=1;a1(1,145:162)=1;a1(1,163:180)=1;

A1=a1;B1=[20000,15000,19000,18000,19800,18700,18000,19000,17000,80000]';

Aeq=[eye(18),eye(18),eye(18),eye(18),eye(18),eye(18),eye(18),eye(18),eye(18),eye(18)];

Beq=[0,0,0,750,900,1050,0,1220,1800,700,1000,0,1350,1150,1920,1000,1560,1180]';

VLB=zeros(180,1);

ll=(reshape(l',180,1)); options=optimoptions('fmincon','MaxIter',400000);

[n,W,exitflag]=ga(@(n)sum(ll.*n*0.5),180,A1,B1,Aeq,Beq,VLB,[])

这是我的代码,自变量是180维的列向量,但总是提示这个错误,

错误使用 makeState (line 56)

Your fitness function must return a scalar value.

出错 galincon (line 17)

state = makeState(GenomeLength,FitnessFcn,Iterate,output.problemtype,options);

出错 ga (line 401)

[x,fval,exitFlag,output,population,scores] = galincon(FitnessFcn,nvars, ...

出错 qiji (line 10)

[n,W,exitflag]=ga(@(n)sum(ll.*n*0.5),180,A1,B1,Aeq,Beq,VLB,[])

好像是说目标函数必须返回一个标量,但我的目标函数就是标量的呀,

求大佬指点一下是哪里出了问题,感激不尽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值