MATLAB编程0-1规划问题

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB 语言应用————最优化

MATLAB 编程线性规划问题

第二章0-1规划

MATLAB 的0-1规划函数bintprog 是针对下述0-1规划:

12min *.**[,,],01,1,2,n i

z

f x s t A x b

aeq x beq

x x x x x or i n L L ()解0-1规划()的0-1规划函数bintprog 表述为

[x, fv, exitflag, output]= bintprog(f,A,b,aeq, beq)

()输入部分:

f 为目标函数,实为目标函数的系数。

A 为()中的不等式约束矩阵

b 为()中的不等式约束向量

aeq 为()中的等式约束矩阵

beq ()中的等式约束向量

输出部分:

x 为最优解fval 为最优值

exitflag 为输出标志

exitflag=1,有最优解exitflag=0,迭代次数超过设定次数exitflag==-2,约束区域不可行

exitflag=-3,问题无解

output ,表明算法和迭代情况如果我们不需要了解迭代情况和存储情况,可将

0-1规划函数bintprog 写成[x, fv, ex]= linprog(f,A,b,aeq, beq) ()

在函数bintprog 中,输入或输出元素的符号可以变更,如()中

ex 仍为输出标志,但元素的符号位置不能变更。在输出部分,如有缺者,可用

[]号代替。函数bintprog 的使用要点与函数linprog 的使用要点相同。

函数是为求目标函数的最小值而设置的,

如要求函数的最大值,可先求出()f 的最小值fv ,则fv

必为f 的最大值。

例一用函数bintprog 求解下列0-1规划用MA TLAB 语言编程如下:

f=-[1,2,2,-6],-4

A=[3,2,-1,1,2;2,4,-2,-1,-2];

b=[5,5];

[x,fv,ex]=bintprog(f,A,b,[],[]);

X,-fv

求解如下

ex=1,fv=-5, x=[1,1,1,0,0]

例二用函数bintprog求解下列0-1规划用MA TLAB语言编程如下:

f=[3,7,-1,1]

A=[-2,1,-1,1;-1,1,-6,-4];

A=[A;-5,-3,0,-1]

b=-[1,8,5];

[x,fv,ex]=bintprog(f,A,b,[],[]);

求解如下ex=1,fv=-3, x=[1,0,1,,1]

例三用函数bintprog求解下列0-1规划用MA TLAB语言编程如下:

f=[15,18,21,19,23,22,26,17,16];

z2=zeros(1,2); z3=zeros(1,3);

z6=zeros(1,6); o3=zeros(1,3);

q=[o3,z6;z3,o3,z3;z6,o3];

q=[q;1,z2, 1,z2, 1,z2];

q=[q;0,1,z2,1,z2,1,0];

q=[q;z2,1, z2,1, z2,1];

bq=ones(6,1)

[x,fv,ex]=bintprog(f,[],[],q,bq);

求得

Ex=1,fv=53, x=[0,1,0,1,0,0,0,0,1]

相关文档
最新文档