一、学前花絮
我们之前学习了一些基础算法,比如排序、查找、分治、贪心、回溯、递归等。而随着手机与互联网大数据的发展,数据量越来越大,实际问题也变得更加复杂。我们已经不满足于简单的数字排序,要处理图片识别、语音识别等待更加复杂的问题。AI算法就是为了解决这些复杂问题而产生的。
今天我们了解一下从传统算法到AI算法到底是怎么一个过程。
二、Python中传统算法与AI算法的思维跃迁
2.1 什么是算法?一个最简单的定义
一提起算法,大家可能首先想到那些排序、查找等有点烧脑的与数学公式相关的算法。其实这属于狭义的算法(传统算法)。算法本质上是你解决问题的步骤,比如给你一个需求,让你编写程序代码实现。那么你就要设计一个程序编写的步骤,比如先做什么后做什么,输入什么输出什么。这些就是算法。
而我们说的狭义的算法,只不过在某些场景提升了代码运行效率。比如让你把一串数字进行排序,你可以直接按照循环比较大小的方法,获得最终的排序数组。而如果使用二分法等狭义上的算法,明显会提升软件的执行效率。
算法 = 解决问题的步骤说明书
在计算机中,算法就是告诉计算机如何一步步解决问题的指令集合。
2.2 传统算法:解决"明确规则"的问题
经典例子:快速排序
以上程序用了中文变量名,我们说过python3以上版本支持中文变量了。当然我们平时编写程序尽量用英文字母,这种中文变量适合演示。快速排序算法用了二分法和递归,可以实现快速排序。输出结果:
传统算法的特点:
规则明确:比较大小、交换位置
结果确定:输入相同,输出一定相同
人类可理解:你能看懂每一步在做什么
2.3 AI算法:解决"说不清规则"的问题
经典问题:识别图片中的猫
AI算法的解决方案:
2.4 为什么AI算法更复杂?
复杂度对比
AI算法复杂的根本原因:问题变复杂了
不是科学家故意发明复杂算法,而是现实问题倒逼算法进化!
2.5 算法在程序中的作用
1. 提升效率(最直接的作用)
输出结果(我把数量级降了100倍,否则时间太长了):
以上可以看出,高效算法与低效算法的差距770倍!而且我调整了数量级,降低了100倍。否则低效算法花费的时间会更长。
2. 解决人类难以解决的问题
大家想想,我们常用的高德地图导航路径规划,要从起点到终点那么多路径中分析很多因素:比如堵车情况,比如是否高速收费等等,然后经过路径优化选择一条适合的路径。当路径很多的时候,这种问题很难用人力解决。这些就是算法的妙用!
3. 实现自动化与智能化
以上是关于机器人与自动化方面的算法,要考虑的各种因子很多,这也是AI算法为什么复杂的实际案例。
2.6 传统算法与AI算法的关系
不是替代,而是进化
之前我们已经学过一些基础的算法,上面这张图就是列出来从最基础的算法到AI算法的进化过程。但AI算法底层还是基础算法:
这就如同我们大学学的数学与中小学数学的区别,大学数学再复杂也还是以中小学的数学为基础的。
2.7 一个完整的对比案例
问题:推荐用户喜欢的电影。这种场景在我们手机app中经常会有,比如推荐美食、推荐电影等。
方案1:传统规则算法
以上的推荐规则比较简单,先看电影的评分,然后看哪些电影朋友在看,进行推荐。明显的,传统算法没有获取个人喜好等信息。
方案2:AI推荐算法
以上的AI推荐,首先要获取用户历史信息以及所有用户相关方面的数据,再根据电影特征进行匹配。这个数据量就很大了,但得到的结果是和用户相关的。
2.8 算法的未来:会更复杂吗?
未来的算法随着我们手机、互联网的发展,有关数据量也会越来越大。而随着问题复杂度的增加,也会有更加复杂的算法去解决问题。
三、小结
今天的文章是针对python中传统算法与AI算法关系进行了论述,我们一直强调,计算机语言编程属于应用科学,是为了解决问题。再复杂的算法也是因为面对的问题复杂而产生的。不是为了设置壁垒。
算法不是枯燥的数学,而是解决问题的艺术。从排序数字到识别猫咪,从计算器到ChatGPT,算法让计算机从"听话的算盘"变成"智能的伙伴"。学习算法,就是学习如何用计算机的思维解决人类的问题——这是21世纪最酷的技能之一。
让我们保持学习的热情,2026年一马当先、马到成功!