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

Artificial intelligence 人工智能项目-我应该选择哪种语言?,artificial-intelligence,Artificial Intelligence,我是一名计算机科学专业的学生,我将致力于一个人工智能项目,该项目将根据流派和情绪输入来谱写一首乐曲。用于该项目的算法可能非常消耗资源吗?如果我选择用java而不是C++,它会不会有什么不同(在速度方面)?(注:我只知道这两种语言,我对java比C++更感兴趣) 对不起,我的英语很差。如果有人可以,请在必要的地方清理这个帖子。谢谢。使用Java吧,因为您对它更熟悉。这将使您能够集中精力解决问题,而不是编程。也许C++会以更快的程序结束,也许不会,但是到那里会慢一些,而且你也不能断定这个程序必须快得

我是一名计算机科学专业的学生,我将致力于一个人工智能项目,该项目将根据流派和情绪输入来谱写一首乐曲。用于该项目的算法可能非常消耗资源吗?如果我选择用java而不是C++,它会不会有什么不同(在速度方面)?(注:我只知道这两种语言,我对java比C++更感兴趣)


对不起,我的英语很差。如果有人可以,请在必要的地方清理这个帖子。谢谢。

使用Java吧,因为您对它更熟悉。这将使您能够集中精力解决问题,而不是编程。也许C++会以更快的程序结束,也许不会,但是到那里会慢一些,而且你也不能断定这个程序必须快得很快。

< P>我的脑海中,大部分与AI有关的语言是Lisp。
请参见“热门话题”的答案——60年代和70年代是这样,但现在使用的是动态语言(ruby、python等)。

在我看来,您的项目正处于概念验证阶段。我会用你最喜欢的语言。写得好的Java代码比写得差的C代码运行得快得多。

与所选语言相比,算法方法对资源消耗的影响更大。如果你对java感到满意,用C++语言编程你的应用程序——即使C++实现可能快10%。
话虽如此,你可能会感兴趣。

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


P>因此,我的建议是,如果你感觉你知道C++(或者C),那么就去其中之一。如果你不了解他们,那么仔细考虑你在选择一门新语言前需要投入的时间。

< P>如果你从头开始,使用你所知道的最好的。如果您想使用已建立的库来加快开发速度,您可能需要首先对此进行研究,但Java肯定会有一些


如果你愿意,我肯定会选择Java。

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

我的建议是首先设计您需要的一切,每个ADT,每个算法类,层次结构,一切。在C/C++语言家族中,这种项目/编程可能很难设计,也许您可以选择其他具有较少字符串类型的语言。因此,我鼓励您使用为此类问题设计的语言,更适合您的应用程序,
函数范式
ex:LISP,
逻辑范式
ex:或类似的语言。

我的第三年论文项目是蜂窝网络射频分配的启发式实现。我选择了Java,而不是C++,因为它比我使用C++更容易让java可视化。我不相信C++中的性能会有很大的不同,你的ALGOS的复杂因素可能是最大的因素。

< P>我会跟Culjule一起,原因如下:

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

这个问题经常出现。简短回答:语言的选择从来都不是应用程序性能的一个因素。克里姆林宫-我编辑了许多帖子,以帮助非母语人士更清晰地交流,但你的帖子真的不需要它!你的书面英语技能比许多以英语为母语的人都要好…@Earwicker:在应用程序的性能上,语言可能没有多大区别(至少在人工智能编程中),但在程序员的性能上,语言的选择可能是巨大的。@Tim-当然,完全不同。还有许多Lisp(SBCL为一个)Culjule是一个在JVM上运行的Lisp方言,它与Java库很好的结合,所以他可以得到两个世界的最好的。提姆:谢谢你提到Culjule,我为它搜索Google。看起来很有趣。一个C++实现可以很容易地快10倍。我遇到了java java的40秒的例子。一个16M向量数组。有C++中可怕的内存泄漏的反例。我认为关键是避免使用开发人员感到舒服的语言进行过早的优化。