Свою первую околонаучную статью хочется начать со слов великого выдумщика и практика Алана Тьюринга «В отсутствии законов поведения, которые в своей совокупности определяли бы нашу жизнь, нельзя убедиться так же легко, как в отсутствии законченного списка правил действия...» Воображая свою машину, он четко знал, что даже самое маленькое может делать большие дела. Во многих научных изданиях работу мультиагентных систем сравнивают с работой людей на предприятии.
Описание задачи
Я не придумываю велосипед, я просто переношу жизнь рабочих в цифру. На любом предприятии есть директор — который определяет куда оно движется. Давайте директора оставим, в виде пользователя нашей системы. Отдел кадров — их задача следить за работниками, увольнять, нанимать, вести табельный учет. Выделим специальных агентов для этого, пусть они нанимают и увольняют работников. Агенты координаторы являются посредниками между топ-менеджером директором и работниками, который в свою очередь также будут нашими агентами.
Осталось только придумать, а что будем производить. Проблема, которую необходимо решить — помочь директору правильно принимать решения, и, возможно, некоторые из них выполнять самостоятельно. А директор у нас руководит архивом, распределяет документы по хранилищам, основываясь только на ему одному ведомым правилам. Задача работников эти правила сохранять, понимать, адаптировать и применять. Таким образом при начальном заполнении некоторого объема документов работники должны самостоятельно распределять новые документы по архивам. Причем тут мультиагентные системы? В принципе не при чем, если бы не один факт. Документы надо сначала собрать по всему миру со всех столов, ящиков, телефонов… Потом отсортировать по типам, потом провести, наверное, главное — анализ и адаптацию, и только потом отправить в хранилище. Как правильно проводить анализ и адаптацию решения ведь не известно пока, поэтому возьмем теорию принятия решения на основе прецедентов. А извлекать будем некоторые параметры — кто, когда, кому, что передал, создал. Параметр «что» тоже не столь очевиден, поэтому опять же возьмем допущение — выразим из текста только существительные с учетом частоты их употребления в тексте.
Далее остается определять схожесть нового документа с уже существующими документами в хранилище.
Итого я выделил следующих участников процесса.
1) агенты-сборщики;
2) агенты анализаторы-решатели;
3) суперпользователь — эксперт и его агент;
4) агенты ответственные за хранилища;
5) агент-координатор
Почему именно мультиагентная архитектура для решения данной задачи?
1) Появляются простые средства проектирования ПО, способные перейти от парадигмы объектно-ориентированного программирования к парадигме агентно-ориентированного программирования (.NET, JADE, прочие);
2) Нет необходимости писать кросс-платформенные приложения, достаточно написать для каждой платформы своего агента;
3) В связи с большой информатизацией всех процессов на крупных предприятиях, внедрением систем управления контентом, систем документооборота и прочих систем обработки информации возникают сложности с обобщением информации. Агентные системы работают независимо друг от друга. Деятельность одного агента напрямую не зависит от деятельности всей системы. Выполнение одной и той же задачи может быть поставлено нескольким агентам одновременно. Эта избыточность дает бОльшую гарантию на получение результата.
4) Распределение решения поставленой задачи на нескольких агентов позволяет распараллелить процесс обработки информации из разных источников.
Автор: mishgam