Имитационное моделирование является мощным средством исследования разнообразных систем. Такой способ позволяет без материального эксперимента спрогнозировать поведение системы и получить разнообразные варианты как исходных, так и результирующих данных.
В экономической деятельности достаточно часто возникает потребность в моделировании. Исследователи выделяют несколько групп математических моделей экономических систем: 1) модели, достаточно точно отражающие какую-либо одну сторону определенного экономического процесса; 2) модели, описывающие реальные процессы в экономических системах малого и среднего масштаба, подверженные воздействию случайных и неопределенных факторов; 3) модели больших или очень больших (макроэкономических систем) систем. В рамках работы нас будет интересовать модели второй группы, которые можно определить как модели систем массового обслуживания, являющиеся непрерывно-стохастическими системами.
Имитационное моделирование непрерывно-стохастических систем можно проводить в разнообразных системах. В распространенных системах программирования Delphi, Visual Basic, Visual C, Pascal для реализации систем массового обслуживания применяются алгоритм календаря событий, событийно-управляющие средства сред. На рынке имеются специализированные среды, такие как GPSS, Arena, MicroSaint и др.
Для примера возьмем хорошо известную задачу, и на ее примере покажем технологию использования специализированной среды моделирования [2].
Постановка задачи. На маршруте работают два микроавтобуса (А и Б), каждый из которых имеет n мест. Микроавтобус А пользуется большей популярностью, нежели микроавтобус Б поскольку водитель микроавтобуса A ездит аккуратнее и быстрее. Поэтому пассажир, подойдя к остановке, садится в микроавтобус Б только в том случае, если микроавтобуса А нет. Микроавтобус отправляется на маршрут только в том случае, если все места в нем заняты. Пассажиры приходят к остановке через t1 ± t2 минут и, если нет микроавтобусов, становятся в очередь. Если очередь больше L человек, потенциальный пассажир уходит из очереди. Предполагается, что все пассажиры едут до конца маршрута. На прохождение маршрута микроавтобус А тратит t3 ± t4 минут, микроавтобус Б — t5 ± t6 минут. После того, как пассажиры освободят микроавтобус (время освобождения — t7 ± t8 минут), он едет в обратном направлении. Плата за проезд составляет S единиц стоимости. Автопредприятие столько же теряет (недополучает), если пассажир, придя на остановку, не ждет, а уходит (учесть это при определении затрат). Найти оценку времени ожидания в очереди и времени, которое тратит пассажир на поездку. Определить, при каком n (n не более 25) время ожидания в очереди будет минимальным. Для этого значения n определить выручку автопредприятия за день, если микроавтобусы работают 10 часов в сутки.
Данные по характеристикам задачи (Параметры =Значение): n 16; t1±t2 0,6±0,2; t3±t3 22±5; t5±t6 28±5; t7±t8 3±1; L 30; S 2,5.
Предложенная задача представляет собой двуканальную систему массового обслуживания (СМО) с отказами. Здесь имеет место марковский случайный процесс с дискретными состояниями и непрерывным временем. Для решения таких задач необходимо построить граф состояний, составить систему уравнений Колмогорова и решить ее [1]. Решение уравнений Колмогорова существует для случая многоканальной СМО с отказами. Однако в нашем случае оно осложнено более сложной процедурой обслуживания, как выбором канала обслуживания, так и разным временем облуживания в каналах. Поэтому можно сделать вывод, что необходимо имитационное моделирование.
Для реализации задачи можно использовать несколько доступных специализированных программных средств.
Система GPSS World — широко известная система, давно присутствующая на рынке. Существует огромное количество материала, представленного в сети Интернет. Описываемая система обладает развитыми средствами организацию сбора статистических данных о работе модели.
Система Arena предоставляет удобный интерфейс для разработки модели и позволяет конструировать модель из блоков. Руководство пользователя написано достаточно понятно. Однако русскоязычной литературы описывающей систему Arena практически нет. Можно сказать, что система Arena обладает мощным инструментом моделирования, позволяет разрабатывать «привлекательные» анимационные программы.
В системе Micro Saint модель также собирается из блоков, проводиться описание поведения. По версии М. А. Кораблина [3] данный программный продукт широко применяется в американских университетах для обучения имитационному моделированию экономических процессов.
Система AnyLogic обладает возможностями для создания моделей широкого класса систем: моделирование непрерывных величин; моделирование дискретных событий; моделирование взаимодействия непрерывных и дискретных компонент и др.. Модель в AnyLogic состоит из агентов (блоков), которым необходимо сделать описание поведения на языке программирования, похожим на C.
Программный пакет iThink — средство имитационного моделирования производственных и финансовых проектов и процессов. iThink- пакет, предназначенный для разработки имитационных потоковых моделей поведения сложных систем. Модель в системе собирается из блоков [4].
Исходя из анализа возможностей доступных систем моделирования, опыта работы с системами имитационного моделирования, для реализации модели необходимо выбрать систему GPSS World.
Приведем решение задачи в специализированной программной системе GPSS World.
5 mes variable 16 ; количество мест в автобусе
10 GENERATE ,,,1 ;генерация транзакта
15 SAVEVALUE 1,0 ; поездок ноль
20 SPLIT 1,AUTO2 ;раздвоение транзакта
30 AUTO1 ASSIGN 1,1 ; автобус А
35 TRANSFER ,OSTA ; автобус А поехал на остановку А
40 AUTO2 ASSIGN 1,2 ; автобус Б
45 TRANSFER ,OSTA ; автобус Б поехал на остановку А
; остановка А
100 OSTA TEST E P1,1,A2A ; это автобус А? иначе автобус Б
;автобус А на остановке А
110 SEIZE OSTA1 ; занял свое место на остановке А
120 AU11 TEST GE Q1,V$mes,WA1 ; есть 16 пассажиров? иначе ждать
125 SEIZE AU1 ; автобус А занят
130 RELEASE OSTA1 ; освобождаем остановку А
135 SAVEVALUE 1+,1 ; кол-во поездок увеличиваем на 1
140 DEPART 1,V$mes ; забираем 16 пассажиров
150 ADVANCE 1320,300 ; едем до остановки Б
160 ADVANCE 180,60 ; разгрузка пассажиров
170 RELEASE AU1 ; автобус А свободен
180 TRANSFER ,OSTB
190 WA1 ADVANCE 1 ; ждать пассажиров- автобус А
195 TRANSFER ,AU11
;автобус Б на остановке А
210 A2A SEIZE OSTA2 ; занял свое место на остановке А
220 AU22 TEST E F$AU1,1,WA2 ; если автобус А занят и
230 TEST E F$OSTA1,0,WA2 ;если автобуса А нет на остановке А,
;иначе ждать
235 TEST GE Q1,V$mes,WA2 ; есть 16 пассажиров? иначе ждать
240 SEIZE AU2 ; автобус Б занят
245 DEPART 1,V$mes ; забираем 16 пассажиров
246 SAVEVALUE 1+,1 ; кол-во поездок увеличиваем на 1
247 RELEASE OSTA2 ; освобождаем остановку А
250 ADVANCE 1680,300 ; едем до остановки Б
255 ADVANCE 180,60 ; разгрузка пассажиров
260 RELEASE AU2 ; автобус Б свободен
270 TRANSFER ,OSTB
280 WA2 ADVANCE 1 ; ждать пассажиров - автобус Б
290 TRANSFER ,AU22
; остановка Б
300 OSTB TEST E P1,1,AU2B ; это автобус А? иначе автобус Б
;автобус А на остановке Б
305 SEIZE OSTB1 ; занял свое место на остановке Б
310 SEIZE AU1 ; автобус А занят
315 RELEASE OSTB1 ; освобождаем остановку Б
320 ADVANCE 1320,300 ; едем до остановки А
330 RELEASE AU1 ; автобус Б свободен
340 TRANSFER ,OSTA
;автобус Б на остановке Б
400 AU2B SEIZE OSTB2 ; занял свое место на остановке Б
410 SEIZE AU2 ; автобус Б занят
420 RELEASE OSTB2 ; освобождаем остановку Б
430 ADVANCE 1680,300 ; едем до остановки А
440 RELEASE AU2 ; автобус Б свободен
450 TRANSFER ,OSTA
; генерация пассажиров на остановке А
1000 GENERATE 36,12
1002 TEST L Q1,30,OTKAZ ;если очередь меньше 30
1010 QUEUE 1 ; то встаем в очередь
1020 TERMINATE
1030 OTKAZ TERMINATE ;иначе отказ
; таймер
2000 GENERATE 36000
2010 TERMINATE 1
Проведем анализ модели методом средних величин.
Количество транзактов, имитирующих пассажиров должно быть равно Общее_время / среднее время,_через_которое_приходит_пассажир, то есть 36000/36=1000.
Количество поездок автобусом А можно оценить следующим образом: Общее_время / (время_в_пути + время_на_разгрузку + время_в_пути). Получается 36000/(1320+180+1320)≈12.7=13
Аналогично для автобуса Б получается 36000/(1680+180+1680) ≈10.1=10. Так как n=16 и L=30, следовательно, на остановке остается 30–16=14 пассажиров, автобус Б не будет практически ждать наполнения остановки для себя, так как за время появления 16 пассажиров в отсутствие автобуса А, то есть 16*36=576, автобус А не успеет вернуться 576 < (1320+180+1320).
Оценим количество перевезенных пассажиров: (Кол-во_поездок_автобуса_А+ Кол-во_поездок_автобуса_Б)*Кол-во_мест. Получается (13+10)*16= 368.
Приведем результаты моделирования (расчетные, экспериментальные): количество транзактов, имитирующих пассажиров =1007 (1000); количество поездок автобусом А= 13 (13); количество поездок автобусом Б=10(11); количество перевезенных пассажиров=368(384).
Сравнив характеристики, полученные расчётным путём с характеристиками, полученными при моделировании можно сделать вывод, что модель адекватна, так как сравниваемые величины примерно одинаковы.
Проведем варьирование параметра n и составим таблицу (табл. 1).
Таблица 1
Экспериментальные данные по варьированию параметра n
Кол-во мест в автобусе n |
Время ожидания в очереди (сек) |
Кол-во поездок |
16 |
2216.469 |
24 |
17 |
2131.106 |
23 |
18 |
2003.527 |
23 |
19 |
1923.759 |
23 |
20 |
1738.993 |
23 |
21 |
1645.722 |
23 |
22 |
1523.649 |
23 |
23 |
1430.377 |
23 |
24 |
1370.920 |
23 |
25 |
1345.081 |
22 |
Из результатов видно, что минимальное время ожидания пассажира в очереди достигается при n=25.
Для определения среднего времени на поездку требуется изменить программу внесением в нее два устройства AU10 и AU20, моделирующие автобусы только в поездке от остановки А до остановки Б. Тогда можно в статистике по устройствам посмотреть необходимый параметр.
Проведем несколько экспериментов (табл. 2). В колонке «Время нахождения в пути (сек)» будем отмечать время занятости для автобуса А. Таким образом будем находить минимальное время в пути пассажира.
Таблица 2
Экспериментальные данные для оценки среднего времени ожидания и среднего времени нахождения в пути пассажира
Кол-во мест в автобусе, n |
Время ожидания в очереди, (сек) |
Время нахождения в пути, (сек) |
Кол-во поездок |
16 |
2335,370 |
1500,369 |
23 |
16 |
2326,734 |
1462,386 |
23 |
16 |
2265,165 |
1348,345 |
23 |
16 |
2296,681 |
1428,516 |
24 |
16 |
2213,050 |
1486,622 |
24 |
16 |
2204,603 |
1439,504 |
24 |
16 |
2290,467 |
1501,712 |
24 |
16 |
2298,433 |
1466,535 |
23 |
16 |
2324,123 |
1510,605 |
23 |
16 |
2341,622 |
1549,127 |
23 |
Средние для n=16 |
2289,6248 |
1469,3721 |
23,4 |
25 |
1345,081 |
1471,852 |
22 |
25 |
1308,677 |
1419,058 |
23 |
25 |
1325,772 |
1442,802 |
22 |
25 |
1350,684 |
1543,006 |
22 |
25 |
1329,294 |
1327,873 |
22 |
25 |
1269,918 |
1419,938 |
23 |
25 |
1345,030 |
1481,281 |
22 |
25 |
1326,510 |
1537,458 |
22 |
25 |
1340,917 |
1392,622 |
23 |
25 |
1338,363 |
1490,915 |
22 |
Средние для n=25 |
1328,0246 |
1452,6805 |
22,3 |
Таким образом, при n=25 пассажиры на первой остановке ждут 1328 сек. и количество поездок равно в среднем 22.3. Выручка составляет в этом случае 22.3*25*2.5=1393.75 условных единиц цены.
Для более точного моделирования предложенной задачи можно заменить равномерные распределения на экспоненциальные, например, 150 ADVANCE (EXPONENTIAL(1,0,1320)). В результате эксперимента было получено, что среднее время нахождения пассажира в очереди сократилось примерно на 100 сек. и увеличилось среднее количество поездок, а значит и выручка.
Для более четкой постановки задачи, можно добавить наполнение пассажиров на второй остановке по такому же алгоритму, как и на первой и чтобы автобусы двигались всегда заполненными. В результате моделирования получено, что при n=16 пассажиры на первой остановке ждут 4114 сек., на второй остановке 2063 сек. и количество поездок равно 40. Выручка составляет в этом случае 40*16*2.5=1600 условных единиц цены. При n=25 пассажиры на первой остановке ждут 3032 сек., на второй остановке 1076 сек. и количество поездок равно 37. Выручка составляет в этом случае 37*25*2.5=2312.5 условных единиц цены.
Таким образом, использование специализированной программной среды позволило достаточно быстро построить модель задачи, провести исследование ее различных параметров с различных сторон.
Литература:
1. Бережная Е. В. Математические методы моделирования экономических систем/ Е. В. Бережная, В. И. Бережной. — М.: Финансы и статистика, 2001.
2. Кийкова Е. В. Имитационное моделирование экономических процессов. Учебное пособие: учебно-методическое пособие для студентов высших учебных заведений, обучающихся по специальности «Прикладная информатика (по областям)" и другим специальностям / Е. В. Кийкова, Е. Г. Лаврушина. — Владивосток: ВГУЭС, 2007.
3. Кораблин М. А. Информатика управленческих решений. — М.: Солон-Пресс, 2003.
4. Корнеев В. В. База данных интеллектуальная обработка информации / В. В. Корнеев, А. Ф. Гареев. С. В. Васютин, В. В. Райх. — М.: Нолидж, 1996.