最优化之0-1规划的隐枚举法考试题

最优化之0-1规划的隐枚举法考试题

代码:

function [intx,intf] = ZeroOneprog(c,A,b,x0)

%目标函数系数向量,c

%不等式约束矩阵,A

%不等式约束右端向量,b

%初始整数可行解,x0

%目标函数取最小值时的自变量值,intx

%目标函数的最小值,intf

sz = size(A);

if sz(2)

[intx,intf] = Allprog(c,A,b); %穷举法

else

[intx,intf] = Implicitprog(c,A,b,x0); %隐枚举法

end

function [intx,intf] = Allprog(c,A,b)

sz_A = size(A);

rw = sz_A(1);

col = sz_A(2);

minf = inf;

for i=0:(2^(col)-1) %枚举空间

x1 = myDec2Bin(i,col); %十进制转化为二进制

if A*x1 >= b %是否满足约束条件

f_tmp = c*x1;

if f_tmp

minf = f_tmp;

intx = x1;

intf = minf;

else

continue ;

end

else

continue ;

end

end

function [intx,intf] = Implicitprog(c,A,b,x0)%隐枚举法 sz_A = size(A);

rw = sz_A(1);

col = sz_A(2);

minf = c*x0;

A = [A;-c];

b = [b;-minf]; %增加了一个限制分量

for i=0:(2^(col)-1)

x1 = myDec2Bin(i,col);

if A*x1 >= b

f_tmp = c*x1;

if f_tmp

minf = f_tmp;

b(rw+1,1) = -minf; %隐枚举法与穷举法的区别在于此句 intx = x1;

intf = minf;

else

continue ;

end

else

continue ;

end

end

function y = myDec2Bin(x,n) %十进制转化为二进制

str = dec2bin(x,n);

for j=1:n

y(j) = str2num(str(j));

end

y = transpose(y);

题目:求下列0-1线性规划

max z =3x 1-2x 2+5x 3

⎧x 1+2x 2-x 3≤2⎪⎪x 1+4x 2+x 3≤4 ⎪s .. t ⎨x 1+x 2≤3

⎪4x +x ≤6⎪13

⎪⎩x 1, x 2, x 3为0或1

解:打开MATLAB 软件,编写程序中写到的m 文件并保存,其中:

对于min, ≤的题,不改数输入即可,对于max, ≥的题,不改目标函数,将非等式约束所有数取负

最优化之0-1规划的隐枚举法考试题

代码:

function [intx,intf] = ZeroOneprog(c,A,b,x0)

%目标函数系数向量,c

%不等式约束矩阵,A

%不等式约束右端向量,b

%初始整数可行解,x0

%目标函数取最小值时的自变量值,intx

%目标函数的最小值,intf

sz = size(A);

if sz(2)

[intx,intf] = Allprog(c,A,b); %穷举法

else

[intx,intf] = Implicitprog(c,A,b,x0); %隐枚举法

end

function [intx,intf] = Allprog(c,A,b)

sz_A = size(A);

rw = sz_A(1);

col = sz_A(2);

minf = inf;

for i=0:(2^(col)-1) %枚举空间

x1 = myDec2Bin(i,col); %十进制转化为二进制

if A*x1 >= b %是否满足约束条件

f_tmp = c*x1;

if f_tmp

minf = f_tmp;

intx = x1;

intf = minf;

else

continue ;

end

else

continue ;

end

end

function [intx,intf] = Implicitprog(c,A,b,x0)%隐枚举法 sz_A = size(A);

rw = sz_A(1);

col = sz_A(2);

minf = c*x0;

A = [A;-c];

b = [b;-minf]; %增加了一个限制分量

for i=0:(2^(col)-1)

x1 = myDec2Bin(i,col);

if A*x1 >= b

f_tmp = c*x1;

if f_tmp

minf = f_tmp;

b(rw+1,1) = -minf; %隐枚举法与穷举法的区别在于此句 intx = x1;

intf = minf;

else

continue ;

end

else

continue ;

end

end

function y = myDec2Bin(x,n) %十进制转化为二进制

str = dec2bin(x,n);

for j=1:n

y(j) = str2num(str(j));

end

y = transpose(y);

题目:求下列0-1线性规划

max z =3x 1-2x 2+5x 3

⎧x 1+2x 2-x 3≤2⎪⎪x 1+4x 2+x 3≤4 ⎪s .. t ⎨x 1+x 2≤3

⎪4x +x ≤6⎪13

⎪⎩x 1, x 2, x 3为0或1

解:打开MATLAB 软件,编写程序中写到的m 文件并保存,其中:

对于min, ≤的题,不改数输入即可,对于max, ≥的题,不改目标函数,将非等式约束所有数取负


相关文章

  • 运筹学心得体会
  • 运筹学学习心得体会 (2010-01-18 18:01:14) 转载▼ 标签: 杂谈 古人作战讲"夫运筹帷幄之中,决胜千里之外".在现代商业社会中,更加讲求运筹学的应用.作为一名物流管理的学生,更应该能够熟练地掌握.运用 ...查看


  • 期末考试监考安排
  • 承 诺 书 我们仔细了解了中国大学生数学建模竞赛的竞赛规则. 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话.电子邮件.网上咨询等)与队外的任何人(包括指导教师)研究.讨论与赛题有关的问题. 我们知道,抄袭别人的成果是违反竞赛规 ...查看


  • 0-1规划中并行隐枚举法的实现方式
  • 第27卷第7期 2010年7月 计算机应用与软件 Co m puter Applicati o ns and Soft w are Vo l 27No . 7 Ju. l 2010 0 1规划中并行隐枚举法的实现方式 曾 艳 (华中师范大学 ...查看


  • 资源分配问题的求解方法
  • 资源分配问题的求解方法 [摘要]资源分配问题就是将一种或几种资源(原材料.资金.机器设备等)以最优的方式分配给若干个使用者,以获得最大的效益.它可以是静态规划问题,也可以通过构造动态规划模型求解.本文通过用单纯形法求解线性规划问题,用隐枚举 ...查看


  • 吉林大学16秋[物流工程]在线作业二
  • 一.单选题(共 10 道试题,共 40 分.) 1. 不属于按照物流活动所属性质分类的是() . 企业物流 . 社会物流 . 行业物流 . 生产物流 标准答案: 2. 下面不是物流系统建模方法的是(). . 优化方法 . 实验方法 . 模拟 ...查看


  • 数学建模垃圾场填埋
  • 2009-2010学年度第二学期 课程形成性考核报告 题目: 垃圾场填埋的优化设计问题 2010 年 6 月 20 日 论文题目:垃圾场填埋的优化设计问题 摘 要:垃圾填埋场是解决人们日常生活垃圾必不可少的条件, 建设填埋场在市 政府财政支 ...查看


  • 城市配送中心选址研究_刘晓惠
  • 物流平台 城市配送中心选址研究 刘晓惠 景清泉 王永成 北华大学交通建筑工程学院 [摘 要] 对配送中心选址进行初步研究.介绍了配送中心的概念.功能和城市配送中心选址研究的意义,阐述了物流配送中心的选址原则及选址步骤.分别在城市东.南.西. ...查看


  • 基于列生成算法的集装箱班轮运输网络优化
  • 龙源期刊网 http://www.qikan.com.cn 基于列生成算法的集装箱班轮运输网络优化 作者:吴琼 郑士源 朱太球 来源:<上海海事大学学报>2014年第01期 摘要: 为使集装箱班轮运输公司在相对较为稳定的航运网络 ...查看


  • 运筹学名词解释 1
  • 1.影子价格:当约束条件中的常数项增加一个单位时,最优目标函数值增加的数量称之为影子价格. 2.基:已知A是约束条件的m×n系数矩阵,其秩为m.若B是A中m×m阶非奇异子矩阵(即可逆矩阵,|B|≠0),则称B是线性规划问题中的一个基. 3. ...查看


热门内容