.2 Разработка имитационной модели
Построенная математическая модель позволяет рассчитывать прогноз будущих состояний системы, то есть значений показателей деятельности компании, при заданных входных параметрах. Но сложность модели, количество её элементов и математических уравнений делают объём вычислений слишком большим и практически невыполнимым вручную. Для решения подобных задач, как и задач данного исследования, необходимо использование вычислительных мощностей компьютера.
Поэтому в среде AnyLogicбыла разработана системно-динамическая имитационная модель деятельности компании «Магнит», являющаяся программной реализацией описанной математической модели. Многочисленные элементы модели были воссозданы в AnyLogicс помощью таких программных инструментов системной динамики, как потоки, накопители, динамические переменные и параметры. Функции зависимостей были определены связями и прописаны в соответствующих свойствах элементов. В качестве единицы модельного времени был взят 1 месяц.Все формулы и величины переменных, включая единицы их измерения, были приведены в соответствие с этим.
После построения имитационной модели был также окончательно определён набор ключевых показателей, характеризующих успешность и состоятельность компании. В качестве ключевых было выбрано три переменных:
объём накопленной чистой прибыли,
коэффициент финансового левериджа (финансовый рычаг),
коэффициент текущей ликвидности.
Накопленная прибыль рассчитывается как сумма всех месячных поступлений чистой прибыли за период моделирования. Она является индикатором успешности деятельности компании и повышает возможности для осуществления инвестиционных вложений, которые со временем могут вылиться в ещё большую прибыль. Таким образом, задача оптимизации состоит в максимизации данного показателя.Но высокий показатель прибыли не всегда означает высокую эффективность деятельности компании. Существуют и другие показатели, по которым можно определить, например, эффективность финансирования или управления активами и капиталом предприятия, которые могут практически не сказываться на текущей прибыли, но иметь свои риски и долгосрочные последствия. Поэтому были определены и другие ключевые элементы модели.
Фактор долговой нагрузки, выделенный на этапе построения когнитивной карты, был разложен в процессе математического и имитационного моделирования на две переменные. Первая - коэффициент финансового рычага - рассчитывается как отношение заёмного капитала компании к собственному. Этот показатель даёт оценку общей способности компании к погашению своих обязательств, а также используется для расчёта величины инвестиционных вложений. Высоким коэффициентом финансового рычага считается его значение от 2 и более, что говорит об избыточном долге и высоком риске банкротства из-за неспособности исполнения финансовых обязательств. Величина от 1 до 2 также является завышенной, но допустимой. Значение, равное единице, является оптимальным коэффициентом финансового рычага. При этом, если показатель меньше единицы, то это может указывать на упущенную потенциальную выгоду от инвестиций. Но данный убыток и так прямо сказывается на первом ключевом показателе - прибыли. Что же касается большого объёма задолженностей и риска неплатёжеспособности, на которые указывает высокое значение данного коэффициента, то они на прибыль практически не влияют, так как расходы на погашение основного долга не учитываются при расчёте чистой прибыли предприятия - учитываются лишь расходы по процентам. Следовательно, в рамках решения задач оптимизации при значении коэффициента больше единицы следует осуществлять его минимизацию (до единицы), а если значение уже меньше, чем 1, то необходимо прежде всего принимать во внимание два других целевых показателя.
Третья ключевая переменная - это коэффициент текущей ликвидности. Данный показатель также связан со способностью компании исполнять свои платёжные обязательства, но, в отличие от финансового левериджа, определяющего как краткосрочную, так и долгосрочную состоятельность компании, ликвидность выражает готовность компании погасить текущие обязательства, то есть те, до срока погашения которых осталось менее года. Чтобы выплатить данные задолженности, предприятию нужны денежные средства или быстро обращаемые в них активы. Следовательно, коэффициент текущей ликвидности рассчитывается как отношение текущего долга к текущим (оборотным) активам. В разработанной модели он также влияет на распределение обязательств по сроку долга при их взятии. Чем меньше значение коэффициента, тем больший процент заимствований берётся на долгосрочной основе. Как правило, оптимальным считается значение данного показателя от 1 до 2. При значении меньше единицы возрастает риск неспособности платить по текущим счетам, а коэффициент больше двух говорит о возможной неэффективности управления активами и обязательствами в компании. Исходя из этого, при решении задач оптимизации целевым будет являться весь интервал значений данного показателя от 1 до 2.Значение меньше 0,7 является недопустимым.
На основании всего выше
перечисленного, была составлена формула общей эффективности, складывающаяся
поровну из трёх нормализованных значений ключевых показателей. В общем виде она
выглядит следующим образом:
,
где TE
- совокупная эффективность компании, PE
- эффективность по прибыли, GE
- эффективность по финансовому рычагу, LE
- эффективность по ликвидности. Расчёт этих показателей основан на следующих
уравнениях:
,
гдеMP-измеренный
с помощью эксперимента показатель прибыли, RP-реальный
показатель прибыли из тестовых данных, скорректированный на продолжительность
моделируемого периода (например, для двух лет RP
= 54409 млн. руб. × 2 = 108818 млн.
руб.).
где RG
- реальный показатель финансового левериджа, MG-измеренный
экспериментом (RG
= 1.32). Значение RGот
2 и больше считается недопустимым для компании.
где ML - измеренный коэффициент ликвидности, RL-реальный коэффициент ликвидности (RL = 0,959).
Общая диаграмма разработанной в AnyLogic
имитационной модели изображена на Рисунке 2.
Рисунок 2. Общая диаграмма имитационной
модели торговой компании
В целях повышения визуальной ясности диаграммы многие элементы объединены в условные группы. Ключевые показатели - чистая прибыль, финансовый рычаг и ликвидность - отмечены жёлтым цветом. Из-за большого количества элементов и связей общая диаграмма достаточно тяжела для восприятия. Поэтому следует рассмотреть порядок формирования основных элементов по отдельности.
Схема расчёта накопленной чистой прибыли представлена на Рисунке 3.
Рисунок 3. Фрагмент диаграммы:
расчёт прибыли
Уровень накопленной чистой прибыли (NPAcc) за период
рассчитывается как сумма потоков чистой прибыли (NetProfit) закаждую
единицу модельного времени (месяц) в течение этого периода.Расчёт потока чистой
прибыли производится на основе выручки (Revenue) с вычетом
из неё операционных затрат (Costs), а также налога на прибыль
(IncomeTax) и расходов
по процентам (InterestRate), величина
которых равна размеру накопленного долга (Debt),
помноженному на средневзвешенную процентную ставку(InterestRate). При этом,
от размера прибыли зависит рекламный бюджет (AdvertisingBudget), создающий
для прибылисразу две петли обратных связи - одну балансирующую и одну
усиливающую, ведь его увеличение приводит к росту как затрат, так и выручки. Похожим
образом воздействует и процент средней торговой наценки (Markup). Её
увеличение прямо сказывается на величине выручки от продаж, но вызывает
снижение самих продаж. Таким образом, в данной области диаграммы есть два
подлежащих оптимизации параметра: наценка и процент рекламного бюджета от
прибыли (AdBudgetingRate). Перечень
всех элементов данного блока диаграммы представлен в Таблице 2.
Таблица2. Элементы модели: расчёт прибыли
|
Элемент |
Описание |
Значение / формула |
Единица измерения |
|
NPAcc |
Накопитель объёма чистой прибыли; ключевой показатель |
d(NPAcc)dt = NetProfit Начальноезначение: 0 |
тыс. руб. |
|
NetProfit |
Поток чистой прибыли |
EBIT * (1 - IncomeTax) - Interest |
тыс. руб. / мес. |
|
Interest |
Расходы по процентам |
(ShortTermDebt + LongTermDebt) * InterestRate / 12 |
тыс. руб. / мес. |
|
InterestRate |
Средневзвешенная процентная ставка по долгам компании; параметр |
uniform(0.04, 0.06) |
|
|
IncomeTax |
Ставка налога на прибыль; параметр |
0.2 |
|
|
EBIT |
Прибыль до вычета налогов и процентов |
Revenue - Costs - Depreciation |
тыс. руб. / мес. |
|
Revenue |
Объём выручки |
Sales * (1 + Markup) |
тыс. руб. / мес. |
|
Markup |
Средняя торговая наценка на товары; параметр |
0.48 |
|
|
SalesPerStore |
Средний объём продаж (себестоимости проданных товаров) магазина |
29000 / pow((1 + Markup), 5) + 0.5 * sqrt(AdvertisingBudget) |
тыс. руб. / мес. |
|
AdvertisingBudget |
Размер рекламного бюджета |
delay(max(0, NetProfit * AdBudgetingRate), 0.01) |
тыс. руб. / мес. |
|
AdBudgetingRate |
Процент пополнения рекламного бюджета от чистой прибыли; параметр |
0.09 |
|
|
Costs |
Совокупные издержки по операционным видам деятельности |
RentAndUtilities + Payroll + SupplyCosts + AdvertisingBudget |
тыс. руб. / мес. |
Процессы формирования продаж, запасов и издержек
снабжения подробно представлены на Рисунке 4.
Рисунок 4. Фрагмент диаграммы:
управление снабжением
Общие издержки снабжения (SupplyCosts)
складываются изнескольких видов издержек. Во-первых, этосебестоимость проданных
товаров (Sales), также
являющаяся показателем объёма продаж без наценки, равным средним продажам по
магазинам (SalesPerStore),
умноженным на текущее количество магазинов (Stores).
Во-вторых, зависящие от продаж и количества распределительных центров (DistributionCenters)транспортные
расходы (TransportationCosts). В-третьих
и в-четвёртых, задаваемые процентами от текущего объёма запасов (Inventory)издержки
хранения (CarryingCosts) и убыткиот
недостачи (Shrinkage).
Накопленный объём запасов непрерывно уменьшается на показатели продаж и
недостач и увеличивается на сумму закупок (Purchases). При этом,
закупкиосновываются на целевом значении запасов (DesiredInventory),
определяемом с помощью параметра их оборачиваемости (Turnover). Этот
параметр отвечает за соотношение запасов и также должен быть оптимизирован.
Подробная информация о переменных - в Таблице 3.
Таблица3. Элементы модели: управление снабжением
|
Элемент |
Описание |
Значение / формула |
Единица измерения |
|
Inventory |
Накопитель объёма товарных запасов |
d(Inventory)dt = Purchases - Sales - Shrinkage Начальноезначение: 116471588 |
тыс. руб. |
|
Sales |
Поток объёма продаж, рассчитанный по их себестоимости |
Stores * SalesPerStore |
тыс. руб. / мес. |
|
Shrinkage |
Поток убытков из-за недостач запасов |
Inventory * ShrinkageFactor |
тыс. руб. / мес. |
|
ShrinkageFactor |
Средний объём убытков из-за недостачи; параметр |
uniform(0.008, 0.017) |
|
|
Purchases |
Поток товарных закупок |
max(0, DesiredInventory - Inventory + Sales + Shrinkage) |
тыс. руб. / мес. |
|
DesiredInventory |
Целевой объём запасов |
(Sales + Shrinkage) / Turnover |
тыс. руб. |
|
Turnover |
Коэффициент оборачиваемости запасов; параметр |
0.46 |
|
|
TransportationCosts |
Транспортные издержки |
Sales / (0.87 * DistributionCenters) |
тыс. руб. / мес. |
|
CarryingCosts |
Издержки хранения запасов |
Inventory * CarryingRate |
тыс. руб. / мес. |
|
CarryingRate |
Средняя стоимость хранения запасов; параметр |
uniform(0.01, 0.016) |
|
|
SupplyCosts |
Совокупные издержки товарного снабжения |
Sales + Shrinkage + TransportationCosts + CarryingCosts |
тыс. руб. / мес. |
|
InventoryChange |
Корректировка на изменения объёма запасов |
Purchases - Sales - Shrinkage |
тыс. руб. / мес. |
Диаграмма показателей управления персоналом,
магазинами и распределительными центрами изображена на Рисунке 5.
Рисунок 5. Фрагмент модели:
помещения и трудовые ресурсы
В рамках модели персонал компании
разделён на три категории: сотрудники магазинов, сотрудники логистической
службы и административно-управленческий персонал. Это разделение было
реализовано путём создания размерности Positionsи объявления
соответствующих элементов массивами данной размерности. Таким образом,
накопитель, характеризующий количество персонала в каждой категории (Staff) и параметр
их средних месячных зарплат (PositionSalaries)
используются для расчёта суммы всех расходов на оплату труда (Payroll). Что
касается количества сотрудников, то оно снижается каждый месяц согласно
показателю средней продолжительности (в месяцах) работы человека на одном месте
(EmployeeTenure), а
увеличивается из расчёта целевого значения числа сотрудников (DesiredStaff). Его
формирование происходит индивидуально для каждой категории персонала и зависит
от таких показателей, как общее количество магазинов (Stores),
распределительных центров (DistributionCenters) и
персонала. Магазины и распределительные центры открываются тем быстрее, чем
больше размер инвестиций (Investment). А расходы
на их коммунальное обслуживание и аренду (RentAndUtilities)
складываются исходя из общей площади данных помещений (TotalArea).Элементы
размерности Positions, которая
содержит перечисление категорий персонала в компании, перечислены в Таблице 4.
Таблица 4. Элементы модели: размерностьPositions
|
Индекс |
Элемент |
Описание |
|
1 |
StoreWorker |
Сотрудники магазинов |
|
2 |
LogisticWorker |
Сотрудники логистической службы компании |
|
3 |
Manager |
Административно-управленческий персонал (руководители, специалисты, служащие) |
Данные о расчёте элементов соответствующей части
диаграммы содержатся в Таблице5.
Таблица 5. Элементы модели: помещения и трудовые ресурсы
|
Элемент |
Описание |
Значение / формула |
Единица измерения |
|
Stores |
Накопитель количества магазинов |
d(Stores)dt = StoreGrowth Начальноезначение: 12089 |
ед. |
|
StoreGrowth |
Поток открытия магазинов |
StoreGrowthRate |
ед. / мес. |
|
StoreGrowthRate |
Темп прироста количества магазинов |
0.75 * Investment / 17712 |
ед. / мес. |
|
DistributionCenters |
Накопитель количества распределительных центров |
d(DistributionCenters)dt = DCGrowth Начальноезначение: 33 |
ед. |
|
DCGrowth |
Поток открытия распределительных центров |
DCGrowthRate |
ед. / мес. |
|
DCGrowthRate |
Темп прироста количества распределительных центров |
0.2 * Investment / 1980000 |
ед. / мес. |
|
TotalArea |
Общая площадь помещений |
Stores * AverageStoreArea + DistributionCenters * AverageDCArea |
кв. м |
|
AverageStoreArea |
Средняя площадь магазина; параметр |
uniform(430,470) |
кв. м |
|
AverageDCArea |
Средний площадь распределительного центра; параметр |
uniform(38000, 42000) |
кв. м |
|
RentAndUtilities |
Расходы на аренду и коммунальные услуги |
TotalArea * CostOfRU |
тыс. руб. / мес. |
|
CostOfRU |
Средняя стоимость расходов на аренду и коммунальные услуги на квадратный метр; параметр |
uniform(0.5, 0.6) |
тыс. руб. / кв. м |
|
Staff[Positions] |
Накопитель количества персонала по категориям |
d(Staff[Positions])/dt = HireRate[Positions] - QuitRate[Positions] Начальноезначение: {194723, 40369, 29908} |
чел. |
|
HireRate[Positions] |
Поток новых сотрудников |
max(0, DesiredStaff [Positions] + QuitRate [Positions] - Staff [Positions]) |
чел. / мес. |
|
QuitRate[Positions] |
Потокуходасотрудников |
Staff [Positions] / EmployeeTenure |
чел. / мес. |
|
EmployeeTenure |
Средняя продолжительность работы сотрудника на одном месте; параметр |
uniform(24, 48) |
мес. |
|
DesiredStaff [Positions] |
Целевое количество персонала по категориям |
DesiredStaff [StoreWorker] = Stores * StaffPerStore DesiredStaff [LogisticWorker] = DistributionCenters * StaffPerDC DesiredStaff [Manager] = Staff.sum() / 20 + Stores + DistributionCenters * 150 |
чел. |
|
StaffPerStore |
Среднее количество персонала в магазине; параметр |
чел. |
|
|
StaffPerDC |
Среднее количество персонала в распределительном центре; параметр |
uniform(1100,1300) |
чел. |
|
PayrollByPositions [Positions] |
Расходы на оплату труда по категориям |
Staff[Positions] * PositionSalaries[Positions] |
тыс. руб. / мес. |
|
PositionSalaries [Positions] |
Средняя заработная плата по категориям; параметр |
{26, 36, 57} |
тыс. руб. / мес. |
|
Payroll |
Общие расходы на оплату труда |
PayrollByPositions.sum() |
тыс. руб. / мес. |