6

我在 prolog 中设计了一个基于规则的引擎,它基本上是一套关于如何在纸牌游戏中击败真人的规则。每次我在我的算法中发现一个星期,这会导致我的一个主题利用并获得优势;我进去修改下一个版本的规则。

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

我的一个朋友告诉我,我的纸牌游戏没有做任何人工智能,因为同样的事情可以用函数式或面向对象的编程语言来完成(当然要付出更多的努力)。他说这更像是基于案例的推理。

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

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

4

1 回答 1

5

是的,让我们争论语义。

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

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

第三,你说他声称这不是人工智能,因为它是“基于案例的推理”。“推理”已经暗示了一些智能,没有规则禁止人工智能“基于案例”。

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

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

于 2013-09-16T14:27:24.160 回答