BnB
在最优化理论中,分支界定算法(Branch-and-Bound, BnB)通常是用于求解离散组合优化问题,它通过树遍历的方法对候选解进行系统的枚举。
简要阐述其基本原理:在搜索树中,每一个节点与一个集合相关,该集合是求解问题所定义的可行集中的一个子集。对于每一个节点,用相应的子集来表示一个子问题,并给出其上界和下界来估计该子问题的最优解。
在 BnB 算法的每一次迭代中,根据节点选择规则选择一个节点,该规则通常与边界相关。然后,将选择的节点(关联集)进一步分支为两个子节点(子集)。.随着树结构的不断增长,可行集被逐步分割成目标值改进后的更小的子集。最近它也被用于了连续优化问题的求解当中。特别是,遵循 BnB 原则,在每次迭代中更新所选子问题的边界,直到收敛,即,上界和下界的差为 0。
总而言之,对于 BnB 算法,有三个至关重要的因素需要精心设计:
- 针对分支的选择节点
- 剪枝规则
- 边界函数
子集
恒模约束(unit-modulus-constraints, UMCs)对应的可行集为
∣
v
i
∣
=
1
\vert v_i \vert=1
∣vi∣=1,对应的就是整个单位圆环。如下图右,子集对应的是一段圆弧,如何刻画这段圆弧,可以用一个角度上界和下界来表示:
l
i
l_i
li and
u
i
u_i
ui。
可以记作
v
i
∈
A
i
v_i \in \mathcal{A}_i
vi∈Ai。
多个元件的约束记作
A
=
Π
i
A
i
\mathcal{A} = \Pi_{i} \mathcal{A}_i
A=ΠiAi
BnB subproblem(注意是子问题)