Библиографическое описание:

Баженов Р. И., Лопатин Д. К. Об имитационном моделировании экономических процессов средствами специализированной программной среды // Молодой ученый. — 2014. — №4. — С. 88-92.

Имитационное моделирование является мощным средством исследования разнообразных систем. Такой способ позволяет без материального эксперимента спрогнозировать поведение системы и получить разнообразные варианты как исходных, так и результирующих данных.

В экономической деятельности достаточно часто возникает потребность в моделировании. Исследователи выделяют несколько групп математических моделей экономических систем: 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.

Обсуждение

Социальные комментарии Cackle