1.(整数规划)规划中的变量(部分或全部)限制为整数,主要用到bintprog函数和intlinprog函数。
1.1指派问题:
ex:
c=[3 8 2 10 3;8 7 2 9 7;6 4 2 7 5
8 4 2 3 5;9 10 6 9 10];
c=c(:);
a=zeros(10,25);
for i=1:5
a(i,(i-1)*5+1:5*i)=1;
a(5+i,i:5:25)=1;
end
b=ones(10,1);
[x,y]=bintprog(c,[],[],a,b);
x=reshape(x,[5,5]),y
显示为
x =
0 0 0 0 1
0 0 1 0 0
0 1 0 0 0
0 0 0 1 0
1 0 0 0 0
1.2.intlinprog 函数,用于进行整数规划和整数非整数的混合规划。
使用形式如下:
x = intlinprog(f,intcon,A,b)
x = intlinprog(f,intcon,A,b,Aeq,beq)
x = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)
x = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub,options)
x = intlinprog(problem)
[x,fval,exitflag,output] = intlinprog(_)
其中,f为规划目标,intcon为包含整数变量下标的向量。A、b为不等式约束条件,Aeq、Beq为等式约束条件,lb、ub为规划变量的上下限,有关其他几项参数的具体介绍可以在任意版本MATLAB中输入help linprog回车来查看,这里只介绍