逻辑编程
逻辑编程(逻辑程序设计)是种编程典范,它设置答案须符合的规则来解决问题,而非设置步骤来解决问题。过程是
- 算法=逻辑+控制。
不同的方法,可以看英语:Inductive logic programming。
逻辑编程的要点是将正规的逻辑风格带入计算机程序设计之中。数学家和哲学家发现逻辑是有效的理论分析工具。很多问题可以自然地表示成一个理论。说需要解答一个问题,通常与解答一个新的假设是否跟现在的理论无冲突等价。逻辑提供了一个证明问题是真还是假的方法。创建证明的方法是人所皆知的,故逻辑是解答问题的可靠方法。逻辑编程系统则自动化了这个程序。人工智能在逻辑编程的发展中发挥了重要的影响。
猴子和香蕉问题是逻辑编程社群的著名问题。电脑须自行找出令猴子接触香蕉的可行方法,取代程序员指定猴子接触香蕉的路径和方法。
逻辑编程创建了描述一个问题里的世界的逻辑模型。逻辑编程的目标是对它的模型创建新的陈述。世界上知识不断膨胀。传统来说,我们会将一个问题陈述成单一的假设。逻辑编程的程序透过证明这个假设在模型里是否为真来解决问题。
一些经常用到逻辑编程工具的范畴:
- 专家系统,程序从一个巨大的模型中产生一个建议或答案。
- 自动化定理证明,程序产生一些新定理来扩展现有的理论。
最常用的逻辑编程语言是Prolog,另外有较适用于大型方案的Mercury。详尽的清单可见于Category:逻辑编程语言。
历史
早在二十世纪七十年代,罗伯特·科瓦尔斯基等人提出了逻辑可以作为程序设计语言的基本思想,把逻辑和程序这两个截然不同的概念协调统一为一个概念,于是诞生了逻辑程序设计。这也是早期自动定理证明和人工智能发展的自然结果。随后,逻辑程序设计得到了迅速发展,特别是基于一阶谓词的逻辑程序设计语言,将逻辑推理对应于计算,具有丰富的表达能力、非确定性等特点,在定理机器证明、关系数据库系统、程序验证、模块化程序设计和非单调推理等都有了广泛的应用。[1]
参考资料
- ^ 刘富春. 关于逻辑程序不动点语义的讨论 22 (2). 2005年6月.