一、引言

前边的博文我们讨论过一些迭代算法,包括梯度方法、牛顿法、共轭梯度法和拟牛顿法,能够从初始点出发,产生一个迭代序列,但是往往这些迭代序列只能收敛到局部极小点,而且这些迭代方法需要计算目标函数的一阶导数(牛顿法还需计算二阶导数)。从本节开始,讨论一些全局搜索算法,这些方法只需要计算目标函数值,而不需要对目标函数求导。

二、Nelder-Mead 单纯形法(一)

Nelder-Mead 单纯形法引入了单纯形的概念,不需要计算目标函数的梯度。所谓单纯形,指的是由nn维空间中的n+1个点p0,p1,…,pn\boldsymbol{p_0, p_1, \dots, p_n}构成的几何形状,且满足:

det[p01p11……pn1]≠0

\det\left[ \begin{array}{cccc} \boldsymbol{p_0} & \boldsymbol{p_1} & \dots & \boldsymbol{p_n} \\ 1 &1 & \dots & 1 \end{array} \right] \ne 0
这一条件的含义为 R\mathbb{R}中的两个点不重合, R2\mathbb{R^2}中的三个点不共线, R3\mathbb{R^3}中的四个点不共面, 以此类推。这说明,单纯形包围的 nn维空间具有有限的体积。
    针对函数f(x)f(\boldsymbol{x}), x∈Rn\boldsymbol{x} \in \mathbb{R^n}的最小化问题, 首先选择 n+1n+1个点, 使其构成一个初始的单纯形。构造单纯形的一种方式为:选定初始点 x(0)=p0\boldsymbol{x}^{(0)} = \boldsymbol{p_0} ,按照下式产生其他点:

pi=p0+λiei,i=1,2,…,n

\boldsymbol{p_i} = \boldsymbol{p_0} + \lambda_i\boldsymbol{e_i}, i = 1,2,\dots,n
其中, ei,i=1,2,…,n\boldsymbol{e_i}, i = 1,2,\dots,n 表示一组单位向量, 是空间 Rn\mathbb{R^n}的标准基,系数 λi\lambda_i为正数, 可以按照优化问题的规模确定其大小。 按照这种方式产生的 n+1n+1个点,正好能构成一个单纯形。初始单纯形确定之后,接下来就一步步对其进行修改,使得产生的单纯形能够朝着函数的极小点进行收敛。在每次迭代中,都针对单纯形的每个点计算目标函数值。对于函数 f<script type="math/tex" id="MathJax-Element-1764">f</script>最小化的优化问题而言,目标函数最大的点将被另外的点代替,持续开展这一迭代过程,直到单纯形收敛到目标函数极小点。
    下节将给出单纯形的更新规则。

最优化学习笔记(二十)——全局搜索算法相关推荐

  1. Mr.J-- jQuery学习笔记(二十八)--DOM操作方法(添加方法总结)

    Table of Contents appendTo appendTo(source, target) 源代码 append prependTo ​ ​ ​ ​ prependTo源码 prepend ...

  2. 嵌入式系统设计师学习笔记二十八:嵌入式程序设计③——高级程序设计语言

    嵌入式系统设计师学习笔记二十八:嵌入式程序设计③--高级程序设计语言 解释程序和编译程序 编译器的工作阶段示意图 语法错误:非法字符,关键字或标识符拼写错误 语法错误:语法结构出错,if--endif ...

  3. uniapp 学习笔记二十二 购物车页面结构搭建

    uniapp 学习笔记二十二 购物车页面结构搭建 cart.vue <template><view><view class="flex padding" ...

  4. Polyworks脚本开发学习笔记(二十)-补充几个常见操作指令的使用

    Polyworks脚本开发学习笔记(二十)-补充几个常见操作指令的使用 大概要写到结尾了,最后几篇就将手册的各常用命令再看一遍,组合一下,并列举出常见的一些有用的操作. DATA_COLOR_MAP数 ...

  5. JVM 学习笔记二十六、JVM监控及诊断工具-GUI篇

    二十六.JVM监控及诊断工具-GUI篇 1.工具概述 使用上一张命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但他们存在下列局限: (1)无法获取方法级别的分析数据,如方法间的调用关系 ...

  6. JVM 学习笔记二十五、JVM监控及诊断工具-命令行篇

    二十五.JVM监控及诊断工具-命令行篇 1.概述 性能诊断是软件工程师在日常工作中经常面对和解决的问题,在用户体验至上的今天,解决好应用软件的性能问题能带来非常大的收益. Java作为最流行的编程语言 ...

  7. 立创eda学习笔记二十八:在嘉立创购买pcb板并贴片(smt)

    完整的写一下,分为两部分: 1.下pcb订单 这个可以看之前写的一个博客: 立创eda学习笔记三:pcb购买_Gutie_bartholomew的博客-CSDN博客 补充一下,买pcb可以直接有几个途 ...

  8. 最优化学习笔记(十二)——基本共轭方向算法(续)

    目标函数为nn维二次型函数时,共轭方向法能够在nn步迭代之后得到极小点.接下来会发现,共轭方向法的中间迭代步骤具有一种很有意义的性质.选定x(0)\boldsymbol{x}^{(0)}作为迭代初始点 ...

  9. jQuery,Ajax.animate,SVG(简要学习笔记二十)[完结篇]

    1.$和jquery在全局命名空间中定义的唯一两个变量. 2.jquery是工厂函数,不是构造函数.他返回一个新创建的对象. 3.jquery的四种调用方式:     <1>传递CSS选择 ...

  10. 【theano-windows】学习笔记二十——LSTM理论及实现

    前言 上一篇学习了RNN,也知道了在沿着时间线对上下文权重求梯度的时候,可能会导致梯度消失或者梯度爆炸,然后我们就得学习一波比较常见的优化方法之LSTM 国际惯例,参考网址: LSTM Network ...

最新文章

  1. FileChannel
  2. 新人如何快速上手项目管理
  3. php 去除中英文空格,php去除字符串首尾中英文空格程序_PHP教程
  4. 自定义Dialog(图片,文字说明,单选按钮)----类ListPreference实现(2)
  5. NLog在asp.net core中的应用
  6. 外联接、自联接与联合
  7. VS2015不能修改安装路径问题
  8. java超时结束程序_java本机进程超时
  9. java,类的构造方法
  10. 图的遍历之深度优先搜索和广度优先搜索
  11. java 文件流传输_java – 将远程文件流式传输到文件对象中
  12. word参考文献插入和上标设置
  13. 使用回溯法求解N皇后问题
  14. 自考学习记录 课程代码03708《中国近代史纲要》1
  15. nginx匹配规则详解
  16. ftpserver配置
  17. 【邢不行|量化小讲堂系列06-Python量化入门】极简方法将日线数据转为周线、月线或其他周期
  18. 不相交轮换的乘积怎么求_怎么样将一个轮换分解成不相交的轮换的乘积
  19. python中range和arange的区别_浅谈Python中range与Numpy中arange的比较
  20. RDD -- Transformation算子分析

热门文章

  1. vlan划分不能上网_VLAN工作原理
  2. C语言变量未赋初值时,输出为乱七八糟解释
  3. django后端用websocket传输数据
  4. 使用securecrt在本地与服务器之间上传下载数据
  5. Spring Boot + Spring Cloud 构建微服务系统(三):服务消费和负载(Feign)
  6. linux文件管理 - 系统目录结构
  7. MySQL数据库优化(五)
  8. 学习笔记(十一)——数据库的索引碎片、计划缓存、统计信息
  9. HOJ-2662Pieces Assignment(状态压缩,动态规划)
  10. HTML 引用Css样式的四种方式