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

§ 13. Классификация и краткая характеристика языков имитационного моделирования. Среда и функциональная структура языка моделирования gpss

13.1. Классификация языков имитационного моделирования

Специализированные языки имитационного моделирования делятся на языки схемных символов и операторные языки. Соответственно двум видам имитации они также классифицируются на:

  • языки моделирования непрерывных процессов;

  • языки моделирования дискретных процессов.

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

Языки моделирования дискретных процессов делятся на 4 категории:

  • языки, ориентированные на события,

  • языки, ориентированные на действия,

  • языки, ориентированные на процессы,

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

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

В языках, ориентированных на зависящие от времени действия, эти действия представляются в модельном времени как мгновенные. Программируя на этих языках, пользователь не регламентирует действия программы, а лишь указывает на условия, при которых они могут произойти. В подобных языках программа составляется из двух частей: обеспечивающей проверку и обеспечивающей действие. Исполнительные программы, просматривают набор всех условий перед сдвигом времени на очередной интервал, что позволяет определить, могут ли произойти какие-либо события. Перед очередным сдвигом модельного времени происходит сканирование всех программ по действиям для определения, какая из них включена в работу. Исполнение команд изменения состояния и сдвига времени в той части программы, которая обеспечивает действие, разрешается тогда, когда выполняются все контролируемые условия. Если хоть одно из них осталось невыполненным, команды действия пропускаются. Циклическое сканирование всех программ имитации действий дает возможность учитывать вероятности включения каждой из них и все возможные взаимодействия. Языки, ориентированные на действия: CSL, ESP, Форсим IV, GSP и Милитран.

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

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

К языкам этой категории принадлежат GPSS и BOSS. Язык моделирования дискретных систем GPSS (General Purpose System Simulator) является одним из самых распространенных в мире языков имитационного моделирования. Данный язык был разработан фирмой IBM в начале 70-х годов XX в., а в настоящее время система моделирования GPSS/PC (различных версий) является торговой маркой фирмы MINUTEMAN Software.