УДК 004.89, 004.9
1 Л “? 17
Р.А. Македонов , А.А. Зуенко ' , О.В. Фридман ’
1 Институт информатики и математического моделирования технологических процессов Кольского НЦ РАН
2 Кольский филиал Петрозаводского государственного университета
АЛГОРИТМ СИНХРОНИЗАЦИИ НЕРЕГУЛЯРНЫХ ПРОЦЕССОВ В СИСТЕМЕ СИТУАЦИОННОГО КОНЦЕПТУАЛЬНОГО МОДЕЛИРОВАНИЯ
Аннотация
Для ситуационного моделирования функционирования регионального природно-промышленного комплекса разработан прототип системы моделирования, реализующий специализированный алгоритм имитации. В алгоритме применен модифицированный процессный способ организации квазипараллелизма для синхронизации нерегулярных процессов, использующих общие материальные ресурсы. Обеспечена возможность подключения в систему моделирования готовых внешних программных модулей сторонних разработчиков, которые имитируют функциональные действия компонент модели в виде разностных уравнений с различными шагами дискретизации.
Ключевые слова:
система ситуационного моделирования, процессный способ организации квазипараллелелизма, разностные уравнения с различными шагами дискретизации.
R.A. Makedonov, A.A. Zuenko, O.V. Fridman
ALGORITHM FOR SYNCHRONIZING IRREGULAR PROCESSES IN THE SYSTEM
OF SITUATIONAL CONCEPTUAL MODELING
Abstract
For situational simulation of functioning of regional natural-industrial complexes a simulation system prototype that implements the specialized algorithm of simulation is developed. The algorithm is implemented by the modified process method of organizing a quasi parallelism to synchronize processes using shared resourses . It is provided an opportunity of connecting a program modules of third-party developers into the simulation system and opportunity to realize the functionality of the model components in the form of difference equations with different sampling steps.
Keywords:
situational simulation system, process method of organizing a quasi parallelism, difference equations with different sampling steps.
Введение
Существует множество толкований таких понятий, как имитационная модель (ИМ), компоненты и параметры модели, функциональные зависимости, ограничения, целевые функции моделирования [1-3]. В дальнейшем будем пользоваться определениями, введенными Р. Шенноном [4]. Система определяется как группа или совокупность объектов, объединенных некоторой формой регулярного взаимодействия или взаимосвязи для выполнения заданной функции.
Работа выполнена при поддержке РФФИ (проекты №№ 13-07-00318-а, 14-07-00205-а).
136
Система состоит из компонент. Под компонентами понимают составные части, которые при соответствующем объединении образуют систему. Параметрами являются величины, которые исследователь может выбирать произвольно, в отличие от переменных модели, которые могут принимать значения, определяемые видом данной функции. В модели системы будем различать параметры системы двух видов: экзогенные и эндогенные. Экзогенные переменные называются также входными. Это означает, что они порождаются вне системы или являются результатом взаимодействия внешних причин. Эндогенными переменными называются переменные, возникающие в системе в результате воздействия внутренних причин. В тех случаях, когда эндогенные переменные характеризуют состояние или условия, имеющее место в системе, их называют переменными состояния. Когда же необходимо описать входы и выходы системы, то имеем дело с входными и выходными переменными. Функциональные зависимости описывают поведение переменных и параметров в пределах компоненты или же выражают соотношения между компонентами системы. Эти соотношения по своей природе являются либо детерминистскими, либо стохастическими. Оба типа соотношений выражаются в виде алгоритмов, которые устанавливают зависимость между переменными состояния и экзогенными переменными. Ограничения представляют собой устанавливаемые пределы изменения значений переменных. Они могут вводиться самим разработчиком, либо устанавливаться системой вследствие присущих ей свойств. Целевая функция (функция критерия) представляет собой точное отображение целей и задач системы и необходимых правил оценки их выполнения.
Прежде чем приступить к описанию разработанного алгоритма имитации, кратко рассмотрим особенности ситуационной концептуальной модели (СКМ) в рамках разработанной авторами ситуационной системы моделирования (ССМ). Подробное описание приведено в [5, 6].
Ситуационная концептуальная модель
Концептуальная модель служит для формализации представления объекта и анализа требований к системе его моделирования. Это позволяет разделить систему требований и проект реализации, описать модель поведения объекта в терминах предметной области, обосновать правила и процедуры принятия решений и провести оценку принимаемых решений, рассмотреть механизм распределения ресурсов. В концептуальной модели декларируются классы элементов предметной области (объектов, процессов, ресурсов), отношения между ними, их атрибуты, ограничения. Детализация элементов зависит от решаемых задач.
Описание предметной области в виде И/ИЛИ графа позволяет путем выделения фрагмента предметной области формировать корректные задания на проектирование и исполнение конкретного варианта моделирования. Последующие этапы представления концептуальной модели определяют автоматический переход к функциональной спецификации и построению системы алгоритмов моделирования.
Концептуальная модель служит основой разработки формальных моделей для анализа системы.
137
Для создания СКМ исследуемую систему (например, природнотехнический комплекс (ПТК)) необходимо представить в виде иерархически упорядоченного множества объектов (составных частей). Эта иерархия отражает организационные взаимоотношения объектов. Каждому объекту может приписываться набор процессов, имитирующих преобразование некоторого набора входных ресурсов (или данных) в выходные. Одной из основных характеристик процесса является его исполнитель, который определяет динамические свойства процесса и способ реализации в компьютере. Исполнителя можно задать либо непосредственно (в виде функции), либо ссылкой на имя реализующего этот процесс программного модуля. Ресурсы атрибутированы списками допустимых значений, и также могут иметь исполнителей, например, порождающий их процесс или базу данных, где хранятся временные ряды значений. Списки используются и для числовых, и для ранжированных переменных, чтобы избежать вычислительных проблем, связанных с малыми изменениями данных, и обеспечить их совместную расчетно-логическую обработку. Логическая обработка данных реализуется посредством встроенной экспертной системы, которая может быть назначена исполнителем любого ресурса или процесса. Тогда этот ресурс или все выходные ресурсы этого процесса должны присутствовать в правых частях некоторого набора правил экспертной системы ССМ.
После формирования иерархии объектов необходимо задать ресурсы, которыми обмениваются объекты (сформировать списки входных и выходных ресурсов объектов). Множество ресурсов включает настроечные ресурсы, передаваемые вдоль дуг графа объектов и обеспечивающие корректность иерархии объектов, а также "материальные" ресурсы, описывающие другие типы взаимодействий между объектами. Каждый входной ресурс должен либо порождаться другим объектом, либо помечаться как внешний, что означает его реализацию из некоторой базы данных или на выходе некоторой функции, заданной пользователем. Входные ресурсы процесса могут поступать из внешних файлов и/или программных модулей, сам процесс и функция его качества также могут вычисляться некоторым программным модулем либо непосредственно по формуле, введенной пользователем. Информационные ресурсы представляют собой выходные данные процессов настройки и обратной связи, входную «нематериальную» информацию (количественные характеристики объектов или процессов) и т.п.
Таким образом, путем формирования иерархии объектов, описания связывающих их ресурсов и процессов, которые реализуют внутри объектов преобразование входных ресурсов в выходные, строится декларативная ситуационная концептуальная модель ПТК. В ходе ее построения, с помощью отношений иерархии любой составной объект модели однозначно сопоставляется с некоторым подмножеством ГИС-элементов (точек, дуг и полигонов), формирующих его графическое представление. Это позволяет автоматически измерять графические характеристики объектов для использования в расчетах и отображать результаты моделирования на карте.
Для представленной концептуальной модели ПТК разработан набор средств (пользовательские типы элементов модели, автоматическое категоризирование этих элементов, аппарат исполнителей и т.д.), позволяющих повысить
138
детальность контроля связности, корректности и разрешимости модели до отдельного ресурса и, соответственно, повысить адекватность модели.
Базовой формой представления информации в ССМ является факт, содержащий сведения о значении некоторого ресурса. Исходной ситуацией называется конечный список фактов о состоянии объекта исследования, вводимый пользователем. На основе анализа исходной ситуации и концептуальной модели экспертная система (задавая при необходимости дополнительные вопросы пользователю) доопределяет исходную ситуацию до полной ситуации, которой соответствует связный фрагмент концептуальной модели, возможно, включающий некоторые альтернативы реализации структуры объекта моделирования. Достаточная ситуация получается из соответствующей ей полной ситуации путем выбора альтернатив, предпочтительных по заданным критериям качества (в ходе решения задачи классификации ситуаций). Достаточная ситуация является управляющей, если требует изменения структуры объекта. При невозможности выбора единственной предпочтительной ситуации имеющиеся альтернативы могут исследоваться в имитационном режиме. Сценарий представляет собой последовательность достаточных ситуаций, генерируемых одним и тем же фрагментом модели, и определяет конкретный вариант моделирования [5-8].
Далее опишем существующие способы организации процесса имитации.
Способы организации квазипараллелизма
Согласно [1-3] функционирование каждой компоненты Ki (объекта) сложной системы представляет собой последовательность функциональных действий ФД-, которые при построении имитационной модели аппроксимируются некоторыми упрощенными функциональными действиями ФД'-. Будем считать, что в результате выполнения ФДу в сложной системе происходит некоторое событие Су. При этом любое ФДу выполняется на некотором временном интервале т- (задержка процесса).
В имитационной модели каждое ФД'- описывается в общем случае некоторым алгоритмом АЛ- (исполнителем). Пару (АЛ-, т-) обычно называют ij-активностью (процессом) и обозначают АК-. В ходе имитации происходят реализация ФД'- по соответствующим алгоритмам АЛ- и последующее изменение модельного времени t0. Модельное время - это некоторая глобальная переменная t0, которая необходима для обеспечения имитации параллельных событий реальной системы. С помощью этой переменной организуется синхронизация всех событий С- в модели и выполнение алгоритмов АЛ- модели системы. Посредством модельного времени t0 реализуется квазипараллельная работа компонент имитационной модели. Приставка “квази” в данном случае отражает последовательный характер обслуживания событий в имитационной модели, одновременно возникающих в разных компонентах реальной системы.
Если выполнение нескольких АЛ- попадает на один и тот же момент времени (это означает, что в реальной системе происходит одновременно несколько событий С-), то АЛ- обслуживаются последовательно, при этом модельное время не меняется до окончания выполнения всех совпавших по времени реализации алгоритмов АЛ-. Когда имитация одновременно появившихся событий С- завершена, меняется значение глобальной переменной
139
t0 по формуле t0 = t0 + T, где T выбирается в зависимости от выбранного способа изменения t0: с помощью фиксированных или переменных интервалов
изменения модельного времени. Часто их называют соответственно способами фиксированного шага и шагов до следующего события. Независимо от способа изменения t0 механизм регламентации модельного времени обычно предусматривает выполнение следующих действий:
• выбор событий в модели, которые необходимо обслужить при одном и том же модельном времени t0;
• обслуживание событий, которые имеют одинаковое время инициализации;
• по окончании обслуживания всех одновременных (в пределах шага) событий определение очередного значения модельного времени;
• корректировка временной координаты модели t0;
• проверка условий окончания моделирования либо по времени завершения имитации, либо выполнению других событий в системе.
Все эти действия выполняет управляющая программа моделирования (УПМ). В функции УПМ также входят: запуск на выполнение алгоритмов АЛу и организация взаимодействия АЛу друг с другом в ходе имитации [1-3].
В моделях сложных систем состав активностей в разных компонентах и характер их взаимодействия друг с другом могут быть различными. В зависимости от состава алгоритмов АЛу, наличия связей между компонентами, целей и задач моделирования выбирается тот или иной способ представления К и реализации активностей в имитационных моделях. Наибольшее распространение получили пять способов описания имитационной модели: непосредственно активностями, аппаратом событий, транзактами, агрегатами, процессами. Каждому способу формализации объекта моделирования соответствует свой способ организации квазипараллелизма обслуживания УПМ активностей: просмотр активностей, составление расписания событий, управление обслуживанием транзактов, управление агрегатами, синхронизация процессов соответственно.
Организация квазипараллелизма способом просмотра активностей используется при моделировании реальных систем, характеризующихся следующим. Все ФДу компонент К реальной системы различны, причем для выполнения каждой из них требуется выполнение своих условий. Эти условия конкретны, известны заранее исследователю и могут быть представлены алгоритмически. В результате выполнения ФДу в системе происходят различные события Су. Связи между ФДу отсутствуют, все ФДу функционируют независимо друг от друга. В таких случаях исследователь описывает имитационную модель в виде двух частей: множества активностей {АКу} и набора процедур проверки выполнимости условий инициализации активностей. Под инициализацией АКу понимают передачу управления от УПМ на выполнение АЛу данной активности. В процедурах проверки выполнимости условий инициализации АКу реализуется зависимость выполнения ФДу от конкретной ситуации, имеющей место в реальной системе на каждый момент времени. Выполнение алгоритма АЛу для данной активности назовем обслуживанием АКу. Завершается обслуживание АКу вычислением следующего момента времени инициализации активности с последующим возвратом управления
140
УПМ. Таким образом, имитация представляет собой чередование выполнения алгоритмов активностей, модификации временной координаты и алгоритма УПМ. Вся имитационная модель представляет собой набор активностей АКу, каждая из которых после выполнения возвращает управление УПМ. Данный способ организации квазипараллелизма выгоден только при наличии достаточно простых алгоритмов проверки выполнимости условий инициализации активностей. В противном случае, когда в работе УПМ велик удельный вес безуспешных проверок, существенно замедляется исполнение алгоритма.
Организация квазипараллелизма способом составления расписания событий используется при моделировании реальных систем, особенности которых описаны далее. Различные компоненты K выполняют одни и те же функциональные действия ФДу. Начало выполнения этих ФДу определяется одними и теми же условиями, которые также заранее известны исследователю и могут быть представлены алгоритмически. В результате выполнения одних и тех же ФДу в системе происходят одинаковые события Су независимо друг от друга. Связи между различными ФДу отсутствуют, каждое ФДу выполняется независимо друг от друга. В таких случаях исследователь также описывает имитационную модель в виде двух частей: множества активностей {АКу} и набора процедур проверки появления событий и инициализации соответствующих активностей. При этом каждая АКу имитирует выполнение группы совпавших функциональных действий ФДу у различных компонент K системы. Такие групповые активности называют процедурами обслуживания событий Су. Выполнение этих процедур синхронизируется в модельном времени списковым механизмом планирования УПМ. Каждый элемент этого списка определяет момент появления события Су, а также имя или номер той процедуры обслуживания событий, которая должна выполняться после завершения этого события. Применение данного способа в случаях, описанных выше, будет более экономичным, чем способ имитации активностями. Однако есть и существенный недостаток. Из-за того, что происходит объединение активностей различных компонент в составе процедур обслуживания событий, описание имитационной модели может потерять сходство со структурой реальной системы. Это обстоятельство может затруднить анализ результатов моделирования и модификацию ИМ.
В ряде случаев функциональные действия ФДу компонент реальной системы одинаковы. Общее число этих действий ограничено. Каждое ФДу представляет собой набор простейших операций, и его можно аппроксимировать активностями, алгоритмы, выполнения которых лишь корректируют значения временных координат компонент системы. Важно и то, что существует зависимость выполнения ФДу друг от друга, которую удобно представить в виде схемы. Взаимодействие такого вида активностей аналогично работе систем массового обслуживания (СМО). Для имитации поведения реальной системы в таких случаях используется транзактный способ организации квазипараллелизма в ИМ. Однотипные активности пользователем объединяются и называются приборами массового обслуживания. Инициаторами появления событий Су в ИМ становятся заявки (транзакты) на обслуживание этими приборами массового обслуживания. Связь между обслуживающими приборами устанавливается с помощью системы очередей, выбранных дисциплин
141
поступления и способов извлечения из них транзактов. За внешнюю простоту описания ИМ, которую предоставляет данный способ, приходится платить достаточно большими накладными расходами на организацию квазипараллелизма. Эти дополнительные затраты машинного времени значительно возрастают при увеличении самой модели, поскольку возрастает количество списков транзактов и блоков, которые необходимо несколько раз просматривать при организации квазипараллельной работы транзактов с помощью УПМ.
В некоторых реальных системах имеет место тесное взаимодействие между функциональными действиями компонент системы. Компоненты системы обмениваются между собой сигналами. Каждый выходной сигнал от одной компоненты K,■ является входным сигналом для другой компоненты системы. Если при этом сами функциональные действия ФДц аппроксимируются явно задаваемыми математическими зависимостями, позволяющими определять момент появления выходных сигналов компонент K,■ при наличии входных сигналов, поступающих от других компонент, то создаются подходящие условия для построения ИМ по модульному принципу. В этом случае каждый из модулей ИМ строится по унифицированной структуре и называется агрегатом. Агрегат является математической схемой, с помощью которой возможно описание достаточно большого круга реальных процессов. В любой момент времени агрегат может находиться в одном из возможных состояний. Переход из одного состояния в другое описывается с помощью оператора перехода. Агрегат имеет входы, куда поступают входные сигналы от других агрегатов, и выходы, на которых формируются выходные сигналы. Также агрегат может иметь дополнительные входы, на которые поступают управляющие сигналы. Выходные сигналы формируются из входных и управляющих сигналов оператором выхода. Значения операторов перехода и выхода задаются исследователем при аппроксимации агрегатами выполнения ФДу реальной системы. Агрегатный способ организации квазипараллелизма в ИМ является достаточно удобным с точки зрения описания сложной системы. Однако необходимость коммутации и обслуживания сигналов требует дополнительных расходов ресурсов машинного времени.
При моделировании сложных систем исследователи зачастую встречаются со следующими ограничениями. Все функциональные действия ФДц компонент реальной системы различны. Условия появления событий Cj, приводящие к выполнению ФДу, также индивидуальны. У каждой компоненты K существует определенная последовательность выполнения ФД-. В любой момент времени в данной компоненте может выполняться только одно ФДц. Перечисленные ограничения определяют выбор исследователем процес-сного способа организации квазипараллелизма в ИМ. При процессном подходе краткость описания активностей объединяется с эффективностью событийного представления имитации. Процессным способом можно организовать имитацию любых сложных систем. Однако процессный способ имитации особенно эффективен в тех случаях, когда требуется высокий уровень детализации выполнения ФДц при их аппроксимации с помощью АЛц и сама ИМ используется для поиска узких мест в системе. Это необходимо в задачах
142
моделирования проектируемых систем, когда в ходе проектирования или исследования реальной системы в модель приходится вносить частые изменения. Процессный способ имитации обладает хорошими выразительными возможностями при осуществлении многоуровневого и модульного подхода к моделированию систем. Эти преимущества возрастают по мере роста размеров модели [1]. Теперь рассмотрим механизм имитации функционирования концептуальной модели.
Специализированный алгоритм имитации
При реализации алгоритма был выбран способ задания шага до следующего события, поскольку события моделируемой сложной системы распределены во времени неравномерно и могут появляться через значительные временные интервалы.
В рассматриваемой концептуальной модели используется процессный способ организации квазипараллелизма. Каждый процесс может иметь собственную задержку в преобразовании входных ресурсов в выходные, в общем случае не равную и не кратную задержкам других процессов. Для моделирования асинхронных процессов разработан алгоритм имитации, состоящий из четырех этапов.
Первый этап алгоритма состоит в выделении фрагмента модели для последующей имитации. Выбор конкретного фрагмента осуществляется на основе анализа сформулированной пользователем задачи и заданных им начальных данных. В рассматриваемом фрагменте не должно быть альтернатив, и он должен представлять собой связное множество объектов и ресурсов (рис. 1). Допустим, требуется ответить на вопрос, какова должна быть величина указанных входных параметров модели при заданных значениях выходных ресурсов. Тогда для выделения фрагмента проводится пополнение ситуации по указанным элементам модели (на рис. 1 отображены жирными стрелками) согласно следующей схеме. Фрагмент рассматривается как ориентированный граф: множество вершин соответствует множеству объектов, множество дуг -множеству ресурсов, связывающих объекты. При этом начальной вершиной дуги является объект-источник ресурса, а конечной вершиной дуги - объектприемник. Для каждого объекта, содержащего внешний выходной ресурс, строится множество контрдостижимых, объектов Д, объединение которых
обозначим за А = |^J Д. . Напомним, что в множество вершин графа,
i
контрдостижимых из заданной вершины хь состоит из таких вершин Xj, для которых существует путь, идущий от вершины Xj к вершине xt. Искомое множество объектов фрагмента модели и есть множество A. Ресурсы, для которых объект-источник или объект-приемник не входит в множество A, не рассматриваются в данном фрагменте.
143
1
2
2=>
Этап 2
5
4
7
Рис. 1. Первый и второй этапы алгоритма имитации
На третьем этапе происходит первоначальное упорядочение процессов, то есть формируется начальное расписание (рис. 2). Программно расписание реализуется как двухуровневый список процессов, в котором для каждого момента времени указывается подсписок процессов, подлежащих запуску. В качестве временной метки используется целочисленное значение, отражающее количество модельных тактов, пройденных с начала имитации.
Для получения начального расписания осуществляется “холостой” (без вызова исполнителей) запуск всех процессов на нулевой момент времени. Каждый процесс после «срабатывания» сам устанавливает время своего будущего «запуска». Это происходит следующим образом: процесс с
задержкой срабатывания k, выполненный на момент времени t, помещается в подсписок процессов на момент времени t+k. При установке будущего «запуска» процесса может возникнуть ситуация, когда подсписок, к которому добавляется запись об этом процессе, не пуст. Тогда добавляемый элемент помещается в конец этого подсписка.
Поскольку моделирование производится с шагом до следующего события, то в расписании опускаются шаги моделирования, несущественные с точки зрения событий, то есть такие, когда ни один процесс не должен «сработать».
144
Этап 3
Рис. 2. Третий этап алгоритма имитации
На четвертом этапе проводится имитация для заданного интервала времени. Дальнейшее расписание заранее не формируется, а готовится в ходе имитации. Рассмотрим процесс «срабатывания» одного процесса по шагам:
• для каждого входного ресурса производится чтение значений на требуемые моменты времени;
• вызывается исполнитель процесса с передачей необходимых параметров;
• осуществляется запись значений выходных ресурсов на текущее время. Обработка материальных ресурсов (первый и третий этапы) выполняется
по особой схеме (см. ниже).
Формирование значений материальных ресурсов
В ходе имитации значение материального ресурса может меняться и процессом-производителем, и процессом-потребителем, при этом возникает сложность в корректировке значения ресурса в случае выполнения обоих процессов на одном шаге моделирования. Пусть сначала было произведено a единиц ресурса R к моменту времени tn Затем к этому же моменту времени tn расходуется b единиц ресурса R. Таким образом, для корректного отображения изменения значения ресурса R во временном ряду на время tn должно быть записано значение d, где d определяется по формуле: d = c + a - b, где c - начальное значение, a - произведенное количество, b - потраченное количество, d - конечное значение ресурса R, разницу a - b назовем приращением значения ресурса. Для информационных и настроечных ресурсов подобной сложности не возникает, так как для таких видов ресурсов возможность их расходования не предусматривается.
Рассмотрим особенность механизма считывания значений ресурсов. Различные задержки у процессов приводят к тому, что в ходе имитации некоторые значения ресурса во временном ряду не определены. Например, для процесса с задержкой, равной 3, временной ряд будет содержать только значения на моменты времени кратные 3, в остальное время значение ресурса
145
будет не определено. Для исключения подобных ситуаций в текущей версии алгоритма имитации заложен следующий принцип получения значений ресурсов - если искомое значение ресурса попадает на момент времени, когда значение ресурса не определено, то берется ближайшее значение слева.
Теперь опишем механизм записи значений материальных ресурсов в двух возможных случаях (рис. 3): (а) если осуществляется запись значения ресурса на время T2, превышающее время T1 последнего значения временного ряда, то записывается полученное текущее значение плюс вычисленное приращение P (рис. 3 а); (б) если запись делается на время T, совпадающее со временем последнего значения Y временного ряда, то это значение корректируется на приращение P (рис. 3 б).
0
а) h
I
0
б) h
I
T1
-+
Y
\----h
T2
т
P
T
b-f
Y
0 T1 T2
> iiii-------1-
1 Y Y+P
0 T
l) I I I I I I
1 Y+P
P
Рис. 3. Запись значения материального ресурса
Рассмотрим механизм обработки значений временных рядов УПМ для материальных ресурсов на конкретном примере. Пусть имеется процесс-производитель A и процесс-потребитель B (рис. 4). Ресурсы R1, Й2 и R3 -материальные, дополнительно ресурсы R1 и R3 являются внешними (не имеют источника, либо приемника). Исполнители процессов A и B имеют шаг дискретизации 3 и 2 соответственно. Процесс A за условное время, равное 3, производит преобразование 60 единиц ресурса R1 в такое же количество единиц ресурса R2. Процесс B за время равное 2, преобразует все имеющееся на входе количество ресурса R2 в такое же количество единиц ресурса R3.
R1___
3
R2
2
R3
*■
Процесс A Процесс B
Рис. 4. Фрагмент модели преобразования материальных ресурсов
Столбец таблицы при T = 0 содержит начальные значения ресурсов, а числа в верхней строке отражают модельное время. Процесс формирования временных рядов для ресурсов R1, R2 и R3 осуществляется следующим образом.
146
Временные ряды ресурсов R1, R2, R3, получаемые при имитации
T 0 1 2 3 4 5 6
R1 600 540 -60 480 -60
R2 0 0 -0 60 +60 60 -0 60 +60- 60
R3 0 0 +0 0 +0 60 +60
В момент времени t = 1 ни один из процессов не выполняется. В момент времени t = 2 запускается процесс B: значение ресурса R3 не изменится, так как значение R2 при t = 0 равно 0, поэтому появляются записи R2 = 0 и R3 = 0 при t = 2. При t = 3 запускается процесс A, в результате его работы будет израсходовано 60 единиц ресурса R1 (останется 540 единиц) и произведено такое же количество ресурса R2 (в результате получится 60 единиц). При t = 4 выполняется процесс B: значение ресурса R2 на время t = 2 не изменилось, поэтому появляются соответствующие записи при t = 4. Шаг при t = 5 пропускается, так как в это время ни один из процессов не выполняется. При t = 6 в результате работы процесса A преобразуются очередные 60 единиц ресурса R1 в ресурс R2, при этом во временные ряды делаются соответствующие записи: значение ресурса R1 при t = 6 становится равным 480, а значение ресурса R2 на тот же момент времени - равным 120. Далее на этом же шаге моделирования выполняется процесс B: значение ресурса R2 на время t = 4 равно 60, поэтому к моменту времени t = 6 будет произведено 60 единиц ресурса R3, в то же время значение ресурса R2 должно уменьшиться на 60 израсходованных единиц. Дальнейшая имитация работы системы продолжается либо до окончания интервала моделирования, либо до выполнения условий завершения моделирования (например, полное израсходование ресурса R1). Несложно убедиться, что порядок обслуживания процессов, попавших на один шаг моделирования, не влияет на получаемые временные ряды.
Реализация дифференциальных уравнений в системе
Рассмотрим, каким образом в системе моделируется процесс, описываемый дифференциальным уравнением n-го порядка. Для примера возьмем дифференциальное уравнение вынужденных гармонических колебаний: х + 4х = и. Чтобы представить данное уравнение в терминах концептуальной модели приведем его к системе обыкновенных дифференциальных уравнений первого порядка:
х + 4х = и , ,
I у = -4х + и
147
выберем шаг дискретизации T и запишем разностную схему для системы ОДУ:
xk+T = X + Ук ■T
Ук+t = Ук + (-4 xk + uk) ■T'
Внешнее управляющее воздействие u будет моделироваться входным ресурсом, интересующие степени производной необходимо задать выходными ресурсами, а петлями показать обратные связи (рис. 5). Если в результате имитации необходимо получить значения производных, то для каждой из них назначается отдельный ресурс (рис. 5б), в противном случае достаточно построить схему, показанную на рис. 5а.
Для ресурса xk (случай «а») и ресурсов xk и yk (случай «б») указывается тип ресурса-ссылки и назначается ресурс, на который он ссылается. Ресурсссылка не имеет собственного временного ряда, а использует временной ряд назначенного ресурса. В случае «а» для ресурса xk назначается ресурс xk+T, в случае «б» для ресурсов xk иyk назначаются xk+T иyk+T соответственно.
T
Ук+t - Ук
T
= yk
= -4 xk+uk
Xk+T Xk
<
Uk
uk
xk
yk
xk
yk
—L , ' v t У.
T T
>' xk+T а)
xk+T yk+T
б)
Рис. 5. Представление системы ОДУ в концептуальной модели
Для проведения имитации необходимо задать начальные условия x(0) = x0, y(0) = y0, u(0) = u0. Тогда на момент времени T получаем значения xt = x0 + y0-T и Ут = y0 + (-4x0 + %)Т.
Заключение
Для ситуационного моделирования регионального природнопромышленного комплекса разработан специализированный алгоритм, реализующий процессный способ имитации. Алгоритм предназначен для синхронизации действий, возникающих при одновременной имитации нескольких нерегулярных процессов предметной области, использующих общие материальные ресурсы. Обеспечивается возможность подключения внешних программ-исполнителей моделируемых процессов, имеющих различные шаги дискретизации, что позволяет обойтись без модификации программного кода сторонних разработчиков.
Литература
1. Максимей, И.В. Имитационное моделирование на ЭВМ /И.В. Максимей. -М.: Радио и связь, 1988. - 230 с.
2. Максимей, И.В. Вопросы технологии диалогового моделирования / И.В. Максимей, В.И. Хвещук //Теория и практика имитационного моделирова -ния сложных систем: тезисы докладов республ. науч.-тех. конф. г. Одесса, 1983. -C.4-5.
3. Максимей, И.В. Технологические возможности имитационного модели -рования сетей массового обслуживания / И.В. Максимей, Ю.А. Семишин // Электронная техника. Серия «Экономика и системы управления», 1982, № 1. - С.45-50.
4. Шеннон, Р. Имитационное моделирование систем. Искусство и наука. -М: Мир, 1978. - 417 с.
5. Фридман, А.Я. Ситуационное моделирование природно-технических комплексов / А.Я. Фридман, О.В. Фридман, А.А. Зуенко. - СПб.: Изд-во Политехн. ун-та, 2010. - 436 с.
6. Фридман, О.В. Ситуационное моделирование сложных природно-технических объектов с учетом аспектов безопасности / О.В. Фридман, А.Я. Фридман // Вестник КНЦ РАН. -Апатиты: КНЦ РАН, 3/2013(14). - С.69-76.
7. Зуенко, А.А. Ситуационное моделирование промышленно -природных комплексов на основе концептуального подхода / А.А. Зуенко, Р.А. Маке-донов, О.В. Фридман, А.Я. Фридман // История науки и техники. - М.: ООО Изд-во «Научтехлитиздат». - 2014. - № 1. -C.53-68.
8. Зуенко, А.А. Интеллектуальная технология контекстно-зависимого управления промышленно-природными комплексами / А.А. Зуенко, Р.А. Маке-донов, О.В. Фридман, А.Я. Фридман // Труды ИСА РАН. -2013. - Т.63, вып.3. - С.20-30.
Сведения об авторах
Македонов Роман Александрович - стажер-исследователь,
е-mail: [email protected]
Roman A. Makedonov - trainee researcher
Зуенко Александр Анатольевич - к.т.н, научный сотрудник, е-mail: zuenko@iimm. ru
Alexander A. Zouenko - Ph.D. (Tech. Sci.), researcher
Фридман Ольга Владимировна - к.т.н, старший научный сотрудник, е-mail: ofridman@iimm. ru
Olga V. Fridman - Ph.D. (Tech. Sci.), senior researcher
149