
麻烦您帮我看一下这段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了 展开
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了 展开
若以下回答无法解决问题,邀请你更新回答
2个回答
展开全部
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取整数。故它是一个整数线性规划问题。这里把它当成一个线性规划来解,求得其最优解刚好是整数则是该整数规划的最优解。若用线性规划解法求得的最优解不是整数,将其取整后不一定是相应整数规划的最优解,这样的整数规划应用专门的方法求解。故自己考量是不是最优解。
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取整数。故它是一个整数线性规划问题。这里把它当成一个线性规划来解,求得其最优解刚好是整数则是该整数规划的最优解。若用线性规划解法求得的最优解不是整数,将其取整后不一定是相应整数规划的最优解,这样的整数规划应用专门的方法求解。故自己考量是不是最优解。
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
linprog不是整数线性规划啊?是普通的线性规划而已。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询