- •Введение
- •1. Структура и классификация сапр
- •1.1.Разновидности сапр
- •1.2.Функции, характеристики и примеры cae/cad/cam-систем
- •1.3.Понятие о cals-технологии
- •1.4.Комплексные автоматизированные системы
- •1.5.Системы управления в составе комплексных автоматизированных систем
- •1.6.Автоматизированные системы делопроизводства (асд)
- •2.Системы автоматизированного проектирования и их место среди других автоматизированных систем
- •3.Системные среды и программно-методические комплексы сапр
- •3.1.Функции сетевого программного обеспечения
- •3.1.1.Системы распределенных вычислений
- •3.1.2.Прикладные протоколы и телекоммуникационные информационные услуги
- •3.1.3.Информационная безопасность
- •3.2.Назначение и состав системных сред сапр
- •3.2.1.Системные среды автоматизированных систем
- •3.2.2.Подходы к интеграции по в сапр
- •3.2.3.Технологии интеграции по типа dde и ole
- •3.2.4.Управление данными в сапр
- •3.2.5.Варианты управления данными в сетях ас
- •3.2.6.Интеллектуальные серверы бд
- •3.2.7.Распределенные базы данных (рбд)
- •3.2.8.Программные средства управления проектированием в сапр
- •3.2.9.Примеры подсистем управления данными и проектированием
- •3.3.Инструментальные среды разработки программного обеспечения
- •3.3.1.Среды быстрой разработки приложений
- •3.3.2.Компонентно-ориентированные технологии
- •3.3.3.Пример реализации компонентно-ориентированной технологии в сапр
- •4.Системный подход к проектированию
- •4.1.Понятие инженерного проектирования
- •4.2.Принципы системного подхода
- •4.3.Основные понятия системотехники
- •5.Структура процесса проектирования
- •5.1.Иерархическая структура проектных спецификаций и иерархические уровни проектирования.
- •5.2.Стадии проектирования
- •5.3.Содержание технических заданий на проектирование
- •5.4.Классификация моделей и параметров, используемых при автоматизированном проектировании
- •5.5.Типовые проектные процедуры
- •6.Виды обеспечения и требования к их компонентам (гост 23501.101-87)
- •6.1.Программное обеспечение сапр
- •6.2.Информационное обеспечение сапр
- •6.3.Методическое обеспечение сапр
- •6.4.Математическое обеспечение сапр
- •6.5.Лингвистическое обеспечение сапр
- •6.6.Техническое обеспечение сапр
- •6.7.Организационное обеспечение сапр
- •7.Математическое моделирование автоматизированных систем
- •7.1.Математическое обеспечение анализа проектных решений
- •7.1.1.Математический аппарат в моделях разных иерархических уровней
- •7.1.2.Требования к математическим моделям и численным методам в сапр.
- •7.1.3.Место процедур формирования моделей в маршрутах проектирования
- •7.2.Математические модели в процедурах анализа на макроуровне
- •7.2.1.Исходные уравнения моделей
- •7.2.2.Примеры компонентных и топологических уравнений
- •7.2.3.Представление топологических уравнений
- •7.2.4.Особенности эквивалентных схем механических объектов.
- •7.2.5.Характеристика методов формирования ммс
- •7.2.6.Узловой метод
- •7.3.Методы и алгоритмы анализа на макроуровне
- •7.3.1.Выбор методов анализа во временной области
- •7.3.2.Алгоритм численного интегрирования соду
- •7.3.3.Методы решения систем нелинейных алгебраических уравнений
- •7.3.4.Методы решения систем линейных алгебраических уравнений
- •7.3.5.Анализ в частотной области
- •7.3.6.Многовариантный анализ
- •7.3.7.Организация вычислительного процесса в универсальных программах анализа на макроуровне.
- •7.4.Имитационное моделирование
- •7.4.1.Имитационное моделирование систем массового обслуживания
- •7.4.2.Событийный метод моделирования
- •7.4.3.Краткое описание языка срss
- •7.4.4.Сети Петри
- •7.4.5.Анализ сетей Петри
- •7.5.Математическое обеспечение синтеза проектных решений
- •7.5.1.Постановка задач параметрического синтеза
- •7.5.1.1.Место процедур синтеза в проектировании
- •7.5.1.2.Критерии оптимальности
- •7.5.1.3.Задачи оптимизации с учетом допусков
- •7.5.2.Обзор методов оптимизации
- •7.5.2.1.Классификация методов математического программирования
- •7.5.2.2.Методы одномерной оптимизации
- •7.5.2.3.Методы безусловной оптимизации
- •7.5.2.4.Необходимые условия экстремума
- •7.5.2.5.Методы поиска условных экстремумов.
- •7.5.3.Постановка задач структурного синтеза
- •7.5.3.1.Процедуры синтеза проектных решений
- •7.5.3.2.Задача принятия решений
- •7.5.3.3.Представление множества альтернатив
- •7.5.3.4.Морфологические таблицы
- •7.5.3.5.Альтернативные графы
- •7.5.3.6.Исчисления
- •7.5.4.Методы структурного синтеза в сапр
- •7.5.4.1.Системы искусственного интеллекта.
- •7.5.4.2.Дискретное математическое программирование
- •7.5.4.3.Элементы теории сложности
- •7.5.4.4.Эволюционные методы.
- •7.5.4.5.Постановка задачи поиска оптимальных решений с помощью генетических алгоритмов
- •7.5.4.6.Простой генетический алгоритм
- •7.5.4.7.Разновидности генетических операторов
- •7.5.4.8.Генетический метод комбинирования эвристик
- •8.Эффективность сапр
- •9.Понятие об открытых системах
- •9.1.История развития открытых систем
- •9.2.Существующие определения открытых систем и терминология
- •9.3.Различные подходы к понятию "открытые системы"
- •10.Технологии и стандарты информационной поддержки жизненного цикла изделий
- •Заключение
- •Библиографический список
- •Оглавление
- •394026 Воронеж, Московский просп., 14
7.4.3.Краткое описание языка срss
Язык GPSS (Gеnеrа1 Рurроsе Simulatin System), ориентированный на процессы, реализован в ряде программ имитационного моделирования. Модель (программа) на языке GPSS представляет собой последовательность операторов (их называют блоками), отображающих события, происходящие в СМО при перемещениях транзактов. Поскольку в интерпретаторах GPSS реализуется событийный метод, и в СМО может быть одновременно много транзактов, то интерпретатор будет попеременно исполнять разные фрагменты программы, имитируя продвижения транзактов в текущий момент времени до их задержки в некоторых устройствах или очередях.
Операторы GPSS имеют следующий формат:
<метка> <имя оператора> <поле операндов> [<комментарий>]
причем метка может занимать позиции, начиная со второй, имя оператора - с восьмой, поле операндов - с девятнадцатой, комментарий обязательно отделяется от поля операндов пробелом.
Поле операндов может быть пусто, иметь один или более операндов, обозначаемых ниже при описании блоков символами А, В, С,… Операндами могут быть идентификаторы устройств, накопителей, служебные слова и стандартные числовые атрибуты (СЧА). К СЧА относятся величины, часто встречающиеся в разных задачах. Это, например, АС1 - текущее время, FN - функция, Р - параметр транзакта (каждый транзакт может иметь не более L параметров, обычно L = 12), К - константа, RN1 - случайная величина, равномерно распределенная в диапазоне [0, 1], 8 - объем занятой памяти в накопителе, Р - состояние устройства, Q - текущая длина очереди и др. При этом ссылки на идентификаторы записываются в виде
<СЧА>$<идентификатор>
например, Q$ОRD означает очередь ОRD или FN$СOS - ссылка на функцию СOS.
Рассмотрим наиболее часто встречающиеся операторы, сопровождая знакомство с ними простыми примерами моделей. Источники заявок обычно описываются блоком
GЕNЕRАТЕ А,В,С,D,Е
где А и В служат для задания интервалов между появлениями заявок, при этом можно использовать один из следующих вариантов:
1) интервал - равномерно распределенная в диапазоне [А-В, А+В] случайная величина;
2) интервал - значение функции, указанной в В, умноженной на А; С - задержка в выработке первого транзакта; D - число вырабатываемых источником заявок; Е - приоритет заявок. Если D пусто, то число вырабатываемых транзактов неограничено. Например:
GЕNЕRАТЕ 6,FN$ЕХP,,15
Этот оператор описывает источник, который вырабатывает 15 транзактов с интервалами, равными произведению числа 6 и значения функции ЕХР;
GЕNЕRАТЕ 36,12
Здесь число транзактов неограниченно, интервалы между транзактами - случайные числа в диапазоне [24, 48].
Функции, на которые имеются ссылки в операторах должны быть описаны с помощью блока следующего типа
М FUNCTION А,В
за которым следует строка, начинающаяся с первой позиции
Х1,Y1/Х2,Y2/Х3,Y3/..../Хп,Yп
Здесь метка М - идентификатор функции, А - аргумент функции, В - тип функции, Хi и Yi- координаты узловых точек функции, заданной таблично. Например:
ЕХР FUNCTION RN1, С12
0,0/0.2,0.22/0.4,0.50/0.5,0.6/0.6,0.92/ и т.д.
Это описание непрерывной (С) функции ЕХР, заданной таблично 12-ю узловыми точками, аргументом является случайная величина (КМ), равномерно распределенная в диапазоне [0, 1]; или
BBB FUNCTION *4,D6
0,2/2,5/3,00/4,20/5,08/6,02/7,9
Дискретная (О) функция ВВВ задана 6-ю узловыми точками, аргумент - четвертый параметр транзакта, возбудивший обращение к функции ВВВ.
Тразакты могут порождаться и оператором размножения
SPL1Т А,В,С
когда в него входит некоторый транзакт. При этом создается семейство транзактов, включающее основной (вошедший в блок) транзакт и А его копий. Основной транзакт переходит в следующий по порядку блок, а его копии переходят в блок с меткой В. Для различения транзактов параметр С основного транзакта увеличивается на 1, а транзактов-копий - на 2, 3, 4,... и т.д.
Обратное действие - сборка транзактов выполняется операторами
АSSЕМВLЕ А
согласно которому первый из вошедших в блок транзактов выйдет из него только после того, как в этот блок придут еще А-1 транзактов того же семейства, или оператором
GАТНЕR А
отличающимся от предыдущего оператора тем, что из блока выходят все А транзактов. Оператор
SЕIZE А
описывает занятие устройства А транзактом, а оператор
RЕLЕА5Е А
освобождение устройства А от обслуживания.
Задержка в движении транзакта по СМО описывается оператором
АDVАNСЕ А,В
где А и В имеют тот же смысл, что и в операторе GENERATE.
Пример 1. Обслуживание транзакта в устройстве WST продолжительностью а единиц времени, где а - равномерно распределенная в диапазоне [7,11] случайная величина, описывается следующим фрагментом программы
...
SEIZE WST
АDVАNСЕ 9,2
RЕLЕА5Е WSТ
...
Аналогично описывается занятие транзактом памяти в накопителе
ЕNТЕR А,В
за исключением того, что здесь помимо имени накопителя (А) указывается объем занимаемой памяти (В). Освобождение В ячеек памяти в накопителе А выполняется оператором
LEAVE А,В.
Для накопителей в модели нужно задавать общий объем памяти, что делается в следующем описании накопителя
М SТОRАGЕ А
где М - имя накопителя, А - объем памяти.
Если транзакт приходит на вход занятого устройства или на вход накопителя с недостаточным объемом свободной памяти, то он задерживается в очереди к этому устройству или накопителю. Слежение за состоянием устройств и очередей выполняет интерпретатор. Но если в модели требуется ссылаться на длину очереди или собирать статистику по ее длине, то нужно явное указание этой очереди в модели. Делается это с помощью операторов входа в очередь
QUEUE А
и выхода из очереди
DЕРАRТ А
согласно которым очередь А увеличивается и уменьшается на единицу соответственно.
Движение транзактов выполняется в естественном порядке, изменение этого порядка производится операторами перехода. Оператор условного перехода
ТЕSТ XX А,В,С/
В соответствии с которым переход к оператору, помеченному меткой С, происходит, если не выполняется условие А ХХ В, где ХХ О {E,NE,L,LE,G,GE}, E- равно, NE - неравно, L - меньше, LE - меньше или равно, G - больше, GE - больше или равно (XX размещается в позициях 13 и 14).
Пример 2. Приходящие пользователи ожидают обслуживания, если длина очереди не более 4, иначе от обслуживания отказываются. Соответствующий фрагмент программы
...
ТЕSТ LЕ Q$SТR,К4,LВL
QUЕUЕ SТR
SЕIZЕ РОINТ
DЕРАRТ SТР
АDVАNСЕ 50,16
RЕLЕАSЕ РОINТ
...
LВL ТЕRМINАТЕ 1
...
В примере 2 использован оператор выхода транзактов из СМО
ТЕРМШАТЕ А
согласно которому из итогового счетчика вычитается число А.
С помощью итогового счетчика задается длительность моделирования. В начале исполнения программы в счетчик заносится число, указанное в операнде А оператора
5ТАРТ А,,С
Моделирование прекращается, когда содержимое счетчика будет равно или меньше нуля. Операнд С - шаг вывода статистики на печать.
Пример3. Общая структура программы на GPSS имеет вид
SIMULАТЕ
<описания, в том числе функций и накопителей >
<операторы, моделирующие движение транзактов>
STARТ А,,С ЕND.
Оператор безусловного перехода
ТRANSFER ,В
где В - метка оператора, к которому следует переход.
Используется ряд других разновидностей оператора ТRANSFER . Например:
ТRANSFER P,В,С
Переход происходит к оператору с меткой, равной сумме значения параметра В транзакта и числа С.
ТRANSFER FN, B,C
То же, но вместо параметра транзакта слагаемым является значение функции В.
ТRANSFER PICK,В,С
Это оператор равновероятного перехода к операторам, метки которых находятся в интервале [В,С]. Важное место в СМО занимает переход по вероятности
ТRANSFER A,В,С
где А - вероятность перехода к оператору с меткой С, переход к оператору с меткой В будет происходить с вероятностью 1 - А.
Пример 4. Заказы, поступающие в СМО в случайные моменты времени в диапазоне [20,40], выполняет сначала бригада WGR1, затем параллельно работают бригады WGR2 и WGR3, каждая над своей частью заказа. Заданы экспоненциальные законы для времен выполнения работ бригадами WGR1, WGR2 и WGR3 с интенсивностями 0,05, 0,1 и 0,125 соответственно. Моделирование нужно выполнить на временном отрезке, соответствующем выполнению 1000 заказов.
Программа:
SIMULАТЕ
ЕХP FUNCTION RN!,C12
0,0/.2,.22//.4,.50/.5,.6/.6,.92/.7,0.2/.8,0.60/.9,2.3/.95,3/.99,4.6/.999,6.9/0,0000
GENERАТЕ 30,00
SEIZE WGR1
А DVANСЕ 20,FN$ЕХP
RЕLЕАSЕ WGR0
SPLIТ 0,МЕТ1
SEIZE WGR2
АDVANСЕ 10,FN$ЕХЕ
RЕLЕАSЕ WGR2
ТRANSFER , МЕТ2
МЕТ1 SEIZE WGR3
АDVANСЕ 8,FN$ЕХЕ
RЕLЕАSЕ WGR3
МЕТ2 АSSEMBLЕ 2 Рисунок 7.11 – Функция
ТЕRMINAТЕ 1 экспоненциального закона
STARТ 1000,,1000 распределения
В этом примере использован экспоненциальный закон распределения с плотностью
где λ - интенсивность. Функция распределения экспоненциального закона
Из рис. 7.11 ясно, что поскольку искомыми являются значения b случайной величины Т, то, задавая значение а, как равномерно распределенной в диапазоне [0,1] случайной величины, по формуле
-
7.34
находим искомое значение. Именно в соответствии с (7.34) в операторах ADVANCE (см. пример 4) множителями были значения 1/ λ.
Приведем еще несколько операторов языка GPSS.
Оператор изменения параметров транзактов
АSSIGN А,В
где А - номер параметра транзакта, В - присваиваемое ему значение. В операторе
АSSIGN А+,В
параметр А увеличивается на значение В, а в операторе
АSSIGN А-,В
уменьшается. Расширение возможностей управления движением транзактов достигается благодаря таким операторам, как
LOGIС_Х А
который при Х = S устанавливает переключатель А в единичное состояние, а при X= R сбрасывает его в нулевое состояние;
GАТЕ_ХХ А,В
который при XX = LR и А = 1 или при ХХ = LS и А = 0 передает транзакт оператору с меткой В (или задерживает его в блоке GATE, если поле В пусто), а при других сочетаниях XX и А - направляет к следующему оператору. Вычислительный оператор
М VARIABLЕ А
присваивает переменной с номером М значение арифметического выражения А, например в операторе
3 VARIABLЕ К216-5$МЕМ2
переменной номер 3 присваивается разность числа 216 и объема занятой памяти в накопителе MEM2. Оператор синхронизации, имеющий, например, вид
LBL матсн NUMB
задерживает приходящий в него транзакт до тех пор, пока в некоторой другой части модели в сопряженный оператор
NUMB матсн LBL
не войдет транзакт того же семейства.