資源描述:
《matlab求解線(xiàn)性規(guī)劃和整數(shù)規(guī)劃問(wèn)題》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、1.線(xiàn)性規(guī)劃問(wèn)題:minf*xs.t.A*x<=bAeq*x=beqlb<=x<=ub其中:A為不等式約束的系數(shù)矩陣,Aeq表示等式約束的系數(shù)矩陣,b表示不等式約束的常向量,beq表示等式約束的常向量,lb和ub表示自變量的上下范圍。求解函數(shù):linprog(f,A,b,Aeq,beq,lb,ub)其中:f,A,b,Aeq,beq,lb,ub的定義如上。2.整數(shù)規(guī)劃問(wèn)題:利用函數(shù)(linprog)先把BranchBound函數(shù)存在matlab的路徑下,BranchBound函數(shù)的內(nèi)容如下:function[y,fval]=BranchBound(c,A,b,Aeq,beq)NL=le
2、ngth(c);UB=inf;LB=-inf;FN=[0];AA(1)={A};BB(1)=;k=0;flag=0;whileflag==0;[x,fval,exitFlag]=linprog(c,A,b,Aeq,beq);if(exitFlag==-2)
3、(fval>=UB)FN(1)=[];ifisempty(FN)==1flag=1;elsek=FN(1);A=AA{k};b=BB{k};endelsefori=1:NLifabs(x(i)-round(x(i)))>1e-7kk=FN(end);FN=[FN,kk+1,kk+2];temp_A=zeros(1,NL);t
4、emp_A(i)=1;temp_A1=[A;temp_A];AA(kk+1)={temp_A1};b1=[b;fix(x(i))];BB(kk+1)={b1};temp_A2=[A;-temp_A];AA(kk+2)={temp_A2};b2=[b;-(fix(x(i))+1)];BB(kk+2)={b2};FN(1)=[];k=FN(1);A=AA{k};b=BB{k};break;endendif(i==NL)&(abs(x(i)-round(x(i)))<=1e-7)UB=fval;y=x;FN(1)=[];ifisempty(FN)==1flag=1;elsek=FN(1);
5、A=AA{k};b=BB{k};endendendendy=round(y);fval=c*y;再利用命令[y,fval]=BranchBound(c,A,b,Aeq,beq)即可。