最优化第二讲—一维搜索算法(二分法、等区间法)
来源:互联网 发布:php system 返回值126 编辑:程序博客网 时间:2024/05/17 15:58
本讲主要列一下单峰搜索算法
问题:f(x)在区间[a,b]内只有一个极小值点,要找到这个极小值点或者这个极小值点所在的区间[x1,x2],其中[x1, x2]要远远小于[a, b]
方法:
一个通用的结论
要缩小区间,必须计算两个点,如果所示,必须计算x1和x2,然后对函数值进行比较。如果f(x1)小于f(x2),那么就说明极小值点一定在a到x2之间,反之也是这个思路。途中后面的两个式子将在以后的方法中反复使用。注意这了仅仅指的是单峰函数
具体的方法基本都是基于以上的思路,不同的是怎么确定x1和x2
具体的方法有
1. 二分搜索法(dichotomous search)
步骤一:首先找到[a,b]的中间点c,c=(a+b)/2,这就是“二分”的意思
步骤二:事先确定一个值sigma,在c左右各找二分之sigma,产生x1、x2。这个就是通用结论中的x1、x2
步骤三:按照通用结论中的方法来做
步骤四:循环确定区间[x1, x2],直到满足要求为止
查找速度:新区间的长度L(n+1),上一个区间的长度L(n),他们的关系是:L(n+1) = L(n)/2 + sigma/2
这个方法其实只是确定了x1和x2怎么找。
计算量:需要计算三个点
缺点:一是需要预先指定sigma,指定不好会有问题。二是得到x1、x2需要计算三个点
2. 等分区间搜索(equal-interval search)
三点等分(也就是区间四等分)
算法跟上面的基本一致,下面通过一个计算题描述一下
第一步:根据题目要求,区间在[0, 1]之间
第二步:将区间三等分,得到三个点,x1、x2、x3
第三步:计算x1、x2、x3对应的函数值,比较大小,这个题目比较特殊,x2、x3点的函数值是一样的,所以如果认为x2是最小点,那么确定的函数区间为[0.25, 0.75],如果认为x3是最小点,那么选取的区间是[0.5, 1]。区间缩小为原先的1/2
查找速度:L(n+1) = L(n)/2
计算量:第一轮需要计算三个点的值,以后只需要计算两个点的值
- 最优化第二讲—一维搜索算法(二分法、等区间法)
- 最优化第二讲——一维搜索法(黄金分割法和java实现)
- 最优化第二讲——一维搜索法(牛顿法)
- 最优化第二讲——一维搜索法(斐波那契法和java实现)
- 最优化方法—一维搜索
- 最优化学习笔记(一)——牛顿法(一维搜索方法)
- 最优化学习笔记(二)一维搜索
- 区间搜索(算法)
- 最优化学习笔记(二)——二分法
- 最优化算法(一)
- (提高篇)第二十讲 项目 二分法解方程等
- 二分法搜索算法
- 搜索算法之二分法
- 搜索算法之二分法
- matlab一维搜索,用进退法确定搜索区间
- 最优化学习笔记(二十)——全局搜索算法
- 优化屏障(Optimization barrier)第二讲
- 优化屏障(Optimization barrier)第二讲
- iOS开发--in house发布和安装(ipa重新签名)
- RGB互转YUV公式
- fdhedgdj
- 循环-01. 求整数段和(15)
- 如何利用js正则表达式判断ip地址的合法性?(正则表达式太厉害了)
- 最优化第二讲—一维搜索算法(二分法、等区间法)
- jsp的注释、声明、表达式、脚本段
- 10.1 继承
- Scala语言 + Spark MLLib进行机器学习---支持向量机
- 面试必会函数源代码 strcpy/memcpy/atoi/kmp/quicksort
- 软件开发工程师能力模型
- 揭秘 typedef四用途与两陷阱
- 我的老博客——我在chinaunix的家
- 【leetcode】Minimum Window Substring