目录
前言
在南方科技大学学习何炳生老师的数值分析课程期间有很多收获与感悟,由衷的感谢何老师的谆谆教导,当然我希望能将课程中所学习到的,能应用到未来科研和工作中的这部分知识,以学习笔记的方式记录下来,也希望能通过这种帖子将自己作为小白对于这些知识的通俗理解分享给大家,文中一些不够准确或错误的表达,还望大家指证。
【数值分析】学习笔记目录
本章节将分享凸优化的进阶知识——拉格朗日函数及变分不等式
一.线性约束的凸优化问题(一个凸函数+线性约束条件)
1.一个实例
在上一篇笔记中,我们提到了,在我们生活中很多凸优化问题除了函数自身的限制以外,还一般存在一个条件约束,需要同时满足两个条件的点才会是我们需要的最优解点,为方便大家理解,这里借用何老师课堂上的一个例子来进行说明:
背景:某饲料场需要购买一批粮食来配置动物们的饲料
要求:饲料需要满足动物所需的营养要求,其中淀粉2100千克,蛋白质600千克
目前已知市场上总共出售三种粮食(玉米、小麦、大豆)【j=1,2,3】,三种粮食每公斤的价格 c j c_{j} cj以及营养成分 a i j a_{ij} aij如表所示,设三种粮食的采购量为 x j x_{j} xj,请问如何在满足营养要求(线性约束条件)的情况下,购买粮食,并且花费尽可能少的钱(凸函数)?
含量 | 玉米 x 1 x_{1} x1 | 小麦 x 2 x_{2} x2 | 大豆 x 3 x_{3} x3 | 总需求量 |
---|---|---|---|---|
淀粉 | a 11 = 0.50 a_{11}=0.50 a11=0.50 | a 12 = 0.50 a_{12}=0.50 a12=0.50 | a 13 = 0.20 a_{13}=0.20 a13=0.20 | 2100 |
蛋白质 | a 21 = 0.10 a_{21}=0.10 a21=0.10 | a 22 = 0.12 a_{22}=0.12 a22=0.12 | a 23 = 0.40 a_{23}=0.40 a23=0.40 | 600 |
单价 | c 1 = 3 c_{1}=3 c1=3 | c 2 = 4 c_{2}=4 c2=4 | c 3 = 8.4 c_{3}=8.4 c3=8.4 |
设总的花费为 θ ( x ) = c T x \theta(x)=c^{T}x θ(x)=cTx,营养需求为 b b b,那这个问题的数学表达可以写为
arg min { θ ( x ) ∣ A x = b , x ∈ X } \arg \min \{\theta(x) \mid A x=b, x \in \mathcal{X}\} argmin{
θ(x)∣Ax=b,x∈X}这就是一个典型线性约束的凸优化问题,那它的最优解位于哪里(即求其最优性条件)呢?
这个问题其实和上一篇笔记中两个凸函数的凸优化问题是有异曲同工之处的,区别只在于,那个问题是求两个函数之和的最小,而此处我们需要一个最小的同时,另一个足够大满足甚至超过我们的要求,即min-max思想。除此之外这个问题还有一个难点就是在于,我们该如何表达出后面线性约束 A x = b Ax=b Ax=b 的最优性条件。
2.对偶问题
要求解上面这个问题,我们最需要去做的就是,将线性约束式与前面的凸函数式联立起来,得到一个新的函数表达式,再根据那个函数来求其最优解点。而如何联立两者,我们需要引入一个新的问题来方便理解,即它的对偶问题(Dual Problem),上面的问题则被称为原始问题(Primal Problem)。
背景:一家营养素公司,打算做饲料场的生意,他们可以直接供给淀粉营养素和蛋白质营养素,由于要能做成生意,他们保证配置同样的营养成分,买营养素是不会高于市场粮食价格的,设公司对两种营养素的价格设定分别为 y 1 , y 2 y_{1}, y_{2} y1,y2,请问该怎么设定价格可以实现最大的盈利。
含量 | 玉米 x 1 x_{1} x1 | 小麦 x 2 x_{2} x2 | 大豆 x 3 x_{3} x3 | 营养素价格 |
---|---|---|---|---|
淀粉 | a 11 = 0.50 a_{11}=0.50 a11= |