Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
n1.doc
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
8.34 Mб
Скачать

5.2. Сравнительный анализ языков

ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]