|
|
1
119
在20世纪80年代末,Lisp在AI被使用。然而,在80年代,普通LISP作为“AI语言”被过度地卖给了商业界。现在,原型通常用更年轻的动态语言(Perl、Python、Ruby等)编写,而成功的研究的实现通常在C或C++(有时是Java)中。 如果你对70年代好奇的话……嗯,我不在那里。但我认为Lisp在人工智能研究中取得成功有三个原因(按重要性排序):
我没有 Peter Norvig's old AI book 但是,这应该是学习用Lisp编程人工智能算法的一个好方法。 免责声明:我是计算语言学研究生。我比其他领域更了解自然语言处理的子领域。也许Lisp在其他子字段中使用得更多。 |
|
2
60
Lisp用于人工智能,因为它支持使用符号进行计算的软件的实现。符号、符号表达式和计算是Lisp的核心。 使用符号进行计算的典型人工智能领域有:计算机代数、定理证明、规划系统、诊断、重写系统、知识表示和推理、逻辑语言、机器翻译、专家系统等。 因此,这些领域中许多著名的人工智能应用程序都是用Lisp编写的也就不足为奇了:
在这些领域中有成千上万的应用程序是用Lisp编写的。对于那些人来说,很常见的是他们需要符号处理领域的特殊能力。一种实现的特殊语言在Lisp之上的这些域中具有特殊的解释程序/编译器。Lisp允许为符号数据和程序创建表示,并可以实现各种机制来操作这些表达式(数学公式、逻辑公式、计划等)。 (请注意,人工智能中也使用了许多其他通用编程语言。我试着回答为什么在人工智能中使用Lisp。) |
|
|
3
22
一个原因是它允许您使用特定于您的域的构造来扩展语言,从而使其有效地成为特定于域的语言。这项技术非常强大,因为它可以让你解释 问题 你是在解决问题,而不是在洗牌。 |
|
|
4
12
我一直猜测,作为一种功能性语言,它不会区分代码和数据。包括函数定义和函数调用在内的所有内容都可以作为列表来处理,并且可以像其他数据一样进行修改。 因此,可以方便地编写自检、自修改的代码。 |
|
|
5
8
一个可能的答案是,人工智能是一个非常困难的问题的集合,而Lisp是解决困难问题的好语言,而不仅仅是人工智能。 至于原因:宏、通用函数和丰富的自省允许简洁的代码和简单的域抽象介绍,这是一种您可以使其更强大的语言。对于很多不必要的问题,它都有自己的代价,但对于其他问题,需要权力来取得任何进展。 |
|
|
6
7
我认为仅仅从人工智能的角度来考虑这个是错误的。如果你问为什么人工智能使用人工智能,而不是为什么现在不经常使用人工智能,那么人工智能冬季和对普通Lisp的商业影响等事情会让你分心。 不管怎样,我认为这是因为大部分人工智能代码本质上是研究代码。lisp是一种用于探索性编程、实现困难算法、自我修改和经常修改代码的伟大语言。换句话说,研究代码。 我现在使用lisp来编写一些研究代码(数学、信号处理),因为它比大多数语言更灵活、更强大,同时仍然比大多数语言生成更高效的代码。我通常可以在+/- 2的因素下获得性能,比如说C++速度,但是我可以更快地实现事情,并且处理复杂性,如果我使用C++、爪哇、C语言,我将比我花费更多的时间。 不过,这是偏离主题的。我认为人工智能代码主要是用普通的Lisp编写的,因为它是研究代码的一种强大方法。尽管如此,但是随着“人工智能”算法越来越被人们理解和探索,其中的一些算法更易于教学和使用,因此它们在本科课程中出现了具有当年特色的语言。从那里,它成为一个人们已经知道的问题,什么图书馆是可用的,以及什么对大型团体有效的问题。 |
|
|
7
6
我想一个很大的原因是列表作为基本数据结构的灵活性。 当时,能够将它们转换成各种复合对象,以及消息传递和策略性等新事物,使其成为首选语言;不是专门针对人工智能,而是针对大型、复杂的任务。尤其是当他们尝试概念的时候。 |
|
8
4
我认为你是对的:Lisp是一个很好的工具,可以用来进行黑客攻击。这是因为它不太区分程序和数据。这使得黑客可以很容易地操作函数,就像数据一样。 但是Lisp对于人类来说很难阅读,因为它有大括号,并且不区分数据和程序。今天,我不会将Lisp用于任何生产人工智能代码(或者甚至原型化),但更喜欢用Python编写脚本。 另一个需要考虑的是语言中的现有库/工具。我不能将Lisp库与Python库进行比较,但我想库和开源现在比以前重要得多。 这个答案的灵感来自于Lisp和Python之间的以下比较: http://amitp.blogspot.com/2007/04/lisp-vs-python-syntax.html |
|
|
9
4
我记得听说,作为一种函数式语言,lisp是实现递归算法的一个很好的选择。在考虑决策过程(遍历)和最终结果(叶节点)时,能够跟踪树并以自己的方式返回是非常重要的。 这是在我们学习Lisp的大学的人工智能课程中告诉我的。 |
|
|
10
3
一个更加愤世嫉俗的答案可能是“因为它在20世纪80年代失去了日本和美国之间的政治人工智能战争”。有一种乐趣 blog post that speculates about the impact of the Fifth-Generation Computer System demise on the Prolog . |