已知非线性整数规划为Max z=x1^2+x2^2+3x3^2+4x4^2+2x5^2-8x1-2x2-3x3-x4-2x5

来源:百度知道 编辑:UC知道 时间:2024/07/04 07:46:15
已知非线性整数规划为Max z=x1^2+x2^2+3x3^2+4x4^2+2x5^2-8x1-2x2-3x3-x4-2x5

约束条件是0<=xi<=99(i=1,..,5)
x1+x2+x3+x4+x5<=400
x1+2x2+2x3+x4+6x5<=800
2x1+x2+6x3<=200
x3+x4+5x5<=200
求解该线性规划问题
问题补充:最好用蒙特卡洛法

(i)首先编写M文件mente.m定义目标函数f 和约束向量函数g,程序如下:
function [f,g]=mengte(x);
f=x(1)^2+x(2)^2+3*x(3)^2+4*x(4)^2+2*x(5)-8*x(1)-2*x(2)-3*x(3)...
-x(4)-2*x(5);
g(1)=sum(x)-400;
g(2)=x(1)+2*x(2)+2*x(3)+x(4)+6*x(5)-800;
g(3)=2*x(1)+x(2)+6*x(3)-200;
g(4)=x(3)+x(4)+5*x(5)-200;
(ii)编写如下程序求问题的解:
rand('state',sum(clock));
p0=0;
tic
for i=1:10^5
x=99*rand(5,1);
x1=floor(x);x2=ceil(x);
[f,g]=mengte(x1);
if sum(g<=0)==4
if p0<=f
x0=x1;p0=f;
end
end
[f,g]=mengte(x2);
if sum(g<=0)==4
if p0<=f
x0=x2;p0=f;
end
end
end
x0,p0
toc