麻烦您帮我看一下这段matlab程序,整数线性规划的,我运行了之后和实际不符,不知道是哪里出错了,谢谢啦

主要是实现min-a*x1-b*x2s.ta*x1+b*x2<=1.1算出来x后m=x1+x2如果1.1-2*b*x2>=a+b则循环min-a*x1-b*x2s.ta*... 主要是实现min -a*x1-b*x2
s.t a*x1+b*x2<=1.1
算出来x后m=x1+x2
如果1.1-2*b*x2>=a+b
则循环min -a*x1-b*x2
s.t a*x1+b*x2<=1.1
m=x1+x2
然后继续判断1.1-2*b*x2>=a+b是否成立,成立的话继续循环,算出最终的m

c=[-0.3;-0.2];
A=[0.3 0.2];
b=1.1;
[x,fval]=linprog(c,A,b,[],[],zeros(2,1));
m=x(1)+x(2);
l=1.1-2*x(2)*0.2;
while l>=0.5
c=[-0.3;-0.2];
A=[0.3 0.2];
b=l;
[x,fval]=linprog(c,A,b,[],[],zeros(2,1));
m=m+x(1)+x(2)
l=1.1-2*x(2)*0.2;
end
程序里a和b我已经赋值为0.3和0.2了
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
流星日食
2013-07-20 · TA获得超过1056个赞
知道小有建树答主
回答量:287
采纳率:83%
帮助的人:273万
展开全部
clear all
clc
a=0.3;b=0.2;
c = [-a;-b];
A=[a b];
b=[1.1];
Aeq=[];
beq=[];
[x,fval] = linprog(c,A,b,Aeq,beq);
m=x(1)+x(2);
I=1.1-2*b*x(2)-(a+b);
while I>=0
c = [-a;-b];
A=[a b];
b=[1.1];
Aeq=[];
beq=[];
[x,fval] = linprog(c,A,b,Aeq,beq);
m=x(1)+x(2);
I=1.1-2*b*x(2)-(a+b);
end

x(1)
x(2)
x3=ceil(x(1));
x4=ceil(x(2));
x5=floor(x(1));
x6=floor(x(2));
min1=-a*x3-b*x4;
min2=-a*x3-b*x6;
min3=-a*x5-b*x4;
min4=-a*x5-b*x6;
V=[ min1 x3 x4;
min2 x3 x6;
min3 x5 x4;
min4 x5 x6];
[C0,I0] =min(V(:,1));
C0
V(I0,2)
V(I0,3)

本问题应还有一个约束条件:x1、x2取整数。故它是一个整数线性规划问题。这里把它当成一个线性规划来解,求得其最优解刚好是整数则是该整数规划的最优解。若用线性规划解法求得的最优解不是整数,将其取整后不一定是相应整数规划的最优解,这样的整数规划应用专门的方法求解。故自己考量是不是最优解。
来自:求助得到的回答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WM_THU
2013-07-18 · TA获得超过7165个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:4311万
展开全部
linprog不是整数线性规划啊?是普通的线性规划而已。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式