发布时间:2018-02-13 13:12:49 文章来源:互联网
微博 微信 QQ空间
    当然是穷举法。这是最普通的搜索算法,只要计算机足够强大,就可以搜索到想要的结果。我举个很简单的例子,比如for循环和while就是穷举的一种程序逻辑表现方式,像暴力破解密码也是穷举的一种方式,都是通过不断迭代来找到正确的值后停止或执行下一步程序。

    像之前大家还在讨论CPU买i3和I5的性能有些差异,到现在基本都忽略不计,因为电脑日常软件的运行CPU已经足已轻松负载,瓶颈上限反而在内存和硬盘上。像现在为了提高机器学习算法的训练速度,也就是搜索最优解的速度,都用上了GPU或者TPU这种高性能的矩阵运算组件,所以现在机器在日常生活中计算性能都是过剩状态,让普通的搜索算法也有了发挥的余地。
 
    还记不记得去年火热的围棋AI中AlphaGo,它用的核心算法——蒙特卡罗算法也是一种搜索算法,简单来说就是通过尽量采样去获得最优解。是不是也很像穷举法,但是比穷举要聪明得多,通过概率和规则最快找到最优路径。
 
    当然以上穷举法是一种算法思想,具体最重要的算法我觉得是图搜索算法,应该大家都很熟悉它,这个学过数据结构的人都知道,形式也非常简单,具体如下:
 
    一般如果要处理到树结构,或者做循环嵌套关系时都可能要用的该算法来解决,它也引出了我最喜欢的两个算法,像取深度最深的时候,就是深度优先搜索算法(DFS),取深度最浅的时候,就是广度优先搜索算法(BFS)。
 
    总而言之,在计算机用到的最基础算法除了二进制加法和逻辑门之外,搜索算法是其中之一。到了人类制造出一台算力足够强的超级计算机时,那么简单地穷举足以解决一部分问题了。你觉得计算机中最重要的算法是什么?欢迎在讨论区中探讨讨论,互相交流学习。
 
    如果你对学习人工智能和科技新闻感兴趣,欢迎订阅我的头条号。我会在这里发布所有与科技、科学以及机器学习有关的有趣文章。偶尔也回答有趣的问题,有问题可随时在评论区回复和讨论,看到即回。

另一视角

换一换