背包问题学习教案.pptx
上传人:王子****青蛙 上传时间:2024-09-12 格式:PPTX 页数:46 大小:1.7MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

背包问题学习教案.pptx

背包问题学习教案.pptx

预览

免费试读已结束,剩余 36 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

会计学问题(wèntí)概述最常见的背包(bèibāo)问题是0-1背包(bèibāo)问题,可描述为:给定n个物品和一个背包(bèibāo),每个物品i的重量为wi,价值为pi(i=1,2,…,n),背包(bèibāo)能容纳的物品重量为c,且总价值达到最大。在0-1背包(bèibāo)问题的基础上,对每种物品选择的数量予以不同限定,或对背包(bèibāo)的数量或对背包(bèibāo)能放入的物品进行多维限定(如对背包(bèibāo)的载重量和容积进行二维限制就变为二维背包(bèibāo)问题),就会得出各种类型的背包问题。下面,将给出各种背包(bèibāo)问题的数学模型。1.0-1背包问题(wèntí)记pj,wj(j=1,2,…,n)分别为物品的价值和重量,c为背包总重量限制,变量则0-1背包问题(wèntí)模型可写成如下的0-1整数线性规划形式:2.有界背包问题记pj,wj(j=1,2,…,n)分别为第j种物品的价值和重量,第j种物品的数量共有mj个,c为背包总重量限制,此时的背包问题为有界背包问题,即每一种物品装入到背包的数量上界为mj个,其数学模型为:有界背包问题可以转换为0-1背包问题,但转换后并不能降低问题的求解(qiújiě)难度。3.无界背包问题(wèntí)记pj,wj(j=1,2,…,n)分别为第j种物品的价值和重量,第j种物品的数量没有限制,即第j种物品的数量在理论上没有限制,c为背包总重量限制,此时的背包问题(wèntí)为无界背包问题(wèntí),其数学模型如下:虽然第j种物品的数量在理论上没有限制,但实际上由于背包总重量限制为c,因此实际上第j种物品(wùpǐn)的装入数量最多为:由此可看出,无界背包问题可以转换为有界背包问题,又由于有界背包问题可转换为0-1背包问题,因此无界背包问题也可转换为0-1背包问题。4.多维背包问题前面介绍的背包问题中,物品(wùpǐn)装入到背包中时,背包都只有一个限制(如装入到背包中的物品(wùpǐn)总重量不能超过背包的总载重量),这种背包问题称为一维背包问题。若物品装入到背包中时,背包有多个限制就称为多维背包问题,又称多约束(yuēshù)背包问题。比如,对背包的载重量和容积进行二维限制就变为二维背包问题,设背包有d个限制,其限制量分别c1,c2,…,cd记pj(j=1,2,…,n)分别为第j种物品的价值wij(i=1,2,…,d;j=1,2,…,n)分别为第j种物品的第i维属性的重量,则其数学模型为:5.多背包问题若存在多个背包问题且可以把物品装入到不同的背包中,这就是多背包问题。多背包问题中的物品数量可以是0-1、有界、无界等各种情况,下面给出每个物品数量(shùliàng)是0或1的多背包问题数学模型。记pj,wj(j=1,2,…,n)分别为物品的价值和重量第j种物品数为1,共有m个背包,ci为第i个背包的总重量限制,每个物品可装入任一背包内,变量为则多背包问题的模型可写成如下形式:6.子集(zǐjí)和问题在0-1背包问题中,令pj=wj(j=1,2,…,n),就得到子集(zǐjí)和问题,其数学模型为:常用求解技术常用的背包问题经典求解技术(不含启发式算法)主要有以下几种。(1)分支定界法:通过分支来达到把问题所有可能分成各种情况,通过计算整个问题的下界和各种分支情况的上界来达到剪支(对目标最大化问题来说,当一种分支情况的上界小于整个问题的下界时就把这个分支减掉)的目的,从而减少搜索空间,获得最优解得一种搜索方法。对于没有一般性好解法(jiěfǎ)的多种问题,分支定界法是用途很广泛的搜索方法,但不同问题的具体实现各异,技巧性较强。(2)近似算法:给出一个算法并通过数学手段(shǒuduàn)证明该算法的近似比为δ,从而得出该近似比下的近似算法。(3)动态规划法:将待求解问题分解成若干个相互重叠的子问题,每个子问题对应决策过程的一个阶段。一般来说,子问题的重叠关系表现为对给定问题求解的递推关系(也就是动态规划函数),对子问题求解一次病将解填入表中,当需要再次求解此子问题时,可以通过查表获得该子问题的解,从而避免了大量重复计算。(4)降阶法(或归约法):通过数学论证将问题实例中的部分变量固定在某一个值,如0-1背包可以(kěyǐ)通过论证确定某些物品一定要装入到背包中才能取得最优解,而某些物品一定不能装入到背包中才能取得最优解,以此达到减小问题规模的目的,再结合其他方法对已经降阶后的规模更小的数据实例进行求解。数据实例分类为测试背包算法的性能,需要对算法进行