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

Глава 5

ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА

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

Успех или неудача проведения имитационных экспериментов с моделями сложных систем существенным образом зависит от инструментальных средств, используемых для моделирования, т. е. набора аппаратно-программных средств, представляемых пользователю-разработчику или пользователю-иссле­дователю машинной модели. В настоящее время существует большое количест­во языков имитационного моделирования — специальных языков программи­рования имитационных моделей на ЭВМ — и перед разработчиком машинной модели возникает проблема выбора языка, наиболее эффективного для целей моделирования конкретной системы. Языки моделирования заслуживают при­стального внимания, так как, во-первых, число существующих языков и систем моделирования превышает несколько сотен и необходимо научиться ориен­тироваться в них, а во-вторых, почти каждый новый язык моделирования не только является средством, облегчающим доведение концептуальной модели до готовой машинной моделирующей программы, но и представляет собой новый способ «видения мира», т. е. построения моделей реальных систем. Необ­ходимость эффективной реализации имитационных моделей предъявляет все более высокие требования как к инструментальным ЭВМ, так и к средствам организации информации в ЭВМ при моделировании. Поэтому с учетом ис­пользования новой информационной технологии в процессе моделирования следует учитывать особенности построения баз знаний и банков данных и си­стем управления ими.

5.1. Основы систематизации языков имитационного моделирования

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

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

Основными моментами, характеризующими качество языков моделирования, являются: удобство описания процесса функциони­рования системы S, удобство ввода исходных данных моделирова­ния и варьирования структуры, алгоритмов и параметров модели, реализуемость статистического моделирования, эффективность ана­лиза и вывода результатов моделирования, простота отладки и кон­троля работы моделирующей программы, доступность восприятия и использования языка. Будущее языков моделирования определя­ется прогрессом в области создания мультимедийных систем ма­шинной имитации, а также проблемно-ориентированных на цели моделирования информационно-вычислительных систем [17, 31, 41,46].

Рассмотрим основные понятия, связанные с алгоритмическими языками и их реализацией на ЭВМ вообще и языками моделирова­ния в частности.

Язык программирования представляет собой набор символов, распознаваемых ЭВМ и обозначающих операции, которые можно реализовать на ЭВМ. На низшем уровне находится основной язык машины, программа на котором пишется в кодах, непосредственно соответствующих элементарным машинным действиям (сложение, запоминание, пересылка по заданному адресу и т. д.). Следующий уровень занимает автокод (язык АССЕМБЛЕРА) вычислительной машины. Программа на автокоде составляется из мнемонических символов, преобразуемых в машинные коды специальной програм­мой — ассемблером.

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

Интерпретатором называется программа, которая, принимая инструкции входного языка, сразу выполняет соответствующие oneрации в отличие от компилятора, преобразующего эти инструкции в запоминающиеся цепочки команд. Трансляция происходит в течение всего времени работы программы, написанной на языке ин­терпретатора. В отличие от этого компиляция и ассемблирование представляют собой однократные акты перевода текста с входного языка на объектный язык машины после чего полученные програм­мы выполняются без повторных обращений к транслятору.

Программа, составленная в машинных кодах или на языке АС­СЕМБЛЕРА, всегда отражает специфику конкретной ЭВМ. Инст­рукции такой программы соответствуют определенным машинным операциям и, следовательно, имеют смысл только в той ЭВМ, для которой они предназначены, поэтому такие языки называются ма­шинно-ориентированными языками.

Большинство языков интерпретаторов и компиляторов можно классифицировать как процедурно-ориентированные языки. Эти языки качественно отличаются от машинно-ориентированных язы­ков, описывающих элементарные действия ЭВМ и не обладающих проблемной ориентацией. Все процедурно-ориентированные языки предназначены для определенного класса задач, включают в себя инструкции, удобные для формулировки способов решения типич­ных задач этого класса. Соответствующие алгоритмы програм­мируются в обозначениях, не связанных ни с какой ЭВМ.

Язык моделирования представляет собой процедурно-ориенти­рованный язык, обладающий специфическими чертами. Основные языки моделирования разрабатывались в качестве программного обеспечения имитационного подхода к изучению процесса функци­онирования определенного класса систем [31].

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

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

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

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

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

Подходы к разработке языков моделирования. К настоящему времени сложились два различных подхода к разработке языков моделирования: непрерывный и дискретный — отражающие основ­ные особенности исследуемых методом моделирования систем [35, 43, 46]. Поэтому ЯИМ делятся на две самостоятельные группы, которые соответствуют двум видам имитации, развивавшимся не­зависимо друг от друга: для имитации непрерывных и дискретных процессов.

Для моделирования непрерывных процессов могут быть исполь­зованы не только АВМ, но и ЭВМ, последние при соответствующем программировании имитируют различные непрерывные процессы. При этом ЭВМ обладают большей надежностью в эксплуатации и позволяют получить высокую точность результатов, что привело к разработке языков моделирований, отображающих модель в виде блоков таких типов, которые играют роль стандартных блоков АВМ (усилителей, интеграторов, генераторов функций и т. п.). Заданная схема моделирующего алгоритма преобразуется в систему совместно рассматриваемых дифференциальных уравнений. Моде­лирование в этом случае сводится, по сути дела, к отысканию численных решений этих уравнений при использовании некоторого стандартного пошагового метода.

Примером языка моделирования непрерывных систем на ЭВМ путем представления моделируемой системы в виде уравнений в ко­нечных разностях является язык DYNAMO, для которого уравнения устанавливают соотношения между значениями функций в момен­ты времени t и t+dt и между значениями их производных в момент времени t+dt/2. И в этом случае моделирование, по существу, представляет собой пошаговое решение заданной системы диффере­нциальных уравнений [46].

Универсальная ЭВМ — устройство дискретного типа, а поэтому должна обеспечивать дискретную аппроксимацию процесса функци­онирования исследуемой системы S. Непрерывные изменения в про­цессе функционирования реальной системы отображаются в диск­ретной модели Мм, реализуемой на ЭВМ, некоторой последователь­ностью дискретных событий, и такие модели называются моделями дискретных событий. Отдельные события, отражаемые в дискрет­ной модели, могут определяться с большой степенью приближения к действительности, что обеспечивает адекватность таких дискрет­ных моделей реальным процессам, протекающим в системах S.

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

Типовая схема архитектуры ЯИМ и технология его использова­ния при моделировании систем показана на рис. 5.1.

В большинстве случаев с помощью машинных моделей исследу­ются характеристики и поведение системы S на определенном от­резке времени, поэтому одной из наиболее важных задач при созда­нии модели системы и выборе языка программирования модели является реализация двух функций: 1) корректировка временной координаты состояния системы («продвижение» времени, организа­ция «часов»); 2) обеспечение согласованности различных блоков и событий в системе (синхронизация во времени, координация

с другими блоками).

Таким образом, функционирование модели Мм должно проте­кать в искусственном (не в реальном и не в машинном) времени, обеспечивая появление событий в требуемом логикой работы ис­следуемой системы порядке и с надлежащими временными интерва­лами между ними. При этом надо учитывать, что элементы реаль­ной системы S функционируют одновременно (параллельно), а ком­поненты машинной модели Мм действуют последовательно, так как реализуются с помощью ЭВМ последовательного действия. По­скольку в различных частях объекта моделирования события могут возникать одновременно, то для сохранения адекватности причин­но-следственных временных связей необходимо в ЯИМ создать «механизм» задания времени для синхронизации действий элемен­тов модели системы [17, 46].

Задание времени в машинной модели. Как уже отмечалось в гл. 3, существует два основных подхода к заданию времени: с помощью постоянных и переменных интервалов времени, которым соответствуют два принципа реализации моделирующих алгоритмов, т. е. "принцип Δt" и "принцип δz".

Рассмотрим соответствующие спрособы управления временем в модели системы M(S) на примере, показанном на рис. 5.2, где по оси реального времени отложена последовательность событий в системе {si} во времени, причем события s4 и s5 происходят одновременно (рис. 5.2, а). Под действием событий si изменяются состояния модели zi в момент времени tzi, причем такое изменение происходит скачком δz.

В модели, построенной по "принципу Δt" (рис. 5.2, б), моменты системного времени будут последовательно принимать значения t '1 = Δt , t '2 = 2Δt , t '3 = 3Δt, t '4 = 4Δt, t '5 = 5Δt. Эти моменты системного времени t 'j (Δt) никак не связаны с моментами появления событий si, которые имитируются в модели системы. Системное время при этом получает постоянное приращение, выбираемое в задаваемое перед началом имитационного эксперимента.

В модели, построенной по "принципу δz" (рис. 5.2, в), изменение времени наступает в момент смены состояния системы, и последовательность моментов системного времени имеет вид t''1 = tz1, t''2 = tz2, t''3 = tz3, t''4 = tz4, t''5 = tz5, т. е. моменты системного времени t''k (δz), непосредственно связаны с моментами появления событий в системе si.

У каждого из этих методов есть свои преимущества с точки зрения адекватного отражения реальных событий в системе S и за­трат машинных ресурсов на моделирование. При использовании «принципа δz» события обрабатываются последовательно и время смещается каждый раз вперед до начала следующего события. В модели, построенной по «принципу Δt», обработка событий про­исходит по группам, пакетам или множествам событий. При этом выбор Δt оказывает существенное влияние на ход процесса и резуль­таты моделирования, и если Δt задана неправильно, то результаты могут получиться недостоверными, так как все события появляются в точке, соответствующей верхней границе каждого интервала мо­делирования. При применении «принципа δz» одновременная об­работка событий в модели имеет место только тогда, когда эти события появляются одновременно и в реальной системе. Это позволяет избежать необходимости искусственного введения ран­жирования событий при их обработке в конце интервала At.

При моделировании по «принципу Δt» можно добиться хорошей аппроксимации: для этого Δt должно быть малым, чтобы два неодновременных события не попали в один и тот же временной интервал. Но уменьшение Δt приводит к увеличению затрат машин­ного времени на моделирование, так как значительная часть тратит­ся на корректировку «часов» и отслеживание событий, которых в большинстве интервалов может и не быть. При этом даже при сильном «сжатии» Δt два неодновременных события могут попасть в один и тот же временной интервал Δt , что создает ложное представление об их одновременности.

Для выбора принципа построения машинной модели Мм и со­ответственно ЯИМ необходимо знать: цель и назначение модели; требуемую точность результатов моделирования; затраты машин­ного времени при использовании того или иного принципа; необ­ходимый объем машинной памяти для реализации модели, построенной по принципу Δt и δz; трудоемкость программирования моде­ли и ее отладки.

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

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

Размер. Большинство моделируемых систем имеет сложную структуру и алгоритмы поведения, а их модели велики по объему. Поэтому используют динамическое распределение памяти, когда компоненты модели системы Мм появляются в оперативной памяти ЭВМ или покидают ее в зависимости от текущего состояния. Важ­ным аспектом реализуемости модели Мм на ЭВМ в этом случае является блочность ее конструкции, т. е. возможность разбиения модели на блоки, подблоки и т. д.

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

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

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

Анализ. Для получения наглядного и удобного в практическом отношении ответа на вопросы, решаемые методом машинного мо­делирования, необходимо получать статистические характеристики процесса функционирования модели системы M(S). Поэтому преду­сматривают в языках моделирования способы статистической об­работки и анализа результатов моделирования.

Перечисленным требованиям при исследовании и проектирова­нии различных систем S отвечают такие наиболее известные языка моделирования дискретных событий, как SIMULA, SIMSCRIPT, GPSS, SOL, CSL и др.

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