Файл: Конспект лекций Для студентов специальности 080801. 65 - приклад.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.12.2025

Просмотров: 3207

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Федеральное агентство по образованию

Оглавление

Глава 5. Моделирование вычислительных и операционных систем 289

Глава 6. Основы моделирования процессов 305

Глава 7. Задания для самостоятельной работы 311

Глава 8. Проектирование имитационных моделей 335

Глава 9. Технология имитационного моделирования 361

Глава 10. Примеры принятия решений с помощью имитационного моделирования 433

Глава 11. Задания для имитационных проектов 451

Предисловие

Введение

Глава 1. Модели массового обслуживания

1.1. Системы массового обслуживания и их характеристики

1.2. Системы с одним устройством обслуживания

1.3. Основы дискретно-событийного моделирования смо

1.4. Многоканальные системы массового обслуживания

Глава 2. Вероятностные сети систем массового обслуживания

2.1. Общие сведения о сетях

2.2. Операционный анализ вероятностных сетей

2.3. Операционные зависимости

2.4. Анализ узких мест в сети

Глава 3. Вероятностное моделирование

3.1. Метод статистических испытаний

3.2. Моделирование дискретных случайных величин

3.3. Моделирование непрерывных случайных величин

3.4. Сбор статистических данных для получения оценок характе­ристик случайных величин

Для оценки дисперсии случайной величины ξ используют фор­мулу

3.5. Определение количества реализаций при моделировании случайных величин

По формулам (3.18-3.20) находим

Задачи для самостоятельной работы

Задача 6

Глава 4. Система моделированияgpss

4.1. Объекты

4.2. Часы модельного времени

4.3. Типы операторов

4.4. Внесение транзактов в модель. БлокGenerate

Задание для самостоятельной работы:

4.5. Удаление транзактов из модели. БлокTerminate

4.6. Элементы, отображающие одноканальные обслуживающие устройства

4.7. Реализация задержки во времени. БлокAdvance

Задания для самостоятельной работы:

4.8. Сбор статистики об ожидании. Блоки queue, depart

4.9. Переход транзакта в блок, отличный от последующего. БлокTransfer

Задания для самостоятельной работы:

4.10. Моделирование многоканальных устройств

4.11. Примеры построенияGpss-моделей

Построение модели

4.12. Переменные

4.13. Определение функции вGpss

Пример 4.23

4.14. Стандартные числовые атрибуты, параметры транзактов. Блоки assign, mark, loop

4.15. Изменение приоритета транзактов. БлокPriority

4.16. Организация обслуживания с прерыванием. Блоки pre­empt и return

Задание для самостоятельной работы:

4.17. Сохраняемые величины

4.18. Проверка числовых выражений. Блок test

Пример 4.40

Задание для самостоятельной работы:

4.19. Определение и использование таблиц

Задания для самостоятельной работы:

4.20. Косвенная адресация

4.21. Обработка транзактов, принадлежащих одному семейству

4.22. Управление процессом моделирования в системеGpss

4.23. Списки пользователей

4.24. Блоки управления потоками транзактовLogic,gatelr,gatelSиGate

7 Testne p1,p2,asn2 ; Повторить, если адресат

4.25. Организация вывода временных рядов изGpss-модели

4.26. Краткая характеристика языкаPlus

4.27. Команды gpss World

4.28. Диалоговые возможностиGpssWorld

4.29. Отличия между gpss World и gpss/pc

Глава 5. Моделирование вычислительных и операционных систем

5.1. Операционные системы компьютеров

5.2. Сети и системы передачи данных

5.3. Проблемы моделирования компьютеров и сетей

Глава 6. Основы моделирования процессов

6.1. Производственные процессы

6.2. Распределительные процессы

6.3. Процессы обслуживания клиентов

6.4. Процессы управления разработками проектов

Глава 7. Задания для самостоятельной работы Задание 1. Моделирование разливной линии

Глава 8. Проектирование имитационных моделей с помощью интерактивной системы имитационного моделирования

8.1. Структура интерактивной системы имитационного модели­рования

8.2. Построение концептуальной схемы модели

8.3. Параметрическая настройка модели

8.4. Генератор формул

8.5. Управление экспериментом

8.6. Запуск эксперимента и обработка результатов моделирования

8.7. Управление проектами и общей настройкой системы

8.8. Пример построения модели средствамиIss2000

Глава 9. Технология имитационногомоделирования

9.1. Имитационные проекты

9.2. Организация экспериментов

9.3. Проблемы организации имитационных экспериментов

9.4. Оценка точности результатов моделирования

9.5. Факторный план

9.6. Дисперсионный анализAnovAв планированииэкспериментов

9.7. Библиотечная процедураAnova

9.8. Технология проведение дисперсионного анализа в системеGpss World

9.9. Особенности планирования экспериментов

9.10. Нахождение экстремальных значений на поверхности отклика

9.11. Организация экспериментов вGpssWorld

9.12. Выбор наилучшего варианта структуры системы

Глава 10. Примеры принятия решений с помощью имитационного моделирования

10.1. Моделирование производственного участка

10.2. Моделирование технологического процесса ремонта и заме­ны оборудования

Глава 11. Задания для имитационных проектов

Приложение Системные сча

Сча транзактов

Сча блоков:

Сча одноканальных устройств:

Сча очередей

Сча таблиц

Сча ячеек и матриц ячеек сохраняемых величин:

Сча вычислительных объектов

Сча списков и групп

Список литературы

SECTION_A EQU 1

SECTION_B EQU 2 .

SECTION_A STORAGE 2

SECTION_B STORAGE 3

ASSIGN 1,1

ASSSIGN 1,2

ENTER PI

Пример 4.49

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

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

В модели с несколькими очередями могут возникнуть одно­временные события прихода клиента и конца обслуживания касси­ром. Если событие «приход» будет рассмотрено ранее события «ко­нец обслуживания», то устройство в момент проверки будет счи­таться занятым и вновь прибывший клиент не сможет занять касси­ра. Поэтому необходимо обеспечить приоритетность в обработке события «освобождения кассира». Это можно сделать с помощью задания уровня приоритета (блок PRIORITY 1) между блоками GENERATE и ADVANCE.

Для реализации поиска свободного кассира используется блок TEST E, помеченный меткой NEXT, который проверяет, свободен ли кассир. Максимальный номер кассира запоминается в параметре транзакта Р5. По этому же параметру образуется цикл для проверки всех устройств (блок LOOP). Номер первого свободного кассира запоминается в параметре транзакта РЗ, и транзакт передается на обслуживание. Если все устройства заняты, то транзакт переходит к следующему блоку после LOOP, т.е. к блоку TEST, помеченному меткой SIT. Этот блок сравнивает длины очередей для всех уст­ройств. Первоначально для сравнения в параметр Р2 транзакта по­мещается число 1000. Аналогично организуется цикл по всем оче­редям с помощью параметра Р1 транзакта. Первоначально туда по­мещается максимальный номер очереди. Если длина следующей просматриваемой очереди меньше предыдущей, то запоминается номер очереди в параметре РЗ и ее длина в параметре Р2 транзакта. После просмотра всех очередей (перехода к следующему блоку по­сле LOOP) в этих параметрах окажется номер минимальной очере­ди и ее длина, соответственно.


Приведем текст соответствующей программы.

* Функция времени обслуживания

020 MEAN FUNCTION RN1,D5

1,450/.29,750/.61,1000/.85,1500/1.0,3000

* Функция времени прихода

030 ARRIVEL FUNCTION RN1,D6

0.0,50/.25,100/.60,150/.80,200/.90,250/1.0,300

*

040 Т_1 TABLE Ml,200,600,10 ; Сбор данных о времени пребывания

050*************************************************************

055 GENERATE FNSARRIVEL ; Приход клиентов

060 ASSIGN 1,7 ; Задать МАХ номер очереди

065 ASSIGN 2,1000 ; Запомнить большое число

070 ASSIGN 4,FN$MEAN ; Запомнить в Р4 время обслуживания

075 ASSIGN 5,7 ; Задать МАХ номер кассира

080 NEXT TESTE F*5,0,FAC ; Есть свободный кассир?

085 ASSIGN 3,P5 ; «Да» - запомнить его номер

090 TRANSFER ,QUI ; Идти на обслуживание

95 РАС LOOP 5,NEXT ; Цикл по всем кассирам

100*************************************************************

105 SIT TESTL Q*1,P2,SIS ; Поиск MIN очереди

110 ASSIGN 3,P1 ; Запомнить номер очереди

110 ASSIGN 2,Q*1 ; Запомнить длину очереди

120 SIS LOOP 1,SIT ; Цикл по всем очередям

125 QUI QUEUE РЗ ; Встать в очередь

130 SEIZE РЗ ; Занять кассира

135 DEPART РЗ ; Покинуть очередь

140 PRIORITY 1

145 ADVANCE P4 ; Обслужиться

150 RELEASE РЗ ; Освободить кассира

155 TABULATE T_l ; Время пребывания

165 TERMINATE

170*********************************************************

175 GENERATE 14400 ; Таймер времени работы 180 TERMINATE 1

Отчет с результатами моделирования:


Гистограмма времени пребывания в системе приведена на рис. 4.12

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


4.21. Обработка транзактов, принадлежащих одному семейству

Кроме блока GENERATE, для создания транзактов может ис­пользоваться блок SPLIT (РАЗДЕЛИТЬ), который выполняет функ­цию копирования транзакта, входящего в него. Этот транзакт назы­вается начальным или порождающим. Все копии формируются в момент входа начального транзакта в блок SPLIT. Каждая новая ко­пия становится членом семейства (ансамбля) транзактов, порож­денных одним начальным транзактом, который был создан блоком GENERATE.

Блок имеет такой формат:

SPLIT A,[B],|C]

Таблица 4.47

Операнд А может быть положительным целым, СЧА, СЧА*СЧА. Если вычисленное значение операнда А равно нулю, то блок SPLIT не выполняет никаких операций. После создания копий начальный транзакт пытается перейти к очередному блоку.

Операнд В задает блок, в который переходят копии начального транзакта. Операнд может быть именем (меткой), положительным целым, СЧА, СЧА*СЧА (в трех последних случаях операнд В задает номер блока). Значение операнда В вычисляется для каждой копии отдельно.

Операнд С задает параметр транзакта, который используется для присвоения копиям последовательных номеров. Операнд С может быть именем, положительным целым, СЧА, СЧА* СЧА.

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

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

Пример 4.50

В цех каждые 14±3 мин поступают партии деталей. Каждая пар­тия состоит из 3±2 деталей. Все детали поступают на обработку стан­ком. Время обработки составляет 3+1 мин.


COPY FUNCTION RN1,C2 0,1/1,6

GENERATE 14,3

SPLIT FN$COPY

SEIZE MACHINE

ADVANCE 3,1

RELEASE MACHINE

TERMINATE 1

Для синхронизации движения транзактов, принадлежащих од­ному семейству, используются блоки MATCH (СОГЛАСОВАТЬ), ASSEMBLE (СОБРАТЬ), GATHER (СОЕДИНИТЬ).

Блок MATCH синхронизирует движение транзактов с другим блоком MATCH. Формат блока:

MATCH A

Операнд А указывает имя сопряженного блока. Сопряженным блоком является также блок MATCH.

Пример 4.51

В локальной сети рабочая станция опрашивается каждые 30 мс. Если на рабочей станции есть сообщение для передачи, то оно зани­мает канал.

LABEL1 MATCH LABEL2 ; Сообщение ждет опроса рабочей станции SEIZE CHANNEL ; Занять канал

LABEL2 MATCH LABEL1 ; Опрос рабочей станции

ADVANCE 30 ; Время до следующего опроса

При входе транзакта - сообщения в блок MATCH с меткой LABEL1 он будет ждать (в списке синхронизации) момента, когда другой опросный транзакт, принадлежащий тому же семейству, не пойдет в сопряженный блок MATCH с меткой LABEL2. Только по­сле этого сообщение займет канал CHANNEL, а опросное сообщение перейдет в блок ADVANCE.

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

ASSEMBLE A

Операнд А задает счетчик сборки, указывающий сколько членов одного семейства должны быть объединены. Операнд А может быть именем, положительным целым, СЧА, СЧА*СЧА. Первоначальное значение операнда А не должно быть меньше или равно единице.

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

Формат блока:

GATHER A

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