39 | 编程范式:逻辑编程范式
陈皓
该思维导图由 AI 生成,仅供参考
你好,我是陈皓,网名左耳朵耗子。
这节课重点介绍 Prolog 语言。Prolog(Programming in Logic)是一种逻辑编程语言,它创建在逻辑学的理论基础之上,最初被运用于自然语言等研究领域。现在它已被广泛地应用在人工智能的研究中,可以用来建造专家系统、自然语言理解、智能知识库等。
Prolog 语言最早由艾克斯马赛大学(Aix-Marseille University)的 Alain Colmerauer 与 Philippe Roussel 等人于 20 世纪 60 年代末研究开发的。1972 年被公认为是 Prolog 语言正式诞生的年份,自 1972 年以后,分支出多种 Prolog 的方言。
最主要的两种方言为 Edinburgh 和 Aix-Marseille。最早的 Prolog 解释器由 Roussel 建造,而第一个 Prolog 编译器则是 David Warren 编写的。
Prolog 一直在北美和欧洲被广泛使用。日本政府曾经为了建造智能计算机而用 Prolog 来开发 ICOT 第五代计算机系统。在早期的机器智能研究领域,Prolog 曾经是主要的开发工具。
20 世纪 80 年代 Borland 开发的 Turbo Prolog,进一步普及了 Prolog 的使用。1995 年确定了 ISO Prolog 标准。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
Prolog是一种基于逻辑编程的语言,它建立在谓词逻辑的理论基础上,通过规则和事实的推导来解决问题。文章介绍了Prolog语言的起源和发展,以及其逻辑编程的特点和应用。通过示例展示了Prolog的逻辑推导能力,包括定义哲学家和地图着色问题。逻辑编程范式将业务逻辑抽象成规则和事实的推导,无需关心具体实现算法,使得解决问题更加简洁和有趣。读者可以通过学习资源进一步了解Prolog,探索其在人工智能等领域的应用。文章内容生动有趣,展示了Prolog独特的编程范式和推理能力,对于想要了解逻辑编程的读者具有很高的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《左耳听风》,新⼈⾸单¥98
《左耳听风》,新⼈⾸单¥98
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(12)
- 最新
- 精选
- neohope看《七周七语言》的时候,初步学习过Prolog,有个不错的入门英文教程:http://www.amzi.com/,上面的例子还蛮有意思的。说实话Prolog对我来说,不像是在编程,而更像是在做线性规划:根据限制和初始条件,找到解。十分感兴趣这个推导过程Prolog是如何实现的。耗哥这方面有推荐的读物吗?感谢:) 个人感觉,在这个推导过程中,其实比起些现在这些通过统计学、神经网络及大数据喂出来的怪兽,比如NLP、google翻译、人工智能什么的,感觉这个逻辑简单,更适合入门一些。2018-06-1929
- minghu6prolog确实在解决一些需要频繁回溯的问题上相当好用,是真正的描述规则,然后自动求解的人性化语言。2018-03-129
- 一墨难得看到这么短小的皓哥:) 也猜到回复肯定不会多, 因为理解到和用到的人少嘛:) 在此贡献一点点,作为皓粉的投名状. 之前做过一个项目, 里面用到基于C/C++的iSAT库求解Boolean Satisfaction Problem. iSAT的使用方法也是 (1) 先描述一些限制条件, 如文中所说到陈述事实; (2) 调用iSAT库进行求解, 该库内部使用BDD算法得到一个不违反限制条件的解或者没有解, (3) 根据iSAT返回的计算结果判断回到 (1)修改限制条件继续执行, 或是找到满意的计算结果停止计算. 除本文提到的着色问题以外,这一类问题其实有很多(参考NP问题), 我将其归纳为具有明确限制的启发式问题, 其最明显的特征是有规范的数学定义, 变量X离散且取值范围有限. 由于是离散的, 所以不能保证有最优解, 只有近似最优解. 至于实际应用嘛, 和算法的应用类似, 只要能把某一类问题简化为这一类问题的数学格式, 就可以套用这一类问题的通用解法, 也即是可以使用逻辑编程的范式, 不需要过多关注内部实现2020-06-066
- 靠人品去赢你好,看完觉得Prolog这类语言,我只管业务,不管实现的。入门可能会简单,隐藏了许多技术细节,但实际上效率会不高,如果没有对应的活跃社区提供相关库的话。就害怕像“人人都是产品经理”,那样,弄了很多不知道技术边界的人导致各种各样的问题。2019-06-245
- Johnny看完这节课,突然想重新学一下离散数学里的数理逻辑部分了。2020-04-274
- edisonhuang逻辑编程很类似推理中的三段论,首先给出大前提,然后给出小前提,最后推导结论。 大前提哲学家都是人,小前提苏格拉底是哲学家,结论就是苏格拉底也是人 基于逻辑的编程让我们关注真正的事,忽略控制2019-06-273
- 钱还是这么好玩的语言,这是怎么玩到的?2020-02-292
- limix这个很不错,之前看逻辑学,找到谓词逻辑的实用场景了,非常感谢2022-05-151
- 大叶枫扩展阅读:《逻辑编程:上古人工智能语言Prolog》https://zhuanlan.zhihu.com/p/6754891772024-02-22归属地:浙江
- Jade@pluto-langL. Suresh _et al._, “Building Scalable and Flexible Cluster Managers Using Declarative Programming,” 2020, pp. 827–844. Accessed: May 25, 2022. [Online]. Available: [https://www.usenix.org/conference/osdi20/presentation/suresh](https://www.usenix.org/conference/osdi20/presentation/suresh) 一篇文章,基于逻辑编程范式的调度系统设计,在思考这种方式是不是还可以应用到更多的领域。2022-08-28归属地:北京
收起评论