7 – количество прерванных в устройстве транзактов;
8 – количество прерывающих устройство транзактов; 9 – количество транзактов, ожидающих специальных условий; 10 – количество транзактов, ожидающих занятия устройства.
Если в модели используются объекты типа «очередь», то в файле стандартной статистики будет представлена информация об этих объектах.
QUEUE MAX CONT. ENTRY ENTRY(0)
(5) AVE. CONT. AVE. TIME AVE.(-0) RETRY
1 – номер или имя очереди;
2 – максимальная длина очереди;
3 – текущая длина очереди;
4 – общее количество входов;
5 – количество «нулевых» входов;
6 – средняя длина очереди;
7 – среднее время пребывания транзактов в очереди;
8 – среднее время пребывания транзактов в очереди без учѐта «нулевых» входов;
9 – количество транзактов, ожидающих специальные условия.
Если в модели используются объекты типа «многоканальное устройство», то в файле стандартной статистики будет представлена информация об этих объектах.
STORAGE CAP. REMAIN MIN MAX ENTRIES
AVL. AVE. C. UTIL. RETRY DELAY
(11)
1 – имя или номер многоканального устройства (МКУ);
2 – емкость МКУ;
3 – количество единиц свободной ѐмкости МКУ в конце периода моделирования;
4 – минимальное количество используемой ѐмкости МКУ за период моделирования;
5 – максимальное количество используемой ѐмкости МКУ за период моделирования;
6 – количество входов в МКУ;
7 – состояние готовности МКУ в конце периода моделирования (1 – готово, 0 – не готово);
8 – среднее значение занятой ѐмкости за период моделирования;
9 – средний коэффициент использования всех устройств МКУ;
10 – количество транзактов, ожидающих специальные условия, зависящие от состояния МКУ;
11 – количество транзактов, ожидающих возможности входа в блок ENTER.
Если в модели используется блок TABLE то в файле стандартной статистики будет представлена информация об этих объектах.
TABLE MEAN STD. DEV. RANGE RETRY
(5) FREQUENCY CUM,%
1 – имя или номер таблицы;
2 – среднее значение;
3 – среднеквадратическое отклонение измеряемого значения;
4 – границы интервалов;
5 – ждут условий;
6 – количество попаданий; 7 – накопленная частотность.
Кроме того, в отчет включаются данные о цепях (пользователя, текущих и будущих событий), группах транзактов, числовых группах, логических ключах, матрицах и сохраняемых значениях. Для нулевых значений матриц указываются диапазоны индексов.
ПРИЛОЖЕНИЕ 5
Среда моделирования GPSS/W
Меню. Главное окно системы включает в себя Заголовок, Меню, Панель инструментов и Поле клиента для набора текста модели.


Рис. Главное окно GPSS WORLD
Внизу окна имеется строка состояния: слева приглашение к вводу команды, середина – диагностика ошибок, справа – таймер модели (может отключаться).
Пункт меню (из разрешенных в данной ситуации, на что указывает черный шрифт его названия) выбирается мышью или клавишами управления курсором.
Используя меню главного окна, можно создавать объекты GPSS/W: модели, имитации, отчеты и тексты. Каждый из них можно рассматривать в соответствующих дочерних окнах. Типичный проект начинается с создания или модификации модели. Следует иметь в виду, что модель – не просто текстовый файл: она содержит также установки Settings, закладки Bookmarks и результаты, которые не могут читаться внешним редактором.
Настройки. Все настройки задаются при создании модели через меню Edit/ Settings. Последующие фазы проекта эти установки только наследуют. Рассмотрим вкладки упомянутого меню:
Simulation: Poll Count – число попыток входа в блок до прерывания; Max Evaluation Depth – ограничение глубины ссылок (для предупреждения зацикливания); Stack Size – то же для вложенности процедур; Integration tolerance – допуск при численном интегрировании дифференциальных уравнений.
Reports: Standard Report формирует типовой отчет; In Windows обеспечивает вывод результатов в окно вместо файла. Можно указать желаемые дополнительные подотчеты. Save Plot Points определяет объѐм данных, сохраняемых при построении графика (при недостаточном объѐме график будет обрезан слева или справа). Suppress Scientific исключает научную нотацию в отчетах и потоках данных. Six Places задаѐт вывод с 6 знаками после десятичной точки вместо стандартных трѐх.
Random Numbers: распределяет потоки случайных чисел. Time Ties позволяет указать номер датчика случайных чисел для определения очередности практически одновременных событий. Проверка на равенство моментов их наступления производится с точностью 10-9; при задании нуля рандомизация будет отключена. Аналогично обстоит дело с датчиками случайных чисел для блоков ADVANCE и TRANSFER.
Function Keys: связывает операторы с функциональными клавишами.
Expressions: позволяет задать список выражений, часто используемых в процессе диалога с моделью, и при необходимости выбрать их из списка через меню Select вместо повторного набора.
Окна. Динамические окна могут быть открыты только после создания Имитации (то есть после компиляции модели) командой Window/Simulation Window/<тип окна>
Одновременно могут быть открыты несколько окон. Их относительное расположение управляется командами Cascade или Tile. Щелчок мышью по любой точке окна, заслоненного другими окнами, делает его активным и выводит на передний план.
Этапы моделирования. Работа начинается с составления GPSSпрограммы. Посредством команды INCLUDE «имя файла» в неѐ могут вставляться ранее отлаженные фрагменты (например, PLUSпроцедуры). Вставки из файлов автоматически нумеруются, и диагностика ошибок в них сопровождается указанием номера вставки.
Компиляция организуется по команде Command/Create Simulation. При обнаружении ошибок создаѐтся их циклический список. Просмотр этого списка обеспечивают команды Next Error и Previous Error из меню Search. Глубина стека ошибок ограничена, поэтому исправление всех указанных в одном прогоне ошибок не гарантирует синтаксическую правильность модели. Каждый выбор элемента списка вызывает сообщение о типе ошибки в статусную строку и помещает точку вставки точно перед ошибочным элементом. Оперативное запоминание внесенных в модель исправлений не требуется: компиляции подвергается правленый текст.
При успехе компиляции активизируются интерактивные команды и становятся доступными окна имитации. После этого к модели можно добавить любые предложения: блоки (кроме GENERATE) и описания PLUS-процедур. Можно переопределить STORAGE, TABLE, QTABLE, MATRIX, VARIABLE. Интерактивно вставленный блок является временным и разрушается сразу после входа в него транзакта. Такой режим называется «ручным моделированием». При всех его преимуществах надо иметь в виду необходимость внесения изменений, показавших полезность в сохраняемый текст модели.
После успешного создания Имитации через меню Command/Start задаѐтся начальное значение счетчика, которое вместе с имеющим ненулевой декремент блоком TERMENATE определяет длительность моделирования. Еѐ можно ограничить также по счетчику сгенерированных транзактов (операнд D блока GENERATE) или по времени – с помощью отдельного сегмента модели. Через Command/Custom можно набрать любое предложение и вставить его в Имитацию. Длинные процедуры и последовательности операторов лучше вставлять с помощью INCLUDE.
О запуске моделирования сообщает текст в статусной строке: Simulation in Progress. За его ходом можно следить по выведенным в статусную строку системным часам (это обязательно на начальных этапах отладки для выявления возможного зависания).
Останов моделирования. Команда START определяет окончание моделирования: еѐ счетчик должен уменьшиться до нуля. Любой оператор модели TERMINATE с непустым полем операнда А уменьшает счетчик при входе в него транзактов. Такой оператор в программе должен быть единственным.
Начатое моделирование можно прервать командой HALT Соответствующая ей кнопка имеется во всех динамических окнах). После еѐ выполнения можно выбирать блоки и задавать контрольные остановы в них (кнопка с красным светофором), удалять заданные остановы (перечеркнутый красный светофор). При обработке очередного останова первоначальное условие останова, если оно задано по времени, удаляется, а все остальные условия сохраняются. Один шаг модели (вход активного транзакта в следующий блок) выполняется при нажатии кнопки с изображением лестницы. Продолжение моделирования с использованием команды STEP позволяет автоматически остановить его точно после заданного числа входов активного транзакта в блоки модели. Продолжить моделирование можно нажатием кнопки с зеленым светофором.
Контролировать промежуточные результаты и просматривать окончательные можно через окна Графики (Plot) и Выражений (Expression). Окно таблиц позволяет наблюдать сходимость исследуемых распределений – гистограммы, среднего значения и среднеквадратичного отклонения. В меню Windows поддерживается список всех открытых окон, включая отчеты по прогонам предыдущих версий модели.
Открытые динамические окна (даже для системных часов) существенно замедляют моделирование.
Сбор статистики. Для типовых имитаций автоматически собираемая статистика представляется вполне достаточной. При необходимости в более подробных сведениях можно определить в командах TABLE или QTABLE таблицы (гистограммы) распределений. Фактический сбор данных в первом случае обеспечивается специальными блоками TABULATE, а во втором – при входе в блок DEPART. Упомянутые таблицы (если отметить их в установке отчета), а также средние значения и среднеквадратичесные отклонения будут выводиться автоматически и могут просматриваться в окне таблиц.
Ещѐ более детальные сведения можно собирать и обрабатывать с помощью скалярных и матричных сохраняемых значений и PLUSпроцедур. Затем «историческая» база данных может быть обработана с помощью ANOVA – для получения доверительных интервалов. Результаты нестандартной обработки статистики можно вывести в файл потока данных.
ПРИЛОЖЕНИЕ 6
Задание потоков с различными законами распределения
Пуассоновский входящий поток моделируется с помощью оператора GENERATE при следующем задании параметров:
В качестве операнда А используется среднее значение интервалов времени.
В качестве операнда В используется ссылка на функцию экспоненциального распределения с параметром 1.
Тогда полученное значение интервалов времени характеризуется с помощью экспоненциальной функции распределения со средним значением, равным величине операнда А. Ниже приведен пример задания функции стандартной экспоненциально распределенной случайной величины с параметром 1, предложенный фирмой IBM:
EPDIS FUNCTION RN1, C24
.0,0/.1,.104.2,.222/.3,.355.4,.509/.5,.69.6,.915/.7,1.2.75,1.38/
.8,1.684,1.83/.88,2.12.9,2.3/.92,2.52.94,2.52/.94,2.81.95,2.99/.96,,3.5/.98,3.9.99,4.6/.995,5.3.998,6.2/.999,7/.9998,8
Предположим, входящий поток является пуассоновским со значением среднего интервала, равным 30 с. Оператор GENERATE будет выглядеть следующим образом:
GENERATE 30, FN$EPDIS
Функция для моделирования случайной величины, распределенной по нормальному закону с математическим ожиданием, равным 0, и дисперсией, равной 1.
SNORM FUNCTION RN2, C25
.0,-5/.00003,-4/.00135,-3/.00621,-2,5/.02275,-2/.06681,-1.5
.11507,-1.2/.15866,-1/.21186,-0.8/.27425,-.6/.34458,-.4/.42074,-.2
.5,0/.57926,.2/.65542,.4/.72575,.6/.78814,.8/.84134,1/.88493,,1.5/.97725,2/.99379,2.5/.99865,3/.99997,4/1,5
Для получения нормально распределенной величины X с параметрами
х (дисперсия) и Мх (математическое ожидание) необходимо выполнить преобразование:
Х= ![]()
× FN$SNORM+Mx
В этом случае необходимо использовать арифметическую переменную. Арифметическая переменная определяется оператором FVARIABLE. Предположим, что ![]()
=20, Мх=100. Определяем переменную V$NORM:
NORM FVARIABLE 20*FN$SNORM+100
В GPSS/W в библиотеку процедур включено 24 вероятностных распределения. Вызов каждой функции оформлен как оператор присваивания с указанием в его левой части типа возвращаемого значения.
Встроенная библиотека процедур содержит следующие вероятностные распределения:
Бета | Real=BETA(RNj, min, max, a, b) |
Биномиальное | Integer=Binomial(RNj, t, p) |
Дискретно равномерное | Integer=DUNIFORM(RNj, min, max) |
Показательное | Real=Exponential(RNj, m, s) |
Обратное Гауссово | Real=INVGAUSS (RNj, m, s, a) |
Обратное Вейбулла | Real=INVWEIBULL (RNj, m, s, a) |
Лапласа | Real=LAPLACE(RNj, m, s) |
Логистическое | Real=LOGISTIC(RNj, m, s) |
Нормальное | Real=NORMAL (RNj, m, s) |
Парето | Real=PARETO(RNj, m, s) |
Пирсона V типа | Real=PEARSON5 (RNj, m, s, a) |
Пирсона VI типа | Real=PEARSON6 (RNj, m, s, a, b) |
крайних значений А | Real=EXTVALA (RNj, m, s) |
крайних значений Б | Real=EXTVALB (RNj, m, s) |
Гамма | Real=GAMMA(RNj, m, s, a) |
Геометрическое | Integer=GEOMETRIC (RNj, p) |
логарифмическое Лапласа | Real=LOGLAPLACE(RNj, m, s, a |
Логистическое логарифм | Real=LOGLOGIS(RNj, m, s, a) |
Нормальное логарифм | Real=LOGNORMAL (RNj, m, s, a) |
отрицательное биномиальное | Integer=NEGBINOM (RNj, c, p) |
Пуассона | Integer=POISSON (RNj, v) |
Треугольное | Real=TRIANGULAR(RNj, min, max, mode) |
Равномерное | Real=UNIFORM(a, b) |
Вейбулла | Real=Weibull (RNj, m, s, a) |
Все процедуры вызываются по их указателю. Если требуется задать исходный ДСЧ, подставляется только номер последнего – без предшествующего RN. Во всех случаях через Min и Max обозначены соответственно наименьшее и наибольшее значения генерируемой случайной величины, где m – смещение, s – масштабный параметр (оба положительные), а и b – параметры формы.
ПРИЛОЖЕНИЕ 7
Моделирование систем обслуживания с прибором, очередью и обратной связью
Цель работы: моделирование процессов функционирования систем, поиск оптимального варианта.
1. Постановка задачи
В целях экономии денежных средств несколько строительных бригад хотели бы использовать одну бетономешалку, ѐмкость которой рассчитана на производство раствора, необходимого для нормальной работы только одной бригады.
При соглашении порционный разлив бетона бригадами не предусмотрен. Таким образом, каждая бригада имеет следующие возможности: работать с имеющимся бетоном; ожидать новой партии бетона (т. е. возможности использования бетономешалки); непосредственно пользоваться бетономешалкой для производства раствора. Время расхода бригадами очередной партии бетона находится в пределах 29+3 минут. Изготовление раствора занимает 15+2 минуты. Стоимость работы бетономешалки составляет 14500$ за 50 час, а цена материала одного замеса – 260$. Общий заработок бригады в час равен 80$. Необходимо построить модель описанного процесса и на ее основе определить оптимальное число участвующих в соглашении бригад из расчѐта общей прибыльности данного мероприятия.
2. Таблица определений
Единица времени 1 минута. Для установления периода моделирования используется сегмент таймера.
Элементы GPSS | Назначение |
Транзакты 1 сегмент модели 2 сегмент модели Приборы: bm Очереди: och | Бригады Таймер Бетономешалка Очередь, используемая для сбора статистики об ожидании бригад |
3. Блок-схема

4. Текст программы
10 GENERATE,,, 2
20 aaa QUEUE och
30 SEIZE bm
40 DEPART och
50 ADVANCE 15,2
60 RELEASE bm
70 ADVANCE 29,3 80 TRANSFER, aaa
90 GENERATE 3000
100 TERMINATE 1
5. Статистика
Работают 2 бригады
START TIME END TIME BLOCKS FACILITIES STORAGES
0.1 0
NAME VALUE
AAA 2.000
BM 10001.000
OCH 10000.000
LABEL LOC BLOCK TYPE ENTRY CURRENT RETRY
COUNT COUNT | ||||
1 GENERATE | 2 | 0 | 0 | |
AAA | 2 QUEUE | 136 | 0 | 0 |
3 SEIZE | 136 | 0 | 0 | |
4 DEPART | 136 | 0 | 0 | |
5 ADVANCE | 136 | 0 | 0 | |
6 RELEASE | 136 | 0 | 0 | |
7 ADVANCE | 136 | 2 | 0 | |
8 TRANSFER | 134 | 0 | 0 | |
9 GENERATE | 1 | 0 | 0 | |
10 TERMINATE | 1 | 0 | 0 |
FACILITY ENTRIES UTIL. AVE. TIME AVAIL.
BM 1
OWNER PEND INTER RETRY DELAY
QUEUE MAX CONT. ENTRY ENTRY(0) AVE. CONT.
OCH 8
AVE. TIME AVE.(-0) RETRY
0.
1 | Число выполненных замесов | 136 |
2 | Среднее время выполнения одного замеса | 14,985 |
3 | Загрузка мощности бетономешалки | 0,679 |
Модель продемонстрировала работу бетономешалки за 50 часов модельного времени. За указанное время число выполненных замесов равно 136, среднее время выполнения одного замеса – 14,985 мин., загрузка мощности бетономешалки 67,9%.
Заработная плата работников бригад = 2 бригады*50 часов*80$ = 8000$. Стоимость работы бетономешалки за 50 часов =$.
Таким образом, затраты на производство =$.
Прибыльность производства равна произведению числа замесов на цену материала одного замеса за вычетом суммарных затрат: 136 замесов*260$ $ = 12 860$
Работают 3 бригады
START TIME END TIME BLOCKS FACILITIES STORAGES
0.1 0
NAME VALUE
AAA 2.000
BM 10001.000
OCH 10000.000
LABEL LOC BLOCK TYPE ENTRY CURRENT RETRY
COUNT COUNT | ||||
1 GENERATE | 3 | 0 | 0 | |
AAA | 2 QUEUE | 196 | 0 | 0 |
3 SEIZE | 196 | 0 | 0 | |
4 DEPART | 196 | 0 | 0 | |
5 ADVANCE | 196 | 1 | 0 | |
6 RELEASE | 195 | 0 | 0 | |
7 ADVANCE | 195 | 2 | 0 | |
8 TRANSFER | 193 | 0 | 0 | |
9 GENERATE | 1 | 0 | 0 | |
10 TERMINATE | 1 | 0 | 0 |
FACILITY ENTRIES UTIL. AVE. TIME AVAIL.
BM 1
OWNER PEND INTER RETRY DELAY
QUEUE MAX CONT. ENTRY ENTRY(0) AVE. CONT.
OCH
AVE. TIME AVE.(-0) RETRY
2.
1 | Число выполненных замесов | 196 |
2 | Среднее время выполнения одного замеса | 14,898 |
3 | Загрузка мощности бетономешалки | 0,973 |
Модель продемонстрировала работу бетономешалки за 50 часов модельного времени. За указанное время число выполненных замесов равно 196, среднее время выполнения одного замеса – 14,898 мин, загрузка мощности бетономешалки 97,3%.
Заработная плата работников бригад: 3 бригады*50 часов*80$ = 12000$ Стоимость работы бетономешалки за 50 часов =$.
Таким образом, затраты на производство =$.
Прибыльность производства равна произведению числа замесов на цену материала одного замеса за вычетом суммарных затрат: 196 замесов*260$ -26500$ = 24 460$.
Работают 4 бригады
START TIME END TIME BLOCKS FACILITIES STORAGES
0.1 0
NAME VALUE
AAA 2.000
BM 10001.000
OCH 10000.000
LABEL LOC BLOCK TYPE ENTRY CURRENT RETRY
COUNT COUNT
1 GENERATE | 4 | 0 | 0 |
AAA 2 QUEUE | 201 | 1 | 0 |
3 SEIZE | 200 | 0 | 0 |
4 DEPART | 200 | 0 | 0 |
5 ADVANCE | 200 | 1 | 0 |
6 RELEASE | 199 | 0 | 0 |
7 ADVANCE | 199 | 2 | 0 |
8 TRANSFER | 197 | 0 | 0 |
9 GENERATE | 1 | 0 | 0 |
10 TERMINATE | 1 | 0 | 0 |
FACILITY ENTRIES UTIL. AVE. TIME AVAIL.
BM
OWNER PEND INTER RETRY DELAY
QUEUE MAX CONT. ENTRY ENTRY(0) AVE. CONT.
OCH
AVE. TIME AVE.(-0) RETRY
16.
1 | Число выполненных замесов | 200 |
2 | Среднее время выполнения одного замеса | 15,00 |
3 | Загрузка мощности бетономешалки | 1 |
Модель продемонстрировала работу бетономешалки за 50 часов модельного времени. За указанное время число выполненных замесов равно 200, среднее время выполнения одного замеса 15,00 мин, загрузка мощности бетономешалки 100%.
Заработная плата работников бригад: 4 бригады*50 часов*80$ = 16000$.
Стоимость работы бетономешалки за 50 часов =$.
Таким образом, затраты на производство =$.
Прибыльность производства равна произведению числа замесов на цену материала одного замеса за вычетом суммарных затрат: 200 замесов*260$ $ = 21 500$.
6. Выводы
Исходя из полученных расчетных данных и условия максимизации прибыльности производства можно сделать следующий вывод, что оптимальное число бригад, использующих одну бетономешалку, равно трем, так как прибыльность при этом больше, чем при использовании бетономешалки двумя и четырьмя бригадами. Однако в этом случае загрузка мощности бетономешалки равна 96,7%, то есть возможности бетономешалки полностью не используются. Бетономешалка используется с 100% отдачей мощности при одновременной работе четырех бригад, но в этом случае вследствие большего объема затрат на заработную плату работникам прибыльность производства уменьшается.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 |



