作业帮 > 综合 > 作业

求matlab高手帮我解决一个整数线性规划问题,急!

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/09/13 23:12:49
求matlab高手帮我解决一个整数线性规划问题,急!

由于是整数规划,可以用穷举的方法但是穷举本体穷举有2.7089e+013种可能
所以先求出每天符合的可能减少穷举的量
A=[ 6 0 6 0 7;
0 6 0 6 0;
4 8 3 0 5;
5 5 6 0 4;
3 0 4 8 0;
0 6 0 6 3];
p=[10,10,9.9,9.8,10.8,11.3];
maxm=zeros(1,size(A,2));
TT=cell(size(A,1),1);
for jj=1:size(A,2)%先排每一天的班,找出每天符合条件的排班
ind=find(A(:,jj)>0);
maxn=length(ind);
Tjj=zeros(size(A,1),1);
stack=zeros(size(A,1),1);
TT{jj}=[];
maxm(jj)=0;
n=1;
while(n~=0)
stack(ind(n))=stack(ind(n))+1;
if stack(ind(n))==1,Tjj(ind(n))=0;else Tjj(ind(n))=stack(ind(n));end
if stack(ind(n))>A(ind(n),jj)
stack(ind(n))=0;
n=n-1;
else
if n==maxn
if sum(Tjj)==14&&sum(Tjj(5:6)>0)>=1&&sum(Tjj>0)maxm(n)
stack((n))=0;
n=n-1;
else
T(:,n)=TT{n}(:,stack(n));
if n==size(A,2)
if all(sum(T>0,2)=8)&&all(sum(T(5:6,:),2)>=7)
cost=sum(p*T);
if cost