(2015:31)。在17世纪,德国哲学家戈特弗里德·威廉·莱布尼茨(1646-1716)通过发展“计算真理(真实陈述)的愿景”,为符号计算增加了一个新的维度(宫崎,2012)就算法的史前历史而言,莱布尼茨通过“算术化逻辑”和使用if/then条件来计算真理,为后来被称为布尔代数提供了基础(托马斯,2015)。在托马斯的叙述中,起源可以追溯到布尔(1847)和他的布尔代数理论,并继续到弗雷格1879年引入的一种可以表达数学语句的形式语言(参见托马斯,2015)。然而,对于许多历史学家来说,算法的真正历史始于大卫·希尔伯特(DavidHilbert)和所谓的Entscheidungsproblem,即算法是否存在以决定给定逻辑公式的普遍有效性或可满足性的挑战(Sommaruga & Strahm, 2015):1936年,艾伦·图灵通过将问题简化为符号计算的概念,以否定的方式解决了这个问题,这就是后来众所周知的图灵机。尽管图灵本人很少直接提到“算法”这个词,但当代数学家如阿朗佐·彻奇(Alonzo Church,1903-1995)或斯蒂芬·c·克莱因(Stephen C. Kleene, 1909-1994)却提到了(宫崎,2012)。在追溯“算法”一词的历史起源及其在计算史上的作用时,宫崎新太郎(2012)认为,随着科学计算和高级编程语言(如Algol58及其衍生语言)的兴起,“算法”在20世纪60年代首次进入普遍使用。到了20世纪中期,“算法被理解为一组定义好的步骤,如果按照正确的顺序执行,将在计算上处理输入(指令和/或数据)以产生期望的结果”(Kitchin,2017: 16)。
也许最常见的定义算法的方式是将其描述为一个配方,将其理解为一个循序渐进的指南,规定如何在给定特定参数的情况下获得某个目标。如果将算法理解为处理数据的程序或方法,那么将其作为食谱就类似于用面粉、水、糖和鸡蛋制作蛋糕的操作逻辑。例如,如果没有关于如何混合鸡蛋和面粉或何时加入糖或水的具体说明,这些成分将只是这些。对于从未烤过蛋糕的人来说,如果他们想烤蛋糕,一步一步的指导将是至关重要的。任何计算过程要想可操作,算法必须被严格定义,也就是说,以一种适用于所有可能情况的方式来指定。一个程序只有在满足某些条件的情况下才会执行某一段代码。否则,它会选择另一条路径,这意味着特定的未来情况已经被“if”的条件构造所预测。Then语句”,这是大多数算法所依赖的。“如果……”Then语句是所有控制流语句中最基本的语句,它的任务是告诉程序,只有当条件被认为是“真”时,才执行特定的代码段。然而,为了能够测试和计算一个“假”的条件,“if…”Then”语句需要包含一个“else”语句,它本质上提供了执行的次要路径。在other中
The Multiplicity of Algorithms
21