четверг, 25 октября 2007 г.

С чего начать изучение агентов разработчику?

Предположим, что вас неведомо каким образом заинтересовали интеллектуальные агенты и мультиагентные системы. Или вы услышали о них в разработке компьютерных игр, или вас заинтересовали друзья, или случайно прочли в Интернет... Не суть важно. Рассмотрим более интересный вопрос: "Что же делать дальше и как с этим жить?"



Для начала вооружимся двумя цитатами.
  • "Истинное знание -- знание причин" (Г. Галилей).
  • "Нет ничего практичнее хорошей теории" (Л. Больцман).

Вообще, вопрос оптимального сочетания теории и практики в обучении инженеров сам по себе отдельная интересная тема. Любопытствующим могу порекомендовать (Parnas et al., 2002).

Основная идея заключается в том, что теория (т.е. научные основы) помогает узнать фундаментальные ограничения в области разработки, которые в принципе невозможно преодолеть, даже, если потратить всю жизнь на битье головой о стену. Сюда можно отнести теорию информации (т. Шеннона и пр.), теорию алгоритмов и автоматов, реляционную теорию и т.д. И еще, теория помогает систематизировать достижения в области.

Практические же навыки помогают узнать возможности и ограничения современной технологической базы: инструментарий, языки программирования, характеристики аппаратной части. Которая может совершенно измениться за 2-4 года.

Понятно, что если вы пишете очередную CMS или собираете корпоративную систему из готовых компонентов, эти вопросы вас не сильно волнуют. За вас уже практически все продумали. Дай бог, чтобы вы вообще хоть раз провели нормальное нагрузочное тестирование ;) Вообще, меня просто поражает, насколько современные технологии развращают прикладных программистов!

Однако, в таких областях, как обработка сигналов, разработка ИИ, computer science, data mining и им подобных такой трюк не проходит. Не проходит он и в инновационных областях информационных технологий. Но это уже не про нас (т.е. не про Россию). Надеюсь, что при моей жизни в России появится различимое невооруженным глазом число инновационных компаний, которые хоть что-то систематически тратят на научные исследования, а не только на PR.


Заканчиваю занудствовать ;) и перехожу к сути поднятого вопроса. Где же найти информацию о том, что такое агенты и чего они могут?

Хорошим и единственным системным трудом по агентам на русском языке является (Рассел и др., 2007). Однако, этот труд имеет некоторый уклон в ИИ и теорию.

Классикой в области агентов считается (Wooldridge, 2002). Эта книга также из серии "обо всем понемногу", но чуть более приближена к практике.

Я рекомендую прочесть их обе и полностью до начала любой разработки агентной системы. После прочтения вы будете иметь представление обо всех основных механизмах, лежащих в основе агентов и МАС. Будете знать, где найти дополнительную информацию.


Что же до практических знаний и навыков, то я настоятельно рекомендую изучить платформу JADE, как наиболее часто используемую в настоящее время. Под "изучить" я понимаю ознакомление с документацией и примерами. Также недавно вышла единственная книга по JADE (Bellifemine et al., 2007).

Вот собственно и все. Happy innovating, dudes!!! ;)



F.L. Bellifemine, G. Caire, и D. Greenwood. Developing Multi-Agent Systems with JADE. Wiley, 2007.

D.L. Parnas, P. Eng, и M. Soltys. "Basic Science for Software Developers," Dept. of Computing and Software, Faculty of Engineering, McMaster Univ., Hamilton, ON, Canada.[Online] Report, 2002.

M. Wooldridge. Introduction to MultiAgent Systems. Wiley, 2002.

С. Рассел и П. Норвиг, Искусственный интеллект. Современный подход. Вильямс, 2007.

Комментариев нет:

Отправить комментарий