Файл: Виды программного обеспечения. Основные требования, предъявляемые к программному обеспечению..pdf
Добавлен: 28.06.2023
Просмотров: 42
Скачиваний: 2
3 ИМИТАЦИОННАЯ МОДЕЛЬ
3.1 Анализ исходных данных. Предварительный прогноз результатов.
Все данные, необходимые для постройки модели, присутствуют в постановке задачи.
Имеются следующие данные:
1. Интервал между прибытием танкеров: 16 ± 12 ч.
2. Время, затрачиваемое на погрузку танкера: 12 ± 6.
3. Количество танкеров, которые могут одновременно загружаться: два танкера.
4. Время, затрачиваемое на буксировку танкера для причаливания: 1. час.
5. Время, затрачиваемое на буксировку танкера для отчаливания: 1. час.
6. Количество буксиров: один.
7. Приоритетность предоставления буксира: у операции отчаливания приоритет выше.
Обслуживающими устройствами в моделируемой системе являются танкеры.
Опишем параметры и переменные модели.
Входными переменными являются следующие:
- переменные, которые описывают интенсивность входного потока;
- переменные, которые описывают интенсивность обслуживания в порту;
- переменные, которые описывают интенсивность обслуживания при буксировке,
- переменные, которые описывают количество одновременно обслуживаемых танкеров.
Выходными переменными будут следующие:
- коэффициент загрузки порта,
- коэффициент загрузки буксира,
- количество загруженных танкеров,
- среднее время погрузки,
- средняя длина очереди к буксиру для причаливания,
- средняя длина очереди на погрузку,
- средняя длина очереди к буксиру для отчаливания,
- - среднее время ожидания в очереди к буксиру для причаливания,
- среднее время ожидания в очереди на погрузку,
- среднее время ожидания в очереди к буксиру для отчаливания.
Для некоторых выходных переменных сразу можно задать определенные ограничения, в пределах которых должны быть значения данных переменных.
Например, коэффициент загрузки должен быть в пределах от 0 до 1.
Среднее время погрузки будет находиться в пределах от 6 до 18 часов.
Также можно задать некоторые зависимости между входными и выходными переменными. К примеру, чем больше среднее время обслуживания превышает среднее время поступления заявок, тем больше будет образовываться очередь.
В нашем случае среднее время погрузки меньше чем среднее время поступления танкеров. Соответственно, очередь не должна быть большой, особенно если учесть, что в порту может обслуживаться одновременно 2 танкера.
Однако, для постановки танкера под погрузку и для вывода его из порта после погрузки необходимо использование буксира. Порт имеет только один буксир, поэтому сказать однозначно о результатах моделирования без проведения эксперимента сложно.
Можно только предположить, что при таких значениях входных переменных порт будет работать в нормальном режиме без перегрузок.
3.2 Построение схемы
Очевидно, что данная система массового обслуживания относится к классу СМО без отказов.
Танкеры сначала стоят в очереди к буксиру для причаливания, потом заводятся буксиром в порт, портом стоят в очереди на погрузку, потом загружаются нефтью, потом стоят в очереди к буксиру для отчаливания, потом выводятся буксиром из порта.
Данный процесс можно отобразить следующей Q-схемой (рисунок 3.1):
Буксир
Порт
Буксир
Рисунок 3.1 - Q-схема модели
3.3 Создание имитационной модели.
Проведем создание имитационной модели.
Одним из важных факторов, которые могут влиять на результаты моделирования, является правильный выбор единицы модельного времени. Согласно условиям задачи все временные показатели измеряются в часах, поэтому логичным будет выбрать в качестве единицы модельного времени именно час.
Модель будет состоять из одного сегмента.
В модели будут присутствовать 2 обслуживающих устройства:
1. Буксир – одноканальное устройство. Назовем его buksir.
2. Порт – двухканальное устройство. Назовем его port.
Кроме обслуживающих устройств, в модели будут присутствовать 3 очереди:
1. Очередь к буксиру для причаливания. Назовем ее ochBuksir1.
2. Очередь в порту на погрузку. Назовем ее ochPort.
3. Очередь к буксиру для отчаливания. Назовем ее ochBuksir2.
В рабочем сегменте должны присутствовать следующие объекты:
- источник заявок,
- буксир,
- порт,
- очередь к буксиру для причаливания,
- очередь в порту на погрузку,
- очередь к буксиру для отчаливания.
Разберем данные объекты.
1. Источник заявок.
Объявляется при помощи команды generate. Так как надо генерировать заявки с интервалом 16 ± 12 ч, то необходимо задать первые два параметра данной команды – средний интервал и отклонение:
10 generate 16,12
2. Очередь к буксиру для причаливания.
Транзакты в процессе движения могут задерживаться перед блоками, вход в которые в данных условиях невозможен. В нашем случае при занятости буксира, танкер вынужден ожидать его освобождения. При поступлении транзактов на вход задерживающих блоков образуются очереди. Для сбора статистики об очередях в местах задержки ставят блоки queue. Эти блоки сами по себе не создают очередь, а лишь являются средством ее регистрации. При входе транзакта в блок queue текущая длина очереди получает приращение. Уход из очереди отображается блоком depart.
Параметрами данных команд являются названия очередей, в которые попадает/выходит транзакт и количество занимаемых/освобождаемых мест в очереди.
Соответственно обработка очереди к буксиру для причаливания моделируется следующими командами:
25 queue ochBuksir1
40 depart ochBuksir1
3. Очередь к буксиру для отчаливания.
Обработка очереди к буксиру для отчаливания моделируется следующими командами:
130 queue ochBuksir2
150 depart ochBuksir2
4. Буксир
Буксир является обслуживающим устройством.
Устройства моделируют объекты, в которых может происходить обработка транзактов. Как правило, она связана с затратами времени. Особенность одноканальных устройств состоит в том, что каждое из них в данный момент времени может быть занято лишь одним транзактом. Существует аналогия между устройствами GPSS и каналами систем массового обслуживания. В GPSS имеется возможность моделировать прерывания устройств. Существуют средства логической проверки состояния устройств. Каждое из действий с устройством отображается в модели определенным блоком.
Захват и освобождение устройства моделируются соответственно блоками seize и release.
Кроме захвата и освобождения устройства необходимо провести задержку транзакта в устройстве. Для этого используется блок advance, который моделирует временною задержку транзакта в течение определенного интервала. Время буксировки равно одному часу.
Соответственно обработка обслуживания буксиром танкеров на погрузку:
30 seize buksir
50 advance 1
60 release buksir
и танкеров на выход из порта:
140 seize buksir
160 advance 1
170 release buksir
5. Очередь в порту для погрузки.
Обработка очереди в порту для погрузки моделируется следующими командами:
70 queue ochPort
90 depart ochPort
6. Порт
Порт является обслуживающим устройством, которое имеет 2 канала обслуживания.
Соответственно, данное устройство, в отличие от одноканального, требует явного объявления.
Для этого используется оператор storage, в котором задается имя устройства и количество каналов:
5 port storage 2
Захват и освобождение многоканального устройства моделируются соответственно блоками enter и leave.
Соответственно обработка погрузки танкеров:
80 enter port
100 advance 12,6
110 leave port
7. Приоритетность.
Согласно условию задачи, если в услугах буксира нуждаются сразу несколько танкеров, приоритет отдается операции отчаливания.
В модели имеется 2 очереди к буксиру, однако транзакты, находящиеся в данных очередях равноценны. Используем такой прием: при входе транзакта в модели зададим ему приоритет, равный единице, а после того, как транзакт обслужиться в порту, повысим ему приоритет.
Для задания приоритетов используется оператор priority.
Присвоение приоритета при входе в порт:
20 priority 1
Повышение приоритета после погрузки:
120 priority 2
Теперь если будут находится трнзакты в обоих очередях, то приоритет будет принадлежать транзактам из очереди на отчаливание.
Запуск модели на исполнение производится при помощи блока start с параметром, который задает общее число транзактов, которые необходимо провести через модель:
230 start 500
Полный код программы приведен ниже:
5 port storage 2
10 generate 16,12
20 priority 1
25 queue ochBuksir1
40 seize buksir
25 depart ochBuksir1
50 advance 1
60 release buksir
70 queue ochPort
80 enter port
90 depart ochPort
100 advance 12,6
110 leave port
120 priority 2
130 queue ochBuksir2
140 seize buksir
150 depart ochBuksir2
160 advance 1
170 release buksir
180 terminate 1
230 start 500
4 АНАЛИЗ РЕЗУЛЬТАТОВ
В результате прогона модели получены следующие результаты:
GPSS World Simulation Report - 1.101.1
Saturday, June 06, 2015 23:59:25
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 7991.130 19 1 1
NAME VALUE
BUKSIR 10002.000
OCHBUKSIR1 10001.000
OCHBUKSIR2 10004.000
OCHPORT 10003.000
PORT 10000.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 501 0 0
2 PRIORITY 501 0 0
3 QUEUE 501 0 0
4 SEIZE 501 0 0
5 DEPART 501 0 0
6 ADVANCE 501 0 0
7 RELEASE 501 0 0
8 QUEUE 501 0 0
9 ENTER 501 0 0
10 DEPART 501 0 0
11 ADVANCE 501 1 0
12 LEAVE 500 0 0
13 PRIORITY 500 0 0
14 QUEUE 500 0 0
15 SEIZE 500 0 0
16 DEPART 500 0 0
17 ADVANCE 500 0 0
18 RELEASE 500 0 0
19 TERMINATE 500 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
BUKSIR 1001 0.125 1.000 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OCHBUKSIR1 1 0 501 487 0.001 0.014 0.511 0
OCHPORT 1 0 501 489 0.003 0.041 1.702 0
OCHBUKSIR2 1 0 500 460 0.003 0.041 0.510 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
PORT 2 1 0 2 501 1 0.748 0.374 0 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
501 1 7996.133 501 11 12
502 0 8004.852 502 0 1
Проанализируем полученные результаты.
Коэффициент загрузки буксира – 12.5% – большую часть времени он простаивает. Это логично – танкеры подходят в среднем каждые 16 часов, а буксиру на танкер необходимо потратить 2 часа (час на причаливание и час на отчаливание). Соответственно отношение двух часов к шестнадцати составляет 2 / 16 = 1 / 8 = 0.125, что и составляет 12.5%.
Максимальная длина очереди к буксиру на причаливание составляла один танкер.
Максимальная длина очереди к буксиру на отчаливание также составляла один танкер.
Коэффициент загрузки порта - 37.4% – большую часть времени он простаивает. Среднее число грузящихся танкеров – 0.748.
Средняя длинна очереди к буксиру на причаливание – 0.001 танкера.
Средняя длинна очереди на погрузку – 0.003 танкера.
Средняя длинна очереди к буксиру на отчаливание – 0.003 танкера.
Среднее время простоя танкера в очереди к буксиру на причаливание – 0.014 часа.
Среднее время простоя танкера в очереди на погрузку – 0.041 часа.
Среднее время простоя танкера в очереди к буксиру на отчаливание – 0.041 часа.
Среднее время нахождения танкеров в порту состоит из времен ожидания в очередях и среднего времени погрузки:
0.014 часа + 0.041 + 0.041 + 12 часов = 12.096 часов.
ЗАКЛЮЧЕНИЕ
В ходе выполнения курсового проекта было проведено имитационное моделирование системы массового обслуживания, которая представляет собой морской порт.
Была поставлены следующие задачи:
– смоделировать работу порта в течение одного года (500 танкеров),
– определить среднее время нахождения танкеров в порту,
– определить среднюю длину очереди на погрузку.
По результатам работы получились следующие данные:
–среднее время нахождения танкеров в порту: 12.096 часов,
–средняя длина очереди на погрузку: 0.003 танкера.
СПИСОК ЛИТЕРАТУРЫ
1. Кудрявцев Е.М. GPSS World. Основы имитационного моделирования различных систем / Е. М. Кудрявцев. – М.: ДМК Пресс, 2004. – 320 с.
2. Томашевский В.М. / Имитационное моделирование в среде GPSS / В.М. Томашевский, E.Г. Жданова. – М.: Бестселлер, 2003. – 416 с.
3. Алиев Т.И. Основы моделирования дискретных систем / Т.И. Алиев. – СПб: СПбГУ ИТМО, 2009. – 363 с.
4. Томашевский B.H. Решение практических задач методами компьютерного моделирования: Учеб. Пособие / B.H. Томашевский,
Е.Г. Жданова, А.А. Жолдаков. – K.: Изд-во "НАУ", 2001. – 268 c.