人工智能项目 - 我应该选择哪种语言?

时间:2010-02-05 13:12:38

标签: artificial-intelligence

我是一名计算机科学专业的学生,​​我将参与一个人工智能项目,该项目将根据类型和情绪输入组成一个音乐曲调。用于此项目的算法可能非常耗费资源吗?如果我选择使用Java而不是C ++,它会对速度产生任何影响吗? (注意:我只知道这两种语言,而且我对Java比C ++更熟悉。)

NB:抱歉我的英语不好。如果有人可以,请在必要时清理此帖子。感谢。

10 个答案:

答案 0 :(得分:13)

使用Java,因为您对它更熟悉。这将使您能够专注于解决问题,而不是编程。也许C ++会以更快的程序结束,也许不会,但是到达那里会慢一些,你并没有明确表示程序必须非常快。

答案 1 :(得分:12)

与所选语言相比,资源消耗更受算法方法的影响。如果您熟悉Java,请使用该语言编写应用程序 - 即使C ++实现速度可能快10%。

话虽如此,您可能会对Artificial Intelligence API's for Java感兴趣。

答案 2 :(得分:3)

在我看来,与AI有关的语言是Lisp。

查看Why is Lisp used for AI?的答案 - 最受欢迎的提及60年代和70年代就是这种情况,但是现在使用了动态语言(ruby,python等)。

答案 3 :(得分:3)

在我看来,你正处于项目的概念验证阶段。我会用你最熟悉的语言。编写良好的Java代码运行速度比写得不好的C语言快得多。

答案 4 :(得分:2)

我会将Common Lisp用于这样的项目。如果你不了解Lisp,我会为这类项目学习它。这将是一次很棒的学习经历,因为你是一名CS学生,它只会帮助你。 Lisp是一种真正令人大开眼界的语言。

答案 5 :(得分:1)

几年前我做了一个类似的AI项目。我不知道你将实施什么解决方案,但AI程序通常既耗费资源又可能需要很长时间才能运行,但另一方面,你需要一种你熟悉的语言才能获得它及时完成。

因此,我的建议是,如果您觉得知道 C ++(或C),请选择其中一个。如果您不了解它们,那么在选择之前,请仔细考虑您需要投入学习新语言的时间。

答案 6 :(得分:1)

如果您从头开始,请使用您最了解的任何内容。如果你想使用已建立的库来加速开发,你可能想先调查一下 - 但Java肯定会有一些。

在你的鞋子里,我肯定会选择Java。

答案 7 :(得分:1)

由于以下原因,我会选择Clojure:

  • 这是一个Lisp,Lisps是人工智能开发的优秀语言(部分是历史性的,但也有一些真正的具体原因 - 请参阅this threadthis thread
  • Clojure在JVM上运行,并且具有出色的Java互操作性,因此您可以利用所有优秀的Java AI库(例如Weka),并且您已经拥有一些Java环境经验
  • JVM现在拥有出色的优化JIT编译器,出于所有实际目的,您将获得与此类应用程序一样快的C / C ++性能。

答案 8 :(得分:0)

我的建议是首先设计所需的一切,每个ADT,每个算法类,层次结构,一切。这种项目/编程在C / C ++系列语言中可能很难设计,也许你可以选择其他语言而不是字符串类型的哲学。因此,我鼓励您使用专为此类问题设计的语言,更适合您的应用,functional paradigm例如:LISP,logical paradigm例如:PROLOG或类似的事情。

答案 9 :(得分:0)

我的第三年论文项目是蜂窝网络无线电频率分配的启发式实现。我之所以选择Java而不是C ++,是因为它让我比使用C ++更容易想象结果。我不相信C ++中的性能会有很大差异 - 你的算法的复杂因素可能是最大的因素。