找回密码
 立即注册
查看: 703|回复: 10

算法优化之外点法(罚函数法)

[复制链接]
发表于 2021-7-4 09:03 | 显示全部楼层 |阅读模式
外点法(罚函数法)的基本概念:

       罚函数法又称乘子法,是指将有约束最优化问题转化为求解无约束最优化问题:其中  为足够大的正数, 起"惩罚"作用, 称之为罚因子, 称为罚函数。内部罚函数法也称为障碍罚函数法。
       这种方法是在可行域内部进行搜索,约束边界起到类似围墙的作用,如果当前解远离约束边界时,则罚函数值是非常小的,否则罚函数值接近无穷大的方法。在进化计算中,研究者选择外部罚函数法的原因主要是该方法不需要提供初始可行解。其中  是优化过程中新的目标函数, 分别是约束条件 和  的函数,  是常数,称为罚因子。
外点法(罚函数法)的适用范围:

非线性规划有约束的问题,一般用在非线性规划不等式约束的问题。
外点法(罚函数法)的数学定义:

1.考虑约束问题:



  

  
其中   是 上的连续函数
2. 由目标函数和约束函数组成辅助函数,把原来的约束问题转化维极小化辅助函数的无约束问题
(1) 对于等式约束问题



   
可定义辅助函数


其中参数  是很大的正数
把(1)转化为无约束的问题


显然,(3)的最优解比使得  接近零,因为如果不这样的话,问题(3)中 的 项将是很大的正数,现行点必不是极小点。由此可见,求解问题(3)就能够得到问题(1)的近似解。
(2)对于不等式约束问题



  
这与上面构造辅助函数的基本思想一致:
1)在可行点辅助函数值等于原来的目标函数值
2)在不可行点,辅助函数值等于原来的目标函数值加上一个很大的正数
定义函数:


其中  是很大的正数


将问题(4)转化为无约束问题:


通过问题(6)求得问题(4)的近似解
(3)对于一般情形(0),定义函数


其中  具有下列形式:


典型取法:


通常取
这样,把约束问题(0)转化为无约束问题:


其中  是很大的正数,  是连续函数
求解问题(9)能够得到约束问题(0)的近似解,而且  越大,近似程度越好
(1) 称为罚项
(2)  称为罚因子
(3) 称为罚函数
应用案例:

例:

  




罚函数
可通过求解下列无约束问题,求得(1)的近似解:


用解析方法求解无约束问题:


,解得
显然,  越大, 越接近问题(1)得最优解,当 无穷大 时,
发表于 2021-7-4 09:11 | 显示全部楼层
您好,看完之后我觉得罚函数法和拉格朗日乘子法很像,但拉格朗日乘子法可以一步到位求得解,罚函数只是求一个近似解。请问能不能举一个例子来说明用罚函数法比拉格朗日乘子法更好求解呢?或者如果能更详细的话,能不能讲一下一般什么情况用罚函数法而不是拉格朗日乘子法?谢谢。
发表于 2021-7-4 09:19 | 显示全部楼层
还有,我看了别人写关于罚函数法好像都会涉及到迭代什么的,但从您这里举的例子来看,似乎没有迭代的必要。能不能举一个需要迭代的例子呢?谢谢。
发表于 2021-7-4 09:25 | 显示全部楼层
mark
发表于 2021-7-4 09:32 | 显示全部楼层
请问一下p(x)是什么
发表于 2021-7-4 09:36 | 显示全部楼层
p(x)和惩罚因子合在一起称为罚项
发表于 2021-7-4 09:44 | 显示全部楼层
问题连连,标题是外点法,里面又是乱七八糟,混淆视听
发表于 2021-7-4 09:46 | 显示全部楼层
惩罚函数法可以解决有两个及以上的约束条件的非线性规划吗,
发表于 2021-7-4 09:46 | 显示全部楼层
你这全抄的课本啊
发表于 2021-7-4 09:53 | 显示全部楼层
麻烦问下书的名称(及作者),谢谢。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-15 08:31 , Processed in 0.097256 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表