当前课程知识点:现代设计方法学 > 第九章 其他现代设计方法 > 第九章 练习题 > 7.11 约束优化-内点法
各位同学大家好
那么在上一讲当中
我们给大家讲到了
约束优化问题求解的复合形法
那么今天呢 我们继续学习
约束优化问题的求解方法
那今天我们要给大家
讲到的这样一种方法呢
是属于我们间接求解方法当中的一种
那么它的名称呢 叫惩罚函数法
那么 我们在前面提到过惩罚函数方法
也称之为罚函数法
那么 这种方法呢
它相对复合形法来说
它既可以求解
具有等式约束条件的优化问题
同样也可以去求解
具有不等式约束条件的优化问题
该算法的基本思想是什么呢
对于罚函数法来说
它是将约束优化问题
转变为无约束优化问题
那么 这个转变的过程
是去通过构造新的
目标函数来实现的
我们如何去构造
新的目标函数呢
那么 在这里面 我们可以看到
根据我们所构造的
目标函数的形式不同
就决定了搜索点是在可行域之内
还是在可行域之外
那么 因此呢 对于惩罚函数
的这种方法来说
通常包括这样的三种类型
第一种是内点惩罚函数法
我们也把它称之为内点法
第二种是外点罚函数法
我们也称之为外点法
那另外一种呢
是内外点方法的混合
我们称之为混合罚函数法
那今天呢
我们要给大家讲到的内容呢
是关于内点法的内容
对于内点法来说
它适合与求解不等式约束的优化问题
也就是说
当具有不等式约束条件的时候
我们可以利用内点法来进行求解
那么这样的话 那大家可以看到
对于内点法来说
它所适用的优化问题的数学模型是
设计变量为x
目标函数为f(x)
具有不等式的约束条件
不等式约束条件的个数没有限制
那么我们去构造新的目标函数
如何来构造呢
大家可以看一下
对于内点法来说
它是在原来目标函数f(x)基础上
我们增加了一项去构成新的目标函数
那么这个目标函数
我们可以看一下它有什么样的特点呢
f(x)是原来的目标函数
那么 在这里面
我们后边所加的这一项里面
它有两部分构成 一个是rk
那另外一个是后边的西格玛这一部分
rk这一项 我们称之为惩罚因子
我们也把它称之为罚因子
这个罚因子
在内点法当中
它是一个递减的正数序列
那么 也就是
当n趋于无穷的时候
它的极限是等于零的
那么 现在我们来看一下
当罚因子取零的时候
我们新构造的目标函数
实际上就是原来的目标函数
那么 对于内点法来说
通过不断的去
改变罚因子的大小
那么从而去求出我们目标函数的极值
后面的西格玛这一项
它是以我们的不等式约束条件
为函数的复合函数
我们把除了目标函数之外的
这一项称之为惩罚项
那么这样的话呢 大家可以看到
在新的目标函数当中
我们包含了原来的目标函数
我们同样包含了原来的
数学模型当中的不等式的约束条件
所以呢 我们这样的话
通过新构造的目标函数
就把原来的约束优化问题
转变成了无约束优化问题
所以我们在进行
求解的这样一个过程当中
那么就按照无约束的优化问题
来进行求解就可以了
那么这里面呢 大家需要注意的是
对于内点法
我们在求解的过程当中
我们需要做到以下的几点
第一个就是它的初始点
和所求得的序列最优点
都应该是可行点
这是大家一定要特别注意的
尤其是在前面我们讲了很多的
无约束优化问题的求解方法之后
这点经常会被大家忽略掉
也就是我们仅仅求完了之后就结束了
那么 在求解的过程当中
我们一定要时刻的去想
那么这个点是不是可行域内的一个点
那另外一个求解到最后的时候
这个序列最优点
应该要逼近我们的最优点x*
这是我们对内点法来说
大家需要注意的
这样一个问题
那接下来我们来看一下
在这个惩罚项里面
除了惩罚因子之外
我们知道惩罚因子
是一个递减的正数序列
那么后边的西格玛这一项
我们如何来构造呢
对于内点罚函数法来说
后边的惩罚项
我们通常有这样的两种形式
那么一种呢
是我们现在大家看到的
不等式约束条件这个函数的倒数
那么还有一种呢
是用ln
也就是用它的对数形式
是负的Gu(x)的对数
通过这样的两种情况
去构造新的目标函数
那接下来我们来看一下
对内点法来说
它具体的迭代步骤是什么样的
首先 第一个大家可以看到
我们在可行域内需要先确定一个
初始点x0
这个地方大家需要注意
一定在可行域内来确定一个初始点
第二步 我们给定初始的罚因子r0
那么惩罚因子呢
是一个递减的正数序列
那么递减的系数
c和对应的
我们这样一个优化问题的收敛精度
我们也需要在这个地方给出
第三步 我们来看一下
就是要构造惩罚函数
我们在构造惩罚函数的时候
大家可以用
惩罚项两种形式之一就可以
那么在这里大家可以看到
我们给出的这个表达式用的是Gu(x)倒数
构造完惩罚函数之后
我们就把约束优化问题
变成了无约束优化问题进行求解
所以第四步我们就是求
无约束优化问题的解
那么求出来之后呢
接下来我们进行收敛条件的判断
如果满足了迭代终止的判断条件
那么我们就输出最优解
否则的话呢
我们就转入到下一步
那么 如果不满足
我们迭代的终止条件
我们需要对我们的惩罚因此进行递减
递减完了之后
然后我们作为新的初始点
然后呢再进行迭代
直到得到我们的最优点为止
那么 在这里面 大家需要注意的是
在我们刚才的
求解步骤当中
我们看到了初始的罚因子需要给出
那另外呢 我们的递减系数
也需要用到
那么这两项我们如何来选择呢
对于初始的罚因子r0来说
我们一般可以取1-50
但是 在大多数情况下
它初始的罚因子我们取的值都是1
这是一个经验值
对递减系数来说
这个c值我们一般的是取0.1-0.5
通常情况下呢 我们是取0.1的
好 知道了惩罚因子
知道了递减系数的选择之后
那么对于内点法来说
我们就可以进行计算了
接下来呢
我们简单的通过一例题来看一下
那么用内点罚函数法来求解
下面的优化问题
对于这样一个优化问题来说
我们可以看到目标函数很简单
f(x)等于x
它的约束条件只有一个 是
1-x小于等于零
那么这样的话 那大家可以看到
我们根据内点法的思想
我需要构造罚函数
那么构造罚函数的时候
我们选用g x分之一的这样的一种
表达形式
那么 把罚函数构造出来之后
新的目标函数我们就得到了
那么根据新的目标函数
我们接下来进行无约束的优化问题
求解就可以了
在这个题目当中
我们可以把新构造的函数
看成有两部分来构成
然后按照无约束优化问题的
求解方法来进行求解就可以了
那么 对这道题目的求解过程
大家可以自己去看一下
我们ppt上的内容
那么对于内点法这一部分的内容
我们今天就讲到这
-第一章 习题
-第二章 习题
-第三章 习题
-第四章 习题
-第五章 习题
-第七章 练习题
-8.1 可靠性概念及常用指标
-8.2 可靠性常用指标
-8.3 可靠性分析中常用分布函数
-8.4 可靠性设计基本原理
-8.5 机械系统的可靠性
-第八章 练习题
-9.1 反求设计
-第九章 练习题