博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
约束优化方法
阅读量:4179 次
发布时间:2019-05-26

本文共 1016 字,大约阅读时间需要 3 分钟。

约束优化方法

1. 简介

约束问题是指自变量取值受到一定限制的优化问题,用数学模型可表示为

在这里插入图片描述
约束优化问题存在最优解的必要条件是目标函数和约束函数都为连续、可微函数,且存在一个非空的可行域

2. 约束优化方法

约束优化方法大致可以分为三类:

① 根据约束建立边界进行直接搜索
② 将约束优化问题转化为无约束优化问题
③ 通过二次规划或线性规划逐次逼近非线性规划(线性化
在这里插入图片描述

2.1 直接搜索方法

直接搜索方法的基本思想是在可行域内,选取初始点后,按适当的步长往可行的搜索方向进行移动,不断迭代直到满足结束条件。所有的迭代点都限制在可行域内。常见的方法有:,。

2.2 转化为无约束问题

这个方法在使用过程比较常见,笔者在学习过程中已经有一些体会,有些方法确实是已经在使用的。基本思路是将约束合并到目标中,或者是将搜索方向直接投影到满足约束的方向上,使得搜索过程不必在检验解时候满足约束。

2.2.1

罚函数法是根据约束条件的特点,将约束转化为某种惩罚函数,加入到目标函数中。

常见的方法有:
① 外罚函数法。例如在博文中,解满足体积重量约束时,适应度为物品价值,不满足约束时,采用相反数的方式计算其适应度(惩罚函数相当于“减去两倍的物品价值”)。
在这里插入图片描述
② 内点法。也称为内罚函数法或障碍函数法。基本思想是根据约束条件建立障碍函数,让靠近边界的解“代价较大”,使得搜索过程在约束边界内。内点法通常也和外罚函数法结合这一起使用。
③ 乘子法。基本实现是从原问题的拉格朗日函数出发,再加上适当的罚函数转化为无约束问题。

2.2.2

可行方向法的基本思想是在每一次迭代中,要求搜索方向对目标函数是下降的,并且对约束函数是可行的。常见的有三种策略:

① 通过求解线性规划确定可行搜索方向,如Zoutendijk可行方向法;
② 通过投影矩阵构造可行搜索方向,如梯度投影法;
③ 通过既约矩阵构造可行搜索方向,如既约梯度法;

2.2.3 极大熵方法

基本实现是利用最大熵原理推导出可微函数G(x),用G(x)函数来逼近目标函数。

2.3 线性化

二次规划和线性规划是比较容易求解的,因而对于非线性规划问题通常也可以线性化后再进行求解。常见方法如下:

① 牛顿-拉格朗日方法:先是使用拉格朗日函数对原优化问题转化进行转化,再使用牛顿法对转化后的方程组进行求解;

参考文献:

《最优化方法及其MATLAB实现》
【其他参考资料链接已插在文中对应位置】

转载地址:http://gueai.baihongyu.com/

你可能感兴趣的文章
andorid里关于wifi的分析
查看>>
Hibernate和IBatis对比
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
Android 的source (需安装 git repo)
查看>>
Ubuntu Navicat for MySQL安装以及破解方案
查看>>
java多线程中的join方法详解
查看>>
在C++中如何实现模板函数的外部调用
查看>>
HTML5学习之——HTML 5 应用程序缓存
查看>>
HTML5学习之——HTML 5 服务器发送事件
查看>>
SVG学习之——HTML 页面中的 SVG
查看>>
SVG 滤镜学习之——SVG 滤镜
查看>>
mysql中用命令行复制表结构的方法
查看>>
hbase shell出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException
查看>>
让代码变得更优雅-Lombok
查看>>
解决Rhythmbox乱码
查看>>
豆瓣爱问共享资料插件发布啦
查看>>
kermit的安装和配置
查看>>
vim 配置
查看>>
openocd zylin
查看>>
进程创建时文件系统处理
查看>>