Когда вы создаете программу, вы на самом деле описываете в коде свои знания о предметной области приложения.


1. Модель данных – набор структур данных и связей между ними. Например, данные для хранения информации о страницах в текстовом редакторе MS Word. Или о таблицах в MS Excel, данные форматирования веб-страниц в браузере и т.п.
2. Алгоритм поиска решения. Обычно жестко заданный. Как по запросу пользователя вернуть результат обработки данных.
3. Визуальное представление модели данных. Как отображать на экране страницы MS Word или картинки Photoshop.
4. Элементы управления: рычажки, рукоятки и кнопочки, посредством которых пользователь передает свои запросы алгоритму поиска решения.Подобные системы – чисто реактивные. Нажал кнопку – получил ответ. Это значит, что они не осознают окружающей действительности и поэтому у них практически отсутствуют возможности приспосабливаемости.

В агентах все совсем по-другому.


Не думай об объекте, думай о наблюдателе!


По пунктикам:
1. Агент по определению способен воспринимать свою окружающую среду. Если в среду агента входите Вы, значит он может воспринимать Вас. Это автоматически приводит к тому, что у агента есть модель внешнего мира. Чем сложнее и изощреннее эта модель, тем больше информации агент может использовать в своей деятельности.
2. У агента (или группы агентов) есть цели – ожидаемые результаты, которых нужно достичь, решив стоящие перед ними задачи. Система целей агента также может быть весьма сложной. Цели могут быть заданы извне агента или порождаются в результате некой "умственной деятельности" агента.
3. Для достижения целей агент может совершать в среде определенные действия. Агент, конечно, может пытаться совершать действия наобум, методом "научного тыка". Авось, повезет и цель будет достигнута. Но это полный перебор и потому очень неэффективно. Поэтому агент должен обладать знаниями о наборе своих возможных действий, необходимых условиях для их совершения и возможных последствиях. При таком подходе Вы даете агенту только знания о целях, об окружающем мире и его возможностях, конкретная уникальная последовательность действий, приводящая к цели, ищется агентом каждый раз с учетом текущих внутренних и внешних условий. Алгоритм даже может меняться и корректироваться по ходу выполнения!
Основная проблема, связанная с разработкой агентных систем, состоит в том, что разработчик должен быть не только первоклассным инженером в области разработки ПО, но также и специалистом по искусственному интеллекту.

почему агенты?
читать дальше