第五章 整数规划
例1:
clc , clear
p=optimproblem; %定义优化问题
x=optimvar('x',6,1,'Type','integer','LowerBound',0); %定义决策变量
p.Objective=sum(x);
con=optimconstr(6);
a=[35,40,50,45,55,30];
con(1)=x(1)+x(6)>=35;
for i=1:5
con(i+1)=x(i)+x(i+1)>=a(i+1);
end
p.Constraints=con;
[sol,fval]=solve(p), sol.x
clc,clear
p=optimproblem;
x=optimvar('x',6,1,'Type','integer','LowerBound',0);
p.Objective=sum(x);
a=[35,40,50,45,55,30];
con=[x(1)+x(6)>=35];
for k=1:5
con=[con,x(k)+x(k+1)>=a(k+1)];
end
p.Constraints=con; %只有一类大于等于约束,不加标签
[s,f]=solve(p),xx=s.x
例2:
clc,clear
c=readmatrix('data2.txt');
p=optimproblem;
x=optimvar('x',4,5,'Type','integer','LowerBound',0,'UpperBound',1);
p.Objective=sum(sum(c.*x));
p.Constraints.con1=sum(x,1)==1;
p.Constraints.con2=sum(x,2)<=2;
[sol,fval]=solve(p),sol.x