复习课大纲

  1. 线性优化 LP 建模
  2. 二维的图解法 LP
  3. 单纯形表 LP(大M法)闭合、位势 $(u,v)$
  4. 运输问题(建模,初始值,检验数,负的检验数用闭回路调整)
  5. 指派问题(匈牙利算法)
  6. 相关概念、定理(凸集、凸函数、性质、定理)
  7. 无约束(最速下降法、牛顿法)
  8. 最优性定理(有、无约束,一阶、二阶、KKT条件)
  9. 罚函数法、障碍函数的构造
  10. 遗传算法

22~23最优化理论真题

一、用图解法求解线性规划问题

3

题目: 用图解法求解线性规划问题($10$ 分)

1

5

第一步:将约束条件转化为等式直线方程

将各不等式约束取等号,得到三条约束直线:

  • ,该直线过点 $(0, 3)$ 和 $(3, 0)$,可行域位于直线下方;
  • ,该直线为过原点的 直线,可行域位于直线上方(即 );
  • ,该直线为垂直于 轴的直线,可行域位于直线右侧(即 )。

第二步:求各约束直线的交点(可行域顶点)

联立各约束直线方程,求可行域的顶点坐标:

  • 联立:,代入得 ,得交点 $A(1, 1)$;
  • 联立:,解得 ,得交点 $B(1, 2)$;
  • 联立:,解得 ,得交点

三条直线围成的三角形区域 $ABC$ 即为可行域。

第三步:绘制图形并分析目标函数

第四步:分析目标函数等值线

目标函数 的等值线方程为 ($c$ 为常数),即 。这是一族斜率为 $-1$ 的平行直线。最小化 $f$ 等价于使等值线沿目标函数梯度方向 $(1, 1)$ 的反方向移动,即让常数 $c$ 不断减小。

第五步:确定最优解与最优值

将可行域的三个顶点分别代入目标函数计算:

  • 在点 $A(1, 1)$ 处:$f = 1 + 1 = 2$;
  • 在点 $B(1, 2)$ 处:$f = 1 + 2 = 3$;
  • 在点 处:

当等值线 移动到点 $A(1, 1)$ 时,$c$ 取到最小值 $2$。若继续沿反方向移动,等值线将完全离开可行域。因此,最优解在顶点 $A$ 处取得。

结论:

最优解为 ,最优值为

评分标准对应:

  • 正确画出 $3$ 条约束直线各 $1$ 分;
  • 正确画出可行域 $2$ 分;
  • 正确求出约束直线的交点 $2$ 分;
  • 正确求出最优值和最优解 $3$ 分。

二、叙述并证明无约束最优化问题的一阶必要条件

2

4

6

无约束最优化问题的一般形式为:

其中 为连续可微的目标函数。所谓”无约束”,是指决策变量 $x$ 在整个 $n$ 维欧氏空间 中自由取值,不受到任何等式或不等式约束的限制。

一阶必要条件(定理3)

设 $f(x)$ 在 的某个邻域内有连续的偏导数(即 $f$ 在 附近连续可微),若 是 $f(x)$ 的局部最优解,则

也就是说: 是局部最优解,则它在该点处的梯度必须为零向量。

满足 的点称为驻点(Stationary Point)。驻点可能为局部极小点、局部极大点或鞍点,因此梯度为零只是极值点的必要条件,而非充分条件。

证明:(反证法)

为 $f(x)$ 的局部最优解,假设

由一阶泰勒展开,对 附近的任意点 $x$ 有:

($t > 0$),代入得:

由于 ,有 。当 $t > 0$ 充分小时,一阶负项占主导,故:

这与 为局部最优解矛盾。因此假设错误,必有

几何解释: 梯度指向函数值增长最快的方向,若梯度不为零,则沿负梯度方向可使函数值下降,故该点不可能为局部极小点。

二阶必要条件(定理4)

处有二阶连续偏导数,若 是 $f$ 的局部极小点,则

其中 为 $f$ 在 处的Hesse矩阵(二阶偏导数矩阵)。该条件说明:局部极小点不仅梯度为零,而且函数在该点的二阶曲率必须”向上开口”(半正定)。

二阶充分条件(定理5)

的某邻域内有连续的二阶偏导数,若

是 $f$ 在该邻域内的严格局部极小点

三者关系总结如下:

条件类型 前提 结论
一阶必要 $f$ 在 可微 为局部极小点
二阶必要 $f$ 在 二阶连续可微 为局部极小点
二阶充分 $f$ 在 邻域二阶连续可微 为严格局部极小点

最优性定理

这一部分主要对复习课大纲中“最优性定理”进行集中整理。前面第二题已经证明了无约束优化的一阶必要条件,这里按照笔记中的定理编号,把无约束优化的一阶必要条件、二阶必要条件、二阶充分条件、凸优化极值定理以及约束优化中的 KKT 定理统一写出来。

需要注意的是,这些定理的逻辑关系是:

  • 必要条件:如果 是局部最优点,则它必须满足这些条件;
  • 充分条件:如果 满足这些条件,则可以推出它是局部最优点;
  • 凸优化极值定理:在凸函数条件下,驻点不仅是局部极小点,而且是全局极小点;
  • KKT 条件:是约束优化问题的一阶最优性条件,后面会结合具体题目展开计算。

定理3:无约束优化的一阶必要条件

考虑无约束优化问题:

处可微。若 是 $f(x)$ 的局部极小点,则:

也就是说,无约束优化问题的局部极小点一定是驻点。

这里的 表示 $f$ 在 处关于所有变量的一阶偏导数都为 $0$,即:

证明:(反证法)

是 $f(x)$ 的局部极小点,假设:

由于 $f$ 在 处可微,对 附近的点 $x$ 有一阶 Taylor 展开:

取负梯度方向上的点:

则:

代入一阶 Taylor 展开,得:

因为 ,所以 。当 $t > 0$ 充分小时,一阶负项 起主导作用,因此:

即:

这说明在 附近存在一个点 $x$,使得函数值比 更小,与 是局部极小点矛盾。因此假设不成立,必有:

说明: 一阶必要条件只能说明局部极小点必须是驻点,但驻点不一定是局部极小点,也可能是局部极大点或鞍点。

定理4:无约束优化的二阶必要条件

考虑无约束优化问题:

处有二阶连续偏导数。若 是 $f(x)$ 的局部极小点,则:

且:

为半正定矩阵,也就是对任意方向 ,都有:

其中 是 $f$ 在 处的 Hesse 矩阵:

证明:

由于 是局部极小点,由定理3可知:

下面证明 半正定。

任取一个方向 ,考虑从 出发沿方向 $d$ 移动得到的点:

其中 $t$ 是充分小的实数。由于 是局部极小点,所以当 $t$ 充分小时,应有:

处作二阶 Taylor 展开:

由于 ,上式化为:

如果存在某个方向 $d$,使得:

那么当 $t$ 充分小时,二阶负项起主导作用,就会有:

即:

这与 是局部极小点矛盾。因此对任意方向 $d$,都必须有:

所以:

即 Hesse 矩阵半正定。

说明: 二阶必要条件仍然只是必要条件。若 只是半正定,则不能保证 一定是局部极小点,因为半正定矩阵可能在某些方向上二阶项为 $0$,此时需要继续考察更高阶项。

定理5:无约束优化的二阶充分条件

考虑无约束优化问题:

的某个邻域内有连续的二阶偏导数。若:

且:

为正定矩阵,则 是 $f(x)$ 的严格局部极小点。

正定的含义是:对任意非零方向 ,都有:

证明:

附近的任意点 $x$,记:

当 $x$ 足够接近 时,$d$ 足够小。对 $f(x)$ 在 处作二阶 Taylor 展开:

由于 ,所以:

又因为 ,所以存在常数 ,使得当 时:

因此:

当 $x$ 充分接近 时,高阶无穷小项 不会改变主项为正的性质,于是:

即:

所以 是 $f(x)$ 的严格局部极小点。

说明: 二阶充分条件中的正定比二阶必要条件中的半正定更强。半正定只能说明“不一定能找到下降方向”,而正定可以保证 附近所有非零方向上函数值都会升高。

定理6:凸优化极值定理

为凸函数,并且 $f$ 在 处可微。若:

是 $f(x)$ 的全局极小点。

如果 $f$ 是严格凸函数,则该全局极小点还是唯一的。

证明:

由于 $f$ 是可微凸函数,对任意 ,凸函数的一阶性质给出:

又因为:

所以:

这对任意 都成立,因此 不是普通的局部极小点,而是全局极小点。

若 $f$ 是严格凸函数,并且存在两个不同的全局极小点 ,则对任意 ,严格凸性给出:

由于 都是全局极小点,右端等于最小函数值,于是得到一个比全局最小值还小的函数值,矛盾。因此严格凸函数的全局极小点唯一。

说明: 对一般非凸函数而言, 只能说明 是驻点;但对凸函数而言,驻点就一定是全局极小点。这也是凸优化问题比一般非线性优化问题更容易处理的重要原因。

定理7:KKT 定理

考虑一般约束优化问题:

其中 表示不等式约束函数, 表示等式约束函数。

构造拉格朗日函数:

其中:

  • 是不等式约束 对应的拉格朗日乘子;
  • 是等式约束 对应的拉格朗日乘子;
  • 对于最小化问题中的 形式,有
  • 等式约束乘子 不限制正负。

是该约束优化问题的局部极小点,并且在 处满足适当的约束规格条件,则存在乘子 ,使得以下 KKT 条件成立。

第一,稳定性条件(驻点条件):

也就是:

第二,可行性条件:

即最优解本身必须满足原问题的所有约束。

第三,对偶可行性条件:

等式约束乘子 不要求非负。

第四,互补松弛性条件:

该条件表示:

  • 若第 $i$ 个不等式约束不起作用,即 ,则
  • ,则对应约束必须取等号,即

证明思路:

KKT 定理可以看作无约束一阶必要条件在约束优化中的推广。无约束问题中,若 ,则可以沿负梯度方向找到下降点;而在约束问题中,不是所有方向都允许走,只能沿满足约束的可行方向移动。

记在 处起作用的不等式约束集合为:

若 $d$ 是 处的可行方向,则一阶近似下应满足:

以及:

由于 是局部极小点,所以不存在可行下降方向。也就是说,不存在方向 $d$ 同时满足约束的一阶可行性,并且使得:

否则沿 移动,当 $t > 0$ 充分小时,由一阶 Taylor 展开可得:

,则会得到 ,这与 是局部极小点矛盾。

因此,在所有可行方向上,目标函数都不能一阶下降。由 Farkas 引理或超平面分离定理可知,目标函数梯度必须能够由起作用约束的梯度线性表示,即存在乘子 ,使得:

其中不等式约束对应的乘子满足 。对于不起作用的不等式约束,有 ,它在 附近不是限制可行方向的边界,因此取:

于是自然得到互补松弛性条件:

再加上原问题本身的可行性条件和乘子非负条件,就得到完整的 KKT 条件。

说明: 这里采用的是最小化问题 的标准形式。如果题目写成最大化问题,或者不等式约束写成 ,拉格朗日函数中乘子的符号约定会相应改变。实际做题时只要前后一致即可,后面的 KKT 例题会按照题目给出的最大化形式单独处理。

最优性定理总结:

定理 类型 主要结论
定理3 无约束一阶必要条件 局部极小点
定理4 无约束二阶必要条件 局部极小点
定理5 无约束二阶充分条件 为严格局部极小点
定理6 凸优化极值定理 凸函数中 为全局极小点
定理7 KKT 定理 约束优化局部最优点在约束规格条件下满足稳定性、可行性、对偶可行性和互补松弛性

三、单纯形表法

7

8

9

题目: 某工厂拟生产甲、乙、丙三种商品,每种商品消耗的资源与利润如下表:

资源限量
工时(小时/件) 6 3 5 45
材料(公斤/件) 3 4 5 30
利润(元/件) 3 1 4

(1) 建立可以获得最大利润的各种商品生产数量的线性模型;(5 分)
(2) 用单纯形表法求解该模型,给出该问题的最优解。(10 分)

解答:

(1) 建立线性规划模型

设甲、乙、丙三种产品分别生产 件,则线性规划模型为:

(2) 单纯形表法求解

引入松弛变量 ,将模型化为标准型:

初始单纯形表

$3$ $1$ $4$ $0$ $0$
$b$
$0$ $45$ $6$ $3$ $5$ $1$ $0$ $9$
$0$ $30$ $3$ $4$ $5$ $0$ $1$ $6$
$0$ $3$ $1$ $4$ $0$ $0$

检验数 中, 的检验数最大($4 > 0$),故 进基
计算 ,最小值为 $6$,故 出基,主元 (表中高亮)。

第一步迭代

为主元进行行变换:新 行 $=$ 原 ;新 行 $=$ 原 行。

$3$ $1$ $4$ $0$ $0$
$b$
$0$ $15$ $3$ $-1$ $0$ $1$ $-1$ $5$
$4$ $6$ $1$ $0$ $10$
$-24$ $0$ $0$

检验数中 的检验数为 ,故 进基
计算 ,最小值为 $5$,故 出基,主元 (表中高亮)。

第二步迭代

为主元进行行变换:新 行 $=$ 原 ;新 行 $=$ 原 行。

$3$ $1$ $4$ $0$ $0$
$b$
$3$ $5$ $1$ $0$
$4$ $3$ $0$ $1$ $1$
$-27$ $0$ $-2$ $0$

此时所有检验数 ,已达到最优,迭代终止。

最优解:

即生产甲产品 5 件、丙产品 3 件,乙产品不生产,可获得最大利润 27 元。


评分标准:

  • (1) 变量设置正确 1 分,目标函数正确 1 分,约束条件正确各 1 分;
  • (2) 标准型正确 2 分,单纯形表格式正确 2 分,每步迭代都正确 3 分。
相关作业题重做复习

10

11

四、运输问题

12

13

14

题目: 某公司有 $3$ 个工厂生产一种商品,销售地点分布于 $4$ 个城市,产地和销地之间的运价表如下,求使调运运价最小的运输方案。($15$ 分)

(1)建立运输模型

表示从产地 运往销地 的运量($i = 1,2,3$;$j = 1,2,3,4$),则运输问题的线性规划模型为:

其中总产量 $8 + 9 + 7 = 24$,总销量 $8 + 6 + 5 + 5 = 24$,产销平衡。

(2)求初始运输方案

方法一:最小元素法

每次在未划去的运价表中选取运价最小的格子优先分配,直至所有产销均满足。

产地\销地 产量
$1$$2$ $7$ $5$$5$ $2$$6$ $8$
$4$ $6$$5$ $10$ $3$$7$ $9$
$7$$1$ $9$ $7$ $9$ $7$
销量 $8$ $6$ $5$ $5$ $24$

上表即为最小元素法得到的初始调运方案(高亮格 为首次分配的最小运价)。分配过程如下:

  1. 最小运价 ),分配 产量耗尽, 剩余销量 $1$;
  2. 剩余最小 ),分配 销量满足, 剩余产量 $7$;
  3. 剩余最小 ),分配 销量满足, 剩余产量 $2$;
  4. 剩余最小 ),分配 产量耗尽, 剩余销量 $3$;
  5. 剩余最小 ),分配 销量满足, 剩余产量 $6$;
  6. 最后 ),分配 ,产销全部满足。

初始方案成本:

方法二:伏格尔法

伏格尔法通过计算各行、各列的”差额”(次小运价与最小运价之差),优先在差额最大的行或列中选取最小运价进行分配。下表给出了伏格尔法迭代过程中的差额变化与最终方案(右上角橙色数字为调运量,高亮为每次选中的最小运价格):

产地\销地 产量 行差额
$1$$2$ $7$ $5$$5$ $2$$6$ $8$
$4$ $6$$5$ $10$ $3$$7$ $9$
$7$$1$ $9$ $7$ $9$ $7$ $6$
销量 $8$ $6$ $5$ $5$
列差额 $2$ $1$

差额演变说明:第一次行差额为 $(3, 1, 6)$,列差额为 $(1, 2, 2, 1)$,最大差额 $6$ 对应 行,选最小运价 分配 $7$;随后重新计算差额,依次完成全部分配。本题中最小元素法与伏格尔法恰好得到完全相同的初始方案(成本同样为 $Z = 97$)。

(3)检验数计算——位势法

对最小元素法得到的初始方案,用位势法计算各非基变量的检验数。设基变量满足 ,令 ,依次求解:

得位势:$u = (0, 1, -1)$,$v = (2, 4, 5, 6)$。

非基变量检验数 计算如下:

产地\销地



产量
$1$$2$ $3$$7$ $5$$5$ $2$$6$ $8$ $0$
$1$$4$ $6$$5$ $4$$10$ $3$$7$ $9$ $1$
$7$$1$ $6$$9$ $3$$7$ $4$$9$ $7$ $-1$
销量 $8$ $6$ $5$ $5$
$2$ $4$ $5$ $6$

表格说明:右上角橙色数字为基变量的调运量;左上角橙色底白字数字为非基变量的检验数

各检验数具体计算:

所有非基变量检验数均满足 ,故该初始方案已是最优方案,无需进行闭回路调整。

最优调运方案与最小运价

最优运输方案为:

其余 。即: 运送 $1$、向 运送 $5$、向 运送 $2$; 运送 $6$、向 运送 $3$; 运送 $7$。

最小总运价:

评分标准:

  • 正确求出初始运输方案得 $5$ 分;
  • 正确求出各检验数得 $6$ 分;
  • 说明检验数为正、得出最优方案得 $4$ 分。

由于这道题涵盖面有点小并没有包含闭回路的调整过程,所以这里再补充一道作业题来进行相关讲解。

运输问题作业题补充

15

16

17

题目: 某百货公司去外地采购 $A,B,C,D$ 四种规格的服装,数量如下:$A$ 为 $1500$ 套,$B$ 为 $2000$ 套,$C$ 为 $3000$ 套,$D$ 为 $3500$ 套。有三个城市可供应上述规格服装,各城市供应数量如下: 为 $2500$ 套, 为 $2500$ 套, 为 $5000$ 套。由于这些城市的服装质量、运价和销售情况不同,预计售出后的利润(元/套)如表所示。请帮助该公司确定一个预期赢利最大的采购方案。

利润表(单位:元/套):

城市\规格 $A$ $B$ $C$ $D$ 供应量
$10$ $5$ $6$ $7$ $2500$
$8$ $2$ $7$ $6$ $2500$
$9$ $3$ $4$ $8$ $5000$
需求量 $1500$ $2000$ $3000$ $3500$ $10000$

(1)问题分析与模型转化

总需求量 $1500 + 2000 + 3000 + 3500 = 10000$,总供应量 $2500 + 2500 + 5000 = 10000$,产销平衡。

本题目标是最大化利润,需先转化为最小成本问题。取最大利润 $M = 10$,令转化后的成本 ,则:

转化后的成本表

城市\规格 $A$ $B$ $C$ $D$ 供应量
$0$ $5$ $4$ $3$ $2500$
$2$ $8$ $3$ $4$ $2500$
$1$ $7$ $6$ $2$ $5000$
需求量 $1500$ $2000$ $3000$ $3500$ $10000$

高亮格 为全表最小运价。

(2)最小元素法求初始方案

每次在剩余表格中选取 最小的格子优先分配:

  1. 最小 ),分配 ,$A$ 满足, 剩余 $1000$;
  2. 剩余最小 ),分配 ,$D$ 满足, 剩余 $1500$;
  3. 剩余最小 ),分配 耗尽,$C$ 剩余 $500$;
  4. 剩余最小 ),分配 ,$C$ 满足, 剩余 $500$;
  5. 剩余最小 ),分配 耗尽,$B$ 剩余 $1500$;
  6. 最后 ),分配 ,产销全部满足。

初始调运方案(右上角橙色数字为调运量,主体为转化成本 ):

城市\规格 $A$ $B$ $C$ $D$ 供应量
$1500$$0$ $500$$5$ $500$$4$ $3$ $2500$
$2$ $8$ $2500$$3$ $4$ $2500$
$1$ $1500$$7$ $6$ $3500$$2$ $5000$
需求量 $1500$ $2000$ $3000$ $3500$

初始方案对应的预期利润:

(3)位势法检验

对基变量令 ,设 ,依次求解:

得位势:$u = (0, -1, 2)$,$v = (0, 5, 4, 0)$。

非基变量检验数 如下表(左上角橙色底白字为检验数,右上角橙色调运量为基变量):

城市\规格 $A$
$B$
$C$
$D$
$1500$$0$ $500$$5$ $500$$4$ $3$$3$ $0$
$3$$2$ $4$$8$ $2500$$3$ $5$$4$ $-1$
$-1$$1$ $1500$$7$ $0$$6$ $3500$$2$ $2$
$0$ $5$ $4$ $0$

表格说明:红色底白字 为负检验数,需调整;橙色底白字为其余非基变量检验数。

由于存在负检验数 ,当前方案不是最优,需要进行闭回路调整。

(4)闭回路法调整

)为进基变量,构造闭回路:

对应格子为

调整量

奇数格加 ,偶数格减

  • (进基)
  • (出基)

调整后方案:

城市\规格 $A$ $B$ $C$ $D$ 供应量
$0$ $2000$$5$ $500$$4$ $3$ $2500$
$2$ $8$ $2500$$3$ $4$ $2500$
$1500$$1$ $7$ $6$ $3500$$2$ $5000$
需求量 $1500$ $2000$ $3000$ $3500$

高亮格 为新进基变量。

(5)再次位势法检验

对调整后方案的基变量重新计算位势,设

,则 。得 $u = (0, -1, 1)$,$v = (0, 5, 4, 1)$。

城市\规格 $A$
$B$
$C$
$D$
$0$$0$ $2000$$5$ $500$$4$ $2$$3$ $0$
$3$$2$ $4$$8$ $2500$$3$ $4$$4$ $-1$
$1500$$1$ $1$$7$ $1$$6$ $3500$$2$ $1$
$0$ $5$ $4$ $1$

所有非基变量检验数均满足 ,且注意到 (在另一组位势设定下可为 $0$,说明存在多组最优解的可能),当前方案已是最优。

(6)还原为最大利润问题

最优采购方案(用原始利润计算)为:

其余

最大预期赢利:

用矩阵形式表示最优调运方案:

五、指派问题

18

19

20

21

题目: 现有 $4$ 项任务要分派给 $4$ 个人完成,每个人完成各项任务所需时间如下表所示,求最优的分派方案使完成任务的总时间最小。($15$ 分)

解答(匈牙利算法):

第一步:行约简

每行减去该行的最小元素,使每行至少出现一个 $0$:

行最小
$5$ $3$ $3$ $3$ $3$
$1$ $6$ $8$ $3$ $1$
$11$ $2$ $2$ $6$ $2$
$5$ $8$ $11$ $10$ $5$

行约简后效率矩阵 $C’$:

$2$ $0$ $0$ $0$
$0$ $5$ $7$ $2$
$9$ $0$ $0$ $4$
$0$ $3$ $6$ $5$

高亮单元格为约简后出现的 $0$ 元素。

第二步:列约简

检查各列最小值:列 $1$ 最小 $0$、列 $2$ 最小 $0$、列 $3$ 最小 $0$、列 $4$ 最小 $0$。每列已有 $0$,无需再减,$C’’ = C’$。

第三步:试指派

在 $0$ 元素上进行试指派,每行每列最多圈一个 $0$(圈的零为独立零)。先找只有一个 $0$ 的行或列优先圈:

$2$ $0$ $0$ $0$
$0$ $5$ $7$ $2$
$9$ $0$ $0$ $4$
$0$ $3$ $6$ $5$

橙色圆圈 $0$ 为圈的独立零;删除线 $0$ 为被划去的非独立零。

指派过程:

  • 行只有 $(1,4)$ 一个 $0$ 可选,圈 $(1,4)$,划去同列其他 $0$;
  • 行剩余 $(2,1)$,圈 $(2,1)$,划去同列其他 $0$;
  • 行剩余 $(3,2)$,圈 $(3,2)$,划去同行其他 $0$;
  • 行已无 $0$ 可圈。

独立零个数 $m = 3 < n = 4$,未达最优,需继续调整。

第四步:画盖零线

用最少直线覆盖所有 $0$ 元素,步骤如下:

  1. 对无圈 $0$ 的行打勾:第 $4$ 行有 $0$ 但未圈,打勾;
  2. 对勾行中包含 $0$ 的列打勾:第 $4$ 行的 $0$ 在列 $1$,列 $1$ 打勾;
  3. 对勾列中有圈的行打勾:列 $1$ 的圈在 $(2,1)$,第 $2$ 行打勾;
  4. 对勾行中包含 $0$ 的列打勾:第 $2$ 行的 $0$ 在列 $1$(已打勾),停止。

画线规则:未打勾的行画横线,打勾的列画竖线。

$2$ $0$ $0$ $0$
$0$ $5$ $7$ $2$
$9$ $0$ $0$ $4$
$0$ $3$ $6$ $5$

红色粗线:第 $1$、$3$ 行横线,列 $1$ 竖线。打勾行:;打勾列:

第五步:矩阵调整

在所有未被直线覆盖的元素中找出最小值

  • 未覆盖元素( 行与 列交叉):$5,7,2,3,6,5$,最小值
  • 未覆盖元素减
  • 线交叉处加 行与 列交叉):
  • 单线覆盖处不变

得到新的等效效率矩阵:

$4$ $0$ $0$ $0$
$0$ $3$ $5$ $0$
$11$ $0$ $0$ $4$
$0$ $1$ $4$ $3$

高亮为调整后的 $0$ 元素位置。注意 $(2,4)$ 由 $2$ 变为 $0$,$(4,1)$ 保持 $0$。

第六步:再次试指派

在新矩阵上重新进行试指派:

$4$ $0$ $0$ $0$
$0$ $3$ $5$ $0$
$11$ $0$ $0$ $4$
$0$ $1$ $4$ $3$

指派过程:

  • 行:圈 $(1,3)$,划去同列 $(3,3)$;
  • 行:圈 $(2,4)$,划去同列(无其他 $0$);
  • 行:剩余 $(3,2)$,圈 $(3,2)$;
  • 行:剩余 $(4,1)$,圈 $(4,1)$。

独立零个数 $m = 4 = n$,得到最优指派方案。

最优指派方案

由圈的零对应回原矩阵位置,得到最优指派:

即:

  • 指派给 (任务 $3$),用时
  • 指派给 (任务 $4$),用时
  • 指派给 (任务 $2$),用时
  • 指派给 (任务 $1$),用时

最优总用时:

注:本题存在多组最优解(等效效率矩阵中有多组独立零的不同取法),上述为其中一组。

评分标准:

  • 正确进行行约简得 $3$ 分;
  • 正确进行试指派与画盖零线得 $5$ 分;
  • 正确调整矩阵并再次试指派得 $4$ 分;
  • 得出正确最优方案与总时间得 $3$ 分。

六、用最速下降法求解非线性优化问题

22

23

24

25

题目: 用最速下降法求解如下非线性优化问题,设初始点为 ,写出前两轮迭代过程。($15$ 分)

题目截图中的公式存在下标、上标渲染错位问题。结合梯度表达式和迭代过程,原非线性优化问题应还原为:

初始点为:

解答:

目标函数的梯度为:

最速下降法每一轮都取当前点处的负梯度方向作为搜索方向,即:

迭代格式为:

其中步长 由一维精确搜索确定:

手写过程检查:目标函数还原、梯度公式、初始点以及第一轮负梯度方向均正确。需要注意的是,第二轮不能继续沿第一轮方向走,而要在新的点 处重新计算负梯度方向。

第一轮迭代:

在初始点 处,有:

所以第一轮搜索方向为:

沿该方向作一维搜索:

令:

代入目标函数得:

求导:

,得:

因此第一轮迭代点为:

第二轮迭代:

在新的点 处重新计算梯度:

所以第二轮搜索方向为:

沿该方向作一维搜索:

令:

代入目标函数得:

求导:

,得:

因此第二轮迭代点为:

前两轮迭代结果汇总:

轮数 当前点 梯度 搜索方向 最优步长 下一点
第 $1$ 轮
第 $2$ 轮

目标函数值也在下降:

结论:

最速下降法从初始点 出发,前两轮迭代得到:

评分标准:

  • 正确还原目标函数并写出梯度得 $2$ 分;
  • 正确写出最速下降法迭代格式得 $3$ 分;
  • 第一轮方向、步长与迭代点计算正确得 $5$ 分;
  • 第二轮重新计算梯度方向、步长与迭代点正确得 $5$ 分。

牛顿法(补充)

这套卷子中并不包含牛顿法相关的题目,但是老师在考点的梳理中明确提到了牛顿法是会考的,所以这里也从笔记中找一道牛顿法的题进行说明讲解,以便于复习。

26

27

题目: 用牛顿法求解如下无约束优化问题,初始点为 ,精度要求为 ,迭代 $2$ 次。

解答:

牛顿法的基本思想是:在当前点 处,用目标函数的二阶 Taylor 展开构造一个二次近似模型,然后求该二次模型的极小点作为下一次迭代点。

对无约束极小化问题,牛顿法迭代公式为:

其中:

  • 为一阶梯度向量;
  • 为二阶梯度矩阵,也称为 Hesse 矩阵;
  • 为牛顿方向。

第一步:求一阶梯度向量

目标函数为:

分别对 求偏导。

求偏导:

求偏导:

因此一阶梯度向量为:

第二步:求二阶梯度矩阵

二阶梯度矩阵由各二阶偏导数组成:

逐项求二阶偏导:

由于 无关, 无关,所以交叉偏导为:

因此 Hesse 矩阵为:

第三步:第一次迭代

初始点为:

先计算初始点处的梯度:

再计算初始点处的 Hesse 矩阵:

其逆矩阵为:

代入牛顿法迭代公式:

所以第一次迭代得到:

此时梯度范数为:

因此初始点尚未满足精度要求,需要继续迭代。

第四步:第二次迭代

处重新计算梯度:

计算该点处的 Hesse 矩阵:

其逆矩阵为:

代入牛顿法迭代公式:

所以第二次迭代得到:

两次迭代结果汇总:

迭代次数 当前点 梯度 Hesse 矩阵 下一点
第 $1$ 次
第 $2$ 次

目标函数值也在下降:

结论:

用牛顿法从初始点 出发,迭代两次后得到:

若题目只要求写出第一次迭代,则答案为 ;若按截图要求迭代 $2$ 次,则最终写到

评分标准:

  • 正确写出一阶梯度向量得 $3$ 分;
  • 正确写出二阶梯度矩阵得 $3$ 分;
  • 正确写出牛顿法迭代公式得 $2$ 分;
  • 第一次迭代点 计算正确得 $4$ 分;
  • 第二次迭代点 计算正确得 $3$ 分。

七、非线性优化KKT条件

28

这道题的渲染有问题,我还原了一下,原题如下所示:

29

30

题目: 对如下非线性优化问题,写出其 KKT 条件的方程。($10$ 分)

解答:

本题是一个带有一个不等式约束和一个等式约束的非线性规划问题。题目只要求写出 KKT 条件,因此重点是正确写出:

  1. 可行性;
  2. 对偶可行性;
  3. 稳定性(也称驻点条件或平稳性条件);
  4. 互补松弛性。

为方便推导,先构造拉格朗日函数,再按官方解答中的四类条件进行整理。

由于原问题是最大化问题,且不等式约束已经写成 的形式,因此可以直接采用如下约定:

其中 表示不等式约束函数, 表示等式约束函数; 是不等式约束对应的拉格朗日乘子, 是等式约束对应的拉格朗日乘子。

如果把问题转化为最小化问题,或者把不等式统一写成 ,乘子的符号会相应改变;但只要前后一致,写出的 KKT 条件是等价的。

第一步:写出目标函数与约束函数

目标函数为:

不等式约束函数记为:

等式约束函数记为:

因此本题只需要引入两个乘子:

  • :对应不等式约束
  • :对应等式约束

其中 ,而 是等式约束乘子,不限制正负。

第二步:构造拉格朗日函数

按照最大化问题中 的约定,拉格朗日函数写为:

第三步:写出稳定性条件

KKT 条件中的稳定性条件要求拉格朗日函数对决策变量 的一阶偏导数为 $0$。

先对 求偏导:

,得到:

再对 求偏导:

,得到:

因此稳定性条件为:

即:

第四步:写出可行性条件

可行性就是原问题中的约束条件必须满足:

其中第一条是不等式约束,第二条是等式约束。

第五步:写出对偶可行性条件

由于本题采用的是最大化问题 的形式,不等式约束乘子应满足:

等式约束乘子 不要求非负,因此不需要写

第六步:写出互补松弛性条件

对于不等式约束 ,互补松弛性条件为:

代入 ,得到:

它的含义是:

  • 若不等式约束不起作用,即 ,则必须有
  • ,则不等式约束必须取等号,即

官方解答核对:

官方解答中可行性、对偶可行性和互补松弛性写法是正确的,稳定性的梯度形式也基本正确;按本文采用的记号,应写成 ,等式约束项前也应取梯度。

在把稳定性条件展开成两个标量方程时,官方第二个方程存在笔误:

  1. 目标函数中 求导后应为 ,不能漏掉常数项 $-10$;
  2. 约束项 求导后应为 ,如果写成 也是错误的。

正确展开应为:

也就是:

而不是只写成 。因此下面汇总时采用修正后的完整 KKT 条件。

KKT 条件汇总

综上,该问题的 KKT 条件为存在乘子 ,使得:

也可以写成梯度形式:

其中:

评分标准:

  • 正确还原目标函数与约束条件得 $2$ 分;
  • 正确写出可行性条件得 $2$ 分;
  • 正确写出对偶可行性条件得 $2$ 分;
  • 正确写出稳定性条件得 $3$ 分;
  • 正确写出互补松弛性条件得 $3$ 分。

八、遗传算法

31

题目: 简述遗传算法的主要思想、算法特点和算法步骤。($10$ 分)

解答:

遗传算法(Genetic Algorithm,GA)是一类模拟自然界生物进化过程的随机搜索与优化算法。它借鉴了达尔文进化论中的“适者生存、优胜劣汰”思想,把问题的一个候选解看成一个“个体”,把多个候选解组成的集合看成一个“种群”,通过选择、交叉、变异等操作不断产生新的种群,使种群整体逐步向更优解方向进化。

这道题通常不是要求写复杂公式,而是考查对遗传算法整体思想的理解。答题时可以从三个方面展开:主要思想、算法特点、主要步骤。

一、主要思想

遗传算法的核心思想是:用群体搜索代替单点搜索,用适应度评价解的优劣,并通过模拟生物遗传和进化机制,使优良个体更容易被保留下来,从而逐代逼近最优解或满意解。

具体来说,遗传算法首先将优化问题中的解进行编码,例如可以把一个解编码成二进制串、实数串或其他形式的“染色体”。每一个染色体代表一个可能的解,多个染色体组成初始种群。然后根据目标函数构造适应度函数,用适应度来衡量每个个体的优劣。适应度越高,说明该个体对应的解越好,在后续进化中被保留和繁殖的概率越大。

在每一代进化中,算法会根据适应度进行选择操作,保留较优个体;再通过交叉操作交换两个个体的部分信息,产生新的个体;还会通过变异操作对个体的某些基因进行随机改变,以增加种群多样性,避免算法过早陷入局部最优。经过多代迭代后,种群中较优个体不断积累,最终得到近似最优解。

可以将遗传算法理解为一种“群体并行试错”的优化方法:它不是沿着某一个确定方向一步一步求导下降,而是同时维护一批候选解,通过不断筛选、组合和扰动,让整体解群逐渐变好。

二、算法特点

遗传算法具有以下几个主要特点。

  1. 不依赖梯度信息

    遗传算法不要求目标函数连续、可导,也不需要计算梯度或 Hessian 矩阵。因此它适合处理一些传统优化方法不容易处理的问题,例如目标函数复杂、不可导、不连续、多峰值或解析表达式不明确的问题。

  2. 群体搜索能力强

    遗传算法每次不是只考察一个点,而是同时考察一个种群中的多个候选解。这样可以在搜索空间中从多个位置同时探索,相比单点搜索方法更不容易被某一个局部区域限制。

  3. 具有一定全局搜索能力

    由于选择、交叉和变异共同作用,遗传算法既能保留优秀解,又能不断产生新解。交叉可以重组已有优秀个体的信息,变异可以引入新的搜索方向,因此算法具有跳出局部最优、寻找全局较优解的能力。

  4. 适用范围广

    遗传算法对问题形式要求较低,既可以用于连续优化,也可以用于离散优化、组合优化、参数寻优、路径规划、调度问题等。因此它属于比较通用的智能优化算法。

  5. 计算量可能较大

    遗传算法通常需要维护一个种群,并在每一代中对多个个体计算适应度。如果种群规模很大、迭代次数很多,或者适应度函数本身计算复杂,那么算法的计算时间会比较长。

  6. 结果具有随机性

    遗传算法中的初始种群、选择、交叉和变异通常都带有随机性,因此每次运行得到的结果可能不完全相同。实际使用时常常需要设置合适的种群规模、交叉概率、变异概率和最大迭代次数。

三、主要算法步骤

遗传算法的一般步骤如下。

第一步:编码

将优化问题的可行解表示成算法可以处理的染色体形式。常见编码方式包括二进制编码、实数编码、整数编码和排列编码等。编码方式的选择要和具体问题相适应,例如连续变量优化常用实数编码,组合排序问题常用排列编码。

第二步:产生初始种群

随机生成一定数量的个体,组成初始种群。种群规模不能太小,否则搜索范围有限,容易陷入局部最优;但也不能过大,否则每一代计算适应度的成本会增加。

第三步:计算适应度

根据目标函数构造适应度函数,并计算种群中每个个体的适应度。适应度用于衡量个体质量,是后续选择操作的依据。对于最大化问题,可以直接把目标函数值或其变形作为适应度;对于最小化问题,通常需要将目标函数转化为“越小目标值对应越大适应度”的形式。

第四步:选择操作

根据适应度从当前种群中选择个体进入下一代或参与繁殖。适应度高的个体被选中的概率较大,适应度低的个体被淘汰的概率较大。常见选择方法包括轮盘赌选择、锦标赛选择和精英保留策略等。选择操作体现了“优胜劣汰”的思想。

第五步:交叉操作

从被选中的个体中选取父代个体,按照一定交叉概率交换部分基因,产生新的子代个体。交叉操作可以把不同优秀个体中的有用信息重新组合,从而产生可能更优的新解。常见方式包括单点交叉、多点交叉和均匀交叉。

第六步:变异操作

按照一定变异概率随机改变个体中的某些基因。变异的作用是增加种群多样性,防止所有个体过早变得相似,从而减少陷入局部最优的风险。变异概率通常不能过大,否则算法会变得接近随机搜索;也不能过小,否则种群多样性不足。

第七步:判断终止条件

判断算法是否满足终止条件。如果满足,则输出当前最优个体作为近似最优解;如果不满足,则令新种群成为当前种群,继续进行适应度计算、选择、交叉和变异操作。

常见终止条件包括:

  • 达到最大迭代代数;
  • 最优适应度在若干代内变化很小;
  • 找到了满足精度要求的解;
  • 达到预设运行时间。

四、答题总结

考试作答时可以概括为:

遗传算法是一种模拟自然选择和遗传机制的全局随机搜索算法。它将问题的解编码为染色体,随机生成初始种群,通过适应度函数评价个体优劣,并反复执行选择、交叉、变异等遗传操作,使优良个体得到保留和组合,从而逐步逼近最优解。其特点是不依赖梯度信息、适用范围广、具有群体搜索和全局搜索能力,但计算量较大,结果具有一定随机性。主要步骤包括编码、初始化种群、计算适应度、选择、交叉、变异、终止判断和输出最优解。

评分标准:

  • 主要思想表述正确得 $3$ 分;
  • 算法特点说明正确得 $3$ 分;
  • 主要算法步骤完整得 $4$ 分。

凸相关概念补充

这一部分主要补充笔记中“非线性优化”相关的基础概念,尤其是凸集、凸函数、凸规划以及判断凸性时常用的几个定理。前面真题里已经考到了最优性条件、最速下降法、牛顿法和 KKT 条件;这些内容背后的一个重要基础就是“凸”。如果目标函数和可行域具有凸性,那么局部最优往往可以推出全局最优,问题会比一般非线性优化问题简单很多。

一、非线性优化问题的基本概念

一般的非线性规划问题可以写成:

其中:

  • 是决策变量;
  • $f(x)$ 是目标函数;
  • 是不等式约束;
  • 是等式约束。

如果 $f(x)$、 中至少有一个是非线性函数,那么该问题通常称为非线性优化问题。与线性规划相比,非线性优化可能出现多个局部极小点,也可能出现鞍点,因此最优性条件的判断会更复杂。

二、范数与常见范数

在优化理论中,范数常用来度量向量的“长度”或“大小”。设 ,若函数 满足以下三条性质,则称它为一个范数。

第一,正定性:

第二,齐次性:

第三,三角不等式:

常见范数有以下几种。

1. $1$-范数

在二维情形下,,其单位球 是一个菱形。

2. $2$-范数

这是最常见的欧氏距离。在二维情形下, 是一个圆盘。

3. -范数

在二维情形下, 是一个正方形。

范数单位球可视化

下面用图形展示二维空间中三种常见范数单位球的形状。这里的“单位球”指满足 的点集。

从图中可以看到,同样是“长度不超过 $1$”的点集,不同范数给出的几何形状不同。这个图也能帮助理解后面凸集的概念:菱形、圆盘、正方形都是凸集,因为任取其中两点,它们之间的线段仍然在集合内部。

三、内积、夹角与方向导数

中,两个向量 $x,y$ 的内积定义为:

如果 $x,y$ 都不是零向量,则二者夹角 满足:

也就是说:

内积可以理解为“一个向量在另一个向量方向上的投影程度”。当 时,两个向量夹角为锐角;当 时,两个向量正交;当 时,两个向量夹角为钝角。

对于可微函数 $f(x)$,沿方向 $d$ 的方向导数为:

如果 $d$ 是单位方向,则 表示函数在点 $x$ 沿方向 $d$ 的瞬时变化率。根据内积公式:

当 $d$ 与 同方向时,方向导数最大;当 $d$ 与 同方向时,方向导数最小。因此:

  • 是函数值增长最快的方向;
  • 是函数值下降最快的方向;
  • 这就是最速下降法选择负梯度方向的原因。

四、凸集

。若对任意 和任意 ,都有:

则称 $S$ 为凸集

这个定义的几何含义是:集合中任意两点连成的线段仍然完全落在集合内部。也就是说,一个集合如果“不凹进去”,通常就是凸的;如果两点之间的线段有一部分跑到集合外面,则不是凸集。

凸集与非凸集可视化

下面用一个圆盘表示凸集,用一个月牙形区域表示非凸集。圆盘中任意两点连线都在圆盘内;而月牙形区域中可以找到两点,使得它们之间的线段穿过集合外部。

常见凸集:

  1. 空间 本身是凸集;
  2. 直线、线段、射线是凸集;
  3. 半空间 是凸集;
  4. 超平面 是凸集;
  5. 圆盘、球、椭球是凸集;
  6. 多面体,例如线性规划中的可行域,是凸集。

凸集的交集仍是凸集。

都是凸集,则:

仍然是凸集。

这个性质在线性规划中非常重要,因为线性规划的每一个线性约束都对应一个半空间,而半空间是凸集;多个线性约束共同作用就是多个半空间的交集,所以线性规划的可行域一定是凸集。

五、凸锥

如果集合 满足:对任意 和任意 ,都有:

则称 $K$ 为

如果 $K$ 既是锥,又是凸集,则称 $K$ 为凸锥。等价地说,若对任意 和任意 ,都有:

则 $K$ 是凸锥。

常见例子包括:

  • 非负正交象限
  • 由若干向量非负线性组合生成的集合:

在 KKT 条件和约束优化的几何解释中,经常会出现由约束梯度张成的锥。可以把它理解为“由若干方向向外撑开的区域”。

六、凸函数

是凸集,函数 。若对任意 和任意 ,都有:

则称 $f$ 是 $S$ 上的凸函数

这个定义的几何含义是:函数图像上任意两点连成的弦,应该位于函数图像的上方。换句话说,凸函数的图像形状通常是“向上弯”的。

如果对任意 和任意 ,都有严格不等式:

则称 $f$ 是严格凸函数

一维凸函数可视化

下面用 作为例子。取两个点 ,函数图像上两点之间的弦位于曲线之上,因此对弦上任意点,都有:

从图像上看,蓝色曲线是 ,红色虚线是两点之间的弦。绿色竖线表示在同一个横坐标处,函数图像上的点低于弦上的点,这正是凸函数定义的几何含义。

七、凸函数的一阶判别法

是定义在凸集 $S$ 上的可微函数。则 $f$ 为凸函数,当且仅当对任意 ,都有:

这个不等式的几何意义是:凸函数图像始终位于任意一点的切线或切平面上方。

在一维情况下,它写成:

也就是说,对于凸函数而言,在任意一点作切线,整条曲线都不会跑到切线下面。

这个结论在最优性定理中非常关键。如果某点 满足:

那么由凸函数一阶判别法可得:

因此 就是全局极小点。

八、凸函数的二阶判别法

是定义在凸集 $S$ 上的二阶连续可微函数。若对任意 ,都有:

则 $f$ 是凸函数。

如果对任意 ,都有:

则 $f$ 是严格凸函数。

在一维情形下,二阶判别法可以简化为:

对于二元函数 ,Hesse 矩阵为:

判断它是否半正定,就可以判断函数是否为凸函数。

常见矩阵正定性判断如下:

Hesse 矩阵情况 函数形态 最优化含义
严格凸 局部极小点通常唯一,驻点为严格局部极小点
任意局部极小点都是全局极小点
严格凹 对最小化不利,对最大化有利
不定 非凸 可能出现鞍点或多个局部极值

九、凸规划

如果优化问题满足:

  1. 目标函数 $f(x)$ 是凸函数;
  2. 不等式约束函数 是凸函数,并写成
  3. 等式约束函数 是仿射函数,即

则该问题称为凸规划问题

标准形式为:

其中 $f(x)$ 与 都是凸函数, 是仿射函数。

凸规划最重要的性质是:

凸规划问题的任意局部极小点都是全局极小点。

原因是:凸目标函数不会出现“局部低谷但不是全局低谷”的情况,而凸约束形成的可行域也是凸集。在线性规划中,目标函数是线性的,可行域是多个半空间的交集,因此线性规划是凸规划的一个特殊情形。

十、凹函数与最大化问题

如果 $f(x)$ 是凸函数,则 $-f(x)$ 称为凹函数。凹函数的图像通常是“向下弯”的。

对于最大化问题:

如果 $f(x)$ 是凹函数,并且可行域是凸集,那么这个问题同样具有良好的性质:任意局部极大点都是全局极大点。

这与最小化凸函数是对应的,因为:

若 $f(x)$ 是凹函数,则 $-f(x)$ 是凸函数,所以最大化凹函数可以转化为最小化凸函数。

十一、常见考试表述总结

考试中关于凸性的概念题,可以按照下面的方式组织答案。

1. 凸集定义

,若任意 和任意 ,都有 ,则 $S$ 为凸集。

2. 凸函数定义

设 $S$ 是凸集,若任意 和任意 ,都有:

则 $f$ 为凸函数。

3. 可微凸函数的一阶判别

4. 二阶连续可微凸函数的二阶判别

5. 凸优化最重要结论

对于凸优化问题,局部最优解就是全局最优解;如果目标函数严格凸,则全局最优解至多只有一个。

6. 与 KKT 条件的关系

在一般非线性优化中,KKT 条件通常只是局部最优的必要条件;但在凸优化中,在适当约束规格条件下,KKT 条件往往也是全局最优的充分条件。

罚函数法与障碍函数法

这一部分对应复习课大纲的第 9 点。前面已经讲了无约束优化的最优性条件(梯度为零、Hesse 矩阵判定)以及约束优化的 KKT 条件。KKT 条件给出了最优解”应该长什么样”的判定准则,但很多时候直接求解 KKT 方程组并不容易,罚函数法和障碍函数法提供了另一条思路:把带约束的优化问题转化为一系列无约束优化子问题,然后用前面的最速下降法、牛顿法等无约束方法来解。

一、核心比喻:”院子里找最低点”

想象你在一个四面有围墙的院子里,目标是找到院子里地势最低的地方。但你现在不知道院子的精确边界在哪,或者直接走进去很困难。

  • 罚函数法的策略是:你从院子外面开始走,但是制定了一条”铁律”——只要踏出院子边界一步(违反约束),就交一笔巨额罚款。罚款的金额会一轮一轮地往上翻。你很快就会发现,老老实实待在院子里面才能”活下去”,于是你的行走轨迹就从院外渐渐收拢到院内,最终停在院内最低洼的地方。
  • 障碍函数法的策略刚好相反:你一开始就在院子里面,但院子围墙的内侧种满了越来越密集的荆棘。你越靠近围墙,就被扎得越疼。所以你只能在院子中间安全区域走动。随着荆棘慢慢变稀(障碍因子逐渐减小),你可以试探地靠近围墙——如果最低点恰好贴着墙根,你就能逐渐逼近它。

这个比喻把两种方法的核心差异说清楚了:罚函数从外面逼近,障碍函数从里面逼近

二、罚函数法(外部罚函数法)

2.1 方法构造

考虑一般约束优化问题:

罚函数法的做法是:在原目标函数上叠加一个罚项,使得违反约束时函数值被”罚”得很高,从而迫使无约束优化的解自动趋向可行域。

构造增广目标函数(罚函数):

其中 称为罚因子。罚项的设计逻辑非常直观:

  • (不等式约束满足),则 ,不产生罚项;
  • (违规!),则 ,产生正罚项;
  • 同理:等式约束只有在 时罚项为零。

比喻补充 就像”超速检测器”——你只有超速了()才会被记录,罚款金额按超速的平方计算;而 就是罚单的倍率,每轮都在上涨。

2.2 算法流程

  1. 选定初始罚因子 (如 ),放大系数 $c > 1$(常取 ),精度 ,初始点 (任意),置 $k = 1$;
  2. 为初始点,求解无约束子问题 ,得解
  3. 检查罚项是否已充分小:若 ,则停止, 为近似最优解;
  4. 否则,增大罚因子 ,返回步骤 2。

关键结论:随着 ,罚函数子问题的解序列 会收敛到原约束问题的真正最优解。

2.3 一维实例:从外面向里面逼近

用最简单的例子感受罚函数法的行为:

真正最优解是 ,最优值 。构造罚函数:

分析:当 $x < 1$ 时,罚项 起作用。令

可见:。罚因子越大,子问题的最优解越靠近真正的边界 $x=1$,且始终从可行域外部(左侧)逼近

图中三根弧线分别对应 。可以看到罚因子越大,罚函数 在 $x < 1$ 一侧被”抬起”得越高,迫使极小点向右移动,越来越接近 $x=1$。

三、障碍函数法(内点法)

3.1 方法构造

障碍函数法与罚函数法思路相反:要求初始点必须严格在可行域内部,并在目标函数上叠加障碍项,使迭代点无法穿越可行域边界。

对于只有不等式约束的问题:

构造障碍函数:

其中 障碍因子 为障碍函数。两种最常用的障碍函数:

(1)对数障碍函数(最常用)

(2)倒数障碍函数

两种障碍函数的共同特征:当 (约束趋于”紧”时),,相当于在边界上竖起一道无穷高的墙,迭代点根本无法穿越。

比喻补充 的行为可以类比”越靠近悬崖,恐惧指数以对数形式飙升”——靠近约束边界就像靠近悬崖边缘,障碍函数就是那个让人本能后退的恐惧强度。而 控制对恐惧的敏感度: 大时非常敏感(离边界老远就害怕了), 小时越来越大胆(可以靠近边界)。

3.2 算法流程

  1. 选定初始障碍因子 (如 ),缩小系数 $c > 1$,精度 ,初始点 严格满足 ,置 $k = 1$;
  2. 为初始点,求解无约束子问题 ,得解
  3. 检查障碍项是否已充分小:若 ,则停止;
  4. 否则,减小障碍因子 ,返回步骤 2。

关键结论:随着 ,障碍函数子问题的解序列 收敛到原约束问题的真正最优解。

3.3 一维实例:从里面向边界逼近

仍然用刚才的问题:

先改写为标准形式 。取对数障碍函数:

由一阶条件

数值结果:

图中三根弧线分别对应 。注意每条曲线在 时都”翘”向无穷大——这就是障碍函数防止越界的效果。随着 减小,”墙”变矮了,极小点可以从右侧不断逼近 $x=1$。

四、两种方法的对比总结

对比维度 罚函数法(外部罚函数) 障碍函数法(内点法)
核心比喻 在可行域外面犯错就交罚款,罚金越来越高 院墙内侧长满荆棘,荆棘逐渐变稀
初始点要求 任意点(可行域内外皆可) 必须严格在可行域内部
逼近方向 从可行域外部向边界逼近 从可行域内部向边界逼近
适用约束 等式约束 + 不等式约束均可 只适用于不等式约束
控制参数变化方向 (越来越大) (越来越小)
子问题形式
罚/障碍函数典型形式

关键公式速记

两种方法本质上都是用无约束优化的工具去近似求解约束优化问题。在考试中,重点掌握三个维度:

  1. 核心比喻理解——能用一句话说清每种方法在做什么;
  2. 公式构造——能正确写出罚函数和障碍函数的形式;
  3. 参数变化方向与区别—— 是增大还是减小?罚函数法的初始点是否必须在可行域内?障碍函数法能处理等式约束吗?