优化算法入门系列文章目录(更新中): 1. 模拟退火算法 2. 遗传算法 遗传算法 ( GA , Genetic Algorithm ) ,也称进化算法 。 遗传算法是受达尔文的进化论的启发,借鉴生物进化过程而提出的一种启发式搜索算法。因此在介绍遗传算法前有必要简单的介绍生物进化知识。一.进化...
分类:
编程语言 时间:
2015-03-09 10:54:59
阅读次数:
356
优化算法入门系列文章目录(更新中): 1.模拟退火算法 2.遗传算法一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。 爬山算法实现很简单,其主要.....
分类:
编程语言 时间:
2015-03-09 10:54:31
阅读次数:
170
1.java的垃圾回收过程使用根搜索算法(GC Roots Tracing)判定对象是否存活的。这个算法的基本思路就是通过一系列的名为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链...
分类:
编程语言 时间:
2015-03-09 00:17:25
阅读次数:
309
一:简介
(1)回溯法 又称试探法
回溯法的基本做法是深度优先搜索,是一种组织得井井有条的、能避免不必要重复搜索的穷举式搜索算法;基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。
适用场景:当遇到某一类问题时,它的问题可以分解,但是又不能得出明确的动态规划或是递归解法,此时可以考虑用回溯法解决此类问题。回溯法的优点在于其程序结构明确,可读性强,易于理解,而且通过对问题的分...
分类:
编程语言 时间:
2015-03-08 15:42:56
阅读次数:
761
一:简介
(1)相信做过ACM的人,都很熟悉图和树的深度优先搜索;算法里面有蛮力法 —— 就是暴力搜索(不加任何剪枝的搜索);
(2)蛮力搜搜需要优化时,就是需要不停的剪枝,提前减少不必要的搜索路径,提前发现判断的过滤条件;
(3)剪枝的核心问题就是设计剪枝判断方法,哪些搜索路径应当舍弃,哪些搜索路径不能舍弃(保留);
(4)高效的剪枝过滤条件需要从局部和全局来考虑问题,发现内在的规律。
...
分类:
其他好文 时间:
2015-03-06 09:39:30
阅读次数:
170
一:剪枝策略的寻找的方法
1)微观方法:从问题本身出发,发现剪枝条件
2)宏观方法:从整体出发,发现剪枝条件。
3)注意提高效率,这是关键,最重要的。
总之,剪枝策略,属于算法优化范畴;通常应用在DFS 和 BFS 搜索算法中;剪枝策略就是寻找过滤条件,提前减少不必要的搜索路径。
二:剪枝算法(算法优化)
1、简介
在搜索算法中优化中,剪枝,就是通过某种判断,避免一些...
分类:
编程语言 时间:
2015-03-05 10:50:02
阅读次数:
181
图案解锁是智能手机一项常用的功能。你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点。这些划过的点所组成的有向折线,如果与预设的折线在图案、方向上都一致,那么手机将解锁。两个点相邻当且仅当以这两个点为端点的线段上不存在尚未经过的点。此外,这条折线还需要至少经过4个点。
有些人可能有和我一样的疑问,在这小小的9个点中,图案密码总共有多少种形式呢?今天我就使用深度优先搜索...
分类:
移动开发 时间:
2015-03-03 09:59:30
阅读次数:
245
1.前n个自然数的所有排列: 1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 int count=1,n; 8 bool *b; 9 int *a;10 11 void dfs(int);12 13 int mai...
分类:
编程语言 时间:
2015-02-26 20:19:39
阅读次数:
180
今天打算改进一维搜索算法要求一维搜索类做到以下几点:1.在失败时,能够返回失败的具体原因,以便根据不同情况分别处理2.尽可能找到使得函数充分下降的步长发现初始步长选得不是越小越好,太小的步长会出现数值误差,导致一维搜索出错能够把参数记下来下次使用当前采用了一些改进,包括1. 在共轭梯度法和牛顿法中,...
分类:
其他好文 时间:
2015-02-07 00:28:34
阅读次数:
222
前言我们前面已经看到,蛮力字符串匹配算法和Rabin-Karp字符串匹配算法均非有效算法。不过,为了改进某种算法,首先需要详细理解其基本原理。我们已经知道,暴力字符串匹配的速度缓慢,并已尝试使用Rabin-Karp中的一个散列函数对其进行改进。问题是,Rabin-Karp的复杂度与强力字符串匹配相同,均为O(mn)。我们显然需要采用一种不同方法,但为了提出这种不同方法,先来看看暴力字符串匹配有什么不...
分类:
编程语言 时间:
2015-02-06 11:23:40
阅读次数:
1360