非线性规划中的Barrier函数法基础题
题目描述
考虑一个简单的非线性规划问题:
最小化 \(f(x)1 = x_1^2 + x_2^2\)
满足约束 \(g(x) = x_1 + x_2 - 1 \geq 0\)。
使用Barrier函数法(也称内点法的一种)求解该问题,初始点选在可行域内部(如 \(x^{(0)} = (2, 2)\)),Barrier参数序列取 \(\mu_k = 0.1^k\),迭代直到 \(\mu_k < 10^{-3}\)。
解题过程
1. 方法原理介绍
Barrier函数法的核心思想是将约束问题转化为一系列无约束问题。对于不等式约束 \(g(x) \geq 0\),在可行域内部定义Barrier函数(如对数Barrier:\(B(x) = -\sum \ln(g_i(x))\)),将原问题转化为:
最小化 \(\phi(x, \mu) = f(x) - \mu \sum \ln(g_i(x))\),其中 \(\mu > 0\) 是Barrier参数。
当 \(\mu \to 0^+\) 时,无约束问题的最优解逼近原问题的最优解。每一步需在固定 \(\mu_k\) 下求解无约束子问题。
2. 问题转化
对本问题,约束 \(g(x) = x_1 + x_2 - 1 \geq 0\),Barrier函数为 \(B(x) = -\ln(x_1 + x_2 - 1)\)。
构造辅助函数:
\[\phi(x, \mu) = x_1^2 + x_2^2 - \mu \ln(x_1 + x_2 - 1) \]
要求每一步在 \(x_1 + x_2 > 1\) 的区域内最小化 \(\phi(x, \mu_k)\)。
3. 求解无约束子问题(以 \(\mu_k = 0.1\) 为例)
步骤3.1 计算梯度
对 \(\phi(x, \mu)\) 求偏导:
\[\frac{\partial \phi}{\partial x_1} = 2x_1 - \mu \cdot \frac{1}{x_1 + x_2 - 1}, \quad \frac{\partial \phi}{\partial x_2} = 2x_2 - \mu \cdot \frac{1}{x_1 + x_2 - 1} \]
令梯度为零:
\[2x_1 = \frac{\mu}{x_1 + x_2 - 1}, \quad 2x_2 = \frac{\mu}{x_1 + x_2 - 1} \]
两式相减得 \(x_1 = x_2\)。代入第一式:
\[2x_1 = \frac{\mu}{2x_1 - 1} \implies 4x_1^2 - 2x_1 - \mu = 0 \]
步骤3.2 解析求解
解二次方程:
\[x_1 = \frac{2 + \sqrt{4 + 16\mu}}{8} = \frac{1 + \sqrt{1 + 4\mu}}{4} \]
取正根(因需满足 \(x_1 + x_2 > 1\))。
当 \(\mu = 0.1\) 时:
\[x_1 = \frac{1 + \sqrt{1 + 0.4}}{4} \approx \frac{1 + 1.1832}{4} = 0.5458 \]
故 \(x^{(1)} = (0.5458, 0.5458)\)。
4. 迭代过程
步骤4.1 第二次迭代(\(\mu_1 = 0.01\))
代入公式:
\[x_1 = \frac{1 + \sqrt{1 + 0.04}}{4} \approx \frac{1 + 1.0198}{4} = 0.50495 \]
得 \(x^{(2)} = (0.5050, 0.5050)\)。
步骤4.2 第三次迭代(\(\mu_2 = 0.001\))
\[x_1 = \frac{1 + \sqrt{1 + 0.004}}{4} \approx \frac{1 + 1.0020}{4} = 0.5005 \]
得 \(x^{(3)} = (0.5005, 0.5005)\)。
5. 结果分析
- 最优解逼近:理论最优解在 \(x_1 = x_2 = 0.5\)(约束边界 \(x_1 + x_2 = 1\) 上),迭代结果逐渐接近该点。
- 收敛性:随着 \(\mu \to 0\),Barrier项的影响减小,解趋近原问题最优解。
- 可行性:每一步均满足严格内点条件 \(x_1 + x_2 > 1\)。
总结:Barrier函数法通过逐步减小 \(\mu\),将内点路径引向边界上的最优解,适合处理不等式约束问题。