Matlab求解线性规划和整数规划问题

2018-11-21 21:16

1.线性规划问题:min f*x

s.t. A*x<=b Aeq*x=beq lb<=x<=ub

其中:A为不等式约束的系数矩阵,Aeq表示等式约束的系数矩阵,b表示不等式约束的常向量,beq表示等式约束的常向量,lb和ub表示自变量的上下范围。

求解函数:

linprog(f,A,b,Aeq,beq,lb,ub)

其中: f,A,b ,Aeq,beq,lb,ub的定义如上。 2.整数规划问题:利用函数(linprog)

先把BranchBound函数存在matlab的路径下,BranchBound函数的内容如下:

function [y,fval]=BranchBound(c,A,b,Aeq,beq) NL=length(c); UB=inf; LB=-inf; FN=[0]; AA(1)={A}; BB(1)={b}; k=0; flag=0; while flag==0;

[x,fval,exitFlag]=linprog(c,A,b,Aeq,beq); if (exitFlag == -2) | (fval >= UB) FN(1)=[];

if isempty(FN)==1 flag=1; else k=FN(1); A=AA{k}; b=BB{k}; end else for i=1:NL

if abs(x(i)-round(x(i)))>1e-7 kk=FN(end); FN=[FN,kk+1,kk+2]; temp_A=zeros(1,NL); temp_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; end end

if (i==NL) & (abs(x(i)-round(x(i)))<=1e-7) UB=fval; y=x; FN(1)=[]; if isempty(FN)==1 flag=1; else k=FN(1); A=AA{k}; b=BB{k}; end end end end

y=round(y); fval=c*y;

再利用命令[y,fval]=BranchBound(c,A,b,Aeq,beq)即可。


Matlab求解线性规划和整数规划问题.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于飞思卡尔单片机的汽车防盗器设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: