РЕЦЕНЗИИ
Джонс М. Т. Программирование искусственного интеллекта в приложениях. М.: ДМК Пресс, 2004. - 312 с.
Книг по искусственному интеллекту (ИИ) в России переводится крайне мало. Это совсем не означает, что ИИ умер, как иногда все еще заявляют некоторые наши соотечественники, или что такие книги не издаются на Западе. Вовсе нет! Если вам доведется быть в Лондоне, загляните в квартал книжных магазинов на Кавендиш-стрит. Это минут пятнадцать пешком от знаменитой Трафальгарской площади, на которой не раз побывает каждый гость этого города. Конечно, сам книжный рай указанного района достоин отдельного описания, но меня в нем поразил трехэтажный магазин компьютерной литературы, в котором книгам по ИИ были отведены высоченные стеллажи длиной 5-6 метров вдоль одной из стен.
А между тем работы по ИИ и искусственной жизни во всем мире идут полным ходом и имеют не только теоретические, но и вполне практические результаты. Поэтому небольшая и ориентированная на программистов книга М. Тима Джонса представляет заметный интерес для читателей.
Она состоит из 12 глав, в которых описываются алгоритмы, используемые в разных направлениях ИИ, таких, как нейронные сети (глава 5), генетические алгоритмы (глава 6), искусственная жизнь (глава 7), системы, основанные на продукционных правилах (глава 8), нечеткая логика (глава 9), скрытые цепи Маркова (глава 10), алгоритмы муравья (глава 4) и интеллектуальные агенты (глава 11). Кроме того, в сжатой форме дается обзор сегодняшнего состояния работ в области ИИ (глава 12). Отмечу, что из новых направлений ИИ очень перспективно программирование эмоций (они рассматриваются, в частности, как универсальный механизм адаптивного изменения приоритетов задач) и семантический Web (см. PC Week/RE, N 24/ 2004, с. 26), позволяющий сделать информацию в Интернете доступной не только людям, но и компьютерам.
Начинается книга с краткой истории ИИ (глава 1). Здесь стоит обратить внимание на так называемый эффект ИИ: "после того как какая-либо технология ИИ находит применение, она перестает быть технологией ИИ". Автор описывает понятие сильного (Strong AI) и слабого (Weak AI) ИИ. Первый из них занимается проблемами создания ПО, позволяющего компьютеру иметь интеллектуальные способности человека, а второй - приданием различных разумных свойств существующему ПО. Этому второму направлению и посвящена книга.
Для каждого алгоритма приведены примеры реализации (в основном на языке Си), демонстрирующие его применение в приложениях. В конце каждой главы помещен весьма содержательный список литературы и ссылки на ресурсы в Интернете. Приятно, что архив примеров с текстами программ можно скачать с сайта издательства (www.dmk.ru). Это побуждает читателя сразу же поэкспериментировать и попробовать собственные варианты решения. Книга написана простым языком и не требует от читателя каких-либо предварительных знаний по ИИ, т. е. ее спокойно могут читать студенты и даже "продвинутые" старшекласники. Но несмотря на простоту изложения, автор делает его достаточно корректно и рассматривает самые разные технологии ИИ, поэтому знакомство с книгой будет полезно и профессионалам. Я, например, с большим интересом прочитал главы, посвященные нечеткой логике и генетическим алгоритмам.
Из негативных впечатлений отмечу неправильное (к счастью, не везде) написание фамилии одного из основателей ИИ, человека, давшего этому направлению название, Алана Тьюринга. В переводе он почему-то стал А. Турингом, а не менее известная личность Джон Мочли (J. Mauchly) превратился в Джона Мохли. Больше всего не повезло математику Байесу - его сети названы "сети Байезана". Спасает только то, что рядом с переводом фамилии в скобках дается ее английское написание. Не всегда следует доверять и проверке орфографии (спелчекеру) в WinWord’e. Типичная навязываемая им ошибка - Стандфордский университет вместо Стэнфордского. Вообще, судя по некоторым фразам, переводил книгу человек с хорошим английским, но недостаточно свободно владеющий компьютерной терминологией и мало слышавший об ИИ. Например, о Мартине Мински написано, что он создал теорию кадров, хотя в русскоязычной литературе по ИИ говорят о не о кадрах, а о фреймах. В оправдание переводчика замечу, что книги по ИИ переводить всегда довольно тяжело и подобные промахи вообще-то должен был бы подчистить научный редактор. Ну и жаль, конечно, что нет никаких дополнительных ссылок на рускоязычную литературу по ИИ.
В целом это все не умаляет достоинств рецензируемой книги, которую можно смело рекомендовать широкому кругу программистов, студентов и аспирантов ИТ-специальностей.