2011-06-22 73 views
1

是否有必要學習像Lisp,Perl,Ruby等編程語言(無論需要)在AI中執行項目?
我知道C,C++,Java很好,是否足以繼續我的AI項目?執行AI項目所需的語言?

+0

通常當你問這個問題時,它會涉及到你最有成效和最精通的。 – dcousens

回答

4

您可以用任何語言編寫。 Lisp已經完成了大量的AI工作,但您並不需要使用它來實現您的項目。關鍵是對算法有深刻的理解。

您可能會發現,很大程度上依賴於遞歸的算法在不支持尾遞歸的Java語言中更爲困難優化

+0

每種語言都「支持」尾遞歸。相同的語言實現在優化它們時比其他實現更好。某些語言(例如Scheme)甚至指定該語言的符合實現必須應用TCO--尾部呼叫優化。令人驚訝的是,GCC將許多TCO應用於C – jmg

0

我相信沒有這樣的東西可以作爲「AI的良好編程語言」。編程語言是工具,它確實取決於你的AI項目是關於什麼的:只需爲它選擇最合適的一個。例如,如果您要使用語義Web和本體,那麼Java可能是一個不錯的選擇,因爲該領域有很多優秀的Java庫和工具。相反,我知道很多從事機器學習的人使用R,因爲它是一個強大的統計計算環境。另外,如果你的AI項目是關於邏輯編程或計算語言的,那麼你應該看看Prolog。

總之,它的確取決於你的AI項目是什麼。告訴我們更多關於它的信息,你可能會得到更準確的答案。

0

取決於你在做什麼 - 選擇最適合的工具。

如果你在做經典的AI(自然語言處理,專家系統等),那麼像Lisp和Prolog這樣的語言非常適合(這種語言有利於簡單開發),但是如果你在做模糊邏輯,神經網絡那麼Java/C++將是更好的選擇。

幾年前,作爲一名本科生,我在Prolog中編寫了一些NLP和專家系統,然後在C++中重複練習,Prolog版本大小約爲三分之一,花了大約一半的時間來開發。我寫了幾個模糊邏輯和神經網絡在C++中,但從來沒有想象重寫他們的Prolog(我肯定會相當痛苦)=)

一個不錯的,功能的神經網絡豐富的Java框架Encog