ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

背包问题-分支限界法求解

背包问题-分支限界法求解 1. 分支限界法的基本概念, 与背包问题实例, 相关于10.21.1, 组合优化问题的基础概念。组合优化问题是关乎在有限的解空间范围之内, 去找到可以满足某种约束条件的最优解的问题。这些问题通常出现在资源分配、路径规划和背包问题等场景中。约束条件, 是那种限定了可行解的条件, 比如说, 在背包问题里, 物品的总重量是不可以超过背包容量标点。可行解在所有解中满足约束条件的解称为可行解。最理想的解答是: 于能够实行的解答里面, 让目标函数达成最大数值的那种解答针对最大化的问题而言, 或者是达成最小数值的那种解答针对最小化的问题来说。1.2 背包问题示例分析背包问题属于典型的组合优化问题, 求解此问题的过程, 涉及到物品要怎样挑选才妥当, 在满足约束条件的状况下, 能让物品的总价值实现最大化, 是这样的情况。选取物品1时: 其总重量是2, 价值为1。选取物品2以及物品3后: 总重量为3加上4算出等于7 , 价值为3加上5得出等于8。对可行性予以验证: 要是当下选择致使重量小于或者等于10 , 那么此组合就是可行解。1.3代价函数的定义跟性质。代价函数, 是一个估计函数, 它被用来衡量, 当前节点, 以及其包含的子树里, 解的上界, 亦或是下界。代价函数具有助力在搜索进程里进行剪枝的作用, 也就是能够预先判定某些分支是不是值得持续去探索。代价函数具备的性质, 代价函数所涉及的剪枝, 要是节点A的代价函数值已然低于当下最优解, 那么就能够即刻把搜索给停止掉。1.4界Bound所拥有的概念以及更新内容, 什么是界呢?界的初始值1.5 背包问题实例分析1.5.1 问题描述与建模目标要选出装入背包的物品, 要让总重量不超过10, 在此前提下, 要让总价值达到最大化。目标函数约束条件2乘以x一, 加上3乘以x二, 加上4乘以x三, 加上7乘以x四, 小于或等于10 , 其中x i属于自然数集合 , 这里i等于1 , 2 , 3 , 4。1.5.2 代价函数的设定单位重量价值的排序计算每个物品的单位重量价值 \(v_i / w_i\)代价函数公式∆是代价函数里的关键部分, 此项功用用以估计, 背包里剩余的容量的最大利用潜力。F(x) \text{已装入价值} \Delta\Δ等于, 背包剩余的重量乘以, v下标k加1 , 除以, w下标k加1 , 的结果。针对某一节点, 也就是该节点为\(x_1\), 以及\(x_2\), 还有\(\dots\), 再到\(x_k\), 这意味着前面的\(k\)种物品已然做出了选择, 然而剩余的\(n - k\)种物品仍未确定是不是要装入。代价函数的表达形式如下:\(F(x)\)等于, 从\(i 1\)到\(k\)对\(v_i\cdot x_i\)的累加, 再加上, 通过, 用表示\(b\)]减去从\(i 1\)到\(k\)对\(w_i\cdot x_i\)的累加之后, 此得出的差乘以\(\frac{v_{k 1}}{w_{k 1}}\), 这样的结果。代价函数的计算逻辑排序物品把所有物品, 依据单位重量价值\(v_i / w_i\), 从大到小进行排序。将排序后的物品, 优先去尝试装入, 以此来保证在剩余空间当中, 最大化背包的价值。剩余空间的估计假设背包剩余空间是这样一个情况, 即 \(b\) 去减去各项 \(w_i\) 与 \(x_i\) 乘积的和 , 这里 \(i\) 从 \(1\) 到 \(k\)。要是剩余空间足够大, 那么就能够装入单位重量价值最高的物品。剩余价值的估计1.针对5.3背包问题所用的分支限界法实例的推导进程, 讲述1.5.3.1决策树的相关演算流程分析 , 这里的演算流程分析又是针对该决策树的推导操作予以剖析。本次推导运用深度优先搜索DFS跟代价函数相联合的办法, 于搜索树里动态算出每个节点的价值上限, 以此保障高效剪枝。我们由根节点起始逐个装入物品, 渐渐算出背包的剩余容量与价值, 依照状态判定是否持续探索或者实施剪枝。背包问题里, 每层节点意味着对某物品的选择, 也就是装入一定量该物品, 亦或是不装入。伴随搜索开展, 剩余容量渐渐下降, 代价函数给每条路径给出一个潜在价值上界, 当上界比不上当前最佳解时, 马上进行剪枝。1.5.3.2 推导过程详细分析
返回列表