目录
算法是指解决方案的准确而完整的描述。
1.算法的基本特征
所谓算法,是一组严谨地定义运算顺序的规则
并且每一个规则都是有效的,且是明确的
此顺序将在有限的次数下终止
什么是算法?
算法的4个基本特征
算法的6个基本方法
选择算法时的3个Tips
算法
人工智能有三驾马车:数据、算法、算力。本文重点介绍算法相关的知识。
算法是指解决方案的准确而完整的描述。
对于一个问题,如果可以通过一个计算机程序,在有限的存储空间内运行有限的时间,而得到正确的结果,则称这个问题是算法可解的。但算法不等于程序,也不等于计算方法。当然,程序也可以作为算法的一种描述,但程序通常还需要考虑很多与方法和分析无关的细节问题,这是因为在编写程序时要受到计算机系统运行环境的限制。通常,程序的编制不可能优于算法的设计。
1.算法的基本特征
(1)可行性(Effectiveness)
针对实际问题设计算法,人们总希望能够得到满意的结果。但一个算法又总是在某个特定的计算工具上执行的,因此,算法在执行的过程中往往要受到计算工具的限制,使执行结果产生偏差。例:若某计算工具具有7位有效数字,则设:A=10^12,B=1,C=-10^12,则A+B+C=0,A+C+B=1。所以在设计一个算法的时候必须考虑他的可行性。
(2)确定性(Definiteness)
算法的确定性,是指算法中的每一个步骤必须是有明确定义的,不允许有模凌两可的解释,也不允许有多义性。在解决实际问题时,可能会出现这样的情况:针对某种特殊问题,数学公式是正确的,但按此数学公式设计的计算过程可能会使计算机系统无所适从。这是因为根据数学公式设计的计算过程只考虑了正常使用的情况,而当出现异常情况时,次计算过程就不能适应了。
(3)有穷性(Finiteness)
算法的有穷性,是指算法必须能在有限的时间内做完。算法的有穷性还应包括合理的执行时间的含义。若一个算法需要执行千万年,显然失去了使用的价值。
(4)拥有足够的情报
一个算法执行的结果总是与输入的初始数据有关,不同的输入将会有不同的结果输出。但输入不够或输入错误时,算法本身也就无法执行或导致执行有错。
所谓算法,是一组严谨地定义运算顺序的规则
并且每一个规则都是有效的,且是明确的
此顺序将在有限的次数下终止
什么是算法?
简单的说,算法就是:解决问题的手段,并且是批量化解决问题的手段。
菜谱就是一种“算法”,只要按照菜谱的方法做,就能做出对应的菜。
人工智能里的算法主要是用来训练模型的。
机器学习一共有7步,第3步就是选择合适的算法模型。通过训练得到最后的可预测模型。
算法的4个基本特征
算法具有下面4个特征:
- 可行性
- 确定性
- 有穷性
- 拥有足够的情报
算法的6个基本方法
计算机的算法和人类计算的方式不同,大致有6种不同的思路:
- 列举法
- 归纳法
- 递推
- 递归
- 减半递推技术
- 回溯法
选择算法时的3个Tips
- 解决不同的问题可能会用到不同的算法,也可能用相同的算法。没有某种算法是万能的,只是适用的范围不同而已。
- 算法没有高级和低级之分,快速便宜的解决问题才是目的,一味追求复杂的算法(例如:深度学习),相当于“用大炮打蚊子”
- 有时候有多种算法可以解决同一个问题,用最低的成本和最短的时间解决问题才是目的。根据不同环境选择合适的算法很重要。
算法
是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。 算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。
在数学和计算机科学中,算法是如何解决一类问题的明确规范。算法可以执行计算,数据处理和自动推理任务。
作为一种有效的方法,算法可以在有限的空间和时间内以及用于计算函数的明确定义的形式语言中表达。从初始状态和初始输入开始,指令描述了一种计算,当执行时,通过有限个明确定义的连续状态,最终产生“输出”和终止于最终结束状态。