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