非线性规划中的积极集法基础题
字数 1827 2025-10-26 10:28:42

非线性规划中的积极集法基础题

题目描述
考虑以下不等式约束非线性规划问题:
最小化函数 f(x) = (x₁ - 2)² + (x₂ - 1)²
满足约束条件:
g₁(x) = x₁ + x₂ - 2 ≤ 0
g₂(x) = x₁² - x₂ ≤ 0
g₃(x) = -x₁ ≤ 0
g₄(x) = -x₂ ≤ 0

这是一个二维优化问题,目标函数是凸二次函数,约束包括线性不等式和非线性不等式。我们需要找到满足所有约束的条件下使目标函数最小的点。

解题过程

第一步:理解问题结构
目标函数f(x)是圆心在(2,1)的圆形等值线,约束定义了一个可行域:

  • g₁是直线x₁+x₂=2以下的半平面
  • g₂是抛物线x₂≥x₁²以上的区域
  • g₃和g₄要求x₁,x₂非负

可行域是第一象限中在直线x₁+x₂=2以下、抛物线x₂≥x₁²以上的区域。

第二步:积极集法基本原理
积极集法用于求解只有不等式约束的优化问题,核心思想是:

  1. 猜测哪些约束在最优解处是积极的(等号成立)
  2. 将这些约束当作等式约束求解子问题
  3. 验证解是否确实最优

关键概念:

  • 积极约束:在某个点处等号成立的约束
  • 工作集:当前被认为是积极的约束集合

第三步:选择初始点并确定工作集
我们选择可行点x⁰=(0.5, 0.5)
计算约束值:
g₁(0.5,0.5)=0.5+0.5-2=-1<0(不积极)
g₂(0.5,0.5)=0.25-0.5=-0.25<0(不积极)
g₃(0.5,0.5)=-0.5<0(不积极)
g₄(0.5,0.5)=-0.5<0(不积极)

初始工作集W⁰为空集,因为所有约束都不积极。

第四步:求解第一个子问题(无约束优化)
工作集为空,相当于无约束优化:
min f(x) = (x₁-2)² + (x₂-1)²
梯度∇f(x)=[2(x₁-2), 2(x₂-1)]
令梯度为0得最优解:x₁=2, x₂=1

检查可行性:点(2,1)满足g₁=2+1-2=1>0,违反约束g₁
因此需要将约束g₁加入工作集。

第五步:求解等式约束子问题
工作集W¹={g₁},将g₁当作等式约束:
min f(x) = (x₁-2)² + (x₂-1)²
s.t. x₁+x₂-2=0

使用拉格朗日法:L(x,λ)=f(x)+λ(x₁+x₂-2)
最优性条件:
∂L/∂x₁=2(x₁-2)+λ=0
∂L/∂x₂=2(x₂-1)+λ=0
x₁+x₂-2=0

解得:x₁=1.5, x₂=0.5, λ=1

第六步:检查拉格朗日乘子符号
对于不等式约束,在解处积极的约束需要满足λ≥0
这里λ=1>0,满足最优性条件。

第七步:验证所有约束
检查所有约束:
g₁=1.5+0.5-2=0(积极)
g₂=2.25-0.5=1.75>0(违反!)

点(1.5,0.5)违反约束g₂,需要将其加入工作集。

第八步:调整工作集并重新求解
工作集W²={g₁, g₂},求解等式约束问题:
min f(x) = (x₁-2)² + (x₂-1)²
s.t. x₁+x₂-2=0, x₁²-x₂=0

从约束得:x₂=2-x₁, x₂=x₁²
∴ x₁²=2-x₁ ⇒ x₁²+x₁-2=0
解得x₁=1或x₁=-2(舍去负解)
对应x₂=1

点(1,1)处约束值:
g₁=1+1-2=0(积极)
g₂=1-1=0(积极)
g₃=-1<0, g₄=-1<0

第九步:计算拉格朗日乘子
建立拉格朗日函数:L=f(x)+λ₁(x₁+x₂-2)+λ₂(x₁²-x₂)
KKT条件:
∂L/∂x₁=2(x₁-2)+λ₁+2λ₂x₁=0
∂L/∂x₂=2(x₂-1)+λ₁-λ₂=0
代入x=(1,1):
2(1-2)+λ₁+2λ₂=0 ⇒ -2+λ₁+2λ₂=0
2(1-1)+λ₁-λ₂=0 ⇒ λ₁-λ₂=0

解得:λ₁=λ₂=2/3>0
所有积极约束的乘子为正,满足最优性条件。

第十步:最终验证
点(1,1)处:

  • 目标函数值f=(1-2)²+(1-1)²=1
  • 所有约束满足:g₁=g₂=0, g₃=g₄<0
  • 积极约束的拉格朗日乘子均为正

因此x*=(1,1)是全局最优解,最优值为1。

方法总结
积极集法通过迭代调整工作集,将不等式约束问题转化为等式约束子问题求解。每次迭代验证解的最优性,并通过添加违反约束或删除负乘子约束来更新工作集,直到找到满足KKT条件的最优解。

非线性规划中的积极集法基础题 题目描述 考虑以下不等式约束非线性规划问题: 最小化函数 f(x) = (x₁ - 2)² + (x₂ - 1)² 满足约束条件: g₁(x) = x₁ + x₂ - 2 ≤ 0 g₂(x) = x₁² - x₂ ≤ 0 g₃(x) = -x₁ ≤ 0 g₄(x) = -x₂ ≤ 0 这是一个二维优化问题,目标函数是凸二次函数,约束包括线性不等式和非线性不等式。我们需要找到满足所有约束的条件下使目标函数最小的点。 解题过程 第一步:理解问题结构 目标函数f(x)是圆心在(2,1)的圆形等值线,约束定义了一个可行域: g₁是直线x₁+x₂=2以下的半平面 g₂是抛物线x₂≥x₁²以上的区域 g₃和g₄要求x₁,x₂非负 可行域是第一象限中在直线x₁+x₂=2以下、抛物线x₂≥x₁²以上的区域。 第二步:积极集法基本原理 积极集法用于求解只有不等式约束的优化问题,核心思想是: 猜测哪些约束在最优解处是积极的(等号成立) 将这些约束当作等式约束求解子问题 验证解是否确实最优 关键概念: 积极约束:在某个点处等号成立的约束 工作集:当前被认为是积极的约束集合 第三步:选择初始点并确定工作集 我们选择可行点x⁰=(0.5, 0.5) 计算约束值: g₁(0.5,0.5)=0.5+0.5-2=-1 <0(不积极) g₂(0.5,0.5)=0.25-0.5=-0.25 <0(不积极) g₃(0.5,0.5)=-0.5 <0(不积极) g₄(0.5,0.5)=-0.5 <0(不积极) 初始工作集W⁰为空集,因为所有约束都不积极。 第四步:求解第一个子问题(无约束优化) 工作集为空,相当于无约束优化: min f(x) = (x₁-2)² + (x₂-1)² 梯度∇f(x)=[ 2(x₁-2), 2(x₂-1) ] 令梯度为0得最优解:x₁=2, x₂=1 检查可行性:点(2,1)满足g₁=2+1-2=1>0,违反约束g₁ 因此需要将约束g₁加入工作集。 第五步:求解等式约束子问题 工作集W¹={g₁},将g₁当作等式约束: min f(x) = (x₁-2)² + (x₂-1)² s.t. x₁+x₂-2=0 使用拉格朗日法:L(x,λ)=f(x)+λ(x₁+x₂-2) 最优性条件: ∂L/∂x₁=2(x₁-2)+λ=0 ∂L/∂x₂=2(x₂-1)+λ=0 x₁+x₂-2=0 解得:x₁=1.5, x₂=0.5, λ=1 第六步:检查拉格朗日乘子符号 对于不等式约束,在解处积极的约束需要满足λ≥0 这里λ=1>0,满足最优性条件。 第七步:验证所有约束 检查所有约束: g₁=1.5+0.5-2=0(积极) g₂=2.25-0.5=1.75>0(违反!) 点(1.5,0.5)违反约束g₂,需要将其加入工作集。 第八步:调整工作集并重新求解 工作集W²={g₁, g₂},求解等式约束问题: min f(x) = (x₁-2)² + (x₂-1)² s.t. x₁+x₂-2=0, x₁²-x₂=0 从约束得:x₂=2-x₁, x₂=x₁² ∴ x₁²=2-x₁ ⇒ x₁²+x₁-2=0 解得x₁=1或x₁=-2(舍去负解) 对应x₂=1 点(1,1)处约束值: g₁=1+1-2=0(积极) g₂=1-1=0(积极) g₃=-1<0, g₄=-1 <0 第九步:计算拉格朗日乘子 建立拉格朗日函数:L=f(x)+λ₁(x₁+x₂-2)+λ₂(x₁²-x₂) KKT条件: ∂L/∂x₁=2(x₁-2)+λ₁+2λ₂x₁=0 ∂L/∂x₂=2(x₂-1)+λ₁-λ₂=0 代入x=(1,1): 2(1-2)+λ₁+2λ₂=0 ⇒ -2+λ₁+2λ₂=0 2(1-1)+λ₁-λ₂=0 ⇒ λ₁-λ₂=0 解得:λ₁=λ₂=2/3>0 所有积极约束的乘子为正,满足最优性条件。 第十步:最终验证 点(1,1)处: 目标函数值f=(1-2)²+(1-1)²=1 所有约束满足:g₁=g₂=0, g₃=g₄ <0 积极约束的拉格朗日乘子均为正 因此x* =(1,1)是全局最优解,最优值为1。 方法总结 积极集法通过迭代调整工作集,将不等式约束问题转化为等式约束子问题求解。每次迭代验证解的最优性,并通过添加违反约束或删除负乘子约束来更新工作集,直到找到满足KKT条件的最优解。