1、运 筹 学第五章 动态规划的背包问题1 背包问题的数学模型背包问题的求解2主 要 内 容有一个徒步旅行者,其可携带物品重量的限度为 a 公斤,设有 n 种物品可供他选择装入包中。已知每种物品的重量及使用价值(作用),问此人应如何选择携带的物品(各几件),使使用价值最大?一、背包问题的数学模型物品 1 2 j n重量(公斤 /件) a1 a2 aj an每件使用价值 c1 c2 cj cn这就是背包问题。类似的还有工厂里的下料问题、运输中的货物装载问题等。一、背包问题的数学模型设 xj 为第 j 种物品的装件数(非负整数)则问题的数学模型如下:).2.1(0m ax1njxaxaxcZjnijj
2、jnjjj 且为整数一、背包问题的数学模型用动态规划方法求解,令fk(y) = 总重量不超过 y 公斤,包中只装有前 k 种物品时的最大使用价值。其中 y 0, k 1,2, , n 。 所以问题就是求 fn(a)一、背包问题的数学模型其递推关系式为: nkxayfxcyf kkkkkayxkkk 2)(m a x)( 10 其中当 k=1 时,有:的最大整数表示不超过其中1111111 , )(ayayayxaycyf一、背包问题的数学模型例题:求下面背包问题的最优解 ,其可携带物品重量的限度为 5 公斤,有 3 种物品可供他选择装入包中。问此人应如何选择携带的物品(各几件),使使用价值最大
3、?物品 1 2 3重量(公斤) 3 2 5使用价值 8 5 12二、背包问题的求解且为整数0,55231258m a x321321321xxxxxxxxxZ解: a=5 ,数学模型如下:二、背包问题的求解根据数学模型关键是求 f3(5) )55(12m a x)5( 323503333xfxfxax整数二、背包问题的求解 )1()0(223231032355032350333333333)0(12),5(0max)55(12max)55(12max)55(12max)5(xxxxxxaxffxfxxfxxfxf ,整数整数二、背包问题的求解 5 5 )( 2)1()0(1112122,102
4、12250212502222222222)1(10),3(5),5(0max)25(max)25(max)25(5max)5(xxxxxxxaxfffxfxxfxxfxf,整数整数二、背包问题的求解)0( 0308)0()0( 0318)1()1( 8338)3()1( 8358)5(1111111111111111xxcfxxcfxxcfxxcf二、背包问题的求解 )1,1(1310,85,8m a x)1(10),3(5),5(0m a x)5(212)1()0(1112222xxffffxxx )( 二、背包问题的求解 )0,0(0)0( )0(0m a x )20(5 m a x )2
5、0(5 m a x )20(5 m a x)0(211 )0( 12120212 200212 0022222222xxffxfxxfxxfxfxxxxxax整数整数二、背包问题的求解 )0,1,1(13012,130m a x)0(12),5(0m a x)5(321)1()0(22333xxxfffxx所以,最优解为 X( 1 , 1, 0), 最优值为 Z = 13。二、背包问题的求解练习 1:某厂生产三种产品,各种产品重量与利润的关系如表所示。现将此三种产品运往市场出售,运输能力总重量不超过 6 吨,问如何安排运输,使总利润最大?种类 1 2 3重量(吨 /公斤) 2 3 4 单件利润(元) 80 130 180最优方案: X1=( 0,2,0) X2 =( 1,0,1) Z=260练习 2:求下列问题的最优解且为整数0,10543654m a x321321321xxxxxxxxxZX=(2. 1. 0) 最优值为 Z = 13整数规划的求解:分枝定界法,割平面法,动态规划法。小 结1、 背包问题的数学模型2、 背包问题的求解