我在 prolog 中设计了一个基于规则的引擎,它基本上是一套关于如何在纸牌游戏中击败真人的规则。每次我在我的算法中发现一个弱点,这会导致我的一个主题利用并获得优势;我进去修改下一个版本的规则。
与我在 prolog 中用不到 500 行代码所做的相同的事情,可以在 C++ 或 C# 中用大约 10,000 行(包括大量嵌套的 if-else 和修复逻辑问题)(不容易)完成(不容易),这将是一场噩梦。
我的一个 friend 告诉我,我的纸牌游戏没有做任何人工智能,因为同样的事情可以用函数式或面向对象的编程语言来完成(当然需要更多的努力)。他说这更像是基于案例的推理。
这是真的 ? prolog 不是人工智能工具吗?我见过人们在 prolog 中编写 NLP 代码的例子。
还有哪些其他工具被认为是 AI 工具?
请您参考如下方法:
是的,让我们争论语义。
首先,Prolog 不是工具,而是一种编程语言。您可以使用该语言来描述程序,但您需要一些其他东西(编译器、运行时等)来实际运行它。但这可能不是你 friend 所指的。
其次,Prolog 是图灵完备的 [需要引用]。这意味着它可以做所有其他图灵完备语言可以做的所有事情(包括几乎所有的编程语言),并且所有其他语言都可以做 Prolog 所做的事情。 (如果您想知道:您的大脑也是图灵完备的)。唯一的区别在于描述算法的难易程度。但是观察到你的算法也可以用其他语言表达,显然是没有意义的。此外,计算机是图灵完备的。因此,即使你能够表达比图灵完备更好的东西,你也无法执行它。
第三,你说他声称它不是人工智能,因为它是“基于案例的推理”。 “推理”已经暗示了一些智能,并没有禁止人工智能“基于案例”的规则。
“智能”一词的定义非常广泛。您的程序能够解决一个问题:在纸牌游戏中击败某人。因此,它是一种特殊用途的人工智能。
但是您最初的问题是 Prolog 是否是一种 AI 工具。 “X 工具”是使“X”更容易的东西。虽然 Prolog 对编写神经元网络没有太大帮助,但它使编写基于规则的决策引擎变得非常容易(你自己也这么说过)。所以,它至少是一个工具。




