MATLAB编程0-1规划问题

时间:2022-07-14 01:11:15 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
.

MATLAB语言应用————最优化 MATLAB编程线性规划问题 第二章0-1规划

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

minzf*xs.tA*xbaeq*xbeq

x[x1,x2,xn],xi0or1,i1,2,

2.1

n

0-1规划(2.1)的0-1规划函数bintprog表述为 [x, 2.2 输入部分:

f为目标函数,实为目标函数的系数。 A为(2.1)中的不等式约束矩阵 b为(2.1)中的不等式约束向量 aeq为(2.1)中的等式约束矩阵 beq2.1)中的等式约束向量 输出部分:

x为最优解 fval为最优值

exitflag为输出标志 exitflag=1,有最优解 exitflag=0,迭代次数超过设定次数 exitflag==-2,约束区域不可行 exitflag=-3,问题无解 output,表明算法和迭代情况

如果我们不需要了解迭代情况和存储情况,可将0-1规划函数bintprog写成 [x, 2.3

在函数bintprog中,输入或输出元素的符号可以变更,如(2.3)中ex仍为输出标志,但元素的符号位置不能变更。在输出部分,如有缺者,可用[]号代替。 函数bintprog的使用要点与函数linprog的使用要点相同。

函数是为求目标函数的最小值而设置的,如要求函数的最大值,可先求出(f)的最小值fvfv必为f的最大值。

精品

fv,

ex]=

linprog(f,A,b,aeq,

fv,

exitflag,

output]=

bintprog(f,A,b,aeq,

beq)

beq)


例一 用函数bintprog求解下列0-1规划

maxzx12x22x36x44x5



s.t3x12x2x3x45x252x

14x22x3x42x55xi01i=1,2,

5

MATLAB语言编程如下: 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规划

minz3x17x2x3x4s.t2x1x2x3x41x1x26x34x48 5x13x2x45xi01i=1,2,

4

MATLAB语言编程如下: 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规划

.

精品


.

minz15x118x221x319x423x522x626x717x816x9S.t

x1x2x31x4x5x61x7x8x91x1x4x71x2x5x81x3x6x91xi01,i1,2

9



MATLAB语言编程如下:

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] 如有侵权请联系告知删除,感谢你们的配合!

精品


本文来源:https://www.wddqw.com/doc/c285510fb81aa8114431b90d6c85ec3a87c28b05.html