Автоматизированное проектирование - часть 21

 

  Главная      Учебники - Производство     

 

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

 

 

 

 

 

 

 

 

 

содержание   ..  19  20  21  22   ..

 

 

Автоматизированное проектирование - часть 21

 

 

М
АТЕМАТИ
ч
ЕСКОЕ ОБЕСПЕ
ч
ЕНИЕ АНАЛИЗА ПРОЕКТНЫХ РЕШЕНИЙ
Г
ЛАВА
3
в
которой
рассчитывается
продолжительность
обслуживания
заявки
В
;
сведения
об
этом
будущем
со
-
бытии
заносятся
в
СБС
и
СЗ
;
3)
происходит
имитация
движения
заявки
А
в
СИМ
по
маршруту
,
определяемому
заданной
про
-
граммой
моделирования
,
до
тех
пор
,
пока
заявка
не
придет
на
вход
некоторого
ОА
;
здесь
либо
заявка
задерживается
в
очереди
,
либо
путем
обращения
к
модели
этого
ОА
прогнозируется
наступление
не
-
которого
будущего
события
,
связанного
с
дальнейшей
судьбой
заявки
А
;
сведения
об
этом
будущем
событии
также
заносятся
в
СБС
и
СЗ
;
4)
в
файл
статистики
добавляются
необходимые
данные
.
После
отработки
всех
событий
,
относящихся
к
моменту
времени
t
k
,
происходит
увеличение
мо
-
дельного
времени
до
значения
,
соответствующего
ближайшему
будущему
событию
,
и
рассмотренный
процесс
имитации
повторяется
.
Кра
тк
ое
опис
ание
язык
а
GPSS.
Язык
GPSS (General Purpose Simulation System),
ориентированный
на
про
-
цессы
,
реализован
в
ряде
программ
имитационного
моделирования
.
Модель
(
программа
)
на
языке
GPSS
представляет
со
-
бой
последовательность
операторов
(
их
называют
блоками
),
отображающих
события
,
происходящие
в
СМО
при
переме
-
щениях
транзактов
.
Поскольку
в
интерпретаторах
GPSS
реализуется
событийный
метод
,
и
в
СМО
может
быть
одновре
-
менно
много
транзактов
,
то
интерпретатор
будет
попеременно
исполнять
разные
фрагменты
программы
,
имитируя
про
-
движения
транзактов
в
текущий
момент
времени
до
их
задержки
в
некоторых
устройствах
или
очередях
.
Операторы
GPSS
имеют
следующий
формат
:
<
метка
> <
имя
оператора
> <
поле
операндов
> [<
комментарий
>]
причем
метка
может
занимать
позиции
,
начиная
со
второй
,
имя
оператора
с
восьмой
,
поле
операндов
с
девятнадца
-
той
,
комментарий
обязательно
отделяется
от
поля
операндов
пробелом
.
Поле
операндов
может
быть
пусто
,
иметь
один
или
более
операндов
,
обозначаемых
ниже
при
описании
блоков
сим
-
волами
А
, B, C,...
Операндами
могут
быть
идентификаторы
устройств
,
накопителей
,
служебные
слова
и
стандартные
чис
-
ловые
атрибуты
(
СЧА
).
К
СЧА
относятся
величины
,
часто
встречающиеся
в
разных
задачах
.
Это
,
например
,
АС1
теку
-
щее
время
, FN —
функция
, P —
параметр
транзакта
(
каждый
транзакт
может
иметь
не
более
L
параметров
,
обычно
L
=
1
2),
K —
константа
, RN
1
случайная
величина
,
равномерно
распределенная
в
диапазоне
[0,
1
], S —
объем
занятой
памяти
в
накопителе
, F —
состояние
устройства
, Q —
текущая
длина
очереди
и
др
.
При
этом
ссылки
на
идентификаторы
записы
-
ваются
в
виде
<
СЧА
>$<
идентификатор
>
например
, Q$ORD
означает
очередь
ORD
или
FN$COS —
ссылка
на
функцию
COS.
Рассмотрим
наиболее
часто
встречающиеся
операторы
,
сопровождая
знакомство
с
ними
простыми
примерами
моделей
.
Источники
заявок
обычно
описываются
блоком
GENERATE A,B,C,D,E
где
А
и
В
служат
для
задания
интервалов
между
появлениями
заявок
,
при
этом
можно
использовать
один
из
следующих
вариантов
:
1
)
интервал
равномерно
распределенная
в
диапазоне
[
А
-
В
,
А
+
В
]
случайная
величина
; 2)
интервал
значе
-
ние
функции
,
указанной
в
В
,
умноженной
на
А
;
С
задержка
в
выработке
первого
транзакта
; D —
число
вырабатывае
-
мых
источником
заявок
;
Е
приоритет
заявок
.
Если
D
пусто
,
то
число
вырабатываемых
транзактов
неограничено
.
На
-
пример
:
GENERATE 6,FN$EXP,,
1
5
Этот
оператор
описывает
источник
,
который
вырабатывает
1
5
транзактов
с
интервалами
,
равными
произведению
числа
6
и
значения
функции
EXP;
GENERATE 36,
1
2
Здесь
число
транзактов
неограничено
,
интервалы
между
транзактами
случайные
числа
в
диапазоне
[24, 48].
Функции
,
на
которые
имеются
ссылки
в
операторах
должны
быть
описаны
с
помощью
блока
следующего
типа
M FUNCTION A,B
за
которым
следует
строка
,
начинающаяся
с
первой
позиции
И
.
П
.
Н
ОРЕНКОВ
.
А
ВТОМАТИЗИРОВАННОЕ ПРОЕКТИРОВАНИЕ
83
%
!#*%!#&
F
*:,$* $I*:+*
F
*)&* !)!@&’! +($*,#)KH (*L*)&M
5
@!"!
3
X
0
,Y
0
/X
2
,Y
2
/X
3
,Y
3
/
....
/X
n
,Y
n
Здесь
метка
M —
идентификатор
функции
, A —
аргумент
функции
, B —
тип
функции
, X
i
и
Y
i
координаты
узловых
то
-
чек
функции
,
заданной
таблично
.
Например
:
EXP FUNCTION RN
0
,C
0
2
0,0/0.2,0.22/0.4,0.5
0
/0.5,0.6/0.6,0.92/...
и
т
.
д
.
Это
описание
непрерывной
(
С
)
функции
EXP,
заданной
таблично
1
2-
ю
узловыми
точками
,
аргументом
является
случай
-
ная
величина
(RN
1
),
равномерно
распределенная
в
диапазоне
[0,
1
];
или
DDD
FUNCTION *4,D6
0
,2/2,5/3,
00
/4,20/5,
0
8/6,
0
2/7,9
Дискретная
(D)
функция
ВВВ
задана
6-
ю
узловыми
точками
,
аргумент
четвертый
параметр
транзакта
,
возбудивший
об
-
ращение
к
функции
ВВВ
.
Тразакты
могут
порождаться
и
оператором
размножения
SPLIT A,B,C
когда
в
него
входит
некоторый
транзакт
.
При
этом
создается
семейство
транзактов
,
включающее
основной
(
вошедший
в
блок
)
транзакт
и
А
его
копий
.
Основной
транзакт
переходит
в
следующий
по
порядку
блок
,
а
его
копии
переходят
в
блок
с
меткой
В
.
Для
различения
транзактов
параметр
С
основного
транзакта
увеличивается
на
1
,
а
транзактов
-
копий
на
2,
3, 4,...
и
т
.
д
.
Обратное
действие
сборка
транзактов
выполняется
операторами
ASSEMBLE A
согласно
которому
первый
из
вошедших
в
блок
транзактов
выйдет
из
него
только
после
того
,
как
в
этот
блок
придут
еще
А
-
1
транзактов
того
же
семейства
,
или
оператором
GATHER A
отличающимся
от
предыдущего
оператора
тем
,
что
из
блока
выходят
все
А
транзактов
.
Оператор
SEIZE A
описывает
занятие
устройства
А
транзактом
,
а
оператор
RELEASE A
освобождение
устройства
А
от
обслуживания
.
Задержка
в
движении
транзакта
по
СМО
описывается
оператором
ADVANCE A,B
где
А
и
В
имеют
тот
же
смысл
,
что
и
в
операторе
GENERATE.
+-0B.-
7
.
Обслуживание
транзакта
в
устройстве
WST
продолжительностью
a
единиц
времени
,
где
a —
равно
-
мерно
распределенная
в
диапазоне
[7,
11
]
случайная
величина
,
описывается
следующим
фрагментом
программы
...
SEIZE WST
ADVANCE 9,2
RELEASE WST
...
Аналогично
описывается
занятие
транзактом
памяти
в
накопителе
ENTER A,B
&
.
+
.
)
"#$%!#&’&($"!))$* +($*,#&($"!)&*
84
%
!#*%!#&
F
*:,$* $I*:+*
F
*)&* !)!@&’! +($*,#)KH (*L*)&M
5
@!"!
3
за
исключением
того
,
что
здесь
помимо
имени
накопителя
(
А
)
указывается
объем
занимаемой
памяти
(
В
).
Освобождение
В
ячеек
памяти
в
накопителе
А
выполняется
оператором
LEAVE A,B
Для
накопителей
в
модели
нужно
задавать
общий
объем
памяти
,
что
делается
в
следующем
описании
накопителя
M STORAGE A
где
М
имя
накопителя
,
А
объем
памяти
.
Если
транзакт
приходит
на
вход
занятого
устройства
или
на
вход
накопителя
с
недостаточным
объемом
свободной
памяти
,
то
он
задерживается
в
очереди
к
этому
устройству
или
накопителю
.
Слежение
за
состоянием
устройств
и
очере
-
дей
выполняет
интерпретатор
.
Но
если
в
модели
требуется
ссылаться
на
длину
очереди
или
собирать
статистику
по
ее
дли
-
не
,
то
нужно
явное
указание
этой
очереди
в
модели
.
Делается
это
с
помощью
операторов
входа
в
очередь
QUEUE A
и
выхода
из
очереди
DEPART A
согласно
которым
очередь
А
увеличивается
и
уменьшается
на
единицу
соответственно
.
Движение
транзактов
выполняется
в
естественном
порядке
,
изменение
этого
порядка
производится
операторами
перехода
.
Оператор
условного
перехода
TEST XX A,B,C
В
соответствии
с
которым
переход
к
оператору
,
помеченному
меткой
С
,
происходит
,
если
не
выполняется
условие
А
ХХ
В
,
где
ХХ
О
{E,NE,L,LE,G,GE}, E-
равно
, NE —
неравно
, L —
меньше
, LE —
меньше
или
равно
, G —
больше
, GE —
боль
-
ше
или
равно
(XX
размещается
в
позициях
1
3
и
1
4).
+-0B.-
2.
Приходящие
пользователи
ожидают
обслуживания
,
если
длина
очереди
не
более
4,
иначе
от
обслу
-
живания
отказываются
.
Соответствующий
фрагмент
программы
...
TEST LE Q$STR,K4,LBL
QUEUE STR
SEIZE POINT
DEPART STR
ADVANCE 50,
0
6
RELEASE POINT
...
LBL TERMINATE
0
...
В
примере
2
использован
оператор
выхода
транзактов
из
СМО
TERMINATE A
согласно
которому
из
итогового
счетчика
вычитается
число
А
.
С
помощью
итогового
счетчика
задается
длительность
моделирования
.
В
начале
исполнения
программы
в
счетчик
заносится
число
,
указанное
в
операнде
А
оператора
START A,,C
Моделирование
прекращается
,
когда
содержимое
счетчика
будет
равно
или
меньше
нуля
.
Операнд
С
шаг
выво
-
да
статистики
на
печать
.
+-0B.-
3.
Общая
структура
программы
на
GPSS
имеет
вид
SIMULATE
<
описания
,
в
том
числе
функций
и
накопителей
>
<
операторы
,
моделирующие
движение
транзактов
>
&
.
+
.
)
"#$%!#&’&($"!))$* +($*,#&($"!)&*
85
%
!#*%!#&
F
*:,$* $I*:+*
F
*)&* !)!@&’! +($*,#)KH (*L*)&M
5
@!"!
3
START A,,C
END.
Оператор
безусловного
перехода
TRANSFER ,B
где
В
метка
оператора
,
к
которому
следует
переход
.
Используется
ряд
других
разновидностей
оператора
TRANSFER.
Например
:
TRANSFER P,B,C
Переход
происходит
к
оператору
с
меткой
,
равной
сумме
значения
параметра
В
транзакта
и
числа
С
.
TRANSFER FN,B,C
То
же
,
но
вместо
параметра
транзакта
слагаемым
является
значение
функции
В
.
TRANSFER PICK,B,C
Это
оператор
равновероятного
перехода
к
операторам
,
метки
которых
находятся
в
интервале
[B,C].
Важное
место
в
СМО
занимает
переход
по
вероятности
TRANSFER
E
,B,C
где
А
вероятность
перехода
к
оператору
с
меткой
С
,
переход
к
оператору
с
меткой
В
будет
происходить
с
вероятно
-
стью
1
-
А
.
+-0B.-
4.
Заказы
,
поступающие
в
СМО
в
случайные
моменты
времени
в
диапазоне
[20,40],
выполняет
сначала
бригада
WGR
1
,
затем
параллельно
работают
бригады
WGR2
и
WGR3,
каждая
над
своей
частью
заказа
.
Заданы
экспонен
-
циальные
законы
для
времен
выполнения
работ
бригадами
WGR
1
, WGR2
и
WGR3
с
интенсивностями
0,05, 0,
1
и
0,
1
25
со
-
ответственно
.
Моделирование
нужно
выполнить
на
временном
отрезке
,
соответствующем
выполнению
1
000
заказов
.
Программа
:
SIMULATE
EXP FUNCTION RN
0
,C
0
2
0,0/.2,.22//.4,.5
0
/.5,.6/.6,.92/.7,
0
.2/.8,
0
.6
0
/.9,2.3/.95,3/.99,4.6/.999,6.9/