关于判断函数凸或凹以及最优化的问题

大部分情况下都转换为凸优化问题,并通过最优化方法来求解,因此了解相关知识就显得尤为重要了。

主要内容:

  1. 问题引出
  2. 凸集
  3. 凸函数
  4. 凸优化
  5. 最优化

1、问题引出

在n维空间中,对于任意两个点,对于0<=μ<=1,则表达式μx+(1-μ)y表示x和y连线之间的所有点。

证明略。

2、凸集

定义:

对于某集合中的任意x, y两个点,若x和y连线之间的所有点(0<=μ<=1,μx+(1-μ)y)仍属于这个集合,则称此集合为凸集。

维基百科:http://en.wikipedia.org/wiki/Convex_set

直观的几何表示:
在这里插入图片描述

左边的是凸集,右边的不是凸集,因为右边的集合中任意两点x和y连线之间的所有点有时不属于这个集合(右图中的连线)。

3、凸函数

定义:

对于f(x)是定义在某凸集(非空的,空集也被规定为凸集)上的函数,对于凸集中的任意两点x1x_1x1x2x_2x2,若

f[μx1+(1−μ)x2]<=μf(x1)+(1−μ)f(x2)f[μx_1+(1-μ)x_2]<=μf(x_1)+(1-μ)f(x_2)f[μx1+(1μ)x2]<=μf(x1)+(1μ)f(x2)

则称函数f(x)为凸函数。

维基百科:http://en.wikipedia.org/wiki/Convex_function

直观的几何表示:
在这里插入图片描述
也就是说两点对应的函数值f(x1)和f(x2)的之间的连线(μf(x1)+(1-μ)f(x2))大于等于相应的(即同一个μ值)两点之间连线(μx1+(1-μ)x2)所对应的函数值f[μx1+(1-μ)x2]。

这其实应叫下凸。

如果把上面不等式中的等号去掉,即

$f[μx_1+(1-μ)x_2]<μf(x_1)+(1-μ)f(x_2) $,其中0<μ<1

则称f(x)为严格凸函数。

凸函数的判定方法:

  • 1.求导计算判断:
    在这里插入图片描述

其中要求f二阶可微,表示二阶导数需大于0才是凸函数。

  • 2.常用函数分析法:

指数函数是凸函数;
对数函数是凹函数,然后负对数函数就是凸函数;
对于一个凸函数进行仿射变换,可以理解为线性变换,结果还是凸函数;
二次函数是凸函数(二次项系数为正);
高斯分布函数是凹函数;
常见的范数函数是凸函数;
多个凸函数的线性加权,如果权值是大于等于零的,那么整个加权结果函数是凸函数。

4、凸优化

定义

同时满足如下两个条件的优化问题称为凸优化:

1)目标函数(objective function)是凸函数;

2)可行集合(feasible set)必须是凸集;

即在凸集上寻找凸函数的全局最值的过程称为凸优化。

对于一下的优化问题:
在这里插入图片描述
若目标函数f(x)是凸函数且可行集R是凸集,则称这样的问题为凸优化问题。

或者:
在这里插入图片描述
如果目标函数f(x)和共l个约束函数gi(x)g_i(x)gi(x)都是凸函数,则称这样的问题为凸优化问题。

实际上,可以证明,约束函数gi(x)g_i(x)gi(x)都是凸函数,则它的可行集是凸集。

凸优化的特点

1)如果一个实际的问题可以被表示成凸优化问题,那么我们就可以认为其能够得到很好的解决。

2)还有的问题不是凸优化问题,但是凸优化问题同样可以在求解该问题中发挥重要的左右。比如松弛算法和拉格朗日松弛算法,将非凸的限制条件松弛为凸限制条件。

3)对于凸优化问题来说,局部最优解就是全局最优解。

4)若f(x)在非空可行集R上是严格凸函数,则全局极值点是唯一的。

也就是说如果把一个非凸优化问题转化为凸优化问题(松弛算法),则若求得一个局部最优解即为得到了全局最优解(若目标函数在可行集上是严格凸函数,则此解还是唯一的),并且凸优化问题能够比较好的得解决,因此在看压缩感知的文献时经常会看到如何如之何修改一下约束条件使之变为一个凸优化问题。

非凸优化问题如何转化为凸优化问题

1)修改目标函数,使之转化为凸函数

2)抛弃一些约束条件,使新的可行域为凸集并且包含原可行域

实际建模中判断一个最优化问题是不是凸优化问题的方法

1、目标函数f如果不是凸函数,则不是凸优化问题

2、决策变量x中包含离散变量(0-1变量或整数变量),则不是凸优化问题

3、约束条件写成g(x)<=0时,g如果不是凸函数,则不是凸优化问题

5、最优化

最优化问题:
在这里插入图片描述
最优化手段:

梯度上升(下降)法

牛顿法 / 拟牛顿法

坐标下降法:

6、参考文章

http://blog.csdn.net/jbb0523/article/details/40742955

http://m.blog.csdn.net/blog/njustzj001/47400411

https://www.cnblogs.com/AndyJee/p/5048735.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/345510.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javafx弹出式窗口_JavaFX 8的弹出式编辑器

javafx弹出式窗口在过去的几个月中&#xff0c;我很高兴与JavaFX 8一起使用&#xff0c;以便为计划和调度应用程序实现复杂的用户界面。 所需的功能之一是执行“就地”编辑的方法&#xff0c;即快速编辑用户选择对象的某些基本属性的方法。 遵循“如果您无法创新&#xff0c;就…

随机访问MAC协议 知识梳理(ALOHA,CSMA,CSMA/CD,CSMA/CA)

0、随机访问MAC的协议 数据链路层动态随机分配信道时对随机访问MAC协议&#xff1a;ALOHA&#xff0c;CSMA&#xff0c;CSMA/CD&#xff0c;CSMA/CA ALOHA&#xff0c;CSMA&#xff0c;CSMA/CD的区别仅在于是否对信道进行监听和是否有碰撞检测&#xff1a; 1、ALOHA&#xf…

认识CUBA平台的CLI

毫无疑问&#xff0c;软件开发人员&#xff08;尤其是Java开发人员&#xff09;的世界充满了键盘狂热者&#xff0c;最好是一次单击即可键入10-15个字母。 而且我们的社区也不例外&#xff0c;因此经常有人问我们“如何在没有CUBA Studio的情况下启动项目&#xff1f;”之类的问…

将matlab中数据输出保存为txt或dat格式

一、将matlab中数据输出保存为txt或dat格式的三种方法。 第一种方法&#xff1a;save&#xff08;最简单基本的&#xff09; 具体的命令是&#xff1a;用save *.txt -ascii x x为变量 *.txt为文件名,该文件存储于当前工作目录下&#xff0c;再打开就可以打开后,数据有可能是以…

马尔可夫链笔记

1 引言 之前学习了伯努利过程和泊松过程&#xff0c;它们是无记忆性&#xff0c;不依赖于过去的状态&#xff0c;今天学习了马尔可夫链&#xff0c;它会依赖于过去的过程&#xff0c;更准确的说是依赖于过去的某种状态。 2 离散时间的马尔可夫链&#xff08;Markov Chain, MC…

「协方差」与「相关系数」的概念

一、协方差&#xff1a; 可以通俗的理解为&#xff1a;两个变量在变化过程中是同方向变化&#xff1f;还是反方向变化&#xff1f;同向或反向程度如何&#xff1f; 你变大&#xff0c;同时我也变大&#xff0c;说明两个变量是同向变化的&#xff0c;这时协方差就是正的。 你…

垃圾收集 java_关于Java垃圾收集

垃圾收集 java本文讨论的是使用的最流行的框架之一带来的开销–我敢打赌&#xff0c;几乎没有应用程序不使用java.util.Collections。 本文基于以下事实&#xff1a;框架为例如集合的初始大小提供了默认值。 因此&#xff0c;我们有一个假设&#xff0c;即大多数人不会费心地自…

Latex \bibliographystyle+修改字体字号的大小

1. bibliography style LaTeX 标准选项及其样式共有以下8种&#xff1a; plain &#xff0c;按字母的顺序排列&#xff0c;比较次序为作者、年度和标题. unsrt &#xff0c;样式同plain&#xff0c;只是按照引用的先后排序. alpha &#xff0c;用作者名首字母年份后两位作标号…

boxplot

1. 简介 箱形图&#xff0c;又称为盒须图、盒式图、盒状图或箱线图&#xff0c;是一种用作显示一组数据分散情况资料的统计图。箱形图于1977年由美国著名统计学家约翰图基&#xff08;John Tukey&#xff09;发明。它能显示出一组数据的最大值、最小值、中位数、上下四分位数及…

Java 11的期望

过去的几年对Java世界一直是动荡不安的&#xff0c;在相当多的发行版中添加了各种各样的功能。 在开发人员社区中&#xff0c;人们逐渐意识到Java的开发速度不够快。 在最初的20年中&#xff0c;Java平台和Java开发工具包&#xff08;JDK&#xff09;经历了庞大&#xff0c;不…

martingale与Markov Process的关系

鞅过程与马尔科夫过程是什么关系&#xff1f; 1.鞅代表的是公平游戏&#xff0c;马尔可夫过程侧重过程无记忆性 总而言之&#xff1a;鞅和马尔可夫过程没有包含的关系。因为鞅代表的是公平游戏&#xff0c;而马尔可夫过程侧重过程无记忆性。两者没有内在联系。 注&#xff1…

LaTeX双栏模板插入通栏公式(跨栏插图)

1. 利用带星号的浮动体环境 带星号的浮动体figure和table环境可以在双栏模板中使用&#xff0c;例如我们以IEEEtran为例&#xff0c;插入通栏公式 \documentclass{IEEEtran} \usepackage{amsmath&#xff0c;lipsum} \begin{document} \lipsum[1] \begin{figure*} \begin{ali…

renew process 更新过程

一个泊松过程可以分解成一系列 i.i.di.i.di.i.d 的指数分布随机变量相加&#xff0c;如果把指数分布换成其他 i.i.di.i.di.i.d 的分布就得到了更新过程。 更新过程本身是泊松过程的一种扩长&#xff0c;同时更新过程也可以发展出一套更新理论&#xff0c;包括更新方程等。 htt…

离散时间信号,连续时间信号,模拟信号,数字信号区别

连续时间信号 &#xff1a; 在时间t 上是连续的值 时间连续&#xff0c; 幅值连续。 定义为模拟信号。时间连续&#xff0c; 幅值离散。 比如脉冲信号。 离散时间信号 &#xff1a; 在时间t上 是离散的值 时间离散&#xff0c; 幅值连续。 &#xff08;在任意两个离散时间点…

java8 javafx_Java8中的外观(JavaFX8)

java8 javafxJavaFX8在外观方面进行了一些更改 &#xff0c;其中最相关的是新CSS API &#xff0c;它允许您为控件以及已公开的Skin类创建新CSS属性和伪类。 使用CSS可以更改控件的很多外观&#xff0c;但是CSS可以实现很多功能&#xff0c;这就是Skin类的用处。从“ UI控件体…

如何通俗易懂地解释卷积?

马同学 从数学上讲&#xff0c;卷积就是一种运算。 某种运算&#xff0c;能被定义出来&#xff0c;至少有以下特征&#xff1a; 首先是抽象的、符号化的 其次&#xff0c;在生活、科研中&#xff0c;有着广泛的作用 比如加法&#xff1a; [公式] &#xff0c;是抽象的&…

具有中央异常处理和VO验证的Spring Data JPA –框架

1.简介 一段时间以来&#xff0c;Spring框架已成为事实上的标准&#xff0c;可以创建任何基于REST API的应用程序。 Spring提供了各种现成的组件&#xff0c;以避免编写重复而繁琐的样板代码。 另外&#xff0c;关于Spring的美丽之处在于&#xff0c;如果有现成的解决方案&…

初识斯蒂尔杰斯积分(Stieltjes integral)

https://blog.csdn.net/Northernland/article/details/83051415

drools6.5_使用Drools 6.0进行部署

drools6.5KieScanner 6.0 KieScanner取代了5.x KnowledgeAgent。 它使用嵌入式Maven允许在运行时解析和检索jar。 6.0应用程序现在可以轻松支持依赖关系和可传递依赖关系&#xff1b; 使用众所周知的Maven语义进行版本控制。 它允许在类路径上部署&#xff0c;也可以在运行时动…

双子(Dioid)

双子代数是若其对任意无限多元的 “和”封闭且乘法对此无限和具分配律。 https://baike.baidu.com/item/%E5%8F%8C%E5%AD%90%E4%BB%A3%E6%95%B0