我需要在此适应度函数中优化权重:
f(x)=x(1)*a+x(2)*b+x(3)*c+x(4)*d;
(其中a,b,c,d是数字常数,x是4个权重的矢量)
我需要在我的函数中定义这些简单约束:
每个重量(x(i))必须介于0和1之间;
和
sum(x(i))= 1; (I = 1:4)
有人能帮帮我吗?
答案 0 :(得分:0)
假设您有优化工具箱,
x= linprog([a,b,c,d],[],[],[1 1 1 1],1,[0 0 0 0],[1,1,1,1]);
答案 1 :(得分:0)
如果你最小化你的适应度函数,那么检查x是否可行(在你的搜索空间内)以及它是否满足你的约束,如果不是那么返回+无穷大(任何大数)或无穷大+一些惩罚,其中惩罚是较小的违反约束条件