ГИБРИДНОЕ МОДЕЛИРОВАНИЕ МУЛЬТИАГЕНТНЫХ ПРОЦЕССОВ ПРЕОБРАЗОВАНИЯ РЕСУРСОВ
Аксенов К. А., Гончарова Н. В.,
Выбор критериев сравнения
Сравнение функциональных возможностей систем AnyLogic 5.2, ARIS 5.0, G2 и BPsim2, при построении мультиагентных моделей процессов преобразования ресурсов, рассмотрим на примере построения модели базового предприятия, описанного в разделе 4.1.
Для сравнительной оценки функциональных возможностей пакетов рассмотрим их при описании:
1) проектирования концептуальной модели предметной области;
2) модели предприятия в целом:
● иерархической структуры модели процесса преобразования ресурсов;
● элементов слияния и разветвления процессов;
● функционально-стоимостного анализа модели процесса;
● динамического анализа данных, анализа результатов во время эксперимента;
● описания графов целей и поддержки методики BSC (цели, страты, причинно-следственные связи);
● поддержки русского языка;
● изменения параметров модели во время эксперимента.
3) процесса выполнения заказов на производстве:
● векторов входов / выходов / средств;
● объема захватываемого / освобождаемого ресурса / средства – постоянная / функция / случайная величина;
● длительности операции: постоянная / функция / случайная величина;
● приоритета операции и типа приоритета;
● условия запуска элемента преобразования – функция времени и ресурсов, и средств;
● модели ресурса и средства;
● модели интеллектуального агента (база знаний (правила диагностирования ситуаций, решения/действия), цели агента, сообщения);
4) расчета параметров «штрафные санкции» и «стоимость заказа».
5) при наличии специальных возможностей описания целей модели:
● в виде графа;
● в виде карты BSC.
6) модели на ограниченном естественном языке;
7) при наличии средств описания команд;
8) возможности построения мультиагентных моделей. Наличие агентов (моделей ЛПР), обладающих индивидуальным поведением и знаниями:
● наличие класса объекта «агент», на основе которого можно создавать экземпляры класса;
● возможность описания поведения агента (язык описания сценариев поведения агентов (диагностирование ситуаций, поиск решения), язык описания команд управления);
● язык описания знаний агента;
● язык обмена сообщениями между агентами;
● удобство интерфейса пакета при описании агентов.
9) поддержки ИМ;
10) поддержки аппарата ЭС:
● база знаний;
● механизм логического вывода из базы знаний.
11) поддержки ситуационного подхода (наличие механизмов описания ситуаций);
12) экспорта/ импорта/ открытого доступа к базе знаний модели:
● импорта начальных условий и исходных данных из внешних источников;
● экспорта результатов экспериментов;
● открытого доступа к базе знаний модели.
При проведении сравнительного анализа мультиагентных систем моделирования возможность представления элемента процесса преобразования ресурсов рассмотрим на примере процесса выполнения заказов на производстве; расчет параметра (характеристики) рассмотрим на примере вычисления штрафных санкций и стоимости заказа.
Также уделим внимание следующим критериям анализа:
● удобство интерфейса пакета при описании элементов мультиагентного процесса преобразования ресурсов.
В табл. П.1 приведены описания моделей агентов базового предприятия.
Таблица П.1
Описание агентов, их целей и базы знаний
Агент |
Цели |
База знаний |
1 |
2 |
3 |
1А – Потребитель (внешний объект) |
1. Si → min Si{n,k,t,s}, т. е. минимизировать стоимость заказа 2. Ti → min Ti{t,k,n}, т. е. минимизировать время заказа |
If (1А в состоянии «потенциальный потребитель») ∧ (моделируется воздействие рекламы, с заданной эффективностью Ad_Effectiveness по таймауту, подчиняющемуся экспоненциальной зависимости от модельного времени) ∧ (моделируется передача информации во время контактов агента – «потребителя» с другими потребителями – задается среднее количество контактов в день Contact_Rate) ∧ (задается сила убеждения агента – «потребителя» – в виде параметра агента Adoption_Fraction) Then (1А переходит в состояние «потребитель») (0) If (1А в состоянии «потребитель», сформирована потребность в товарах или услугах) Then (менеджеру 2А – заказ продукции количество N, срок выполнения Т, предельное значение стоимости S*, предельное значение количества дней задержки выполнения заказа U*) ∧ (ri = 0) (0) If (от менеджера 2А получено сообщение о подписании договора, время задержки Ui ≤ U* стоимость заказа Si ≤ S*) Then (бухгалтеру 3А перечисление денежных средств Si) (2) If (от менеджера 2А получено сообщение, что заказ Zi выполнен) ∧ (Тi* ≤ Тi) Then (принять заказ) (0) If (от менеджера 2А получено сообщение, что заказ Zi выполнен) ∧ (Тi* > Тi) Then (принять заказ) (0) ∧ (получить штрафные санкции Нi = 0,1 % τiSi) (2) If (1А в состоянии «потребитель » уже сделал заказ) ∧ (сработал таймаут, определенный параметром Discard_Time) Then (1А переходит в состояние «потенциальный потребитель») |
1 |
2 |
3 |
2А – Менеджер |
1. Ni → max Ni, т. е. максимизировать количество заказов 2. Сохранение и расширение клиентской базы предприятия и доли рынка 3. Si → max Si{n,k,t,s}, т. е. максимизировать стоимость заказа |
If (от потребителя 1А поступило сообщение о заказе продукции N, срок выполнения Т) Then (увеличить счетчик заказов i = i + 1) (0) ∧ (открыть заказ Zi продукции Ni = kin, срок выполнения Тi)(0) If (заказ Zi продукции Ni = kin, срок выполнения Тi) ∧ (Ni ≤ 10n) ∧ (Ti ≥ t) Then (расчет стоимости заказа Si = ski) (0) ∧ (расчет необходимых производственных мощностей pi = p * ki) (0) ∧ (расчет необходимого кол-ва рабочих xi = ki = Ni/n)(0) If (заказ Zi продукции Ni = kin, срок выполнения Тi) ∧ (Ni ≤ 10n) ∧ (t > Ti ≥ t/2) Then (расчет стоимости заказа Si = ski + 20 %ski) (0) ∧ (расчет необходимых производственных мощностей pi = 2p*ki) (0) ∧ (расчет необходимого кол-ва рабочих xi = 2ki = 2Ni/n) (0) If (заказ Zi продукции Ni = kin, срок выполнения Тi) ∧ (Ni ≤ 10n) ∧ (t/2 > Ti ≥ t/4) Then (расчет стоимости заказа Si = ski + 40 %ski) (0) ∧ (расчет необходимых производственных мощностей pi = 4p*ki) (0) ∧ (расчет необходимого кол-ва рабочих xi = 4ki = 4Ni/n) (0) If (заказ Zi продукции Ni = kin, срок выполнения Тi) ∧ (10n ≤ Ni < 20n) ∧ (Ti ≥ t) Then (расчет стоимости заказа Si = ski – 7 %ski) (0) ∧ (расчет необходимых производственных мощностей pi = p * ki) (0) ∧ (расчет необходимого кол-ва рабочих xi = ki = Ni/n)(0) If (заказ Zi продукции Ni = kin, срок выполнения Тi) ∧ (10n ≤ Ni < 20n) ∧ (t > Ti ≥ t/2) Then (расчет стоимости заказа Si = (ski – 7 %ski) + 20 %(ski – 7 %ski)) (0) ∧ (расчет необходимых производственных мощностей pi = 2p*ki) (0) ∧ (расчет необходимого кол-ва рабочих xi = 2ki = 2Ni/n)(0) If (заказ Zi продукции Ni = kin, срок выполнения Тi) ∧ (10n ≤ Ni < 20n) ∧ (t/2 > Ti ≥ t/4) Then (расчет стоимости заказа Si = (ski – 7 %ski) + 40 %(ski – 7 %ski)) (0) ∧ (расчет необходимых производственных мощностей pi = 4p*ki) (0) ∧ (расчет необходимого кол-ва рабочих xi = 4ki = 4Ni/n)(0) |
1 |
2 |
3 |
If (заказ Zi продукции Ni = kin, срок выполнения Тi) ∧ (20n ≤ Ni < 50n) ∧ (Ti ≥ t) Then (расчет стоимости заказа Si = ski – 10 %ski) (0) ∧ (расчет необходимых производственных мощностей pi = p * ki) (0) ∧ (расчет необходимого кол-ва рабочих xi = ki = Ni/n)(0) If (заказ Zi продукции Ni = kin, срок выполнения Тi) ∧ (20n ≤ Ni < 50n) ∧ (t > Ti ≥ t/2) Then (расчет стоимости заказа Si = (ski – 10 %ski) + 20 %(ski – 10 %ski)) (0) ∧ (расчет необходимых производственных мощностей pi = 2p*ki) (0) ∧ (расчет необходимого кол-ва рабочих xi = = 2ki = 2Ni/n)(0) If (заказ Zi продукции Ni = kin, срок выполнения Тi) ∧ (20n ≤ Ni < 50n) ∧ (t/2 > Ti ≥ t/4) Then (расчет стоимости заказа Si = (ski – 10 %ski) + 40 %(ski – 10 %ski)) (0) ∧ (расчет необходимых производственных мощностей pi = 4p*ki) (0) ∧ (расчет необходимого кол-ва рабочих xi = 4ki = 4Ni/n)(0) If (заказ Zi продукции Ni = kin, срок выполнения Тi) ∧ (Ni ≥ 50n) ∧ (Ti ≥ t) Then (расчет стоимости заказа Si = ski – 15 %ski) (0) ∧ (расчет необходимых производственных мощностей pi = p * ki) (0) ∧ (расчет необходимого кол-ва рабочих xi = ki = Ni/n)(0) If (заказ Zi продукции Ni = kin, срок выполнения Тi) ∧ (Ni ≥ 50n) ∧(t > Ti ≥ t/2) Then (расчет стоимости заказа Si = (ski – 15 %ski) + 20 %(ski – 15 %ski)) (0) ∧ (расчет необходимых производственных мощностей pi = 2p*ki) (0)∧ (расчет необходимого кол-ва рабочих xi = = 2ki = 2Ni/n)(0) If (заказ Zi продукции Ni = kin, срок выполнения Тi) ∧ (Ni ≥ 50n) ∧ (t/2 > Ti ≥ t/4) Then (расчет стоимости заказа Si = (ski – 15 %ski) + 40 %(ski – 15 %ski)) (0) ∧ (расчет необходимых производственных мощностей pi = 4p*ki) (0) ∧ (расчет необходимого кол-ва рабочих xi = 4ki = 4Ni/n)(0) |
||
1 |
2 |
3 |
If (расчет необходимых производственных мощностей pi выполнен) ∧ (расчет необходимого кол-ва рабочих xi выполнен) ∧ (стоимость Si рассчитана) Then (расчет времени задержки выполнения заказа Ui по массиву плановой загрузки производственных мощностей В: Ui = 0, цикл пока ((ST – В[Θ + µ + Ui ]) < pi), выполнить (Ui = Ui + 1))(0) ∧ (ri = 4)(0) If (ri = 4) ∧ (время задержки Ui > U* или стоимость заказа Si > S*, т. е. больше предельных значений потребителя 1А) Then (от потребителя 1А получен отказ по заказу Zi) ∧ (ri = 3) (0) ∧ (сообщение директору 6А об отказе потребителя 1А) (0) If (ri = 4) ∧ (время задержки Ui ≤ U*) ∧ (стоимость заказа Si ≤ S*) Then (подписание договора об открытии заказа с потребителем 1А) (0) ∧ (ri = 1) (0) ∧ (сообщение бухгалтеру 3А о том, что должны быть перечислены денежные средства Si от потребителя 1А) (0) If (с потребителем 1А подписан договор об открытии заказа) ∧ (ri = 1) Then (формирование заявки на производство заказа Zi для начальника производства 4А, кол-во продукции Ni и срок выполнения Тi) (0) ∧ (формирование заявки на ресурсы заказа Zi для снабженца 5А, кол-во продукции Ni и срок выполнения Тi) (0) ∧ (формирование заявки бухгалтеру 3А на резервирование денежных средств на проплату за ресурсы в размере 0,1 Si) (0) If (от начальника производства 4А получено сообщение, что произведено по заказу Zi продукции Ni за время Ti*)∧(Т*i > Тi) Then (рассчитать сумму штрафных санкций Нi = 0,1 % (Т*i – Тi)Si) (0) ∧ (передача сообщения Hi бухгалтеру 3А) (0) ∧ (передача отчета директору 6А) (0) ∧ (подготовка документов на отгрузку продукции по заказу Zi потребителю 1А) (0) If (от начальника производства 4А получено сообщение, что произведено по заказу Zi продукции Ni за время Ti*)∧(Т*i ≤ Тi) Then (штрафные санкции Нi = 0)(0) ∧ (передача сообщения бухгалтеру 3А) (0) ∧ (передача отчета директору 6А) (0) ∧ (подготовка документов на отгрузку продукции по заказу Zi потребителю 1А) (0) |
||
1 |
2 |
3 |
3А – Бухгалтер |
1. Si → mах Si{n,k,t,s}, т. е. максимизировать стоимость заказа 2. Максимизировать рентабельность, чистую прибыль |
If (от менеджера 2А получено сообщение об открытии заказа Zi, стоимость Si) ∧ (на счет предприятия пришли ДС от потребителя 1А в размере Si) ∧ (ri = 1) Then (сообщение снабженцу 5А о получении ДС по заказу Zi)(0) If (от менеджера 2А поступила заявка на резервирование денежных средств на проплату за ресурсы по заказу Zi) Then (резервирование суммы ДС в размере 0,1 Si) (0) If (от снабженца 5А поступили счета на проплату МТР по заказу Zi, сумма Si , ресурсы = 0,1 Si) Then (проплата ДС по счетам) (2) If (от начальника производства 4А поступили счета на оплату поиска дополнительных рабочих по заказу Zi на сумму Δ∙yi) Then (оплата ДС по счетам) (2) If (счета по заказу Zi проплачены) Then (сообщение снабженцу 5А) (0) If (ri = 2) ∧ (от менеджера 2А сообщение, что прошла отгрузка по заказу Zi потребителю 1А) ∧ (штрафные санкции Hi > 0) Then (перечисление потребителю 1А суммы Нi) (2) If (ri = 2) ∧ (от менеджера 2А сообщение, что прошла отгрузка по заказу Zi потребителю 1А) ∧ (предоставлены на оплату наряды на зарплату рабочих xi, yi от начальника производства 4А) Then (расчет прямых затрат Si пр = Si ресурсы + 0,2 Si + + Δ∙yi) (0) ∧ (расчет накладных расходов размере 0,5 Si) (2) ∧ (расчет прибыли от пр-ва) (0) If (закончился отчетный период) Then (расчеты с персоналом по з/п) (0) ∧ (расчет рентабельности) (1) ∧ (расчет и уплата налогов) (3) ∧ (расчет чистой прибыли) (3) ∧ (определение финансового состояния предприятия) (4) ∧ (расчет инвестиций в пр-во) (4) ∧ (расчет с дебиторами и кредиторами) (4) ∧ (передача отчета директору) (5) |
1 |
2 |
3 |
4А – Начальник производ-ства |
1. Z → max Z{p}, т. е. максимизировать загрузку производственных мощностей и рабочей силы 2. t → min, т. е. уменьшить время на производство партии продукции (увеличить производитель-ность труда) 3. bi → min, т. е. минимизировать кол-во брака |
If (ri = 1) ∧ (от менеджера 2А поступила информация о заказе zi, кол-во продукции Ni и срок выполнения Тi) ∧ (поступили материальные ресурсы от снабженца 5А) ∧ (p* ≥ pi, т. е. есть свободные производственные мощности) Then (Θi = Θ начинается выполнение заказа zi) (0) ∧ (p* = p* – pi) (0) ∧ (x* = x* – xi) (0) ∧ (заведение информации по загрузке производственных мощностей в массив плановой загрузки В: В[Θ] = В[Θ] + Pi, В[Θ + 1] = В[Θ + 1] + Pi … В[Θ + Ti] = В[Θ + Ti] + Pi)(Ti) If (поступила информация о заказе ziот менеджера 2А, кол-во продукции Ni и срок выполнения Тi) ∧ (поступили материальные ресурсы от снабженца 5А) ∧ (x* < 0, т. е. нехватка рабочих) Then (запрос на рынок труда о привлечении yi = |x*| рабочих нужных специальностей по заказу zi) (0) ∧ (запрос бухгалтеру на оплату затрат на поиск yi доп. Рабочих, которые равны yi·Δ) (0) ∧ (x* = 0)(0) ∧ (xi = xi – yi) (0) If (привлечено yi дополнительных рабочих по заказу zi) Then (организация их работы по заказу zi) (0) If (поступила информация о заказе zi от менеджера 2А, кол-во продукции Ni и срок выполнения Тi) ∧ (поступили материальные ресурсы от снабженца 5А) ∧ (p* < pi, т. е. нет свободных производственных мощностей) Then (заказ ziприостанавливается из-за нехватки производственных мощностей на 1 день)(1) If (по заказу zi произведено кол-во продукции Ni) Then (контроль качества продукции Ni) (0) If (bi ≠ 0, т. е. часть продукции забракована) Then (выделение рабочих на исправление брака в количестве [(Xi + Yi)* bi / Ni] + 1) ∧ (возврат забракованной части zi на устранение брака на время [Ti * bi / Ni] + 1) (Ti * bi / Ni) If (bi = 0, т. е. продукция ziпрошла контроль качества) Then (сдача ziна склад готовой продукции) (0) ∧ (упаковка zi) (1) ∧ (предпродажная подготовка zi) (0) If (устранен брак bi, т. е. продукция zi прошла контроль качества) Then (сдача zi на склад готовой продукции) (0) ∧ (упаковка zi) (1) ∧ (предпродажная подготовка zi) (0) |
1 |
2 |
3 |
If (продукция zi сдана на склад готовой продукции) Then (сообщение про готовность zi, Ni менеджеру 2А) (0) ∧ (сообщение бухгалтеру 3А xi, уi для начисления з/п) (0) ∧ (передача отчета про ziдиректору) (0) ∧ (ri = 2) (0) ∧ (T*i = Θ – Θi) (0) ∧ (x* = x* + xi) (0) ∧ (p* = p* + pi) (0) ∧ (yi рабочих уволить) (0) ∧ (сообщить менеджеру 2А рассчитанную T*i) (0) |
||
5А – |
1. m → min, т. е. минимизировать долю стоимости заказа на проплату МТР при том же качестве продукции 2. tm → min, т. е. минимизировать время прихода МТР на производство |
If (поступила заявка на ресурсы от менеджера 2А, кол-во продукции Ni и срок выполнения Тi) Then (заказ ресурсов у поставщиков в расчете на k i партий) (0) If (получены счета от поставщиков) Then (передача счетов на проплату бухгалтеру 2А) (0) If (получено сообщение от бухгалтера 2А о проплате ДС) Then (доставка ресурсов от поставщиков) (3) If (ресурсы от поставщика доставлены) Then (входной контроль ресурсов) (0) If (ресурсы от поставщика прошли входной контроль) Then (выдача ресурсов начальнику производства 4А) (0) ∧ (передача отчета директору) (0) If (ресурсы от поставщика не прошли входной контроль) Then (возврат ресурсов поставщику) (0) ∧ (передача отчета директору) ∧ (заказ недостающих ресурсов у поставщиков) (0) |
6А – Директор |
1. Обеспечение инвестиций в производство (обновление оборудования, расширение производства) 2. Обучение кадрового состава, его профессионализа-ция (инвестиции в персонал) 3. Максимизация рентабельности, чистой прибыли |
If (получен отчет от бухгалтера 3А) Then (анализ рентабельности) (0) ∧ (анализ состояния расчетов с бюджетами и внебюджетными фондами) (0) ∧ (анализ чистой прибыли) (0) ∧ (анализ финансового состояния предприятия) (0) ∧ (анализ инвестиций в пр-во) (0) ∧ (анализ расчетов с дебиторами и кредиторами) (0) ∧ (выработка корректирующего воздействия) (5) If (ri = 2) ∧ (получен отчет от бухгалтера 3А) ∧ (прибыль по заказу отрицательна pribi < 0) Then (увеличение счетчика убыточных заказов на 1)(0) If (ri = 2) ∧ (получен отчет от бухгалтера 3А) ∧ (сумма штрафа Hi > 0) Then (увеличение счетчика заказов со штрафом на 1) (0) |
1 |
2 |
3 |
4. Сохранение и расширение клиентской базы предприятия и доли рынка 5. Обеспечение инвестиционной привлекательности предприятия |
If (ri = 2) ∧ (получен отчет от бухгалтера 3А) ∧(количество дополнительных рабочихYi > 0) Then (увеличение счетчика заказов с дополнительными рабочими на 1) (0) If (ri = 2) ∧ (счетчик убыточных заказов > = 3) ∧ (были заказы со штрафами за просрочку, т. е. не хватает производственных мощностей) Then (докупить два станка из прибыли предприятия) ∧ (счетчик заказов со штрафом обнулить) (0) If (ri = 2) ∧ (счетчик убыточных заказов > = 3) ∧ (были заказы с дополнительными рабочими, т. е. не хватает рабочей силы) Then (принять двоих основных рабочих) ∧ (счетчик заказов с дополнительными рабочими обнулить) (0) If (ri = 2) ∧ (получен отчет от бухгалтера 3А) ∧ (прибыль по заказу отрицательна pribi < 0) Then (увеличение нормативной стоимости одной партии заказа на 3 %) (0) If (ri = 2) ∧ (получен отчет от бухгалтера 3А) Then (подсчет и анализ чистой прибыли) (0) If (получен отчет от начальника производства 4А) ∧ (предприятие работает более месяца) Then (анализ средней загрузки производственных мощностей)(0) ∧ (анализ средней загрузки рабочей силы) (0) If (получен отчет от начальника производства 4А) ∧(предприятие работает более двух месяцев) ∧ (средняя загрузка производственных мощностей менее половины имеющихся) ∧ (более месяца не было корректирующего воздействия) Then (выработка корректирующего воздействия: продать два станка, увеличить прибыль предприятия на вырученные средства) (0) If (получен отчет от начальника производства 4А) ∧ (предприятие работает более двух месяцев) ∧ (средняя загрузка рабочей силы менее половины имеющихся) ∧ (более месяца не было корректирующего воздействия) Then (выработка корректирующего воздействия: уволить двух рабочих) (0) |
Примечание. В скобках указана длительность выполнения данной операции в днях; округление – всегда в большую сторону.