Проект искусственного интеллекта - на каком языке я должен идти?

Я студент-информатик, и я собираюсь работать над проектом искусственного интеллекта, который будет составлять музыкальную мелодию в соответствии с жанром и настройками. Являются ли алгоритмы, которые будут использоваться для этого проекта, могут быть очень ресурсоемкими? Не имеет значения (с точки зрения скорости), если я захочу пойти с Java, а не с С++? (Примечание. Я знаю только эти два языка, и мне больше нравится Java, чем С++.)

NB: Извините за мой плохой английский. Если кто-то может, пожалуйста, очистите это сообщение там, где это необходимо. Спасибо.

Ответ 1

Потребление ресурсов намного больше зависит от алгоритмического подхода, чем от выбранного языка. Если вам нравится Java, запрограммируйте приложение на этом языке, даже если реализация на С++ может быть на 10% быстрее.

Как вы сказали, вас может заинтересовать API искусственного интеллекта для Java.

Ответ 2

Пойдите с Java, так как вам более комфортно с ним. Это позволит вам сосредоточиться на решении проблемы, а не на программировании. Возможно, С++ закончил бы более быструю программу, возможно, нет, но получение там будет медленнее, и вы категорически не заявляете, что программа должна быть невероятно быстрой.

Ответ 3

На мой взгляд, язык, в основном связанный с AI, Lisp.

См. ответы на Why is Lisp used for AI? - верхние проголосовавшие упоминают, что это было в 60-х и 70-х годах, но в эти дни используются динамические языки (ruby, python и например).

Ответ 4

Мне кажется, что вы находитесь на стадии концептуального концепта вашего проекта. Я бы использовал любой язык, на котором вы больше всего любите. Хорошо написанный Java-код будет работать намного быстрее, чем плохо написанный C.

Ответ 5

Я бы использовал Common Lisp для такого проекта. Если вы не знаете Lisp, я бы узнал его для этого типа проекта. Это был бы отличный опыт обучения, и поскольку вы студент CS, это только поможет вам. Lisp - это язык, который может стать настоящим открытием для глаз.

Ответ 6

Я сделал аналогичный проект AI пару лет назад. Я не знаю, какое решение вы будете внедрять, но программы AI обычно могут быть как ресурсоемкими, так и длиться много времени, но, с другой стороны, вам понадобится язык, с которым вы знакомы, чтобы получить его сделано вовремя.

Поэтому, мой совет: если вы чувствуете, что знаете С++ (или C), перейдите к одному из них. Если вы их не знаете, подумайте о том, сколько времени вам нужно будет инвестировать в изучение нового языка, прежде чем выбирать.

Ответ 7

Если вы начинаете с нуля, используйте то, что вам известно лучше всего. Если вы хотите использовать установленные библиотеки для ускорения разработки, вы можете сначала изучить это, но Java наверняка имеет некоторые.

В твоей обуви я бы выбрал Java наверняка.

Ответ 8

Я бы пошел с Clojure по следующим причинам:

  • Это a Lisp, а Lisps - отличные языки для развития ИИ (частично исторические, но и по некоторым конкретным конкретным причинам - см. этот поток и этот поток)
  • Clojure работает на JVM и имеет отличный Java-интерфейс, поэтому вы можете использовать все большие библиотеки Java AI (например, Weka) плюс у вас уже есть опыт работы с средой Java.
  • JVM имеют превосходные оптимизирующие компиляторы JIT в настоящее время, для всех практических целей вы получите производительность так же быстро, как C/С++ для такого рода приложений.

Ответ 9

Мой совет - это дизайн всего, что вам нужно, каждый ADT, каждый класс алгоритмов, иерархия, все. Такой проект/программирование может быть очень сложно спроектировать в семействе языков C/С++, возможно, вы могли бы выбрать другой язык с менее строгой типизированной философией. Поэтому я рекомендую вам использовать язык, предназначенный для такого рода проблем, лучше подходящий для вашего приложения, functional paradigm ex: LISP, logical paradigm ex: PROLOG или что-то в этом роде.

Ответ 10

Мой 3-й проект диссертации был реализацией эвристики для радиочастотного распределения сотовой сети. Я выбрал Java над С++, потому что это позволило мне визуализировать результаты намного проще, чем если бы я использовал С++. Я не считаю, что в С++ производительность была бы значительно различной - фактор сложности ваших альгос будет самым большим фактором.