外点罚函数法基础题
字数 2299 2025-10-27 11:27:25
外点罚函数法基础题
题目描述
考虑非线性规划问题:
最小化 \(f(x)1 = x_1^2 + x_2^2\)
满足约束 \(g(x) = x_1 + x_2 - 1 \geq 0\)
初始点 \(x^{(0)} = (0, 0)\),该点不满足约束 \(g(x) \geq 0\)。
请使用外点罚函数法求解该问题,详细说明构造罚函数、求解无约束子问题以及参数更新的过程。
解题过程
-
方法原理介绍
外点罚函数法用于求解约束优化问题。其核心思想是将约束违反量作为惩罚项加入原目标函数,构造一个无约束优化问题。通过逐步增大惩罚因子,迫使解趋向可行域。 -
构造罚函数
- 对于不等式约束 \(g(x) \geq 0 \,惩罚项定义为 \( \max(0, -g(x))^2\)
- 罚函数形式:\(P(x, \mu) = f(x) + \mu \cdot \max(0, -g(x))^2\)
- 代入本题函数:
\(P(x, \mu) = x_1^2 + x_2^2 + \mu \cdot \max(0, -(x_1 + x_2 - 1))^2\) - 由于初始点 \(x^{(0)} = (0,0)\) 不满足约束(\(0+0-1 = -1 < 0\)),惩罚项激活:
\(P(x, \mu) = x_1^2 + x_2^2 + \mu \cdot (1 - x_1 - x_2)^2\)
- 求解无约束子问题(μ=1)
- 令初始惩罚因子 \(\mu_1 = 1\),最小化 \(P(x,1) = x_1^2 + x_2^2 + (1 - x_1 - x_2)^2\)
- 求梯度并令其为零:
\(\frac{\partial P}{\partial x_1} = 2x_1 - 2(1 - x_1 - x_2) = 4x_1 + 2x_2 - 2 = 0\)
\(\frac{\partial P}{\partial x_2} = 2x_2 - 2(1 - x_1 - x_2) = 2x_1 + 4x_2 - 2 = 0\) - 解得线性方程组:
\(4x_1 + 2x_2 = 2\)
\(2x_1 + 4x_2 = 2\) - 解为:\(x_1^{(1)} = \frac{1}{3}, x_2^{(1)} = \frac{1}{3}\),此时约束函数值 \(g(x^{(1)}) = \frac{1}{3} + \frac{1}{3} - 1 = -\frac{1}{3} < 0\),仍不可行。
- 增大惩罚因子(μ=10)
- 令 \(\mu_2 = 10\),最小化 \(P(x,10) = x_1^2 + x_2^2 + 10(1 - x_1 - x_2)^2\)
- 求梯度并令其为零:
\(\frac{\partial P}{\partial x_1} = 2x_1 - 20(1 - x_1 - x_2) = 22x_1 + 20x_2 - 20 = 0\)
\(\frac{\partial P}{\partial x_2} = 2x_2 - 20(1 - x_1 - x_2) = 20x_1 + 22x_2 - 20 = 0\) - 解得:\(x_1^{(2)} = \frac{10}{21} \approx 0.476, x_2^{(2)} = \frac{10}{21} \approx 0.476\)
- 约束函数值 \(g(x^{(2)}) \approx 0.476 + 0.476 - 1 = -0.048 < 0\),接近可行域边界。
- 进一步增大惩罚因子(μ=100)
- 令 \(\mu_3 = 100\),最小化 \(P(x,100) = x_1^2 + x_2^2 + 100(1 - x_1 - x_2)^2\)
- 求梯度并令其为零:
\(\frac{\partial P}{\partial x_1} = 2x_1 - 200(1 - x_1 - x_2) = 202x_1 + 200x_2 - 200 = 0\)
\(\frac{\partial P}{\partial x_2} = 2x_2 - 200(1 - x_1 - x_2) = 200x_1 + 202x_2 - 200 = 0\) - 解得:\(x_1^{(3)} = \frac{100}{201} \approx 0.4975, x_2^{(3)} = \frac{100}{201} \approx 0.4975\)
- 约束函数值 \(g(x^{(3)}) \approx 0.995 - 1 = -0.005\),非常接近可行域。
- 收敛分析
- 当 \(\mu \to \infty\),解趋近 \(x_1 = x_2 = 0.5\),此时约束严格满足 \(g(x) = 0\)(在边界上)
- 原问题的最优解确实为 \((0.5, 0.5)\),目标函数值 \(f(x) = 0.5\)
- 外点罚函数法的解从不可行域逐渐逼近可行域边界,惩罚因子越大,近似解越接近真实解。
关键点总结
- 外点罚函数法允许从不可行点开始迭代
- 惩罚项针对约束违反量进行二次惩罚
- 通过增大惩罚因子迫使解进入可行域
- 优点:初始点选择灵活;缺点:大μ值可能导致数值困难