Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Языки имитационного моделирования






 

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

- наименованиями и структурой блоков модели;

- способами проверки операций и условий взаимодействия элементов;

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

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

- способность генерировать случайные числа;

- возможность генерировать случайные переменные;

- возможность «продвигать» время либо на одну единицу, либо до следующего события: способность накапливать выходные данные;

- способность проводить статистический анализ накапливаемых данных;

- возможность выявлять и регистрировать логические несоответствия и другие ситуации, связанные с ошибками.

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

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

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

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

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

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

Имитационные модели удобно классифицировать по двум основным категориям:

- модели с непрерывным изменением состояния:

- модели с дискретным изменением состояния;

- непрерывно-дискретные.

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

Поэтому же принципу можно разделить и языки имитационного моделирования. Непрерывные языки предназначены для моделирования систем, состояние которых изменяется непрерывным образом.

Язык CSMP/360 [5] является одним из первых непрерывных языков имитационного моделирования вы­сокого уровня, создан на базе языков CSMP/1130 и PACTOLUS [5] и представляет собой пакет программ на ФОРТРАНЕ. CSMP/360 обладает возможностью гибкого внутри программного изменения параметров и диалогового режима работы с доступным к структуре самой модели. Интегрирование дифференциаль­ных уравнений может производиться одним из семи алгоритмов различной сложности. В языке имеется возможность сортировки с помощью операторов NOSORT и SORT, имеется диагностика ошибок. Ввод и вывод осущест-вляется с помощью соответствующих операторов ФОРТРАНА.

В общем случае языки моделирования включают в себя средства обработки языковых конструкций (компилятор, транслятор или интер-претирующая программа) и систему выполнения имитационного процесса во времени. Поэтому термин " язык моделирования" употребляется неверно. Более подходящим является термин " система моделирования".

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

Характерным представителем второго типа систем моделирования является GASP-4, являющийся дальнейшим развитием дискретного языка GASP-2. Пакет GASP-4 (General Activity Simulation Prograin) за короткое время завоевал себе широкую популярность за рубежом, которая объясняется наличием следующих качеств:

- он использует в качестве базового языка ФОРТРАН-4 и поэтому, не требует собственного компилято­ра: реализуем на любой ЭВМ, в состав математического обеспечения которого входит транслятор с этого языка;

- предназначен для реализации дискретных, непрерывных, а также комбинированных моделей: легко изучается и просто модифицируется.

Основой системы моделирования GASP-4 является концепция моделирования систем в двух измерени­ях: во времени и в пространстве состояний. Основными элементами языка являются компоненты моделей, их характеристики и множества. GASP-4 обеспечивает исследователя всеми основными функциями по проведению машинных экспериментов с имитационными моделями различных типов: установление начального состояния моделей: управление ходом имитационного эксперимента; продвижение имитационного времени различными способами в зависимости от типа моделей; интегрирование дифференциальных уравнений: сбор и вычисление статистических данных о наблюдаемых переменных; генерация случайных чисел с различными законами распределения: выдача данных экспериментов в виде таблиц, гистограмм и графиков.

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

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

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

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

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

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

Результаты имитационных экспериментов выводятся в форме таблиц и графиков. Имитационные мо­дели, запрограммированные на языке ДИНАМО, легко могут быть перепрограммированы в термины GASP-4.

Непрерывный язык имитационного программирования MIMIC [5] базируется на подмножестве языка ФОРТРАН со специальными операторами описания и содержит аппарат логических меток для изменения структуры и управления выполнением программы в ходе имитации. Управление структурой модели осу­ществляется путем задания логических переменных, параметров и констант. Интегрирование дифферен­циальных уравнений производится методом Рунге - Кутта четвертого порядка. Ввод-вывод производится автоматически и с помощью специальных операторов.

Для моделирования систем, изменение состояния которых происходят в дискретные моменты времени, применяются дискретные языки имитаци-онного программирования.

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

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

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

Можно выделить три основных подхода к рассмотрению множества компонентов имитационной модели: планирование событий, сканирование активностей и взаимодействие процессов.

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

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

Подход взаимодействия процессов включает некоторые элементы двух предыдущих подходов, но осо­бенно акцентирует свое внимание на прохождении активного компонента через систему. Функциониро­вание моделируемой системы в этом случае представляется совокупностью процессов, каждый из которых описывает жизненный цикл компонента. Каждый процесс имеет несколько активных фаз, каждая из кото­рых является событием, и несколько точек взаимодействия с другими процессами. Для каждого процесса периоды активности чередуются с неактивными периодами, во время которых активны другие процессы. Процесс может вновь стать активным с помощью точек реактивации, которые указывают те места в программе процесса, с которых ее надо начинать после того, как истечет указанное время прерывания или удовлетворится набор определенных условий. Отдельные части программы процесса могут выполняться в различные моменты имитационного времени на разных актив-ных фазах.

Язык SMPL [6] является событийно-ориентированным и вполне приго-ден для решения задач модели­рования объектов с малой или средней размерностью модели.

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

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

Во время планирования событий процессы представляются целочисленными значениями; это значение является индексом массива, элементы которого задают значения атрибутов соответствующих процессов. В языке SMPL процессы рассматриваются как транзакты, а индекс, указывающий на соответствующий набор значений атрибутов, называется номером транзакта.

Упорядочение событий в языке SMPL достигается с помощью списка событий. Планирование события включает указание имени события, времени события и номера транзакта. Вся эта информация помещается в список событий, который подвергается сортировке в порядке возрастания значений времени. Выбрав очередное ближайшее событие, управляющая секция удаляет первый элемент из списка событий и передает управление событийной секции, номер которой был указан в этом элементе.

Постоянными объектами языка SMPL являются средства и очереди. Набор операторов языка по­зволяет определять эти объекты, резервировать средства для использования определенным транзактом и освобождать их, а также включать транзакты в очереди и удалять их из очередей.

Выходные данные моделирования распечатываются в форме таблиц, содержащих имена очередей и средств, время ожидания, среднее время занятости и другу информацию.

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

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

В языке SIMSCRIPT состояние моделируемой системы описывается в терминах компонентов, харак­теристик компонентов и целых множеств компонентов. Каждый тип компонента, характеристики и мно­жества определяются исследователем в специальной стандартной форме.

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

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

Язык МОДИС [5] относится к языкам имитационного моделирования, ориентированным на планирова­ние событий. Описание моделируемой системы на языке МОДИС включает перечисление ее компонентов, связей между ними и определение внешних воздействий на систему. В языке имеется возможность мо­делировать многоуровневые иерархические системы. Компоненты системы, которая рассматривается как имеющая нулевой уровень (ранг), являются подсистемами первого ранга. Они в свою очередь состоят из подсистем второго ранга и т.д.

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

Описание внешних воздействий является динамической частью модели, которая имеет вид временной диаграммы подаваемых на систему сигналов в форме упорядоченной последовательности.

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

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

Рассмотрим систему моделирования MISS [7]: Multi-lingual Integrated System for Simulation. Си­стема ориентирована на такое моделирование, при котором важно явное воспроизведение хода времени. Эта система не первое средство, разработанное для применений в указанной области. Хорошо известен широкий класс алгоритмических языков имитационного моделирования, имеющих такое же назначение: СИМУЛА-67, СИМСКРИПТ и GSL [7].

MISS относится к процессно-ориентированным системам и в ее модельной концепции не трудно усмо­треть элементы сходства с концепцией СИМУЛА-67 и с SDL-технологией проектирования и имитации систем связи, развиваемой за рубежом уже второй десяток лет. Технологически MISS выделяется прежде всего тем, что это не языковая система, как все упомянутые выше. Других инструментальных систем ими­тации практически не существует. Такова, в частности, созданная в начале 80-х годов во ВИНИСИ АН СССР система МИМ (Монитор Имитационного Моделирования). Однако, ее возможности существенно беднее предлагаемых MISS. Это можно сказать и про созданную в ИПУ АН СССР систему СИМОД [7].

Набор включенных в MISS инструментальных средств в основном определился из опыта конкрет­ного моделирования. В этом наборе можно выделить группы средств " низкого" и " высокого" уровней. К низкоуровневым относятся средства, позволяющие виртуализировать память, оперировать списковыми структурами. По сути они совершенно универсальны и служат элементной базой системы MISS. Средства высокого уровня ориентированы на потребности имитации.

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

Программы алгоритмов моделируемых процессов должны формиро-ваться в одной из допускаемых MISS языковых систем программирования: МОДУЛА-2/SDS. МОДУЛА-2/JPI. TURBO-С, TURBO-C++.

Модельная концепция MISS объектно-ориентированна и исходит из представления о многокомпонентности предмета имитации.

При построении в MISS модели основой структуризации данных является разделение их по прина­длежности приборам, объектам и группам.

Предметом имитации MISS является совокупность объектов. Концепция MISS также включает в се­бя понятие классов объектов, приборов и групп, а величины, чьими значениями исчерпываются различия между экземплярами одного класса, называются фазовыми переменными. По признаку постоянства соста­ва на протяжении всего периода имитации в любом из наборов объектов могут выделяться статистические данные и динамические, состав которых с течением времени может меняться. Первые объединяются в одну запись. Что касается динамических данных, то для их представления в MISS предусмотрены средства работы с записями.

Функционирование модели видится слиянием деятельностей его объектов, а деятельность объекта пред­ставляется несколькими параллельно текущими процессами. В эволюции каждого процесса выделяются последовательные стадии, именуемые элементами.

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

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

Система MISS допускает квазипараллельное течение модельных процессов, которые реализуются через точки синхронизации. Это - точки оси модельного времени, к которым привязываются все выполняемые вычисления. Последние группируются в такты имитации. Это отрезки временной оси между точками синхронизации.

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

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

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

В пакете прикладных программ ДИСМ [5], [9] язык моделирования представляет собой совокупность универсального языка программирования PL-l и специальных процедурных средств пакета, предназна­ченных для реализации специфических операций имитационного моделирования. Такой синтез позволяет обусловить проблемную ориентацию языка (описание модели классов систем с дискретными событиями). Сохранив в то же время его универсальность и гибкость. При установлении специальных средств машинной имитации, предусмотренных в пакете, анализировались такие языки и системы дискретного моделирования как СИМУЛА, СИМСКРИПТ. SOL и СЛЭНГ [6], [14].

Для написания программы на этом языке функционирование моделируемой системы представляется в виде последовательности событий и между ними устанавливаются причинно-следственные связи.

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

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

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

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

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

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

Моделирующий комплекс АЛСИМ-2 [8] представляет собой многоуровневую структуру, элементами которой является пакет прикладных программ и система автоматизации программирования, обеспечива­ющие поддержку создания программ имитационного моделирования, решение задач планирования экс­перимента, сбора и обработки статистической информации, получаемой при проведении модельного эксперимента.

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

Основными средствами языка АЛСИМ являются следующие:

- модульной организации структуры программ

- программирования параллельных процессов

- сбора статистики обще алгоритмические.

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

Можно выделить естественный доступ к данным внешних моделей из внутренних и специальный, обратный естественному.

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

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

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

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

Ввод-вывод представлен в языке средствами последовательного потокоориентированного ввода-вывода. Типичным представителем языков имитационного программирования, ориентированных на сканиро­вание активностей, является язык CSL [5]. В этом языке использован поисковый метод синхронизации событий. Активность в CSL описывается программой, состоящей из контрольного и функционального блоков. В процессе имитации после каждого продвижения имитационного времени исполнительная про­грамма сканирует контрольные блоки всех программ, определяя выполнение условий их выполнения. Если все условия, содержащиеся в контрольном блоке, выполнены, то управление передается функциональному блоку. Если хотя бы одно из условий не выполнено, то обращения к функциональному блоку не происходит.

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

Дальнейшим развитием CSL является язык ECSL [5], в котором содержится ряд новых операторов для манипулирования множествами данных.

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

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

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

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

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

Так как операторы GPSS выполняются в режиме интерпретации, то имитационные программы на этом языке работают медленнее, чем на других языках.

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

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

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

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

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

Язык ASPOL [6], [5] относится к языкам, ориентированным на взаимо-действие процессов. Он был создан специально для моделирования вычисли-тельных систем и обладает значительными возможностями моделирования широкого класса дискретных систем. В нем предусмотрен широкий диапазон средств моделирования. Описание процессов и синхронизация их выпол-нения языковыми средствами ASPOL реализованы на основе методов, при-менявшихся в проектировании операционных систем. Поэтому язык ASPOL хорошо приспособлен для моделирования систем такого рода.

Важной особенностью языка ASPOL является возможность определе-ния множеств объектов и работы с ними, что значительно упрощает модели-рование параллельных систем. Наличие в языке средств макрос - писания обеспечивает расширяемость языка. Синтаксис языка ASPOL напоминает языковые конструкции АЛГОЛА.

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

В состав модели, написанной на языке ASPOL. входят основная программа, описание процессов и процедуры.

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

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

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

Одним из первых полностью документированных комбинированных языков является GASP-4.

Язык НЕДИС [5] объединяет подход планирования событий и взаимодействия процессов и предна­значен для моделирования широкого класса непрерывно-дискретных систем. Элементы моделируемой системы в НЕДИС описываются в терминах объектов из наборов их атрибутов. Каждый объект активно выполняет некоторые функции. т.е. является процессом. Процесс, имеющий конечную протяженность во времени, состоит из последовательных мгновенных событий. Также как и в GASP-4, в НЕДИС новое событие может планироваться предыдущим событием, либо указанием длительности между ними, либо условием окончания этого интервала. В интервалах между событиями значения атрибутов объектов могут изменяться в соответствии с действующей на данный момент системе дифференциальных уравнении.

При написании модели на языке НЕДИС исследователь определяет классы объектов-процессов, одно­временно задавая и атрибуты объектов данного класса, и алгоритм их функционирования. Управляющая программа языка осуществляет ведение календаря событий, продвижение имитацион-ного времени и на­значение текущего процесса.

Для решения дифференциальных уравнений в языке НЕДИС имеются два алгоритма: быстрый ал­горитм Эйлера - Коши с постоянным шагом, используемый в период отладки модели, и более точный алгоритм Рунге - Кутта четвертого порядка.

В отличии от GASP-4 реализация языка НЕДИС является более сложной задачей, предусматривающей разработку специального компилятора и библиотеки программ.

Возможности языка НЕДИС во многом тождественны возможностям языка СИМУЛА-67, что делает его достаточно универсальным языком программирования, пригодным не только для моделирования, но и для использования в других областях нечисловой обработки информации.

В связи с расширяющимся использованием на практике имитационных моделей и методов языки ими­тационного программирования постоянно развиваются и совершенствуются. Так, на базе языка GASP-4 разработаны его версии УСМ. GASP-4/E и GASP-5.

Универсальная система моделирования для дискретной и непрерывной имитации (УСМ) [5] является программным обеспечением оптимизационно - имтационного подхода к синтезу структур сложных систем. В УСМ язык GASP-4 дополнен средствами генерации и выбора оптимальных вариантов структуры. Так как все возможности GASP-4 в УСМ сохранены, то она также используется для решения различных задач анализа функционирования сложных систем.

В языке GASP-4/E по сравнению с исходной версией добавлены возможности графопостроения в режиме реального времени, ряд интеграционных алгоритмов и логических функций. Существенным пре­имуществом этого языка являются средства интерактивного моделирования. Язык GASP-5 является раз­витием GASP-4 в части непрерывного моделирования.

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

Язык SLAM [3], [5] является примером языка, созданного на основе интеграции других языков. В осно­ву его положены языки Q-GERT [5] и GASP-4, возможности которых сохранены и значительно расшире­ны. Язык SLAM предоставляет исследователю возможность программировать непрерывные, дискретные и комбинированные модели, основанные на различных моделирующих подходах. Каждый из этих подходов предполагает определенную структуру понятий. Такое разнообразие подходов сохраняется потому, что каждый из них имеет свои преимущества. Например, в дискретном имитационном моделировании подход, ориентиро-ванный на взаимодействия процессов, легок в изучении, но не обладает достаточной гибкостью. В то же время подход, ориентированный на плани-рование событий более сложен, но обеспечивает гибкую систему модели-рования.

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

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

- компоненты в сетевой модели могут инициироваться возникновением события;

- события могут отменить поток компонентов в сетевой модели;

- компоненты в сетевой модели могут вызвать мгновенные изменения значений переменных;

- переменные состояния, достигая определенных значений, могут инициировать компоненты в сетевой модели;

- события могут вызвать мгновенные изменения значений переменных;

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

Язык SLAM обладает улучшенными по сравнению с Q-GERT и GASP-4 средствами сбора и обработки статистических данных, ввода и вывода информации.

Язык GGC [5] является другим примером интегрированных языков имитационного программирования и создан на основе языков GPSS и GASP-4. Он объединяет легкость изучения языка **SS с гибко­стью использования комбинированного языка GASP-4. Язык GGC сохраняет возможности этих языков и позволяет создавать имитационные модели, базирующиеся на подходе планирования событий, подходе взаимодействия процессов или их комбинации. Моделирующий алгоритм языка GGC обеспечивает воз­можность разработки имитационных моделей на основе: только языка GPSS; только языка GASP-4 или обоих языков одновременно.

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

Интерактивные языки обеспечивают исследователя средствами для: ввода и модификации параметров; выбора алгоритмов интегрирования до и между прогонами в хадже эксперимента; графического отображениями и распечатки результатов с дисплея результатов эксперимента и промежу-точных данных; хранения, восстановления и комбинирования имитационных программ.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.