prolog不被认为是人工智能工具吗?

时间:2013-09-16 07:27:14

标签: prolog artificial-intelligence

我在prolog中设计了一个基于规则的引擎,它基本上是关于如何在纸牌游戏中击败真人的规则。每当我在算法中找到一个周期时,就会导致我的一个主题利用并获得优势;我进去修复下一个版本的规则。

我在prolog中用500行代码做的同样的事情可以在C ++或C#中完成(不容易)大约10,000行,包括大量的嵌套if-else和修复逻辑问题将是一场噩梦。 / p>

我的一位朋友告诉我,我的Card游戏没有做任何AI,因为在功能或面向对象的编程语言中可以做同样的事情(当然需要付出更多努力)。他说这更像是基于案例的推理。

这是真的吗? prolog不是AI工具吗?我见过人们在prolog中编写NLP代码的例子。

其他哪些工具被认为是AI工具?

1 个答案:

答案 0 :(得分:4)

是的,让我们来论证语义。

首先,Prolog不是一种工具,而是一种编程语言。您可以使用该语言来描述程序,但是您需要一些其他的东西(编译器,运行时等)来实际运行它。但这可能不是你朋友指的那样。

其次,Prolog正在完成[引证需要]。这意味着它可以完成所有其他图灵完备语言所能完成的所有相同的事情(其中包括几乎所有编程语言),而所有其他语言都可以完成Prolog所做的事情。 (如果你想知道:你的大脑也是图灵完成的)。唯一的区别在于描述算法是多么容易。但是你的算法也能用其他语言表达的观察结果显然毫无意义。此外,计算机正在完成。因此,即使你能够表达比完成更好的东西,你也无法执行它。

第三,你说他声称这不是AI,因为它是一个“基于案例的推理”。 “推理”已经暗示了一些情报,并且没有规则禁止AI“基于案例”。

“情报”一词的定义非常广泛。您的程序能够解决问题:在纸牌游戏中击败某人。因此,它是一种特殊用途的人工智能。

但你最初的问题是Prolog是否是一个人工智能工具。 “X工具”使“X”变得更容易。虽然Prolog对编写神经网络没有多大帮助,但它可以很容易地编写基于规则的决策引擎(你自己这么说)。所以,它至少是一个工具。