Clojure 核心逻辑占主导地位的竞技场[软] 社区维基

Clojure 核心逻辑占主导地位的竞技场[软] 社区维基,clojure,prolog,logic,minikanren,Clojure,Prolog,Logic,Minikanren,我不在乎名声,我只想要好的答案。请随意在社区wiki中评论这个问题 上下文 我一直在研究理性的阴谋家,并发现以下观察结果: 逻辑编程非常有趣 逻辑编程有时是违反直觉的 逻辑编程通常是“低效的”(或者至少是我写的代码) 好像是从 汇编> C++,我“放弃”编写我自己的机器代码的控制 C++->Clojure,我放弃了对内存管理的控制 Clojure->core.logic/prolog/minikanren,我对计算方式失去了部分控制 问题: 除了(1)解决逻辑难题和(2)类型推理之外,逻辑编

我不在乎名声,我只想要好的答案。请随意在社区wiki中评论这个问题

上下文 我一直在研究理性的阴谋家,并发现以下观察结果:

  • 逻辑编程非常有趣
  • 逻辑编程有时是违反直觉的
  • 逻辑编程通常是“低效的”(或者至少是我写的代码)

    好像是从

  • 汇编> C++,我“放弃”编写我自己的机器代码的控制
  • C++->Clojure,我放弃了对内存管理的控制
  • Clojure->core.logic/prolog/minikanren,我对计算方式失去了部分控制
问题: 除了(1)解决逻辑难题和(2)类型推理之外,逻辑编程占主导地位的问题领域有哪些


谢谢

人工智能的研究,特别是认知机器人技术和基于逻辑的知识表示的其他应用,由于Prolog与逻辑理论的密切关系,Prolog被大量使用。这种关系非常有用,因为它基本上把理论带到了生活中。定理可以在纸上证明,然后在prolog中实现并执行,执行程序具有已证明的性质。这允许程序“通过构造正确”,这与先编写程序,然后尝试证明程序的属性相反(如在形式化方法中所做的,使用例如模型检查)

语义网是逻辑编程发挥越来越大作用的另一个地方。

对于解决各种调度、资源分配和其他非平凡的约束满足/组合优化问题非常有用。您所拥有的只是声明性的:约束(例如,一次只能有一架飞机在跑道上),以及您希望最小化/最大化的东西(吞吐量/等待)

Prolog中有各种著名的风格,包括在有限整数域中工作的,和在实域中工作的CLP(R)。至少中电(FD)似乎处于不利地位


我相信这些Prolog衍生的解决方案正在积极地应用于物流和其他物流任务中,尽管很难获得这样的任务和生命关键型公司到底在使用什么技术的精确信息。

我相信人工智能和机器人技术,概率方法(可以处理噪音)在基于逻辑的方法中占主导地位(无法处理噪音)@user1311390人工智能的不同分支有着不同的用途;当然也有概率方法不适合的事情。当然,概率逻辑的研究正在进行中:比如@user1311390-在认知机器人学中,逻辑编程被大量使用,因为它经常被用作认知理论的测试平台,而认知机器人是由逻辑编程实现的基于形式推理。几个反应式机器人系统(基于布鲁克斯包容体系结构)植根于形式逻辑。最后,计算语言学植根于形式系统和定理(以及语法)验证程序非常适合逻辑编程。这似乎与之前在这里提出的其他问题有关:和。(请注意这些问题是如何结束的)。