最优化方法四:线性规划与非线性规划

1 线性规划与非线性规划的区别

线性规划问题:目标函数与约束条件均为优化变量的线性函数,不涉及变量的耦合与高次。注意线性规划的约束条件也可以是不等式约束。表达式如下:

                                               

非线性规划问题:目标函数或约束函数是优化变量的非线性函数。根据目标函数和约束函数的不同可以分为:二次规划、几何规划、最小二乘。

2 线性规划求解方法

2.1 图解法:

线性规划问题的约束条件都是线性的,多个约束条件组成的求解域组成凸集。以二维线性规划问题为例:

                              

四个约束条件组成一个闭合域,并且该闭合域一定位凸集。如果极值点存在,则极值点必然在凸集合的顶点处。

为什么一定位凸集合?直观理解:因为约束条件均为线性,二维约束条件为直线某一侧的部分,满足多个约束条件即求解多个约束条件的交集,即两条直线相交求交集。直线角度180°,交集组成的区域在交点处的角度一定小于180°,因此多个约束条件组成的可行域一定为凸集。

为什么极值点一定在凸集合的顶点处?因为线性规划的目标函数为变量的线性函数,该函数组成的是一个平面,二维变量的目标函数为三维平面,三维变量的目标函数是四维平面,必定沿某一方向单调。因此极值点必然落于边界的顶点处(也可能是边界的一条边)。

并且对于多维变量,约束条件组成的可行域也是凸集,只不过是凸多面体,极值点在凸多面体的顶点处。二维三维如下:

                                 
 

因此图解法的基本过程为:找出n+1顶点(假设为n维变量),将每个顶点的变量代入函数值,逐个比较即可计算得到最优解。

2.2 单纯形法:

对于n维变量组成的凸多面体有n+1个定点,几何学上称该多面体为单纯形,并将迭代寻优的方法称为单纯形法。

单纯形法适用于满足以下情况的优化问题:

                                   

上图中,左边的不等式的右边不一定必须是1,并且不等式约束需要转化为等式约束。同时一定要有x大于等于0这个条件。原因后序讲解。

2.2.1 单纯形法计算过程:

(0)不等式约束转化为等式约束(1)确定初始可行基并求解(2)最优性检验(3)换基变换(4)迭代运算。下面通过一个例子讲解。

优化问题:

                                   

(0)不等式约束转化为等式约束

                                   

(1)确定初始可行基并求解

                                   

(2)最优性检验

目标函数f(X)=3x_1+4x_2,非基变量系数为正,非基变量增加,目标函数增加,因此该结果一定不是最优解。

(3)换基变换

由(2)可知,沿着x_2增加的方向,目标函数增加,因此可以将x_2换为基变量,重新进行计算。

                                   

(4)迭代运算

对(3)结果进行最优性检验可知,同样为非最优解,因此重新选基,逐步重复(2)-(3)进行迭代运算。

                                   

最终得到最优结果:17。

2.2.2 换基的原理

对于等式约束,最优解必然粗在于凸集合的顶点处。换基的原理就是尝试每个顶点,举例如下:

对于优化问题:

                                                

选基并计算:

                                  

最终迭代计算后可以看出,每次换基都是计算可行域的定点,迭代找到最优的顶点:

                                                         

第一次选择可行基为x_3,x_4,x_5,即选择了(x_1,x_2)=(0,0),迭代第二次后迭代到了(0,3),第三次迭代到了(2,3),最后一次迭代到了(4,2),即为最终的最优解。

单纯形法为什么要求x_i >=0, i = 1,2,3 ...?为什么不能是-1,1.......?没有这个条件会怎么样?

为了选择可行基时,让非可行基=0,求解即可得到顶点。不管是为了不等式约束转等式约束引入的松弛变量,还是等式约束本身自带的那么多变量,最终需要求解的是目标函数中涉及到的变量。给可行基赋值为1,不可行基赋值为0,如上图所示,目标函数中变量对应的顶点只有0与非0。

同时加上这个条件可以限制变量的取值范围,不严谨的说,随便加上等式约束的曲线或曲面,可行域闭合,顶点一定能找见,最优解也存在。没有这个条件有可能可行域不闭合。

3 非线性规划求解方法

非线性规划求解方法即利用KKT条件,见最优化方法三。

https://mp.csdn.net/console/editor/html/105057670

               

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章