算法的进展[整理]

算法的起源很早,是一门随着历史不断发展的学科。在计算机和程序设计出现之前,算法停留在演算和手工计算的层面。计算机出现之后,算法在计算机编程领域再次获得了大发展,很多以前不可能实现的算法,现在都可以实现了。

其实,算法是一个扎根于数学和物理的科学。数学和物理学上的新发展往往能够激发一些新的算法应用的产生。

1.      并行算法

我们经常接触的算法模式都是单线程顺序计算的,即使其中采用了if分支语句或者其他跳转语言,也都是按照单一线程,每次仅完成一步操作,这就是串行计算的思想。而现在计算领域正在向并行计算方向发展,例如多核心处理器、多台计算机的分布式并行计算等。在并行计算中,一个任务可以分别在多个线程来同时计算,大大加速了计算的速度。

并行计算的思路不同于传统的串行计算,因此需要一些新的算法来展示并行计算的优势。目前,划分法、分治法、平衡树法、倍增法/指针跳跃法、破对称法等都是常用的并行算法。而且,由于并行计算是一个蓬勃发展的全新计算领域,相应的并行算法都还在不断发展中。

其实,我们在实际应用中已有很多领域开始应用并行算法了,主要体现在如下几个方面:

·我们最常用的计算机已经全面进入双核时代,四核CPU乃至更多核心的CPU也都逐步实用化。

·显卡的GPU是基于并行计算的思路的,目前NVIDIA、AMD等都在大力推广GPU的并行计算能力,并且已在科学研究和工程计算领域得到了一定的应用。

·硬件电路设计领域,可编程逻辑器件FPGA/CPLD等都是基于并行处理的思想,可以通过VHDL、Verilog等语言来实现并行计算的处理。

2.      遗传与进化算法

遗产算法(Genetic Algorithm)和进化算法(Evolutionary Algorithm)是学科交叉的结果。遗传与进化算法根据生物的遗产、进化和变异的特征,通过模拟自然演化的方法来得到最优解。遗传算法最初由美国Michigan大学的J.Holland教授于1975年首先提出,目前在组合优化、机器学习、信号处理、自适应控制、人工生命和人工智能等领域得到了广泛的引用。

3.      量子算法

量子物理学的发展是近现代物理学领域的最大突破,并提出了一系列颠覆性的概念和方法。量子物理学的发展,使其迅速与信息论和计算相结合,产生了量子信息技术和量子计算。量子计算是一种依靠量子力学理论进行的新型计算,量子计算的基础和原理使其能够大大超越传统的图灵机模式的计算机。

量子计算(quantum computation)的概念最早由IBM的科学教R.Landauer及C.Bennett于20世纪70年代提出。1985年,牛津大学的D.Deutsch提出量子图灵机(quantum Turing machine)的概念,量子计算才开始具备了数学的基本形式。采用量子计算机和相应的量子算法,可以实现超高速并行计算,现成为各国科学家的重要研究方向。

目前,已经发展的量子算法包括量子Shor算法、Grover搜索算法、Hogg搜索算法等。量子算法需要依赖量子计算机来实现。现在都处于刚刚起步阶段,距离使用还有一段距离,但这都代表了高性能计算和算法的一个发展方向。

【转载使用,请注明出处:http://blog.csdn.net/mahoking

【转载使用,请注明出处:http://blog.csdn.net/mahoking

时间: 2025-01-04 22:41:18

算法的进展[整理]的相关文章

PageRank算法学习与整理

PageRank 算法学习与整理 由于最近在研究图计算框架的相关问题,决定复习整理一下它的测试算法PageRank,不足之处请大家批评指正! 一. PageRank 相关背景 PageRank 的创始人拉里佩奇(Larry Page)和谢尔盖.布林(Sergey Brin),在1998年提出了该算法,并应用在Google搜索引擎的检索结果排序上,该技术也是Google早期的核心技术之一,是Google用来衡量一个网站好坏的标准. 二. Google搜索引擎工作流程 首先看一下Google搜索网页

zz 圣诞丨太阁所有的免费算法视频资料整理

首发于 太阁实验室 关注专栏 写文章 圣诞丨太阁所有的免费算法视频资料整理 Ray Cao· 12 小时前 感谢大家一年以来对太阁实验室的支持,我们特地整理了在过去一年中我们所有的原创算法类视频,均为免费观看,方便大家学习. 先放一个ACM大神讲解的算法题视频(国外传优酷真的是太不容易了……). ACM大神精讲北美最新面试题—在线播放—优酷网,视频高清在线观看http://v.youku.com/v_show/id_XMTg2ODk0MzIwMA==.html 其余视频: [公开课]ACM大神精

算法知识目录整理

算法知识目录整理 1. 算法部分 二分搜索 Binary Search 分治 Divide Conquer 宽度优先搜索 Breadth First Search 深度优先搜索 Depth First Search 回溯法 Backtracking 双指针 Two Pointers 动态规划 Dynamic Programming 扫描线 Scan-line algorithm 快速排序 Quick Sort 2. 数据结构部分 栈 Stack 队列 Queue 链表 Linker List 数

(最短路径算法整理)dijkstra、floyd、bellman-ford、spfa算法模板的整理与介绍

这一篇博客以一些OJ上的题目为载体.整理一下最短路径算法.会陆续的更新... 一.多源最短路算法--floyd算法 floyd算法主要用于求随意两点间的最短路径.也成最短最短路径问题. 核心代码: /** *floyd算法 */ void floyd() { int i, j, k; for (k = 1; k <= n; ++k) {//遍历全部的中间点 for (i = 1; i <= n; ++i) {//遍历全部的起点 for (j = 1; j <= n; ++j) {//遍历

数据结构和算法绪论笔记整理

程序设计 = 数据结构 + 算法 数据结构:就是数据元素相互之间存在的一种或多种特定关系的集合(关系就是讲逻辑结构,集合就是将物理结构); a.逻辑结构            集合:数据元素之间只有"同属于一个集合"的关系            线性结构:数据元素之间存在一个对一个的关系            树形结构:数据元素之间存在一个对多个关系            图形结构或网状结构:数据元素之间存在多个对多个的关系 b.物理结构(存储结构)            顺序存储:数

算法研究资源整理

首先介绍一下,图像/图形/视觉/机器学习领域的国际顶级年会有:ICCV(偏重算法理论的创新); ECCV; CVPR (偏重解决实际工程问题的创新,并且国人的文章占有比例逐年增加,推荐); PAMI;  SIGGRAPH;  ACM TOG;  ICML; NIPS. 个人总结,国际顶级会议/期刊论文 > 期刊论文(Journal paper)> 会议论文:越是好的文章,算法越简单,同时效果显著--简而言之,创新度大.如在"去雾霾"课题的研究中,Tang CVPR2009文

数据结构常见的八大排序算法(详细整理)

https://www.jianshu.com/p/7d037c332a9d?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-friends 八大排序,三大查找是<数据结构>当中非常基础的知识点,在这里为了复习顺带总结了一下常见的八种排序算法.常见的八大排序算法,他们之间关系如下: 排序算法.png 他们的性能比较: 性能比较.png 下面,利用Python分别将他

排序算法(学习整理)

排序的算法有很多,冒泡.选择.直接插入.鸡尾酒.快排.堆排......,下文主将尽可能的介绍本人学过的所有排序(会不断更新,本人还在学习),以从小到大为最终排序结果,C 为主要实现语言. 一.冒泡排序(Bubble Sort): 冒泡排序是一种简单的利用交换来完成排序的算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数

算法碎片知识整理

图: 深度优先搜索: public class DFS{ private boolean[] marked; pirvate int count; public DepthFirstSearch(Graph G, int s ){ marked = new boolean[G.V()]; dfs.(G,s); } private void dfs(Graph G, int V){ marked[v]=true; count++; for(int w :G.adj(v)){ if(!marked[