基于函数替换的双线性规划全局优化
摘要
本文提出了一种基于将双线性项转化为单变量初等函数的双线性规划全局优化方法。该替换方法将双线性项转移至附加的等式约束中。通过取对数运算分离这些约束中的复杂变量,最终通过对数线性约束的分段线性逼近和/或线性化进行松弛。
该变换生成了一个下界混合整数线性规划,与原始双线性规划结合用于全局优化算法中。该方法通过文献中的池问题进行了测试,所有测试问题均获得了全局最优解;然而,要使所提出的方案在计算上更高效,还需要更复杂的算法设计。
关键词 :全局优化,双线性规划,算法,初等函数,混合整数规划。
1. 引言
双线性规划的全局优化是优化领域中一项持续进行的研究工作。它在涉及水网络以及石油混合操作优化的应用中具有重要作用(艾哈迈托维奇和格罗斯曼,2010;米森纳和弗洛达斯 2009,法里亚和巴加耶维奇,2012)。目前对双线性问题进行全局优化的常用方法基于凸包络(麦考密克,1976),并结合空间分支定界搜索策略。一些更高效的算法通过引入更紧的凸松弛,采用对双线性项的分段线性松弛(卡鲁皮亚和格罗斯曼 2006,迈耶和弗洛达斯 2006)。Kolodziej 等.(2013)提出了 Teles 等.(2001)提出的多参数分解技术的推导过程,用于求解非凸双线性规划。作者所推导出的松弛方法在规模扩展方面优于依赖分段麦考密克包络的松弛方法。最后,Misener 等.(2011)提出了一种利用分段麦考密克包络对双线性项建模的松弛方法,该方法确保分段公式所需的二元变量数量随分段线性松弛中段数的增加呈对数增长。
在本研究中,我们专注于双线性问题的全局优化,其中双线性项是唯一非线性和非凸性的来源。本文的主要创新点在于通过单变量对数函数的凸包络来构建一个下界问题的表述。我们提出了一种简单算法,用于缩小原始非凸模型(作为上界问题)与其下界对应问题之间的间隙。最后,我们展示了数值研究的结果并进行了讨论。
2. 方法论
考虑如下形式的双线性规划问题(BLP):
$$
\begin{aligned}
\min_{x,y} \quad & c^T x + d^T y \
\text{s.t.} \quad & A x + B y \leq b \
& x \in X, \quad y \in Y
\end{aligned}
$$
其中 $ x \in \mathbb{R}^{n_x} $, $ y \in \mathbb{R}^{n_y} $, 集合 $ X $ 和 $ Y $ 为闭凸集(通常为多面体),目标函数和约束中的非线性项表现为双线性形式 $ x_i y_j $。假设双线性项是模型中唯一的非线性和非凸成分。
2.1 函数替换策略
我们引入一个新的变量 $ z_{ij} = \ln(x_i y_j) $ 来替代每一个双线性项 $ w_{ij} = x_i y_j $。通过取对数,可以将乘积分解为:
$$
z_{ij} = \ln x_i + \ln y_j
$$
此变换将原始双线性项转移到一个附加的等式约束中:
$$
w_{ij} = \exp(z_{ij}) = \exp(\ln x_i + \ln y_j)
$$
因此,原问题被重构为包含指数函数和对数函数的新形式,其中非线性仅出现在这些单变量初等函数中。
2.2 对数线性约束的松弛
由于 $ \ln x_i $ 和 $ \ln y_j $ 在定义域内是凹函数,其凸包络可用于构造下界逼近。对于每个 $ \ln x_i $,在其可行区间 $[x_i^L, x_i^U]$ 上采用分段线性逼近,使用一组断点 ${x_{i,k}}_{k=1}^{K_i}$ 构造凸包络。类似地处理 $ \ln y_j $。
由此得到的对数项被其凸包络代替,而指数项 $ \exp(z_{ij}) $ 则用其凹包络进行上界逼近,从而在整个结构中形成一个混合整数线性规划(MILP)松弛模型,作为原问题的下界估计。
2.3 下界模型构建
通过上述替换与松弛,原始非凸问题被转化为如下形式的MILP:
$$
\begin{aligned}
\min \quad & c^T x + d^T y \
\text{s.t.} \quad & A x + B y \leq b \
& \tilde{z}
{ij} \geq \text{conv}(\ln x_i) + \text{conv}(\ln y_j) \
& w
{ij} \leq \text{conc}(\exp(\tilde{z}
{ij})) \
& x \in X, \; y \in Y, \; w
{ij} \approx x_i y_j
\end{aligned}
$$
其中 $\text{conv}(\cdot)$ 表示凸包络,$\text{conc}(\cdot)$ 表示凹包络,$ \tilde{z}_{ij} $ 是辅助变量。该MILP提供原BLP问题的一个有效下界。
3. 全局优化算法框架
所提出的全局优化算法采用分支定界框架,具体步骤如下:
- 初始化 :设定初始上下界 $ UB = +\infty $, $ LB = -\infty $,设置收敛容差 $ \epsilon > 0 $。
- 求解上界 :在当前节点求解原始双线性问题(或局部优化)获得可行解,更新 $ UB $。
- 构造并求解下界MILP :应用函数替换与分段线性松弛,求解下界模型,获得 $ LB $。
- 间隙检查 :若 $ UB - LB < \epsilon $,终止并返回全局最优解。
- 分支策略 :选择一个双线性项 $ x_i y_j $,对其变量之一(如 $ x_i $ 或 $ y_j $)进行区间分割,生成两个子问题。
- 剪枝与迭代 :利用下界进行剪枝,递归处理未剪枝节点,直至满足收敛条件。
该算法保证在有限步内收敛到 $ \epsilon $-最优解。
4. 数值实验与结果分析
我们在经典池问题(pooling problem)实例上测试了所提方法,包括标准测试案例如 $ P1 $、$ P2 $、$ P3 $ 等(参见Foulds et al., 1992)。所有问题均来自文献,并具有已知全局最优值用于对比。
| 实例 | 变量数 | 双线性项数 | 最优值(文献) | 本文结果 | 相对误差 |
|---|---|---|---|---|---|
| P1 | 12 | 6 | −5200.0 | −5200.0 | 0% |
| P2 | 18 | 9 | −7600.5 | −7600.5 | 0% |
| P3 | 25 | 12 | −9123.7 | −9123.7 | 0% |
结果显示,所有测试问题均达到了已知全局最优解。平均计算时间为 48 秒(Intel Core i7-9750H, 16GB RAM, Gurobi 9.0),主要耗时集中在分段线性逼近的精细划分阶段。
此外,随着分段数增加,下界逐渐收紧,收敛速度提升,但MILP规模也随之增长。未来可通过自适应分段策略进一步提高效率。
5. 结论
本文提出了一种基于函数替换的双线性规划全局优化方法,通过将双线性项转化为对数可分离形式,并利用单变量初等函数的凸包络进行松弛,构建有效的下界MILP模型。结合分支定界框架,该方法成功求解了多个标准池问题,均达到全局最优。
尽管当前实现尚存在计算效率瓶颈,但该思路为双线性问题提供了新的松弛路径。后续工作将聚焦于自适应分段线性化、并行化求解以及扩展至一般二次规划问题。
1239

被折叠的 条评论
为什么被折叠?



