常见搜索算法_第1页
常见搜索算法_第2页
常见搜索算法_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、下面是一些比较重要的算法,原文罗列了32个,但我觉得有很多是数论里的或是比较生僻 的,和计算机的不相干,所以没有选取。下面的这些,有的我们经常在用,有的基本不用。 有的很常见,有的很偏。不过了解一下也是好事。也欢迎你留下你觉得有意义的算法。(注: 本篇文章并非翻译,其中的算法描述大部份摘自Wikipedia,因为维基百科描述的很专业了)A*搜寻算法俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出最低 通过成本的算法。常用于游戏中的NPC的移动计算,或线上游戏的BOT的移动计算上。 该算法像Dijkstra算法一样,可以找到一条最短路径;也像BFS 一样,进行启发式的搜 索。Beam

2、Search束搜索(beam search)方法是解决优化问题的一种启发式方法,它是在分枝定界方法基 础上发展起来的,它使用启发式方法估计k个最好的路径,仅从这k个路径出发向下搜索, 即每一层只有满意的结点会被保留,其它的结点则被永久抛弃,从而比分枝定界法能大大 节省运行时间。束搜索于20世纪70年代中期首先被应用于人工智能领域,1976年 Lowerre在其称为HARPY的语音识别系统中第一次使用了束搜索方法,他的目标是并 行地搜索几个潜在的最优决策路径以减少回溯,并快速地获得一个解。3二分取中查找算法一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如 果中间元素正

3、好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中 间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开 始比较。这种搜索算法每一次比较都使搜索范围缩小一半。4 Branch and bound分支定界(branch and bound)算法是一种在问题的解空间树上搜索问题的解的方法。 但与回溯算法不同,分支定界算法采用广度优先或最小耗费优先的方法搜索解空间树, 并且,在分支定界算法中,每一个活结点只有一次机会成为扩展结点。5数据压缩数据压缩是通过减少计算机中所存储数据或者通信传播中数据的冗余度, 达到增大数据密度,最终使数据的存储空间减少的技术。数据压缩

4、在文件存储和分布式 系统领域有着十分广泛的应用。数据压缩也代表着尺寸媒介容量的增大和网络带宽的扩 展。Diffie-Hellman 密钥协商 Diffie-Hellman key exchange,简称“D-H”,是一种安全 协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个 密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。Dijkstras算法迪科斯彻算法(Dijkstra)是由荷兰计算机科学家艾兹格迪科斯彻 (Edsger Wybe Dijkstra)发明的。算法解决的是有向图中单个源点到其他顶点的最短路径问题。举例来说,如果图中的顶点表示城市,而边上

5、的权重表示著城市间开车行经 的距离,迪科斯彻算法可以用来找到两个城市之间的最短路径。8动态规划动态规划是一种在数学和计算机科学中使用的,用于求解包含重叠子问题 的最优化问题的方法。其基本思想是,将原问题分解为相似的子问题,在求解的过程中 通过子问题的解求出原问题的解。动态规划的思想是多种算法的基础,被广泛应用于计 算机科学和工程领域。比较著名的应用实例有:求解最短路径问题,背包问题,项目管 理,网络流优化等。这里也有一篇文章说得比较详细。9 欧几里得算法在数学中,辗转相除法,又称欧几里得算法,是求最大公约数的算法。 辗转相除法首次出现于欧几里得的几何原本(第VII卷,命题i和ii)中,而在中国

6、 则可以追溯至东汉出现的九章算术。10最大期望(EM)算法在统计计算中,最大期望(EM)算法是在概率(probabilistic 模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)。最大期望经常用在机器学习和计算机视觉的数据聚类(Data Clustering)领 域。最大期望算法经过两个步骤交替进行计算,第一步是计算期望E),利用对隐藏变 量的现有估计值,计算其最大似然估计值;第二步是最大化(M),最大化在E步上求 得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一个E步计算 中,这个过程不断交替进行。11快速傅里叶变换(FF

7、T)快速傅里叶变换(Fast Fourier Transform, FFT),是离散傅 里叶变换的快速算法,也可用于计算离散傅里叶变换的逆变换。快速傅里叶变换有广泛 的应用,如数字信号处理、计算大整数乘法、求解偏微分方程等等。本条目只描述各种 快速算法,对于离散傅里叶变换的性质和应用,请参见离散傅里叶变换12哈希函数Hash Function是一种从任何一种数据中创建小的数字“指纹”的方法。该 函数将数据打乱混合,重新创建一个叫做散列值的指纹。散列值通常用来代表一个短的 随机字母和数字组成的字符串。好的散列函数在输入域中很少出现散列冲突。在散列表 和数据处理中,不抑制冲突来区别数据,会使得数据

8、库记录更难找到。13堆排序Heapsort是指利用堆积树(堆)这种数据结构所设计的一种排序算法。堆 积树是一个近似完全二叉树的结构,并同时满足堆积属性:即子结点的键值或索引总是 小于(或者大于)它的父结点。14归并排序Merge sort是建立在归并操作上的一种有效的排序算法。该算法是采用 分治法(Divide and Conquer)的一个非常典型的应用。15 RANSAC 算法 RANSAC 是”RANdom SAmple Consensus”的缩写。该算法是用 于从一组观测数据中估计数学模型参数的迭代方法,由Fischler and Bolles在1981提 出,它是一种非确定性算法,因为它只能以一定的概率得到合理的结果,随着迭代次数 的增加,这种概率是增加的。该算法的基本假设是观测数据集中存在inliers(那些对 模型参数估计起到支持作用的点)和outliers”(不符合模型的点),并且这组观测数据 受到噪声影响。RANSAC假设给定一组inliers”数据就能够得到最优的符合这组点的模 型。16 RSA加密演算法这是一个公钥加密算法,也是世界上第一个适合用来做签名的算法。今天的RSA已经 专利失效,其被广泛地用于电子商务加密,大家都相信,只要密钥足够长,这个算法就 会是安全的17并查集Union-find并查集是一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论