- 浏览: 70866 次
- 性别:
- 来自: 北京
文章分类
最新评论
原文链接:http://click.aliyun.com/m/26866/
摘要: 合并查找算法(Union-find)——给定一组元素,该算法常常用来把这些元素分为多个分离的、彼此不重合的组。不相交集(disjoint-set)的数据结构可以跟踪这样的切分方法。 奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。
合并查找算法(Union-find)——给定一组元素,该算法常常用来把这些元素分为多个分离的、彼此不重合的组。不相交集(disjoint-set)的数据结构可以跟踪这样的切分方法。
20170111022120165.jpg
奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。
1、A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出路径。其中使用了一种启发式的估算,为每个节点估算通过该节点的最佳路径,并以之为各个地点排定次序。算法以得到的次序访问这些节点。因此,A*搜索算法是最佳优先搜索的范例。
2、集束搜索(又名定向搜索,Beam Search)——最佳优先搜索算法的优化。使用启发式函数评估它检查的每个节点的能力。不过,集束搜索只能在每个深度中发现最前面的m个最符合条件的节点,m是固定数字——集束的宽度。
3、二分查找(Binary Search)——在线性数组中找特定值的算法,每个步骤去掉一半不符合要求的数据。
4、分支界定算法(Branch and Bound)——在多种最优化问题中寻找特定最优化解决方案的算法,特别是针对离散、组合的最优化。
5、Buchberger算法——一种数学算法,可将其视为针对单变量最大公约数求解的欧几里得算法和线性系统中高斯消元法的泛化。
6、数据压缩——采取特定编码方案,使用更少的字节数(或是其他信息承载单元)对信息编码的过程,又叫来源编码。
7、Diffie-Hellman密钥交换算法——一种加密协议,允许双方在事先不了解对方的情况下,在不安全的通信信道中,共同建立共享密钥。该密钥以后可与一个对称密码一起,加密后续通讯。
8、Dijkstra算法——针对没有负值权重边的有向图,计算其中的单一起点最短算法。
9、离散微分算法(Discrete differentiation)。
10、动态规划算法(Dynamic Programming)——展示互相覆盖的子问题和最优子架构算法
11、欧几里得算法(Euclidean algorithm)——计算两个整数的最大公约数。最古老的算法之一,出现在公元前300前欧几里得的《几何原本》。
12、期望-最大算法(Expectation-maximization algorithm,又名EM-Training)——在统计计算中,期望-最大算法在概率模型中寻找可能性最大的参数估算值,其中模型依赖于未发现的潜在变量。EM在两个步骤中交替计算,第一步是计算期望,利用对隐藏变量的现有估计值,计算其最大可能估计值;第二步是最大化,最大化在第一步上求得的最大可能值来计算参数的值。
13、快速傅里叶变换(Fast Fourier transform,FFT)——计算离散的傅里叶变换(DFT)及其反转。该算法应用范围很广,从数字信号处理到解决偏微分方程,到快速计算大整数乘积。
14、梯度下降(Gradient descent)——一种数学上的最优化算法。
15、哈希算法(Hashing)。
16、堆排序(Heaps)。
17、Karatsuba乘法——需要完成上千位整数的乘法的系统中使用,比如计算机代数系统和大数程序库,如果使用长乘法,速度太慢。该算法发现于1962年。
18、LLL算法(Lenstra-Lenstra-Lovasz lattice reduction)——以格规约(lattice)基数为输入,输出短正交向量基数。LLL算法在以下公共密钥加密方法中有大量使用:背包加密系统(knapsack)、有特定设置的RSA加密等等。
19、最大流量算法(Maximum flow)——该算法试图从一个流量网络中找到最大的流。它优势被定义为找到这样一个流的值。最大流问题可以看作更复杂的网络流问题的特定情况。最大流与网络中的界面有关,这就是最大流-最小截定理(Max-flow min-cut theorem)。Ford-Fulkerson 能找到一个流网络中的最大流。
20、合并排序(Merge Sort)。
21、牛顿法(Newton's method)——求非线性方程(组)零点的一种重要的迭代法。
22、Q-learning学习算法——这是一种通过学习动作值函数(action-value function)完成的强化学习算法,函数采取在给定状态的给定动作,并计算出期望的效用价值,在此后遵循固定的策略。Q-leanring的优势是,在不需要环境模型的情况下,可以对比可采纳行动的期望效用。
23、两次筛法(Quadratic Sieve)——现代整数因子分解算法,在实践中,是目前已知第二快的此类算法(仅次于数域筛法Number Field Sieve)。对于110位以下的十位整数,它仍是最快的,而且都认为它比数域筛法更简单。
24、RANSAC——是“RANdom SAmple Consensus”的缩写。该算法根据一系列观察得到的数据,数据中包含异常值,估算一个数学模型的参数值。其基本假设是:数据包含非异化值,也就是能够通过某些模型参数解释的值,异化值就是那些不符合模型的数据点。
25、RSA——公钥加密算法。首个适用于以签名作为加密的算法。RSA在电商行业中仍大规模使用,大家也相信它有足够安全长度的公钥。
26、Sch nhage-Strassen算法——在数学中,Sch nhage-Strassen算法是用来完成大整数的乘法的快速渐近算法。其算法复杂度为:O(N log(N) log(log(N))),该算法使用了傅里叶变换。
27、单纯型算法(Simplex Algorithm)——在数学的优化理论中,单纯型算法是常用的技术,用来找到线性规划问题的数值解。线性规划问题包括在一组实变量上的一系列线性不等式组,以及一个等待最大化(或最小化)的固定线性函数。
28、奇异值分解(Singular value decomposition,简称SVD)——在线性代数中,SVD是重要的实数或复数矩阵的分解方法,在信号处理和统计中有多种应用,比如计算矩阵的伪逆矩阵(以求解最小二乘法问题)、解决超定线性系统(overdetermined linear systems)、矩阵逼近、数值天气预报等等。
29、求解线性方程组(Solving a system of linear equations)——线性方程组是数学中最古老的问题,它们有很多应用,比如在数字信号处理、线性规划中的估算和预测、数值分析中的非线性问题逼近等等。求解线性方程组,可以使用高斯—约当消去法(Gauss-Jordan elimination),或是柯列斯基分解( Cholesky decomposition)。
30、Strukturtensor算法——应用于模式识别领域,为所有像素找出一种计算方法,看看该像素是否处于同质区域( homogenous region),看看它是否属于边缘,还是是一个顶点。
31、合并查找算法(Union-find)——给定一组元素,该算法常常用来把这些元素分为多个分离的、彼此不重合的组。不相交集(disjoint-set)的数据结构可以跟踪这样的切分方法。合并查找算法可以在此种数据结构上完成两个有用的操作:
查找:判断某特定元素属于哪个组。
合并:联合或合并两个组为一个组。
32、维特比算法(Viterbi algorithm)——寻找隐藏状态最有可能序列的动态规划算法,这种序列被称为维特比路径,其结果是一系列可以观察到的事件,特别是在隐藏的Markov模型中。
以上就是Christoph博士对于最重要的算法的调查结果。你们熟悉哪些算法?又有哪些算法是你们经常使用的?
原文链接:http://click.aliyun.com/m/26866/
摘要: 合并查找算法(Union-find)——给定一组元素,该算法常常用来把这些元素分为多个分离的、彼此不重合的组。不相交集(disjoint-set)的数据结构可以跟踪这样的切分方法。 奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。
合并查找算法(Union-find)——给定一组元素,该算法常常用来把这些元素分为多个分离的、彼此不重合的组。不相交集(disjoint-set)的数据结构可以跟踪这样的切分方法。
20170111022120165.jpg
奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。
1、A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出路径。其中使用了一种启发式的估算,为每个节点估算通过该节点的最佳路径,并以之为各个地点排定次序。算法以得到的次序访问这些节点。因此,A*搜索算法是最佳优先搜索的范例。
2、集束搜索(又名定向搜索,Beam Search)——最佳优先搜索算法的优化。使用启发式函数评估它检查的每个节点的能力。不过,集束搜索只能在每个深度中发现最前面的m个最符合条件的节点,m是固定数字——集束的宽度。
3、二分查找(Binary Search)——在线性数组中找特定值的算法,每个步骤去掉一半不符合要求的数据。
4、分支界定算法(Branch and Bound)——在多种最优化问题中寻找特定最优化解决方案的算法,特别是针对离散、组合的最优化。
5、Buchberger算法——一种数学算法,可将其视为针对单变量最大公约数求解的欧几里得算法和线性系统中高斯消元法的泛化。
6、数据压缩——采取特定编码方案,使用更少的字节数(或是其他信息承载单元)对信息编码的过程,又叫来源编码。
7、Diffie-Hellman密钥交换算法——一种加密协议,允许双方在事先不了解对方的情况下,在不安全的通信信道中,共同建立共享密钥。该密钥以后可与一个对称密码一起,加密后续通讯。
8、Dijkstra算法——针对没有负值权重边的有向图,计算其中的单一起点最短算法。
9、离散微分算法(Discrete differentiation)。
10、动态规划算法(Dynamic Programming)——展示互相覆盖的子问题和最优子架构算法
11、欧几里得算法(Euclidean algorithm)——计算两个整数的最大公约数。最古老的算法之一,出现在公元前300前欧几里得的《几何原本》。
12、期望-最大算法(Expectation-maximization algorithm,又名EM-Training)——在统计计算中,期望-最大算法在概率模型中寻找可能性最大的参数估算值,其中模型依赖于未发现的潜在变量。EM在两个步骤中交替计算,第一步是计算期望,利用对隐藏变量的现有估计值,计算其最大可能估计值;第二步是最大化,最大化在第一步上求得的最大可能值来计算参数的值。
13、快速傅里叶变换(Fast Fourier transform,FFT)——计算离散的傅里叶变换(DFT)及其反转。该算法应用范围很广,从数字信号处理到解决偏微分方程,到快速计算大整数乘积。
14、梯度下降(Gradient descent)——一种数学上的最优化算法。
15、哈希算法(Hashing)。
16、堆排序(Heaps)。
17、Karatsuba乘法——需要完成上千位整数的乘法的系统中使用,比如计算机代数系统和大数程序库,如果使用长乘法,速度太慢。该算法发现于1962年。
18、LLL算法(Lenstra-Lenstra-Lovasz lattice reduction)——以格规约(lattice)基数为输入,输出短正交向量基数。LLL算法在以下公共密钥加密方法中有大量使用:背包加密系统(knapsack)、有特定设置的RSA加密等等。
19、最大流量算法(Maximum flow)——该算法试图从一个流量网络中找到最大的流。它优势被定义为找到这样一个流的值。最大流问题可以看作更复杂的网络流问题的特定情况。最大流与网络中的界面有关,这就是最大流-最小截定理(Max-flow min-cut theorem)。Ford-Fulkerson 能找到一个流网络中的最大流。
20、合并排序(Merge Sort)。
21、牛顿法(Newton's method)——求非线性方程(组)零点的一种重要的迭代法。
22、Q-learning学习算法——这是一种通过学习动作值函数(action-value function)完成的强化学习算法,函数采取在给定状态的给定动作,并计算出期望的效用价值,在此后遵循固定的策略。Q-leanring的优势是,在不需要环境模型的情况下,可以对比可采纳行动的期望效用。
23、两次筛法(Quadratic Sieve)——现代整数因子分解算法,在实践中,是目前已知第二快的此类算法(仅次于数域筛法Number Field Sieve)。对于110位以下的十位整数,它仍是最快的,而且都认为它比数域筛法更简单。
24、RANSAC——是“RANdom SAmple Consensus”的缩写。该算法根据一系列观察得到的数据,数据中包含异常值,估算一个数学模型的参数值。其基本假设是:数据包含非异化值,也就是能够通过某些模型参数解释的值,异化值就是那些不符合模型的数据点。
25、RSA——公钥加密算法。首个适用于以签名作为加密的算法。RSA在电商行业中仍大规模使用,大家也相信它有足够安全长度的公钥。
26、Sch nhage-Strassen算法——在数学中,Sch nhage-Strassen算法是用来完成大整数的乘法的快速渐近算法。其算法复杂度为:O(N log(N) log(log(N))),该算法使用了傅里叶变换。
27、单纯型算法(Simplex Algorithm)——在数学的优化理论中,单纯型算法是常用的技术,用来找到线性规划问题的数值解。线性规划问题包括在一组实变量上的一系列线性不等式组,以及一个等待最大化(或最小化)的固定线性函数。
28、奇异值分解(Singular value decomposition,简称SVD)——在线性代数中,SVD是重要的实数或复数矩阵的分解方法,在信号处理和统计中有多种应用,比如计算矩阵的伪逆矩阵(以求解最小二乘法问题)、解决超定线性系统(overdetermined linear systems)、矩阵逼近、数值天气预报等等。
29、求解线性方程组(Solving a system of linear equations)——线性方程组是数学中最古老的问题,它们有很多应用,比如在数字信号处理、线性规划中的估算和预测、数值分析中的非线性问题逼近等等。求解线性方程组,可以使用高斯—约当消去法(Gauss-Jordan elimination),或是柯列斯基分解( Cholesky decomposition)。
30、Strukturtensor算法——应用于模式识别领域,为所有像素找出一种计算方法,看看该像素是否处于同质区域( homogenous region),看看它是否属于边缘,还是是一个顶点。
31、合并查找算法(Union-find)——给定一组元素,该算法常常用来把这些元素分为多个分离的、彼此不重合的组。不相交集(disjoint-set)的数据结构可以跟踪这样的切分方法。合并查找算法可以在此种数据结构上完成两个有用的操作:
查找:判断某特定元素属于哪个组。
合并:联合或合并两个组为一个组。
32、维特比算法(Viterbi algorithm)——寻找隐藏状态最有可能序列的动态规划算法,这种序列被称为维特比路径,其结果是一系列可以观察到的事件,特别是在隐藏的Markov模型中。
以上就是Christoph博士对于最重要的算法的调查结果。你们熟悉哪些算法?又有哪些算法是你们经常使用的?
原文链接:http://click.aliyun.com/m/26866/
发表评论
-
Python基础语法-常量与变量
2017-11-23 16:44 0摘要: Python是一门强类型的动态语言。 字面常量,变 ... -
【2017DTC精彩重现】Oracle和MySQL DBA的进阶之路
2017-11-23 16:41 791摘要: 分享的初衷 这 ... -
积攒了这么多技术干货_总有一款适合你
2017-11-23 16:39 533摘要: 每天来云栖社区,总会有精彩的技术干货等着你。我们会不 ... -
小蓝退出舞台_谁能挺过O2O的第一个寒冬?
2017-11-23 16:29 577小蓝单车素来以“体验 ... -
展望云计算新时代数据库计算力的进化
2017-11-17 15:38 747从1970年关系数据库理 ... -
11月16日云栖精选夜读:阿里云 oss JavaScript客户端签名文件上传 vue2.0
2017-11-17 15:35 1043热点热议 阿里云 oss JavaScript客户端签名文 ... -
王坚:云计算之后_我为什么要做城市大脑?| 干货
2017-11-17 15:25 553近两年,由于人工智能 ... -
玩转大数据_你需要了解这8种项目类型!
2017-07-27 16:20 479原文链接:http://click.aliyun.com/m/ ... -
大神带你分分钟超越最好结果——基于分布式CPU计算的Deeplearning4j迁移学习应用实例
2017-07-27 16:18 1140原文链接:http://click.ali ... -
5个步骤 & 7个提示 | 一份开启Kaggle竞赛征途的初学者指南
2017-07-27 16:13 1266原文链接:http://click.aliyun.com/m/ ... -
10分钟精通Nginx访问日志分析统计
2017-07-19 17:19 3062简介 很多个人站长在搭建网站时使用nginx作为服务器,为了了 ... -
哇塞!原来404还能这么玩!
2017-07-17 11:29 464看起来很眼熟对吧!每个人上网浏览时,一般都是利用网址来找寻你需 ... -
阿里云PAI将神经机器翻译训练效率提升5倍
2017-07-13 17:35 649摘要: 近两年,神经机器翻译(NMT: Neural Mach ...
相关推荐
首先,从架构的角度来看,大数据架构主要包含以下几个核心组件: 1. 数据采集层:这是大数据架构的最底层,主要任务是从各个数据源获取数据。常见的数据源包括日志文件、数据库、传感器、社交媒体等。数据采集工具...
大数据存储与处理关键技术 随着互联网和数字技术的迅速发展,数据量呈现爆炸性增长,大数据已经成为全球关注的焦点。大数据指的是在可容忍的时间范围内,传统数据处理软件无法有效处理的数据集。大数据的特点通常用...
《决战大数据(升级版):大数据的关键思考》一书深入探讨了大数据在现代信息技术领域的核心价值和重要性。...通过深入学习,读者将能够掌握大数据处理的关键技术和方法,从而在实际工作中更好地利用大数据的优势。
《大数据日知录:架构与算法》是一本深入探讨大数据技术的专业书籍,旨在为读者提供全面的大数据架构和算法理解。这本书围绕大数据处理的核心概念、技术和应用展开,涵盖了数据库领域的重要知识,对于想要深入了解...
综上所述,《大数据技术原理与应用》详细阐述了大数据的关键技术和应用场景,对于理解大数据的基本原理、提升大数据处理能力具有极高的指导价值。无论是初学者还是专业人士,都能从中受益匪浅,进一步推动大数据技术...
随着实时数据需求的增长,流式计算如Apache Flink和Spark Streaming成为处理持续流入的数据流的关键技术。这些系统允许实时处理数据,提供即时反馈,对于监控、预警等场景尤为重要。 六、大数据可视化 大数据的另一...
总结来说,《大数据日知录:架构与算法》深入剖析了大数据领域的核心架构和关键技术,包括数据处理框架、分布式存储、高效算法以及安全策略。通过阅读本书,读者不仅可以了解大数据的基础知识,还能掌握如何设计和...
Pagerank是Google搜索引擎早期的关键技术之一,它通过分析网页之间的链接关系来确定其在整体网络中的权重。在这个项目中,我们将Pagerank应用于微博数据,以便理解用户影响力、话题热度和社交网络结构。 **Pagerank...
《大数据》配套PPT的第四部分主要聚焦在数据挖掘算法的第三章,尤其是数据挖掘中的分类、聚类、预测规模、关联规则以及它们在实际应用中的综合运用。这一章由刘鹏教授,一位在大数据领域的权威专家,撰写。他不仅在...
数据备份和恢复是保障大数据存储可靠性的关键技术。 大数据存储架构和核心算法的比较与分析: 不同类型的大数据存储架构和核心算法具有各自的优势和不足。例如,分布式存储能够提供高并发访问、可靠性和容错性等...
针对这些关键技术,文章也介绍了目前轨迹数据处理中所使用的相关核心算法及其对应的量子算法实现。同时,文章还对轨迹数据处理目前面临的挑战和未来的研究方向进行了总结与展望。 总之,大数据背景下的轨迹数据处理...
通过对刘忠义关于客户运营核心大数据与算法的介绍,我们可以看到大数据和算法技术在现代电商领域的应用已经相当成熟。通过利用这些技术,商家不仅能够提高顾客的满意度和忠诚度,还能够有效提升自身的市场竞争力。...
在数据挖掘的应用方面,大数据技术已经渗透到商业智能、网络服务、医疗保健、物联网等多个领域。比如在医疗保健领域,大数据技术可以帮助分析病人的电子病历,预测疾病趋势,提高疾病的预防和治疗效率。 然而,尽管...
综上所述,这个实训项目涵盖了大数据处理、推荐系统算法、用户画像构建、数据预处理等多个关键领域,旨在培养实践者在实际项目中运用大数据技术解决推荐问题的能力。通过学习和理解这个项目,不仅可以深入理解大数据...
智慧城市大数据方案关键技术主要聚焦于如何利用大数据技术提升城市管理效率、改善市民生活质量以及推动城市可持续发展。本文将深入探讨智慧城市建设中的大数据数据处理流程,并通过部分代码示例来具体阐述其应用实践...
Hadoop是一个由Apache基金会开发的分布式系统基础架构,是大数据存储和计算的关键技术。Hadoop包括了HDFS分布式文件系统,它以高可靠性、高扩展性和高效性著称,非常适合于大数据存储。 Hive是一个构建在Hadoop上的...
总的来说,大数据算法是现代信息技术中的核心组成部分,它们通过创新的计算方法和设计策略,解决了传统方法无法处理的复杂数据挑战,为科学研究、商业决策和社会治理等领域提供了强大的工具。随着技术的发展,大数据...
针对这些挑战,大数据系统引擎的技术创新至关重要,这包括了大数据引擎的核心技术、执行模型、系统结构、编程模型和优化技术等多个方面。在编程模型和执行模型方面,存在并行计算模型、并行编程模型、并行执行模型和...
大数据技术及应用题库主要涵盖了大数据的基本概念、特点、起源、目的、处理技术和应用领域等多个方面的知识。以下是对这些知识点的详细阐述: 1. 数据挖掘:数据挖掘是从大量数据中提取有用信息和知识的过程,是大...
大数据算法是处理海量数据的核心技术,它涵盖了从数据采集、预处理、存储、分析到结果呈现等一系列步骤。这些算法旨在高效地挖掘隐藏在复杂数据中的模式、关联和趋势,为业务决策提供有力支持。在描述中提到的"非常...