(文末附信息全视图)

在现代世界,算法承担了大量的数学运算。算法控制着从粒子加速器到股市的一切,它们决定让你看到什么新闻,让你得到什么搜索结果,决定计算机的学习方式,以及在 Netflix 或 Amazon 上推荐给你的内容。

总之,随着我们在越来越多的事情上依赖算法,假如没有算法,社会就不能工作。因此,了解算法是什么,算法能做什么变得十分重要。

算法是什么?

算法决定我们在新闻流中与谁互动;它们在世界上最大的搜索引擎给网站排名;他们教机器人学习和想象;它们甚至将股市交易自动化。在许多方面,算法使软件开发者变成了现代世界的统治者。但算法究竟是什么?它们从哪里来?它们将如何编程我们的未来?

算法【al·go·rithm】

NOUN

1. 在计算或其他解决问题的操作中要遵循的过程或一组规则,尤其指计算机。

算法的起源

“算法”(algorithm)这个术语来自花拉子米(AI-Khwarizmi,c. 780-850),他是一名波斯数学家、天文学家、地理学家和学者。算法(Algorism、Algorithm)出自“Algoritmi”,这是花拉子米(AI-Khwarizmi)的拉丁文译名。第一个有记录的数学算法可以追溯到公元前1600年,当时巴比伦人为了因式分解和开平方根而开发了算法。

现代算法于20世纪20年代后期形成,并在20世纪30年代随着高德尔-赫尔布兰德-克林(Godel-Herbrand-Kleene)提出递归函数,阿隆佐·邱奇(Alonzo Church)提出λ演算,埃米尔·珀斯特(Emil Post)提出Formulation 1(Post-图灵机),以及艾伦·图灵(Alan Turing)提出图灵机(Turing Machine)而成形。

算法的特征

1. 算法必须在某个点停止(有限性)。

比如说,任务是做蛋糕,那么算法就是做蛋糕的食谱,它指导你准备什么材料,把什么东西搅拌混合,烤箱要设置什么温度,为了烤出完美的蛋糕应该什么时候停止烘焙。

2. 算法的描述必须明确并有具体的步骤(明确性)。

如果任务是找到公园的位置,那么算法就是一组方向,明确地告诉你要做什么,怎样到达公园。

3. 算法解决问题必须有效(有效性)。

如果任务是做一个玩具飞机,那么算法就是一个说明书,指导你将哪些部件组合在一起,最后能得到一个组装好的玩具。

主要的算法

  • 链接分析(Link analysis)

从搜索引擎,社交网络到在线营销,各实体之间的关系分析十分重要。链接分析有很多方法和特点,每个方法都可以是一个算法,尽管它们的基础是相似的。比如,谷歌的佩奇排名(PageRank),Facebook的朋友推荐,Youtube或Netflix的视频推荐——它们的参数可能不同,但背后的数学本质上是一样的。

  • 数据压缩

从zip到mp3,从JPEG到MPEG-2,这些算法压缩数据以使系统成本更低,更高效,而且更容易传输。数据压缩用于视频游戏,视频,音乐,云计算,数据存储,数据库以及你在计算机中下载的任何内容。

  • RSA加密算法

RSA加密算法由RSA公司的三位创始人(Ron Rivest,Adi Shamir,Leonard Adleman)共同提出,RSA即三人姓氏的首字母。该算法引入了加密技术,并为每个人可用。该算法解决了一个简单但复杂的问题:如何在最终用户和独立平台之间共享公共密钥。RSA算法适用于公开密匙加密和数字签名,广泛用于保护通过互联网等不安全网络发送的敏感数据。

  • 安全散列算法

这是由美国国家标准与技术研究院(NIST)发布的密码散列函数家族。从这些算法得到的散列通过将你收到的文件的散列与原始散列进行比较来校验你收到的文件是否正确。应用商店,电子邮件,杀毒软件、浏览器以及其他互联网内容都使用这些散列算法来检查你下载的内容是否网络钓鱼或网络攻击的结果。

  • 归并排序,快速排序和堆排序

基于比较的归并排序(Merge Sort)采用“分治法”(Divide and Conquer),快速排序(Quick Sort)也一样,但快速排序有不同的排序方法,而且不稳定,更适合基于RAM的数列。堆排序算法(Heap Sort)使用优先队列来减少数据中的搜索时间。这些算法是数据挖掘、人工智能、链接分析和大多数计算操作使用的最重要的一些算法。

  •  比例-积分-微分

这种算法几乎无处不在——车辆,飞机,移动网络,卫星服务,工厂甚至机器人都有它的身影。它是一个控制回路反馈的机制,目的是减少理想输出信号和实际输出信号之间的误差。它应用于需要信号处理或电子控制系统的任何地方,控制机械,液压或自动化的热系统。

  • 傅里叶变换和快速傅里叶变换算法

这两种算法将来自时域的信号转换成频域,或反之。互联网,调制解调器,智能手机,平板电脑,卫星,笔记本电脑——基本上,数字世界中的一切或具有计算机系统的任何东西都使用这些算法。

  • 戴克斯特拉算法(Dijkstra’s algorithm)

这是一种搜索算法,可以被建模成图,以便找到两个节点之间的最短路径。尽管找最短路径的问题还有其他方法,但戴克斯特拉算法对于需要稳定性的系统是第一选择的。这种算法的一个变体在今天应用于人工智能领域。

  • 整数分解

这是一个数学算法,是将合数分解成更小的非平凡因子的一系列步骤。整数分解在计算领域应用广泛,特别是在协议基于分解大整数的密码学中。

佩奇排名

算法是让计算机完成任务的预定步骤的集合。它可以说是一个说明书,就像生活中一样,使用说明书可以很简单(例如宜家桌子的说明书),也可以非常复杂(例如提交专利的过程)。

算法应用的一个有名的例子是谷歌的佩奇排名(PageRank),它决定某一网站在Google搜索结果的排名顺序。

通过建立一个被称为马尔可夫链的随机模型,PageRank彻底改变了世界获取信息的方式。这种算法的强大帮助Google掌握了41%的在线广告市场,占据了 Alphabet 的大部分收入。

算法如何影响社会

社交平台在向我们提供新闻和信息方面有着重要作用。事实上,美国估计有44%的人通过Facebook消费。我们越依赖社交网络为我们提供新闻,算法就越多地影响我们所接触的信息。由于社交平台的设计是为我们提供定制的内容,我们正在创造在线的回声箱,提出了反对意见,这个问题正引起越来越多的关注。

算法也对我们的经济产生了深远的影响。大约50%的市场使用高频交易——使用专用程序进行自动交易的过程。当今的经济有很大的部分是人工干预很少的。

近年来,人工智能领域的进步产生了许多令人兴奋的成功。深度学习正在使各种机器辅助任务成为可能。深度学习正在影响着预防医疗、无人驾驶车辆、药物发现、生物信息学,以及购物网站的超定制化推荐。

深度学习

深度学习的非凡之处在于它超越了人类对计算机进行编程的限制。相反,程序员使用由数TB数据驱动的学习算法来训练它执行复杂的任务。计算机本质上是自己学习如何识别所需的对象,文本或动作。

算法经济学

技术提供商的潜在上升空间是巨大的,特别是在全球范围工作的专有程序。一个“物体”自主地沟通,不需人为干预地采取行动的时代,肯定会深刻地影响我们的社会。

最大的问题是,一旦计算机和算法处理了所有业务,那么我们做些什么?

附:信息全视图


原文连接:https://www.equities.com/news/an-introduction-to-algorithms

来源:equities.com 作者:Visual Capitalist 编译:刘小芹


看完本文有收获?请转发分享给更多人


欢迎关注“互联网架构师”,我们分享最有价值的互联网技术干货文章,助力您成为有思想的全栈架构师,我们只聊互联网、只聊架构,不聊其他!打造最有价值的架构师圈子和社区。

本公众号覆盖中国主要首席架构师、高级架构师、CTO、技术总监、技术负责人等人 群。分享最有价值的架构思想和内容。打造中国互联网圈最有价值的架构师圈子。

  • 长按下方的二维码可以快速关注我们

  • 如想加群讨论学习,请点击右下角的“加群学习”菜单入群

一图全解10个影响人类社会的算法相关推荐

  1. python数据分析——pyecharts折线图全解

    折线图是排列在工作表的列或行中的数据可以绘制到折线图中.折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势. 下面我给大家介绍一下如何用pyecha ...

  2. echarts人口密度图全解

    echarts人口密度图全解(echarts地图各配置项,tooltip标注显示多行信息,geojson数据包,地图增加自定义区域) 前言 第一次做人口密度图,遇到了很多坑,也百度了很多资料.记录一下 ...

  3. 融云首席科学家任杰:数字游民和意识体,疫情将如何影响人类社会进化

    杰说   解说通信.代码与科技 融云首席科学家任杰 第一视角行业观察 前阵子居家,大家都在家办公.学习.我跟孩子一人对着一个屏幕,我开视频会议,他上网课. 我观察,一节 45 分钟的课,小朋友最多能集 ...

  4. 22张图全解深度学习知识,建议收藏

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 转载于:Sophia知乎 https://zhuanlan.zhih ...

  5. 吴恩达:22张图全解深度学习知识!

    Datawhale干货 作者:Sophia,编辑:数据派THU 本文约7600字,建议阅读10+分钟本文从深度学习基础.卷积网络和循环网络三个方面介绍该笔记. 吴恩达在推特上展示了一份由 TessFe ...

  6. 22 张图全解深度学习

    吴恩达在推特上展示了一份由 TessFerrandez 完成的深度学习专项课程信息图,这套信息图优美地记录了深度学习课程的知识与亮点.因此它不仅仅适合初学者了解深度学习,还适合机器学习从业者和研究者复 ...

  7. Linux进程全解10——守护进程

    以下内容源于朱有鹏<物联网大讲堂>的课程学习整理,如有侵权,请告知删除. 一.守护进程介绍 1.进程查看命令ps ps -ajx偏向显示各种有关的ID号: ps -aux偏向显示进程各种占 ...

  8. python 埋点 库_埋点全解 10 :数据存储

    1.原理概述 为了最大限度的保证事件数据的准确性.完整性和及时性,数据采集 SDK 需要及时的将事件数据同步到服务端.但在某些 特殊情况下,比如手机处于断网环境,或者根据实际需求只能在 Wi-Fi 环 ...

  9. 一图全解芯片制造的全过程

    20~40个过程尤为重要,后面的支撑包括IC设计,IC验证,dft,后端,FPGA验证等,是一个劳动密集环节

  10. Echarts数据可视化series-radar雷达图,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

最新文章

  1. 旅游资源及线路管理系统
  2. jQuery MD5加密
  3. 这里天刚黑,而家里都已经后半夜了
  4. android视频分享功能吗,Unity 调用 Android 分享功能(基于ShareRec SDK视频分享)
  5. windows NT的意义和各个版本
  6. Spring-data-jpa中用@ColumnTransformer注解加密,中文乱码问题(数据库正常,在java代码和页面中乱码)
  7. python随机图片api_抓取随机图片
  8. Linux 命令汇总!【珍藏版】
  9. Ubuntu中使用pip3报错
  10. 使用webpack前端重构感受
  11. 图像频域增强:傅里叶变换
  12. 2019eclipse 中文汉化包 安装教程
  13. 建模方法(四)-因子分析定义和应用
  14. 安卓音量设置流程之MasterVolume
  15. 泡泡龙游戏开发系列教程(一)
  16. 马虎词汇教程1-5(转载)
  17. 财报识别OCR,披露虚假财务报表
  18. JS 数字,金额 用逗号 隔开(数字格式化)
  19. 什么是软件项目验收,软件项目验收测试方法分享
  20. 机器学习提高准确率的一些思路和技巧

热门文章

  1. 联系人字段中增加生日字段
  2. Solr6 快速入门教程
  3. “System.InvalidOperationException”类型的未经处理的异常在 ESRI.ArcGIS.AxControls.dll 中发生...
  4. 【二分答案】【Heap-Dijkstra】bzoj2709 [Violet 1]迷宫花园
  5. winfrom的DataGridView控件选中行的DataGridViewLinkColumn列字体颜色的改变
  6. 谨防病毒利用气象软件锁定浏览器主页
  7. mac连续互通相机功能小技巧
  8. Yate如何打开不同格式的音乐文件?
  9. sublime text 3的组合快捷键汇总
  10. C++ 4 C++变量及作用域