Разработка гибридной имитационной модели

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

Рассмотрим задачу проектирования простой агентной модели поведения предприятий, относящихся к некоторой отрасли экономики, динамика выпуска которых может быть описана с помощью хорошо известной функции Кобба — Дугласа.

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

Как было отмечено ранее, создание агентной модели предполагает добавление нового активного класса к модели и фиксация свойства «Агент» для данного класса (вкладка «Основные» свойства класса). Далее необходимо добавить (перетащить) класс агента к основному классу модели (Main), как показано на рис. 8.9.

На рис. 8.9 класс агента Enterprise (предприятие) добавлен к основному классу Main. При этом состояние агента в данном примере визуализировано с помощью объекта «Овал», взятого из палитры «Презентация» системы AnyLogic и добавленного к активному классу Enterprise.

Добавление активного класса агента к основному классу

Рис. 8.9. Добавление активного класса агента к основному классу

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

Допустим, у агента имеется три возможных условных состояния (рис. 8.10):

  • state! — когда объем выпуска агента составляет менее 25% среднего объема выпуска по всем предприятиям;
  • state2 — когда объем выпуска агента не превышает среднее значение объема выпуска но всем предприятиям, но более или равен 25% среднего объема выпуска;
  • state3 — когда объем выпуска агента превышает среднее значение объема выпуска по всем предприятиям.
Реализация модели системной динамики для активного класса агента

Рис. 8.10. Реализация модели системной динамики для активного класса агента

Для оценки среднего значения объема выпуска по всем агентам- предприятиям можно использовать свойство «Статистика» агента с типом «Среднее» и выражением item.Выпуск (рис. 8.11).

Вычисление среднего объема выпуска по всем предприятиям-агентам

Рис. 8.11. Вычисление среднего объема выпуска по всем предприятиям-агентам

Для расчета среднего выпуска в модели используется следующий код:

Среди и й_вы пуск = enterprise.enterpriseStatl()

Отметим, что возможна модернизация рассматриваемой гибридной имитационной модели за счет применения элементов эволюционного моделирования. Пусть в модели будет дополнительное состояние state4y которое соответствует состоянию банкротства предприятия. Переход к состоянию state4 возможен из любого имеющегося состояния (state 1, state2, state3) и зависит от значения чистой прибыли компании после выплаты налогов и процентов по кредитам. Прибыль сравнивается с некоторым пороговым значением (обычно равным нулю). При этом указанные состояния также характеризуют финансовое положение компании: отношение чистой прибыли данного агента к среднему значению чистой прибыли по всем агентам:

  • • состояние state 1 — когда чистая прибыль составляет менее 25% средней чистой прибыли по всем предприятиям, но больше либо равна нуля;
  • • состояние state2 — когда чистая прибыль агента не превышает среднего значения чистой прибыли по всем предприятиям, но больше или равна 25% среднего значения прибыли;
  • • состояние stated — когда чистая прибыль агента превышает среднее значение чистой прибыли по всем предприятиям;
  • • состояние stateA — когда чистая прибыль меньше нуля, т.е. предприятие является банкротом.

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

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

  • • состояние state 1 — выделены темно-серым цветом;
  • • состояние state2 — выделены светло-серым цветом;
  • • состояние stated — выделены белым цветом;
  • • состояние stateA — выделены черным цветом.
Модификация карты состояний агента

Рис. 8.12. Модификация карты состояний агента

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

oval.setFillColor(black);

Здесь oval — имя графического объекта «Овал».

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

  • • чистую прибыль — прибыль компании после выплаты налогов и процентов по кредитам;
  • NOPAT прибыль после выплаты налогов;
  • • выручку;
  • • затраты;
  • • цену продукта;
  • • затраты на трудовые ресурсы;
  • • объем кредитов;
  • • инвестиционный фонд (равен сумме кредитов и части собственной прибыли, направляемой на инвестиции);
  • • темп капиталовложений;
  • • процентную ставку по кредитам;
  • • срок кредитования;
  • • ставку налога на прибыль;
  • • ставку налога на добавленную стоимость (НДС).

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

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

Модификация имитационной модели предприятия

Рис. 8.13. Модификация имитационной модели предприятия

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

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

Таким образом, выбираемые оптимальные значения управляющих параметров модели должны быть ограничены экономически реализуемыми константами. Например, ставка НДС варьируется в пределах от 15 до 25%, процентная ставка по кредитам ограничена уровнем инфляции и т.д.

Для обеспечения возможности варьирования значениями управляющих параметров в системе AnyLogic необходимо использовать специальные элементы управления типа «Бегунок» (рис. 8.14), связанные с параметрами модели верхнего уровня (класса Main) и передающие устанавливаемые значения управляющим параметрам модели нижнего уровня (класса Enterprise).

n

(3 parameterl

LI

._-Я-_

(3 parameter2

и

—о—

(3 parameteri

-П-

(3 parameter4

LI

Рис. 8.14. Варьирование значениями управляющих параметров

модели

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

Бегунок 1 («Действие»):

for(int i=0; i

{

enterprise.get(i).nponeHTHaa_CTaBKa_no_KpeanTaM=parameterl;

}

Бегунок 2 («Действие»):

for(int i=0; i

{

cnterprise.gct(i).CpoK_Kpc;inToiiannH=paranieter2;

}

Бегунок 3 («Действие»):

for(int i=0; i

{

enterprise.get(i).CTaBKa_Ha.aora_Ha_npn6bnb=parameter3;

}

Бегунок 4 («Действие»):

for(int i=0; i

{

enterprise.get(i).CTaBKa_IWC=parameter4;

}

Здесь код enterprise.get(i) обеспечивает программный доступ ко всем элементам (показателям, функциям и др.) /-го агента активного класса Enterprise. Параметры parameterX, parameter2, parameter3 и parameter4 предварительно связаны с соответствующими бегунками (свойство «Связать с» бегунка).

Граничные значения управляющих параметров задаются в свойствах соответствующего бегунка («Минимальное значение» и «Максимальное значение»).

Функция enterprise.size() возвращает количество агентов-предприятий в популяции.

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

Результаты работы имитационной модели при неблагоприятном сценарии

Рис. 8.15. Результаты работы имитационной модели при неблагоприятном сценарии

Из рис. 8.15 следует, что при неблагоприятных значениях управляющих параметров: максимально возможных процентных ставок по кредитам, ставке НДС и ставки налога на прибыль и минимально возможной срочности кредитования — подавляющее количество агентов становятся банкротами (выделены черным цветом). Количество агентов, имеющих чистую прибыль выше средней (выделены белым цветом), невелико.

Результаты работы имитационной модели при благоприятном сценарии

Рис. 8.16. Результаты работы имитационной модели при благоприятном сценарии

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

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

Из рис. 8.16 следует, что при благоприятном сценарии количество агентов-банкротов существенно меньше (примерно 10% всех агентов). При этом значительная часть агентов эволюционирует к третьему состоянию, характеризуемому относительно высокой прибылью.

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

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >