Optimization 分支和绑定-存储什么

Optimization 分支和绑定-存储什么,optimization,branch-and-bound,Optimization,Branch And Bound,我在不止一本书(包括Wolsey)中读到,在实现分支绑定算法时,不需要存储整个树,只需要存储活动节点列表(据我所知,是叶节点) 问题是,如果我没有每个祖先的界限,我就无法理解如何在分支后计算出新的界限 对此进行一些澄清将不胜感激。好的,让我们做一个例子。假设您正在实现一个相当简单的整数程序解算器,该解算器尝试通过解其LP松弛来解二进制整数程序,如果它没有得到整数解,则会在某个变量上分支。假设您有一个最大化问题 让我们考虑一下在一个分支之后发生了什么。您解决了根子问题,并假设它为您提供了目标值为1

我在不止一本书(包括Wolsey)中读到,在实现分支绑定算法时,不需要存储整个树,只需要存储活动节点列表(据我所知,是叶节点)

问题是,如果我没有每个祖先的界限,我就无法理解如何在分支后计算出新的界限


对此进行一些澄清将不胜感激。

好的,让我们做一个例子。假设您正在实现一个相当简单的整数程序解算器,该解算器尝试通过解其LP松弛来解二进制整数程序,如果它没有得到整数解,则会在某个变量上分支。假设您有一个最大化问题

让我们考虑一下在一个分支之后发生了什么。您解决了根子问题,并假设它为您提供了目标值为10的分数解。然后你在一个变量上分支,给你一个目标值为9的左子问题和目标值为8的右子问题

我们从根子问题得到了10的全局界。我们也知道每个积分解都存在于左子问题或右子问题中,并且我们知道左子问题没有解优于9,右子问题没有解优于8。对于根子问题,没有比9更好的解决方案,即使根LP松弛不足以告诉我们这一点


通常,您的最佳全局界是任何活动子问题的最坏界。深奥的子问题是不相关的,因为它们不能包含一个比你的现任者具有更好的客观价值的可行解决方案。分支的子问题是不相关的,因为它们的边界应该由其子问题边界中最弱的子问题边界控制。

好的,让我们做一个例子。假设您正在实现一个相当简单的整数程序解算器,该解算器尝试通过解其LP松弛来解二进制整数程序,如果它没有得到整数解,则会在某个变量上分支。假设您有一个最大化问题

让我们考虑一下在一个分支之后发生了什么。您解决了根子问题,并假设它为您提供了目标值为10的分数解。然后你在一个变量上分支,给你一个目标值为9的左子问题和目标值为8的右子问题

我们从根子问题得到了10的全局界。我们也知道每个积分解都存在于左子问题或右子问题中,并且我们知道左子问题没有解优于9,右子问题没有解优于8。对于根子问题,没有比9更好的解决方案,即使根LP松弛不足以告诉我们这一点

通常,您的最佳全局界是任何活动子问题的最坏界。深奥的子问题是不相关的,因为它们不能包含一个比你的现任者具有更好的客观价值的可行解决方案。已经分支的子问题是不相关的,因为它们的边界应该由其子问题的最弱边界控制