Главная > Разное > Моделирование систем
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

5.2. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ЯЗЫКОВ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ

За сравнительно небольшой срок в области машинного моделирования систем произошел скачок, который был обусловлен потребностью в принципиально новом методе исследования и развитием средств вычислительной техники и который в первую очередь выразился в увеличении количества специализированных ЯИМ, причем этот процесс имеет лавинообразный характер. К настоящему времени насчитывается несколько сотен развитых ЯИМ, поэтому очень важно разобраться в этом многообразии ЯИМ и выбрать для моделирования конкретной системы S наиболее эффективный язык [17, 31, 37, 46].

Основы классификации языков моделировании. Как уже отмечалось, для машинного моделирования системы S пригодны три способа проведения вычислений, в основе которых лежит применение цифровой, аналоговой и гибридной вычислительной техники. Рассмотрим методы моделирования систем с точки зрения использования языков программирования. При этом в данном параграфе опустим рассмотрение чисто аналоговых способов вычислений, так как они реализуются не программно, а путем составления электрических цепей, т. е. когда язык программирования не требуется (не обсуждая вопросы программирования АВМ). По этой же причине не будем рассматривать использование ЯИМ при гибридных методах вычислений. Тогда классификация языков для программирования моделей систем имеет вид, приведенный на рис. 5.3.

Для моделирования систем используются как универсальные и процедурно-ориентированные ЯОН, так и специализированные ЯИМ. При этом ЯОН предоставляют программисту-разработчику модели больше возможностей в смысле гибкости разработки, отладки и использования модели. Но гибкость приобретается ценой больших усилий, затрачиваемых на программирование модели, так как организация выполнения операций, отсчет системного времени и контроль хода вычислений существенно усложняются.

Имеющиеся ЯИМ можно разбить на три основные группы, соответствующие трем типам математических схем: непрерывные, дискретные и комбинированные. Языки каждой группы предназначены для соответствующего представления системы S при создании ее машинной модели

В основе рассматриваемой классификации в некоторых ЯИМ лежит принцип формирования системного времени. Так как

Рис. 5.3. Классификация языков для программирования моделей систем (см. скан)

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

Непрерывное представление системы S сводится к составлению уравнений, с помощью которых устанавливается связь между эндогенными и экзогенными переменными модели. Примером такого непрерывного подхода является использование дифференциальных уравнений. Причем в дальнейшем дифференциальные уравнения могут быть применены для непосредственного получения характеристик системы, это, например, реализовано в языке MIMIC. А в том случае, когда экзогенные переменные модели принимают дискретные значения, уравнения являются разностными. Такой подход реализован, например, в языке DYNAMO.

Представление системы S в виде типовой схемы, в которой участвуют как непрерывные, так и дискретные величины, называется комбинированным. Примером языка, реализующего комбинированный подход, является GASP, построенный на базе языка FORTRAN. Язык GASP включает в себя набор программ, с помощью которых моделируемая система S представляется в следующем виде. Состояние модели системы описывается набором переменных, некоторые из которых меняются во времени непрерывно. Законы изменения непрерывных компонент заложены в

структуру, объединяющую дифференциальные уравнения и условия относительно переменных. Предполагается, что в системе могут наступать события двух типов: 1) события, зависящие от состояния 2) события, зависящие от времени События первого типа наступают в результате выполнения условий, относящихся к законам изменения непрерывных переменных. Для событий второго типа процесс моделирования состоит в продвижении системного времени от момента наступления события до следующего аналогичного момента. События приводят к изменениям состояния модели системы и законов изменения непрерывных компонент. При использовании языка GASP на пользователя возлагается работа по составлению на языке FORTRAN подпрограмм, в которых он описывает условия наступления событий, зависящих от процесса функционирования системы S, законы изменения непрерывных переменных, а также правила перехода из одного состояния в другое.

Языки моделирования дискретных систем. В рамках дискретного подхода можно выделить несколько принципиально различных групп ЯИМ. Первая группа ЯИМ подразумевает наличие списка событий, отличающих моменты начала выполнения операций. Продвижение времени осуществляется по событиям, в моменты наступления которых производятся необходимые операции, включая операции пополнения списка событий. Примером языка событий является язык SIM SCRIPT. Разработчики языка SIM SCRIPT исходили из того, что каждая модель состоит из элементов, с которыми происходят события, представляющие собой последовательность предложений, изменяющих состояния моделируемой системы в различные моменты времени. Моделирование с помощью языка SIMSCRIPT включает в себя следующие этапы: а) элементы моделируемой системы S описываются и вводятся с помощью карт определений; б) вводятся начальные условия; в) фиксируются и вводятся исходные значения временных параметров; г) составляются подпрограммы для каждого события; д) составляется перечень событий и указывается время свершения каждого эндогенного события. Команды языка SIMSCRIPT группируются следующим образом: операции над временными объектами, арифметические и логические операции и команды управления, команды ввода-вывода, специальные команды обработки результатов. К центральным понятиям языка SIMSCRIPT относятся обработка списков с компонентами, определяемыми пользователем, и последовательность событий в системном времени. При этом имеются специальные языковые средства для работы с множествами.

При использовании ЯИМ второй группы после пересчета системного времени, в отличие от схемы языка событий, просмотр действий с целью проверки выполнения условий начала или окончания какого-либо действия производится непрерывно. Просмотр действий определяет очередность появления событий. Языки данного типа имеют в своей основе поисковый алгоритм, и динамика

системы S описывается в терминах действий. Примером языка действий (работ) является ЯИМ FORSIM, представляющий собой пакет прикладных программ, который позволяет оперировать только фиксированными массивами данных, описывающих объекты моделируемой системы. С его помощью нельзя имитировать системы переменного состава. При этом размеры массивов устанавливаются либо во время компиляции программы, либо в самом начале ее работы.

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

Третья группа ЯИМ описывает системы, поведение которых определяется процессами. В данном случае под процессом понимается последовательность событий, связь между которыми устанавливается с помощью набора специальных отношений. Динамика заложена в независимо управляемых программах, которые в совокупности составляют программу процесса. Пример языка процессов — язык SIMULA, в котором осуществляется блочное представление моделируемой системы S с использованием понятия процесса для формализации элементов, на которые разбивается моделируемая система. Процесс задается набором признаков, характеризующих его структуру, и программой функционирования. Функционирование каждого процесса разбивается на этапы, протекающие в системном времени.

Главная роль в языке SIMULA отводится понятию параллельного оперирования с процессами в системном времени, а также универсальной обработке списков с процессами в роли компонент. Специальные языковые средства предусмотрены для манипуляций с упорядоченными множествами процессов.

В отдельную группу могут быть выделены ЯИМ типа GPSS, хотя принципиально их можно отнести к группе языков процессов. Язык GPSS представляет собой интерпретирующую языковую систему, применяющуюся для описания пространственного движения объектов. Такие динамические объекты в языке GPSS называются транзактами и представляют собой элементы потока. В процессе имитации транз акты «создаются» и «уничтожаются». Функцию каждого из них можно представить как движение через модель с поочередным воздействием на ее блоки. Функциональный аппарат языка образуют блоки, описывающие логику модели, сообщая транзактам, куда двигаться и что делать дальше. Данные для ЭВМ подготавливаются в виде пакета управляющих

и определяющих карт, который составляется по схеме модели, набранной из стандартных символов. Созданная GPSS-программа, работая в режиме интерпретации, генерирует и передает транзакты из блока в блок в соответствии с правилами, устанавливаемыми блоками. Каждый переход транзакта приписывается к определенному моменту системного времени.

Сравнение эффективности языков. При анализе эффективности использования для моделирования конкретной системы S того или иного ЯИМ (или ЯОН) выделяют несколько важных свойств языков: возможность описания структуры и алгоритмов поведения исследуемой системы S в терминах языка; простота применения для построения модели М, ее машинной реализации и обработки результатов моделирования; предпочтение пользователя, обычно отдаваемое языку, который ему более знаком или который обладает большей степенью универсальности, и т. д. При этом, естественно, большее количество команд ЯИМ обеспечивает лучшие возможности при написании программы моделирования. Однако вместе с увеличением числа команд возрастают трудности использования ЯИМ, поэтому пользователь обычно отдает предпочтение языкам, обладающим большей гибкостью при минимальном количестве команд.

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

Таблица 5.1 (см. скан)

Перечисленные особенности ЯИМ во многом определяют возможности выбора того или иного языка для целей проведения имитационного эксперимента с моделью системы S, причем в каждом конкретном случае на выбор языка моделирования оказывают влияние многие факторы его практической реализации. Задачи выбора ЯИМ должны рассматриваться как одна из комплекса задач, решаемых при автоматизации процесса моделирования систем с использованием современных ЭВМ [7, 12, 25, 34].

Выбор языка моделирования системы. Основываясь на классификации языков (рис. 5.3) и исходя из оценки эффективности (табл. 5.1), можно рассмотреть подход к выбору языка для решения задачи машинного моделирования конкретной системы S. Такой подход можно представить в виде дерева решений с соответствующими комментариями (рис. 5.4). Перед тем как пользоваться деревом

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

Рис. 5.4. Дерево решений выбора языка для моделирования системы (см. скан)

Исходя из постановки задачи машинного моделирования конкретной системы S, поставленных целей, выбранных критериев оценки эффективности и заданных ограничений (блок 1), можно сделать вывод о размерности задачи моделирования и требуемой точности и достоверности ее решения (блок 2). Для задач большой размерности моделирования на АВМ (блок 3) позволяет получить достаточно высокую точность. При этом АВМ позволит наглядно выявить компромисс между сложностью и точностью модели М, проиллюстрирует влияние изменения параметров и переменных на характеристики модели системы и т. Если в модели М при моделировании системы S имеют место как непрерывные, так и дискретные переменные, отражающие динамику системы и логику ее поведения (блок 4), то рекомендуется использовать для моделирования ГВК (блок 5). Подробно особенности и возможности

применения гибридных (аналого-цифровых) моделирующих комплексов рассмотрены в § 5.5.

Если моделирование конкретной системы S представляет собой единичный акт (блок б), то, вероятно, в ущерб концептуальной выразительности модели и отладочным средствам для проверки логики машинной модели Мы следует выбрать более распространенные и более гибкие ЯОН (блок 7). Очевидно, на выбор конкретного языка существенно повлияют специфика модели М (особенности процесса функционирования системы и квалификация пользователя в программировании на конкретном языке.

Если при моделировании на универсальной ЭВМ выбран непрерывный подход (блок 8), то следует остановить выбор на одном из языков, позволяющих отразить динамику системы при наличии обратных связей (блок 9). При этом могут быть приняты языки непрерывного типа DYNAMO, MIMIC либо комбинированные (дискретно-непрерывные) — GASP.

Если в основу модели М положена дискретная математическая схема и в ней при построении моделирующего алгоритма используется «принцип (постоянный шаг во времени) или «принцип (переменный шаг во времени, задаваемый сменой состояний), причем имитируются взаимодействующие элементы статической природы при неравномерности событий во времени (блок 10), то рационально воспользоваться ЯИМ, ориентированным на действия, например FORSIM, CSL.

Если в модели М описывается малое число взаимодействующих процессов и имеется большое число элементов (блок 12), то целесообразно выбрать для построения моделирующих алгоритмов «принцип и остановиться на ЯИМ событий (блок 13), например SIMSCRIPT, GASP и т. п.

Если для программирования модели более эффективен ЯИМ, позволяющий описать большое число взаимодействующих процессов (блок 14), то следует использовать языки процессов (блок которые не связаны с использованием блоков только определенных типов, например в транзактных языках. Наиболее распространенными языками описания процессов являются языки SIMULA и SOL.

И наконец, если предпочтение отдается блочной конструкции модели М при наличии минимального опыта в программировании (блок 16), то следует выбирать ЯИМ транзактов типа GPSS, BOSS (блок 17), но при этом надо помнить, что они негибки и требуют большого объема памяти и затрат машинного времени на прогон программ моделирования.

Если перечисленные средства по той или иной причине не подходят для целей моделирования конкретной системы S (блок 18), то надо снова провести модификацию модели М либо попытаться решить задачу с использованием ЯОН на универсальной ЭВМ.

<< Предыдущий параграф Следующий параграф >>
Оглавление