优化问题实际上高中的时候学过了很多求最大最小值或者不等式,线性规划等。当时学的大多是二次或者最多是三元。现在要把它推广到更高维。本专题主要是学习和巩固一些经典的优化问题。比如,目标函数是线性,约束是线性的怎么优化呢?本文从最简单的问题入手。
一、线性规划的标准形式。
任何的线性规划可以表示为一下形式:
请不要怀疑这个结论。对于式2中约束条件的等号,不等式的约束只要加入松弛变量就能解决,对于式3中单独变量的非负约束,只要换元(比如x1≥1)或者拆成两个正数之差(比如x2无约束)。
二、线性规划的可行解(解的个体)、可行域(解的集合)。(这只是针对式2,式子3而言的。不用管式1)
如果连约束都不满足,还谈论目标函数做么子呢?对于这步,我们关键是讨论有无数解的情况。因为对于优化问题,唯一解就是最优解,无解还优化什么呢?
(i)对于式3,没啥好说的。
(ii)对于式2,就是线性代数中经典的求解问题。简单回顾一下齐次线性方程组求解和非齐次线性方程组解的结构。
a.齐次线性方程组的解。(满秩情况解为0,想象两条经原点的不重叠直线;不是满秩情况,通常用消元法找到线性无关组,然后确定基础解系)
定理:设齐次线性方程组Ax=0...(1),若R(A)=r<n,则基础解系恰含n-r个解系列,并且任意n-r个线性无关组的解向量均可构成一个基础解系。
可以想象化简出来有单位非零梯度的矩阵。剩下的n-r个向量多出来。写成解形式时:(红色是线性无关组,黑色是消掉的,只不过我添加上去)
x1=a1.x3+a2.x4+a3.x5
x2=b1.x3+b2.x4+b3.x5
x3= x3
x4= x4
x5= x5
令x3=k1,x4=k2,x5=k3,有
x=k1.(a1,b1,1,0,0)T+k2.(a2,b2,0,1,0)T+k3.(a3,b3,0,0,1)T
至于怎么得到化简形式,编程时无非是按顺序计算,再加上一些数值上的判断选择吧。
b.非齐次方程组的解。Ax=b...(2)。可分解为,Ax=0的基础解加上一个特解。证明:
设x=η是式(2)的解,x=ξ是式(1)的解。则有:
A(ξ+η)=Aξ+Aη=0+b=b,
证毕。
至于如何找特解,特殊值法即可。即令x3=x4=x5=0,可获得一个特解。
三、求最优解。
(i)图解法。高中的线性规划。这里不再讨论。
(ii)单纯形法。
单纯形法,实际上是证明可行域是凸集之后,求出顶点。然后对顶点进行验证,判断是否是最优解。如果不是则转向相邻的顶点。详细请点击这里。