1、规划方案的隐枚举法-(2)专业课程实践论文题目:0-1规划隐枚举法 一、算法理论01规划在整数规划中占有重要地位,一方面由于许多实际问题,例如指派问题、选地问题、送货问题都可归结为此类规划,另一方面任何有界变量整数规划都与01规划等价,用01规划办法还可以把各种非线性规划问题表达到整数规划问题,因此不少人致力于这个方向研究。求解01规划惯用办法是分枝定界法,对各种特殊问题尚有某些特殊办法。线性模型中,当变量取值只能是“0”或“1”时,称之为“0-1规划问题”。有种极其简朴解法,就是将变量取值为0或1所有组合列出,然后分别代入目的函数,选出其中能使目的函数最优化组合,即为最优解。但是真这样会做诸
2、多无用功,挥霍大量资源,因此,需要改进办法。本文重要简介隐枚举法应用原理,旨在剖析其“隐”在何处。从而协助读者更好地应用这种办法。和线性规划问题同样,一方面需要将模型原则化。原则化对0-1规划问题提出四点规定:1.目的函数为最小优化2.目的函数中变量系数都为正3.在目的函数中,变量按系数值从小到大排列,则约束函数中,变量排列顺序也做相应变化。4.所有变量均为0或10-1线性规划基本形式是 二、算法框图三、算法程序function intx,intf = ZeroOneprog(c,A,b,x0)%目的函数系数向量,c%不等式约束矩阵,A%不等式约束右端向量,b%初始整数可行解,x0%目的函数取
3、最小值时自变量值,intx%目的函数最小值,intf sz = size(A);if sz(2) = b %与否满足约束条件 f_tmp = c*x1; if f_tmp = b f_tmp = c*x1; if f_tmp c=1 2 3 1 1; A=2 3 5 4 7;1 1 4 2 2; b=8;5; x0=1;1;1;1;1; intx,intf=ZeroOneprog(c,A,b,x0)所得成果如下:例2求下面0-1线性规划解:在MATLAB命令框在输入下列命令: c=-3,2,-5; A=-1,-2,1;-1,-4,-1;-1,-1,0;-4,0,-1; b=-2;-4;-3;-6; x0=1;0;0; intx,intf=ZeroOneprog(c,A,b,x0)例3求解下面0-1规划解:在MATLAB命令框在输入下列命令: c=3,7,-1,1;A=2,-1,1,-1;1,-1,6,4;5,3,0,1;b=1;8;5; x0=1;1;1;1; intx,intf=ZeroOneprog(c,A,b,x0)例4求解下面0-1规划解:在MATLAB命令框在输入下列命令: c=-6,-2,-3;A=-1,-2,-1;3,-5,1;-2,-1,-1;b=-3;2;-4;x0=1;0;0;intx,intf=ZeroOneprog(c,A,b,x0)