在matlab中如何用遗传算法求二元目标规划

在matlab中如何用遗传算法求二元目标规划
max m=0.371x1+0.274x2+0.581x3+0.164x4+0.327x5
min r=1.1828x1+0.8415x2+0.9324x3+0.8474x5+0.894x6

x1+x2+x3+x4+x5+x6=1

x1,x2,x3,x4,x5,x6>=0.05

x1,x2,x3,x4,x5,x6<1

x1+x3>=0.4

x2+x5>=0.4

请高人帮助!谢谢了!
对不起,写错了,里面没有 x6 , x6 全用 x5 代替

遗传算法俺不会,用多目标优化也可以求出最优解。
function zFgoalattain
% 多目标最优化
clear all; clc
% 给定目标,权重按目标比例确定,给出初值
goal = [-0.3 0.9]; % -0.2794 0.9313
weight = [0.1 0.1];
x0 = [0.6 0.6 0.6 0.6 0.6];
% 给出约束条件的系数
A=[-1 0 -1 0 0;0 -1 0 0 -1]
B=[-0.4; -0.4]
Aeq = [1 1 1 1 1]
Beq = [1]
lb = ones(1,5)*0.05
ub = ones(1,5)
% 求解
[x,fval,attainfactor,exitflag] = fgoalattain(@ObjFun,x0,goal,weight,A,B,Aeq,Beq,lb,ub)
% ------------------------------------------------------------------
function f = ObjFun(x)
f1 = -(0.371*x(1)+0.274*x(2)+0.581*x(3)+0.164*x(4)+0.327*x(5));
f2 = 1.1828*x(1)+0.8415*x(2)+0.9324*x(3)+0.8474*x(4)+0.894*x(5);
f=[f1;f2];

运行结果:
x =

0.0500 0.5000 0.3500 0.0500 0.0500

fval =

-0.3834
0.8933

attainfactor =

-0.0670

exitflag =

4
温馨提示:答案为网友推荐,仅供参考