Советов Б.Я., Яковлев С.А. Моделирование систем (2001) (1186219), страница 37
Текст из файла (страница 37)
е. когда язык программирования не требуется (необсуждая вопросы программирования АВМ). По этой же причинене будем рассматривать использование ЯИМ при гибридных методах вычислений. Тогда классификация языков для программирования моделей систем имеет вид, приведенный на рис.
5.3.Для моделирования систем используются как универсальныеи процедурно-ориентированные ЯОН, так и специализированныеЯИМ. При этом ЯОН предоставляют программисту-разработчикумодели Мм больше возможностей в смысле гибкости разработки,отладки и использования модели. Но гибкость приобретается ценойбольших усилий, затрачиваемых на программирование модели, таккак организация выполнения операций, отсчет системного времении контроль хода вычислений существенно усложняются.Имеющиеся ЯИМ можно разбить на три основные группы,соответствующие трем типам математических схем: непрерывные,дискретные и комбинированные. Языки каждой группы предназначены для соответствующего представления системы S при создании ее машинной модели Мм.В основе рассматриваемой классификации в некоторых ЯИМлежит принцип формирования системного времени. Так как152рI МоделированиеАналоговые]систем IГибридныеЦифровые IЯзыки имитацион ного моделированияftXНепрерывные I I КомбинированныеЯзыки общегоназначения1 ,ДискретныеXItIsи1Рис.
5.3. Классификация языков для программирования моделей систем«системные часы» предназначены не только для продвижения системного времени в модели Мм, но также для синхронизации различных событий и операций в модели системы S, то при отнесениитого или иного конкретного языка моделирования к определенномутипу нельзя не считаться с типом механизма «системных часов».Непрерывное представление системы S сводится к составлениюуравнений, с помощью которых устанавливается связь между эндогенными и экзогенными переменными модели. Примером такогонепрерывного подхода является использование дифференциальныхуравнений. Причем в дальнейшем дифференциальные уравнениямогут быть применены для непосредственного получения характеристик системы, это, например, реализовано в языке MIMIC.А в том случае, когда экзогенные переменные модели принимаютдискретные значения, уравнения являются разностными. Такой подход реализован, например, в языке DYNAMO.Представление системы 5 в виде типовой схемы, в которойучаствуют как непрерывные, так и дискретные величины, называется комбинированным.
Примером языка, реализующего комбинированный подход, является GASP, построенный на базе языкаFORTRAN. Язык GASP включает в себя набор программ, с помощью которых моделируемая система S представляется в следующем виде. Состояние модели системы М (S) описывается наборомпеременных, некоторые из которых меняются во времени непрерывно. Законы изменения непрерывных компонент заложены в струк153туру, объединяющую дифференциальные уравнения и условия относительно переменных. Предполагается, что в системе могут наступать события двух типов: 1) события, зависящие от состояния z/,2) события, зависящие от времени /,. События первого типа наступают в результате выполнения условий, относящихся к законам изменения непрерывных переменных.
Для событий второго типа процессмоделирования состоит в продвижении системного времени от момента наступления события до следующего аналогичного момента.События приводят к изменениям состояния модели системы и законов изменения непрерывных компонент. При использовании языкаGASP на пользователя возлагается работа по составлению на языкеFORTRAN подпрограмм, в которых он описывает условия наступления событий, зависящих от процесса функционирования системыS, законы изменения непрерывных переменных, а также правилаперехода из одного состояния в другое.Языки моделирования дискретных систем. В рамках дискретногоподхода можно выделить несколько принципиально различныхгрупп ЯИМ.
Первая группа ЯИМ подразумевает наличие спискасобытий, отличающих моменты начала выполнения операций.Продвижение времени осуществляется по событиям, в моментынаступления которых производятся необходимые операции, включая операции пополнения списка событий. Примером языка событий является язык SIMSCRIPT. Разработчики языка SIMSCRIPTисходили нз того, что каждая модель Мм состоит из элементов,с которыми происходят события, представляющие собой последовательность предложений, изменяющих состояния моделируемойсистемы в различные моменты времени. Моделирование с помощью языка SIMSCRIPT включает в себя следующие этапы': а) элементы моделируемой системы S описываются и вводятся с помощью карт определений; б) вводятся начальные условия; в) фиксируются и вводятся исходные значения временных параметров; г)составляются подпрограммы для каждого события; д) составляетсяперечень событий и указывается время свершения каждого эндогенного события.
Команды языка SIMSCRIPT группируются следующим образом: операции над временными объектами, арифметические и логические операции и команды управления, командыввода-вывода, специальные команды обработки результатов. К центральным понятиям языка SIMSCRIPT относятся обработка списков с компонентами, определяемыми пользователем, и последовательность событий в системном времени. При этом имеются специальные языковые средства для работы с множествами.При использовании ЯИМ второй группы после пересчетасистемного времени, в отличие от схемы языка событий, просмотрдействий с целью проверки выполнения условий начала или окончания какого-либо действия производится непрерывно. Просмотрдействий определяет очередность появления событий.
Языки данного типа имеют в своей основе поисковый алгоритм, и динамика154системы S описывается в терминах действий. Примером языкадействий (работ) является ЯИМ FORSIM, представляющий собойпакет прикладных программ, который позволяет оперировать только фиксированными массивами данных, описывающих объекты моделируемой системы. С его помощью нельзя имитировать системыпеременного состава.
При этом размеры массивов устанавливаютсялибо во время компиляции программы, либо в самом начале ееработы.Язык FORSIM удобен для описания систем с большим числомразнообразных ресурсов, так как он позволяет записывать условияих доступности в компактной форме. Конкретный способ формализации модели на языке действий в достаточной степени произволен и остается на усмотрение программиста, что требует егодостаточно высокой квалификации.
Полное описание динамики модели Мм можно получить с помощью разных наборов подпрограмм.Третья группа ЯИМ описывает системы, поведение которыхопределяется процессами. В данном случае под процессом понимается последовательность событий, связь между которыми устанавливается с помощью набора специальных отношений.
Динамиказаложена в независимо управляемых программах, которые в совокупности составляют программу процесса. Пример языка процессов — язык SIMULA, в котором осуществляется блочное представление моделируемой системы Sc использованием понятия процессадля формализации элементов, на которые разбивается моделируемая система. Процесс задается набором признаков, характеризующих его структуру, и программой функционирования.
Функционирование каждого процесса разбивается на этапы, протекающиев системном времени.Главная роль в языке SIMULA отводится понятию параллельного оперирования с процессами в системном времени, а такжеуниверсальной обработке списков с процессами в роли компонент.Специальные языковые средства предусмотрены для манипуляцийс упорядоченными множествами процессов.В отдельную группу могут быть выделены ЯИМ типа GPSS,хотя принципиально их можно отнести к группе языков процессов.Язык GPSS представляет собой интерпретирующую языковую систему, применяющуюся для описания пространственного движенияобъектов.
Такие динамические объекты в языке GPSS называютсятранзактами и представляют собой элементы потока. В процессеимитации транзакты «создаются» и «уничтожаются». Функциюкаждого из них можно представить как движение через модельМм с поочередным воздействием на ее блоки. Функциональныйаппарат языка образуют блоки, описывающие логику модели,сообщая транзактам, куда двигаться и что делать дальше.Данные для ЭВМ подготавливаются в виде пакета управляющих155и определяющих карт, который составляется по схеме модели,набранной из стандартных символов. Созданная (гР55-программа,работая в режиме интерпретации, генерирует и передает транзактыиз блока в блок в соответствии с правилами, устанавливаемымиблоками. Каждый переход транзакта приписывается к определенному моменту системного времени.Сравнение эффективности языков.
При анализе эффективностииспользования для моделирования конкретной системы S того илииного ЯИМ (или ЯОН) выделяют несколько важных свойств языков: возможность описания структуры и алгоритмов поведенияисследуемой системы S в терминах языка; простота применения дляпостроения модели М, ее машинной реализации и обработки результатов моделирования; предпочтение пользователя, обычно отдаваемое языку, который ему более знаком или который обладаетбольшей степенью универсальности, и т. д. При этом, естественно,большее количество команд ЯИМ обеспечивает лучшие возможности при написании программы моделирования.
Однако вместес увеличением числа команд возрастают трудности использованияЯИМ, поэтому пользователь обычно отдает предпочтение языкам,обладающим большей гибкостью при минимальном количествекоманд.Исходя из этих соображений, приводились экспертные оценкидля сравнения различных языков при моделировании широкогокласса систем. Результаты оценок сведены в табл. 5.1. Языки даныв порядке уменьшения их эффективности.Таблица 5.1Возможности языкаПростота примененияПредпочтение пользователяSIMULASIMSCRIPTGPSSGPSSSIMSCRIPTSIMULASIMSCRIPTGPSSSIMULAПеречисленные особенности ЯИМ во многом определяют возможности выбора того или иного языка для целей проведенияимитационного эксперимента с моделью системы S, причем в каждом конкретном случае на выбор языка моделирования оказываютвлияние многие факторы его практической реализации.
Задачи выбора ЯИМ должны рассматриваться как одна из комплекса задач,решаемых при автоматизации процесса моделирования систем с использованием современных ЭВМ [7, 12, 25, 34].Выбор языка моделирования системы. Основываясь на классификации языков (рис. 5.3) и исходя из оценки эффективности (табл.5.1), можно рассмотреть подход к выбору языка для решения задачимашинного моделирования конкретной системы S. Такой подходможно представить в виде дерева решений с соответствующимикомментариями (рис. 5.4). Перед тем как пользоваться деревом156решений, разработчикуt-r-1Постановка задачимашинной модели Мм немашинногомоделирования системы Sобходимо выполнить всеподэтапы первого этапа- 3(построение концептуаль г Использованиедляной модели системы и еемоделированиясистемыАВМформализация), а такжепредшествующие данноИспользование дляму 6-му подэтапу подэтамоделированияпы 2-го этапа (алгоритмисистемы ГВ Кзация модели и ее машинИспользование языканая реализация) (см.
рис.общего назначения3.1). Приход в тот илиFORTRAN, ALML.PL/tиной конечный (нечетный)блок схемы дерева решеИспольэованивязыка,ориентированного наний (рис. 5.4) означает реописание динамикикомендацию более подроDYNAMO.MIMICGASPбно рассмотреть указан•ItИспользование РИМ,ные в нем техническиеориентированногосредства или языки (ЯИМна_действие_FOR SIM.CSlT~и ЯОН), причем здесь для-13•иллюстрации приведеныИспользование Я ИМ,^.^^/исла"процессов,-**.лишь примеры основныхориентированного' ~*-%^£ольшае числа зле-^на событияязыков, употребляемыхнаиболее часто при моде• 15Использавание ЯИМ,лировании систем.ориентированногона_п£рлеооь'_Исходя из постановки~S~IMULA.