Одним из перспективных направлений цифровой экономики является применение имитационных моделей и цифровых двойников для определения и обоснования направлений развития территориальных образований (ТО) – городов, регионов, отдельных населенных пунктов [1]. Процессы развития территориального образования характеризуются стохастическим характером и нелинейностью, структурной динамикой, большим количеством взаимозависимых систем и обратных связей объектов среды. В этих условиях создание цифровых двойников ТО сталкивается со следующими проблемами [2, 3]: фрагментация научных исследований по отраслям знаний; чисто аналитические модели подходят к своему пределу сложности; композиция ранее разработанных моделей очень сложна; слабый учет в существующих моделях индивидуальных свойств, связей, поведения отдельных личностей и их влияния на общество; создание и корректировка моделей требуют использования языков программирования, что резко повышает трудоемкость создания модели и вероятность ее несоответствия замыслу эксперта; создание моделей развития общества требует участия экспертов из разных отраслей знаний: экономики, социологии, информатики, психологии и др.
Перспективным направлением исследований в данной сфере, направленным на решение указанных проблем, является разработка теоретических основ и построения системы моделирования развития ТО с удобным и понятным интерфейсом, позволяющим самим экспертам строить или по крайней мере анализировать правильность модели, прогнозировать и определять направления стратегического развития ТО, в котором действуют конкретные личности и организации со своими потребностями и возможностями.
Целью данной работы является исследование возможности применения средств Simulink MATLAB для создания библиотеки моделей поведения агентов, обладающих определенным набором потребностей. Задачами исследования являются: анализ сложности языка описания моделей, наличие средств имитации (движка модели), возможностей разработки автономных (отторгаемых от средств разработки) моделей компонент со стандартизированными интерфейсами, создания компонентных моделей, а также удобство средств разработки интерфейсов пользователей.
Материалы и методы исследования
В качестве теоретической основы создания такой библиотеки предложена математическая модель расширенного гибридного (непрерывно-дискретного) автомата [4, 5], на основе которой определяются динамические модели поведения и жизненные циклы объектов действительности, как активных, так и пассивных, а также их компонент. Предполагается, что использование данной модели позволит: исключить или резко уменьшить участие программистов в процессе разработки моделей, использовать для создания моделей графические нотации; обеспечить модульность при разработке модели и учет индивидуальных потребностей, способностей и поведения активных агентов ТО. К числу основных инструментальных сред, поддерживающих определение и динамическое моделирование гибридных автоматов, относятся: Modelica Standard Library, AnyDinamiks [6], а также сочетание систем Simulink и StateFlow, входящих в состав Matlab.
Исследование возможностей различных сред для решения поставленной задачи предполагается проводить на примере тестовой модели коллектива агентов, действующих в заданном пространстве. Указанная модель должна включать модель географического пространства, в котором периодически возникают и погибают источники энергии. Каждый агент должен обладать следующими способностями: обзор обстановки с помощью видеорецептора, перемещение с помощью эффектора передвижения, накопление и использование энергии, управление видеорецептором и эффектором передвижения с целью удовлетворения потребностей в энергии и отдыхе [7].
Для задания модели поведения агента и других динамических объектов в среде Simulink MATLAB может быть использован высокоуровневый графический язык Stateflow. На этом языке определяются диаграммы переходов состояний, блок-схемы, таблицы переходов состояний и таблицы истинности и, таким образом, реакция моделируемого объекта на входные сигналы, события, в результате которых могут меняться структура и параметры действующих непрерывных процессов [8].
Пространство жизни агентов задаётся матрицей A размерности m*n. Число в ячейке aij матрицы определяет объем энергии, который может получить агент от находящегося в данной точке источника энергии. Источники энергии представлены моделями гибридных автоматов, каждый из которых имеет свою скорость увеличения и снижения объёма энергии в ячейке в рамках своего жизненного цикла (аналог периодически возрождающегося и погибающего растения).
Модель агента включает в себя следующие компоненты (рис. 1): система управления; видеорецептор; эффектор передвижения; генератор энергии. Все компоненты агента представлены гибридными автоматами с определенными состояниями, входными и выходными переменными.
Рис. 1. Тестовая модель многокомпонентного агента
Входными сигналами эффектора передвижения являются: показания счётчика для синхронизации сигналов (counter), сигнал от системы управления о необходимости перемещения (move), количество энергии от генератора (energy_in), координаты, в которые необходимо переместиться (target_x, target_y). В качестве выходных переменных эффектор передвижения выдаёт: текущие координаты местонахождения (x, y), сигнал о гибели эффектора передвижения (dead), сигнал о готовности эффектора передвижения к работе (ready), уровень усталости (fatigue), внутреннее количество энергии (energy), уровень старения (age), дискретное состояние (state).
Генератор энергии в качестве входных параметров принимает текущие координаты местонахождения (x, y), в качестве выходных параметров показания счётчика для синхронизации поглощения энергии (counter), количество энергии, разрешённое для потребления (energy_out), количество энергии в накопителе генератора (storage) и иные выходные параметры, аналогичные выходным параметрам в эффекторе передвижения.
Видеорецептор принимает на вход сигнал от системы управления о необходимости обнаружения энергоносителя (locate), и иные параметры, аналогичные уже описанным. На выходе видеорецептор выдаёт сигнал о нахождении энергоносителя (found) и иные параметры.
Система управления получает на вход сигналы о гибели эффектора передвижения (movement_dead), готовности эффектора передвижения к работе (movement_ready), гибели видеорецептора (video_dead), готовности видеорецептора к работе (video_found) и иные параметры. На выходе система управления выдаёт сигналы о необходимости перемещения (move), необходимости обнаружения энергоносителя видеорецептором (locate), координаты, в которые необходимо переместиться (target_x, target_y), сигнал о потребности в отдыхе (needHome) и иные параметры.
Для удовлетворения потребности в энергии используются: система управления, видеорецептор, эффектор передвижения и генератор энергии. Когда количество энергии становится меньше заданной величины, система управления отправляет сигнал видеорецептору, и эффектору передвижения о необходимости начать поиск энергоносителя. Система управления имеет 3 дискретных состояния: планирование, отдых и отказ. В состоянии «Планирование» в системе управления представлены следующие непрерывные параллельные процессы: приём и анализ сигнала от видеорецептора, управление эффектором передвижения, рост усталости, потребление энергии и старение. В режиме «Отдых» – уменьшение усталости, потребление энергии, старение.
Алгоритм работы системы управления в режиме «Планирование» приведён на рис. 2.
Рис. 2. Алгоритм работы системы управления в режиме «Планирование»
В состояние «Отказ» система управления попадает в случае гибели агента, и никаких процессов в этом состоянии не протекает.
Условием перехода системы управления из состояния «Планирование» в состояние «Отдых» и обратно является уровень усталости. В состояние «Отказ» система управления попадает, когда старение достигло 100 % или когда полностью закончилась энергия.
Эффектор передвижения имеет 3 дискретных состояния: передвижение, отдых и отказ. В состоянии «Передвижение» в эффекторе передвижения происходят следующие параллельные непрерывные процессы: рост усталости; потребление энергии; старение; передвижение в пространстве. В состоянии «Отдых» – уменьшение усталости, потребление энергии и старение. В состояние «Отказ» эффектор передвижения попадает в случае отказа работы эффектора передвижения, и никаких процессов в этом состоянии не протекает.
Условием перехода из состояния «Передвижение» в состояние «Отдых» является уровень усталости или сигнал от системы управления о необходимости перемещения. В состояние «Отказ» эффектор передвижения попадает, когда старение достигло 100 % или когда полностью закончилась энергия.
Аналогично в модели представлены состояния и переходы видеорецептора и генератора энергии.
Если у агента достаточно энергии и нет необходимости в ее поиске, возникает потребность в отдыхе. В пространстве обозначена область, представляющая из себя домашнюю среду, при появлении потребности в отдыхе агент будет направляться именно в эту область.
Для отладки разработанной модели используется движок MATLAB Simulink.
MATLAB является коммерческим программным продуктом, что налагает определённые ограничения на применение модели непосредственно из среды моделирования. Для создания автономных приложений и отдельных компонент может быть использовано средство MATLAB Compiler. С помощью него в рамках эксперимента было создано два самостоятельных приложения. Первое приложение с графическим интерфейсом пользователя позволяет использовать полученный прототип многокомпонентного интеллектуального гибридного автомата, как самостоятельную систему моделирования. Интерфейс пользователя (рис. 3) создан при помощи средства MATLAB App Designer [9]. Он позволяет задать начальные параметры модели и визуализировать результаты моделирования. С помощью данного интерфейса можно контролировать перемещения агентов в пространстве, собирать соответствующую статистику и определять время их жизни в пространстве в зависимости от размещения и приоритетов потребностей.
Рис. 3. Пользовательский интерфейс приложения с графическим интерфейсом
Второе приложение представляет собой «обёртку» для разработанного прототипа многокомпонентного гибридного автомата, которая реализует механизм обмена данными с другой системой в формате JSON. Приложение «обёртка» получает данные от исполняемой модели Simulink и передаёт их в формате JSON при помощи HTTP POST запросов по заданному адресу, что позволяет экспортировать результаты моделирования в другие системы.
Заключение
В рамках проведённого исследования получены следующие результаты:
1. На основе результатов тестового моделирования определено, что применение средств MATLAB Simulink Stateflow повышает качество и сокращает сроки разработки моделей территориальных образований, основанных на динамических моделях непрерывно-дискретных автоматов
2. Продемонстрирована возможность раз- работки автономного, независимого от среды, приложения для моделирования процессов развития ТО с помощью средств MATLAB Compiler и MATLAB App Designer.
3. Создание консольного приложения-обёртки, реализующего механизм обмена данными в формате JSON, показало возможность стыковки разработанной модели с другими системами моделирования поведения агентов и системами принятия решений.