Мультиагентные Системы – Пара Пояснений И Пара Примеров

Пила тема про мультиагентные системы и решил добавить кое-что по этой теме.

Я остановлюсь на 2-х областях: чем МАС отличаются от классических систем (за исключением параллелизма, который до сих пор встречается не только в МАС) и на двух примерах, практическом и абстрактно-теоретическом.



Интеллектуальная теория



Немного банальности и истории
Современное программное обеспечение, например корпоративное, невероятно сложно.

Дело усугубляется «фактором масштаба» — чем больше система, тем быстрее растет ее сложность, так как увеличивается количество связей между частями.

MAS — это один из способов упрощения системы, поскольку он позволяет уменьшить количество внутренних связей в системе (если вдуматься, то это можно сказать практически о любой достаточно автономной системе ИИ).

Первоначально MAS возник как распределенные системы искусственного интеллекта.

В 1980 году в Массачусетском технологическом институте прошел первый семинар на тему распределенных средств решения задач ИИ, на котором были подняты вопросы эффективной координации множества агентов и демонов, разработки системы «черной доски» и ряда других.

Некоторые считают 1980 год годом рождения МАС.



Общие принципы работы
Очевидно, что мультиагентные системы существенно отличаются от классических систем.

И, хотя изначально целью была параллельная обработка задач ИИ, сейчас основной упор делается на раздельную обработку (в отличие от параллельного ИИ, агенты часто решают разные задачи, в том числе конкурируя друг с другом, как это видно на примере SIM-life) и «социальное» поведение агентов.

Интересно, что МАС позволяют рассматривать человека как одного и того же агента.

Прибыль можно получить от этого, когда операторов постепенно заменяют компьютерными агентами.

Более четкие определения:

  • ситуативность означает, что агент воспринимает окружающую среду и может каким-то образом изменить ее.

    Окружающая среда включает в себя все, что агент может «чувствовать» и все, с чем он может взаимодействовать (включая других агентов);

  • автономность – агент может взаимодействовать со средой без вмешательства других агентов;
  • гибкость – оперативность или предусмотрительность (в зависимости от ситуации) агента.

    Отзывчивость подразумевает, что агент своевременно реагирует на окружающую среду и действует соответствующим образом.

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

    Очевидно, что предусмотрительность — более сложная задача; отзывчивость характерна для более простых агентов;

  • социальность - агент должен не только решать свою узкую задачу в одиночку, но и взаимодействовать с окружающими его агентами, совместно решая более общую проблему системы.

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



Особенности
Итак, мы узнали общие принципы.

Теперь пришло время сделать интересные выводы о качествах MAS:

  • «Агент» — более общее понятие, чем «система».

    Следовательно, любая часть сложной системы может быть представлена как агент. Не касаясь целесообразности рассмотрения кнопки «Ок» в качестве агента, отмечу, что это позволяет универсально рассматривать систему в целом – это дает преимущество гибкости как во времени (приведенный выше пример с заменой человека-оператора на компьютерный агент) и в структуре системы.

  • в общем, агентам не нужен «менеджер» для взаимодействия друг с другом.

    Для этого существуют социальные протоколы — они позволяют договориться и организовать обмен ресурсами и данными.

    Однако это не делает невозможным создание агента-менеджера, с которым как в реале можно договориться, забить на него счет, а затем следовать списку «поведений ответственного сотрудника».

  • агенты часто не имеют строгих обязанностей.

    Дело в том, что добиться стабильности системы при большом количестве «очень эффективных» агентов очень сложно (если не верите, почитайте про тупики при планировании ресурсов ОС).

    По этой причине агент может очень по-разному реагировать на внешний запрос — от очень быстрого и полного выполнения до его игнорирования — в зависимости от своих внутренних соображений.

    Чтобы нивелировать этот недостаток негарантированного обслуживания, используются социальные протоколы.

    В результате недостаток превращается в огромное преимущество - вместо того, чтобы ломать голову над сложнейшими алгоритмами диспетчеризации огромного количества ресурсов, мы просто даем задания, а агенты сами разбираются и сами решают, что с этим делать и как распределять ресурсы.

    Недостатками этого метода являются некоторая неопределенность и возможность при большой нагрузке накопления очередей.

    Очереди решаются на уровне удовлетворения потребностей системы в целом, а неопределенность — это просто другая сторона того, что все решается между агентами.

    В итоге все получается очень красиво.



Два примера



Логистика
Логистика – одна из традиционных и наиболее развитых областей использования мультиагентных систем.

Это связано с его высокой эффективностью (при использовании MAS затраты можно сократить до нескольких сотен процентов по сравнению с ручными расчетами).

Эффективность достигается за счет того, что в логистике имеется достаточно большое количество поставщиков товаров и достаточно большое количество потребителей и при этом они готовы поставлять больше, чем потребляют. Следовательно, самой опасной для МАК ситуации «борьбы за ограниченные ресурсы» не возникает. Агенты в логистике делятся на поставщиков, потребителей и курьеров.

Задача каждого курьера — оптимальная загрузка транспорта (чтобы «фура» была заполнена точно по объему/грузоподъемности, чтобы пустых рейсов было как можно меньше, а еще лучше вообще не было) и маршрут. оптимизация (минимизация маршрута и времени, хотя возможны и другие параметры, например, качество дорожного покрытия, частота появления полицейских кабин и т. д.).

Условием работы является полное выполнение заказов на поставку и возможность получить достаточное количество ресурсов от поставщиков.



Свечной завод
Абстрактный пример, чтобы еще раз показать принципы работы.

Обычно планирование производства представляет собой сложную и нетривиальную задачу.

Необходимо вовремя обеспечить всех исполнителей (и людей, и машины) необходимым количеством деталей, чтобы они могли работать наиболее оптимальным образом.

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

Рассчитывать все это вручную – адский труд, особенно если производство распределенное.

В случае использования мультиагентных систем все несколько упрощается: создаем агентов-исполнителей, агентов-курьеров (они доставляют продукцию с одной машины на другую), задаем объемы и график производства продукции — и, собственно, вот и все.

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

заказы.

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

А там, где это будет заметно, об этом узнают чуть ли не в момент поломки, а не тогда, когда некуда складывать полуфабрикаты.

Конец Это не ведет к выводам, это тоже не вывод, поэтому будет «конец».

При написании статьи я использовал замечательную книгу по общим вопросам систем искусственного интеллекта Люгера, немного личного опыта (делал небольшой симлайф) и массу разного сопутствующего материала по проблемам распределенного искусственного интеллекта.

Особо хотелось бы отметить некую международную компанию, которая работает над программным обеспечением для решения логистических задач с помощью MAS (оттуда взята основа для примера «логистики»).

Находясь в поиске.

Как только что-то появится, добавлю сюда.

Нашел, склероз.

Компания называется Пурпурная технология (есть «умеренная русская версия» — нажмите на флажок) Литература: Джордж Ф.

Люгер Искусственный интеллект. Стратегии и методы решения сложных проблем.

4-е издание: Пер.

с англ.

– М.

: Издательство «Вильямс», 2003 – 846 с.

Upd: Благодарю уважаемую киноакадемию (не знаю почему, но так и должно быть), маму за то, что она меня родила и воспитала, и НЛО за то, что прилетела и дала мне приглашение)) Теги: #многоагентные системы #Чулан

Вместе с данным постом часто просматривают: