算法
一系列的計算過程 / 维基百科,自由的 encyclopedia
算法(英语:algorithm),在数学(算学)和计算机科学之中,指一个被定义好的、计算机可施行其指示的有限步骤或次序[1],常用于计算、数据处理和自动推理。算法可以使用条件语句通过各种途径转移代码执行(称为自动决策),并推导出有效的推论(称为自动推理),最终实现自动化。
此条目需要编修,以确保文法、用词、语气、格式、标点等使用恰当。 |
相反,启发式是一种解决问题的方法,可能没有完全指定,也可能不能保证正确或最优的结果,尤其是在没有明确定义的正确或最优结果的问题领域。[2]例如,社交媒体推荐系统依赖于启发式,尽管在21世纪的流行媒体中被广泛称为算法,但由于问题的性质,它无法提供正确的结果。
早在尝试解决希尔伯特提出的判定问题时,算法的不完整概念已经初步定型;在其后的正式化阶段中人们尝试去定义“有效可计算性(英语:Effective calculability)[3]”或者“有效方法(英语:Effective method)[4]”。这些尝试包括库尔特·哥德尔、雅克·埃尔布朗和斯蒂芬·科尔·克莱尼分别于1930年、1934年和1935年提出的递归函数,阿隆佐·邱奇于1936年提出的λ演算,1936年埃米尔·莱昂·珀斯特(英语:Emil Leon Post)的波斯特-图灵机和艾伦·图灵1937年提出的图灵机。即使在当下,依然常有符合直觉的想法难以定义为形式化算法的情况。[5]
算法是有效方法(英语:Effective method),包含一系列定义清晰的指令[6],并可于有限的时间及空间内清楚的表述出来[7]。算法中的指令描述的是一个计算,它执行(英语:Execution (computing))时从一个初始状态和初始输入(可能为空)开始,[8]经过一系列有限[9]而清晰定义的状态最终产生输出[10]并停止于一个终态。 一个状态到另一个状态的转移不一定是确定的。 包括随机化算法在内的一些算法,都包含了一些随机输入。[11][12]