请求一个整数规划的matlab程序
最近一直在研究整数规划,可是连着看了两个相关编程,用MATLAB实践时总是出错!所以,求助于各位大侠们能否提供一个整数规划的程序。或者,能否分析一下面的程序哪里有问题?谢谢了啊!function =IntLp(f,G,h,Geq,heq,lb,ub,x,id,options)global upper opt c x0 A b Aeq beq ID options;
if nargin<10,
options =optimset({});
options.Display='off';
options.LargeScale='off';
end
if nargin<9,
id=ones(size(f));
end
if nargin<8,
x=[];
end
if nargin<7 | isempty(ub),
ub =inf*ones(size(f));
end
if nargin<6 | isempty(lb),
lb=zeros(size(f));
end
if nargin<5,
heq=[];
end
if nargin<4,
Geq=[];
end
upper=inf;c=f;x0=x;
A=G;
b=h;Aeq=Geq;
beq=heq;ID=id;
ftemp=IntL_P(lb(:),ub(:));
%以下为子函数
function ftemp=IntL_P(vlb,vub)
global upper opt c x0 A b Aeq beq ID options;
=linprog(c,A,b,Aeq,beq,vlb,vub,x0,options);
if how<0
return;
end
if ftemp-upper>0.00005
return;
end
if max(abs(x.*ID-round(x.*ID)))<0.00005
if upper-ftemp>0.00005
opt=x';
upper=ftemp;
return;
else
opt=;
return;
end
end
notintx=find(abs(x-round(x))<=0.00005);
intx=fix(x);
tempvlb=vlb;tempvub=vub;
if vub(notintx(1,1),1)>=intx(notintx(1,1),1)+1
tempvlb(notintx(1,1),1)=intx(notintx(1,1),1)+1;
ftemp=IntLP(tempvlb,vub);
end
if vlb(notintx(1,1),1)<=intx(notintx(1,1),1)
tempvub(notintx(1,1),1)=intx(notintx(1,1),1);
ftemp=IntL_P(vlb,tempvub);
end 来看看 楼主发的程序有点小问题 无法复制 望楼主解决 太长了 也不是很懂 没办法了 蜗牛天使 发表于 2011-8-25 17:57 static/image/common/back.gif
太长了 也不是很懂 没办法了
恩 也谢谢了啊!~ 喜欢就好 发表于 2011-8-25 17:50 static/image/common/back.gif
来看看 楼主发的程序有点小问题 无法复制 望楼主解决
我这里看的时候还是可以的啊!:) 路过!!!!!!
static/image/common/sigline.gif
高密招聘网 gmzhaopin.com {:3_41:}{:3_41:} {:3_50:}{:soso_e162:} {:3_41:}{:3_41:} {:3_61:}
页:
[1]
2