非线性规划——习题解答(七)

习题解答

  1. 某厂向用户提供发动机。合同规定,第一、二、三季度末分别交货40台、60台、80台。每季度的生产费用为f(x)=ax+bx2 ( 元 ),其中x是该季生产的台数。若交货后有剩余,可用于下季度交货,但需支付存储费,每台每季度c元。已知该厂每季度最大生产能力为100台,第一季度开始时无存货,设a=50、b=0.2、c=4,问工厂应如何安排生产计划,才能既满足合同又使总费用最低?讨论a,b,c变化对计划的影响。

解:x1,x2,x3分别表示工厂三季度生产的发动机数量。建立模型如下:

minf=a(x1+x2+x3)+b(x12+x22+x32)+c(2x1+x2140)

s.t.x140x1+x2100x1+x2+x31800x1,x2,x3100(整数)

问题的最优解为(50,60,70)

  1. 求解下面无约束非线性规划问题:

minf(x)=x12+25x22

其中x=(x1,x2)T。要求选取初始点x(0)=(2,2)T,精度ϵ=106
问题的最优解为(0,0)

  1. 试写出非线性规划问题

minf(X)=x12+x224x18x2

s.t.x1+x22x10,x20

的Kuhn-Tucker条件(不求解)。
解: (1)改写非线性规划为标准形式,上述约束问题可改写为:

minf(X)=x12+x224x18x2

s.t.g1(X)=x1+x220x10,x20

(2)求目标函数和约束条件的梯度

f(X)=(2x142x28),g1(X)=(11)

(3)KT条件

f(X)+γ1g1(X)=(2x142x28)+γ1(11)=0γ10

注意:两个变量的取值都是非负,为KT条件更为约减,没有变成约束。

  1. 求解下面非线性规划问题

minf(x)=x12+x22+x32+8s.t.{x12x2+x320x1+x22+x3320x1x22+2=0x2+2x32=3x1,x2,x30

最优解为(0.552,1.203,0.948),最优值为10.651。

  1. 考虑非线性规划问题

min(x13)2+(x22)2x12x225x1+2x2=4x1,x20

检验X(1)=(2,1)T,是否为KT点。
解:(1)改写非线性规划为标准形式,上述约束问题可改写为:

minf(X)=(x13)2+(x22)2g1(X)=x12+x2250g2(X)=x1+2x24=0x1,x20

X(1)=(2,1)T代入上述约束条件,发现X(1)正好在前两个约束条件的边界上,因此前两个约束是起作用约束。
(2)求目标函数和约束条件的梯度

f(X)=(2(x13)2(x22)),g1(X)=(2x12x2),g2(X)=(12)

(3)判断是否满足KT条件

f(X(1))+γ1g1(X(1))+μ1g2(X(1))=(22)+γ1(42)+μ1(12)=(00)

γ1=13>0,μ1=23, 故 X(1)=(2,1)T 满足 Kuhn-Tucker 条 件。

  1. 用梯度法(最速下降法)求下述函数的极小点。

f(X)=(x12)2+(x21)2

解:取初始点 X(0)=(0,0)T

  • 计算梯度和 Hessian 矩阵

f(X)=[2(x12),2(x21)]T,f(X(0))=(4,2)T

2f(X)=(2002)

  • 计算步长 λ0

λ0=f(X(0))Tf(X(0))f(X(0))T2f(X)f(X(0))=(4,2)(42)(4,2)(2002)(42)=2040=12

  • 更新点 X(1)

X(1)=X(0)λ0f(X(0))=(00)12(42)=(21)

  • 检查梯度

f(X(1))=(0,0)T,故 X(1)为极小点,其极小值 f(X(1))=0

  1. 用梯度法(最速下降法)求函数f(X)=x12+5x22的极小点,取允误差ε=0.7

解:取初始点 X(0)=(2,1)T

f(X)=(2x1,10x2)T,f(X(0))=(4,10)T

2f(X)=(20010)

  • 计算步长λ0

λ0=f(X(0))Tf(X(0))f(X(0))T2f(X)f(X(0))=(4,10)(410)(4,10)(20010)(410)=0.1124

  • 更新点X(1)

X(1)=X(0)λ0f(X(0))=(21)0.1124(410)=(1.55040.1240)

  • 计算新梯度f(X(1))

f(X(1))=(3.10081.2400)

f(X(1))2=11.1526>ε

由于梯度的平方范数大于允许误差ε,算法未收敛,需继续迭代。

  • 第二次迭代 λ1 的计算

λ1=f(X(1))Tf(X(1))f(X(1))T2f(X)f(X(1))=(3.10081.2400)T(3.10081.2400)(3.10081.2400)T(20010)(3.10081.2400)=0.3223

更新点 X(2)

X(2)=X(1)λ1f(X(1))=(1.55040.1240)0.3223(3.10081.2400)=(0.55100.2757)

计算新的梯度 f(X(2))

f(X(2))=(1.1022.757),f(X(2))2=8.815>ε

  • 第三次迭代 λ2 的计算

λ2=(1.1022.757)T(1.1022.757)(1.1022.757)T(20010)(1.1022.757)=0.1124

更新点 X(3)

X(3)=X(2)λ2f(X(2))=(0.55100.2757)0.1124(1.1022.757)=(0.42710.03419)

计算新的梯度 f(X(3))

f(X(3))=(0.85420.3419),f(X(3))2=0.8466>ε

  • 第四次迭代 λ3 的计算

λ3=(0.85420.3419)T(0.85420.3419)(0.85420.3419)T(20010)(0.85420.3419)=0.3221

更新点 X(4)

X(4)=X(3)λ3f(X(3))=(0.42710.03419)0.3221(0.85420.3419)=(0.1520.0759)

计算新的梯度 f(X(4))

f(X(4))=(0.3040.759),f(X(4))2=0.6685<ε

X(4)=(0.152,0.0759)T 为近似极小点,此时的函数值为:f(X(4))=0.0519

  1. 用库恩—塔克条件求解下面非线性规划

maxf(x)=(x4)21x6

解:先将其变为问题标准的形式:

{minf(x)=(x4)2,g1(x)=x10,g2(x)=6x0.

KT点为x,各函数的梯度为:

f(x)=2(x4),g1(x)=1,g2(x)=1.

对第一个和第二个约束条件分别引入广义拉格朗日乘子u1u2,则得该问题的KT条件如下:

{2(x4)u1u2=0,u1(x1)=0,u2(6x)=0,u10, u20.

为解该方程组,需要考虑以下几种情况:

  • u1>0,u2>0:无解。

  • u1>0,u2=0x=1, f(x)=9

  • u1=0,u2=0x=4, f(x)=0

  • u1=0,u2>0x=6, f(x)=4

对应上述后面三种情形,我们得到了三个KT 点,其中:

  • x=1x=6 为极大值点,且 x=1为最大值点,最大值f(x)=9
  • x=4为可行域的内点,它不是该问题的极大值点,而是极小点。
  1. 用罚函数法求解

{minf(x)=(x12)2,x0

构造罚函数

P(x,M)=f(x)+M[min(0,g(x))]2=(x12)2+M[min(0,x)]2

对于固定的M,令

dP(x,M)dx=2(x12)2M[min(0,x)]=0

对于不满足约束条件的点x,有

2(x12)+2Mx=0

从而求得其最小值点x(M)如下:

x(M)=12(1+M)

M=0时,x(M)=12;当M=1时,x(M)=14;
M=10时,x(M)=122;当M时,x(M)0,说明原约束问题的极小点是x=0

10 用罚函数法求解

{minf(X)=x1g1(X)=2x2(x11)30g2(X)=x22(x11)30g3(X)=x10g4(X)=x20

构造罚函数

P(X,M)=x1+M[2x2(x11)3]2u1(g1(X))+M[x22(x11)3]2u2(g2(X))+Mx12u3(g3(X))+Mx22u4(g4(X))

P(X,M)x1=16M[2x2(x11)3](x11)2u1(g1(X))6M[x22(x11)3](x11)2u2(g2(X))+2Mx1u3(g3(X))

P(X,M)x2=2M[2x2(x11)3]u1(g1(X))+2M[x22(x11)3]u2(g2(X))

+2Mx2u4(g4(X))

现考虑第一象限中的点,可令

u1(g1(X))=u2(g2(X))=1

u3(g3(X))=u4(g4(X))=0

为求极值点,令

P(X,M)x2=0

得到x2=2

再令 P(X,M)x1=0,并代入上述结果,得

(x11)5=112M

M,得 x1=1,即该问题的最优点是X=(1,2)T

  1. 用共轭下降法计算函数 f(x1,x2)=x12+x22x1x2+x1+x2+1 的极小点和极小值,设初始点为 x0=(0,0)T,迭代误差为 ε=0.05

因为函数 f(x1,x2) 的梯度为:f(x1,x2)=(2x1x2+1 2x2x1+1),那么在点 x0=(0 0) 的梯度值等于:f(x0)=(1 1)。令 d0=f(x0)=(1 1),则有

x1=x0+αd0=(00)+α(11)=(αα)

x1 代入目标函数中,有:f(x1)=α2+2α+1,求解步长 α0,使得

f(x0+α0d0)=minα0{α2+2α+1}

为此,令 ddα(α2+2α+1)=2α+2=0,求得 α0=1,所以,

x1=x0+α0d0=(00)1(11)=(11)

计算 f(x1,x2) 在点 x1 处的梯度值,有 f(x1)=(2 2)。计算 f(x1,x2) 在点 x1 处的搜索方向:

β1=(f(x1)f(x0))2=((2)2+(2)212+12)2=4d1=f(x1)+β1d0=(22)+4(11)=(66)x2=x1+αd1=(11)+α(66)=(16α16α)

x2 代入目标函数中,有:f(x2)=36α224α+4,求解步长 α1,使得

f(x1+α1d1)=minα0{36α224α+4}

为此,令 ddα(36α224α+4)=72α24=0,求得 α1=13,所以,

x2=x1+α1d1=(11)+13(66)=(11)

计算 f(x1,x2) 在点 x2 处的梯度值:f(x2)=(0 0),由于 |f(x2)|=00.05,那么 x2 是局部极小点,对应 x2 的局部极小值为 f(1,1)=0,迭代结束。

  1. 文化传播公司预算 10,000 元的广告投入。电视广告费为每分钟 3,000 元;电台广告费为每分钟 1,000 元。如果公司购买 x 分钟电视广告,和 y 分钟电台广告,其销售收入为:

f(x,y)=2x2y2+xy+8x+3y

问公司是否有增加广告预算的余地?

我们将它表示成下述非线性规划问题:

minf(x,y)=2x2y2+xy+8x+3y

s.t.{3x+y=10x0,y0

那么 L(x,y,λ)=2x2y2+xy+8x+3y+λ(103xy)
我们设:

Lx=Ly=Lλ=0

则:

Lx=4x+y+83λ=0Ly=2y+x+3λ=0Lλ=103xy=0

求解后,获得:

x=6928,y=7328,λ=14

因为 λ=14,这说明如果该公司继续增加广告预算,比如说,δ(元),就可增加 0.25δ(元)销售收入。

  1. 假设你是一家公司的销售经理,负责优化某个产品的销售策略。根据历史数据和市场分析,你确定了一个销售指标公式 f(x)=x1x2+2x12+2x1x2+x22 来评估不同的销售策略,其中,销售策略的参数由 x1x2 描述,表示采用不同的促销手段和定价策略,为了确保销售策略的可行性,促销手段和定价策略均不能为负值。根据给定的指标公式,你应该如何确定最佳的销售策略参数,以使得该指标最小?(终止误差 ε=0.3 )

根据题目可得出

minf(x)=x1x2+2x12+2x1x2+x22

取初始点为 X(1)=(0,0)T,ε=0.3

目标函数 f(x) 的梯度为:

f(x)=[f(x)x1f(x)x2]=[1+4x1+2x21+2x1+2x2]

f(X(1))=[1 1],由于 |f(X(1))|1.4142>0.3,令搜索方向 d(1)=f(X(1))=[1 1],再从 X(1) 出发,沿 d(1) 方向作一维寻优,令步长变量为 λ,最优步长为 λ1,则有

X(1)+λd(1)=[00]+λ[11]=[λλ]

f(x)=f(X(1)+λd(1))=λλ+2λ2+2λλ+λ2=5λ22λ=φ1(λ)φ1(λ)=10λ2=0,可得 λ1=15,X(2)=X(1)+λ1d(1)=[0 0]+15[1 1]=[0.2 0.2] 求出 X(2) 点之后,与上类似地,进行第二次迭代:f(X(2))=[0.2 0.2]

由于 |f(X(2))|0.2828<0.3,故 X(2)=[0.2 0.2] 为近似极小点,此时的函数值 f(X)=0.48

  1. 某一施工单位希望设计一座跨越一条河流的桥梁,为了提高桥梁的性能,需要使得函数 f(x)=2x12+2x1x2+x2210x110x2 最小,希望桥梁在材料使用和结构设计上能够达到最佳的效果,以提高桥梁的承重能力、稳定性和耐久性。其中,变量 x1x2 分别代表桥梁的设计参数。为了避免过分复杂的结构和不切实际的设计,桥梁的设计参数的取值必须满足 x12+x225。另外,桥梁的设计参数 x1x2 的线性组合必须满足 3x1+x26

根据上述对问题的描述,可以明确的看出该优化问题是在有约束条件下求取最小值,我们可以使用库恩-塔克条件来解决。通过对约束条件引入广义拉格朗日乘子,分情况对引入的约束条件进行讨论,如果可以找到一组满足库恩-塔克条件的可行点和广义拉格朗日乘子,就能够找到该问题的最优点。

minf(X)=2x12+2x1x2+x2210x110x2s.t.{x12+x2253x1+x26

将约束条件化成一般形式:

{g1(X)=x12x22+50g2(X)=3x1x2+60

设库恩-塔克点位 X=(x1,x2)T,各函数梯度为

f(X)=[4x1+2x2102x1+2x210],g1(X)=[2x12x2],g2(X)=[31]

对约束条件进入广义拉格朗日乘子 μ1μ2,得该问题的库恩-塔克条件如下:

{[4x1+2x2102x1+2x210]μ1[2x12x2]μ2[31]=0μ1(5x12x22)=0μ2(63x1x2)=0μ10μ20

{4x1+2x210+2μ1x1+3μ2=02x1+2x210+2μ1x2+μ2=0μ1(5x12x22)=0μ2(63x1x2)=0μ10μ20

(1) 两个约束都是不起作用约束,则有 μ1=0,μ2=0,得到方程组:

{4x1+2x210=02x1+2x210=0

解得:

{x1=0x2=5

代入约束条件,不满足 gi(X)0,因此该点不是可行点。

(2) g1(X)0 是起作用约束,g2(X)0 是不起作用约束,则有 μ2=0,得到方程组:

{4x1+2x210+2μ1x1=02x1+2x210+2μ1x2=0μ1(5x12x22)=0μ10

解得:

{x1=1x2=2μ1=1μ2=0

代入原问题检验,可知该点为可行点,且满足 K-T 定理的条件,又是一个正则点,故它是一个 K-T 点。

因为 g1(X)0 是起作用约束,此时可以是 μ1>0,也可以是 μ1=0,后一种情况与(1)相同,已知不可行。

(3) g1(X)0 是不起作用约束,g2(X)0 是起作用约束,则 μ1=0

{4x1+2x210+3μ2=02x1+2x210+μ2=0μ2(63x1x2)=0μ20

解得 μ2=0,同(1)的结果;或 μ2=25,舍去。

(4) 两个约束都是起作用约束,则 μ1>0,μ2>0

{4x1+2x210+2μ1x1+3μ2=02x1+2x210+2μ1x2+μ2=05x12x22=063x1x2=0

解得

{x1=1.43x2=1.72μ1=1.37μ2=1.02

舍去。

因此本题的 K-T 点为 X=(1,2)T,同时本题 f(X) 为凸函数,而 g1(X)0 为凹函数,g2(X)0 为线性函数,也可视为凹函数,所以此题为凸规划。对于凸规划 K-T 条件也是充分条件,所以 X=(1,2)T 也是本题的全局最小点,最小值。

  1. 利用可行方向法求解以下非线性规划问题

minf(X)=x12+x224x14x2+8,x1+2x240

从初始点 X(0)=[0 0] 出发,进行迭代求解。

初始化

  • 初始点X(0)=[0 0]
  • 约束检查g(X(0))=x1+2x24=0+204=40 初始点满足约束条件,可行。

可行方向法步骤

  • 梯度计算

目标函数:

f(X)=x12+x224x14x2+8

其梯度为:

f(X)=[2x142x24]

约束函数:

g(X)=x1+2x24

其梯度为:

g(X)=[12]

在初始点 X(0)=[0 0] 处:

f(X(0))=[44],g(X(0))=[12]

  • 求下降方向

可行方向需满足以下条件:
dTf(X)<0(目标函数下降)。
dTg(X)0(满足约束条件)。

设下降方向为 d=[d1 d2],联立解得:

d=f(X(0))=[44]

  • 线搜索

在线搜索中,寻找步长 α,使得 f(X(0)+αd) 最小。

将方向 d=[4 4] 和初始点 X(0)=[0 0] 代入目标函数:

f(X(0)+αd)=f([4α4α])

目标函数展开为:

f(X)=x12+x224x14x2+8

代入 X=[4α 4α]

f(α)=(4α)2+(4α)24(4α)4(4α)+8

化简为:

f(α)=32α232α+8

这是一个开口向上的二次函数,最小值对应顶点:

α=b2a=32232=12

  • 更新变量

根据更新公式:

X(1)=X(0)+αd=[00]+12[44]=[22]

  • 检查约束

在新点 X(1)=[2 2] 处:

g(X(1))=x1+2x24=2+224=20

约束条件仍然满足。

  • 梯度重新计算

X(1) 处,计算目标函数梯度:

f(X(1))=[2x142x24]=[224224]=[00]

梯度为零,说明已经达到最优解。

  • 最终结果

最优解为:

X=[22]

目标函数值:

f(X)=22+224242+8=0

  1. 使用共轭梯度法求解以下二次函数的极小点

f(X)=12XTAX

其中:

A=[1112]

共轭梯度法的主要步骤包括:

初始化变量和参数。
计算初始梯度,确定搜索方向。
使用线搜索更新步长。
更新搜索方向并继续迭代,直至梯度收敛到零。

  • 初始化

初始化点设为:

X(0)=[00]

初始梯度为:

g(0)=f(X(0))=AX(0)=[1112][00]=[00]

初始搜索方向:

d(0)=g(0)=[00]

  • 迭代步骤

假设当前迭代点为 X(k),对应梯度为 g(k),搜索方向为 d(k)

(1)线搜索

确定步长 αk

αk=g(k)Td(k)d(k)TAd(k)

(2)更新变量

更新点:

X(k+1)=X(k)+αkd(k)

(3)更新梯度

计算新的梯度:

g(k+1)=f(X(k+1))=AX(k+1)

(4)更新搜索方向

搜索方向使用以下公式:

βk=g(k+1)Tg(k+1)g(k)Tg(k)

d(k+1)=g(k+1)+βkd(k)

迭代至梯度满足 |g(k)|<ϵ 为止。

  • 求解过程

根据矩阵 A=[1112],详细迭代如下:

第 0 步:
  • 初始点:X(0)=[0 0]
  • 梯度:g(0)=AX(0)=[0 0]
  • 搜索方向:d(0)=g(0)=[0 0]

停止条件已满足。

  • 最优解

由于初始点 X(0) 即为零点,梯度也为零,因此最优解为:

X=[00]

最小值:

f(X)=12XTAX=0

[16道题解答下载链接](https://wwxh.lanzoum.com/igY660yqgc1a密码:74z9)
二维码下载

posted @   郝hai  阅读(868)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示