'
Научный журнал «Вестник науки»

Режим работы с 09:00 по 23:00

zhurnal@vestnik-nauki.com

Информационное письмо

  1. Главная
  2. Архив
  3. Вестник науки №5 (62) том 4
  4. Научная статья № 128

Просмотры  43 просмотров

Кондратьев А.А., Попова Т.М.

  


РАЗРАБОТКА ИМИТАЦИОННОЙ МОДЕЛИ РАБОТЫ НАЗЕМНОГО МЕТРОПОЛИТЕНА В СРЕДЕ GPSS WORLD *

  


Аннотация:
представленная работа посвящена имитационному моделированию процесса обслуживания пассажиров в метрополитене, при условии оптимальности загрузки транспорта в системе GPSS World   

Ключевые слова:
имитационная модель, GPSS World, моделирование   


УДК 004.942+519.876.5

Кондратьев А.А.

магистрант

Хабаровский филиал

Тихоокеанский государственный университет

 (г. Хабаровск, Россия)

 

Научный руководитель:

Попова Т.М.

канд. физ.-мат. наук

Хабаровский филиал

Тихоокеанский государственный университет

 (г. Хабаровск, Россия)

 

РАЗРАБОТКА ИМИТАЦИОННОЙ МОДЕЛИ

РАБОТЫ НАЗЕМНОГО МЕТРОПОЛИТЕНА

В СРЕДЕ GPSS WORLD

 

Аннотация: Представленная работа посвящена имитационному моделированию процесса обслуживания пассажиров в метрополитене, при условии оптимальности загрузки транспорта в системе GPSS World. 

 

Ключевые слова: имитационная модель, GPSS World, моделирование.

 

В наши дни моделирование востребовано во многих отраслях профессиональной и научной деятельности человека.

Одним из наиболее распространенных способов моделирования сложных систем является имитационное компьютерное моделирование процессов реального мира. Имитационные модели не только отражают реальность с той или иной степенью точности, но и имитируют ее, представляют собой последовательность алгоритмов, реализуемого компьютерной программой, выполнение которой имитирует последовательность смены состояний в системе. Для разработки имитационной модели в среде GPSS необходимо установить программу, бесплатную версию которой можно скачать на сайте http://www.minutemansoftware.com, предназначенной для студентов.

В представленной работе разработана, построена и исследована имитационная модель облуживания пассажиров в метрополитене с целью определения оптимальной стоимости проезда в среде GPSS WORLD.

Рассмотрим задачу.

Мэрия города NN планирует построить систему городского наземного метро, которая будет состоять из одной линии и пяти станций. Параметры, которые заложены в проект, задаются следующими:

  • Вместимость поезда 400 человек.
  • Время проезда между станциями распределено по нормальному закону с математическим ожиданием, заданным в таблице 1 и дисперсией 3 сек.
  • Время стоянки поезда на станции распределено нормально с математическим ожиданием 15 сек и дисперсией 1 сек.
  • Пассажиры приходят на станцию в соответствии с пуассоновским распределением с интенсивностью, указанной в таблице 2. Каждый пассажир едет со станции А на станцию В. Считаем, что поток пассажиров всегда постоянный.
  • Вероятность того, что пассажир, севший на станции А в поезд, выйдет на станции В, указывается в таблице 3.
  • Всего на линии работает 5 поездов, которые в начале дня выходят один за другим через 5 минут со станции 1. Отправление поезда от начальной станции согласно расписанию «каждые 5 минут. Если в течение дня поезд прибывает на начальную станцию раньше расписания, то происходит корректировка времени, т.е. ко времени стоянки на станции добавляется накопленное опережение, если же поезд подходит с задержкой, то корректировки времени отправления не происходит.

Необходимо смоделировать работу метрополитена в течение дня, считая, что работу планируется начинать утром в 6:00 и заканчивать в 1:00 (поезда заканчивают маршрут и уходят в депо).

Определить, сколько времени в среднем в метро будет проводить пассажир, сколько времени он будет терять при возможном ожидании поезда. Определить среднее суммарное время корректировки движения составов на станции 1. Определить, в каком случае метрополитен получит больше прибыли: если каждый пассажир будет платить 40 руб. за проезд независимо от того, сколько станций он проедет, или же он будет платить 30 руб. + 5 руб. за проезд каждого перегона между станциями.

 

 

Таблица 1

 

 

 

Таблица 2

Перегоны между станциями

Мат. ожидание, с

 

Станция

Интенсивность, приход/мин

Станция 1 – Станция 2

230

 

Станция 1

17

Станция 2 – Станция 3

110

 

Станция 2

22

Станция 3 – Станция 4

150

 

Станция 3

10

Станция 4 – Станция 5

120

 

Станция 4

18

Разворот на конечных станциях

60

 

Станция 5

28

 

Таблица 3

 

Номера станций

1

2

3

4

5

1

0

0,35

0,14

0,11

0,4

2

0,33

0

0,12

0,18

0,37

3

0,25

0,28

0

0,16

0,31

4

0,26

0,3

0,16

0

0,28

5

0,29

0,35

0,19

0,17

0

 

Модель системы (пассажир платит 40 руб.):

 

Rasp1     Function RN107,D4 ;распределение направлений с 1-й станции

0.35,12/0.49,13/0.60,14/1.0,15

Rasp2     Function RN117,D4 ;распределение направлений с 2-й станции

0.33,21/0.45,23/0.63,24/1.0,25

Rasp3     Function RN127,D4 ;распределение направлений с 3-й станции

0.25,31/0.53,32/0.69,34/1.0,35

Rasp4     Function RN137,D4 ;распределение направлений с 4-й станции

0.26,41/0.56,42/0.72,43/1.0,45

Rasp5     Function RN147,D4 ;распределение направлений с 5-й станции

0.29,51/0.64,52/0.83,53/1.0,54

Train1    EQU 1 ;для обращения по номеру

Train2    EQU 2

Train3    EQU 3

Train4    EQU 4

Train5    EQU 5

Train1    STORAGE 400 ;вместимость

Train2    STORAGE 400 ;вместимость

Train3    STORAGE 400 ;вместимость

Train4    STORAGE 400 ;вместимость

Train5    STORAGE 400 ;вместимость

          GENERATE ,,,1 ;первый поезд

          ASSIGN 101,1 ;храним номер поезда в 101-ом параметре

          SAVEVALUE Npoezd,2

tocircle  TEST GE AC1,54000,newrace ;если 15 часов не закончились - еще один круг

          TERMINATE 1

newrace   MARK 22 ;запоминаем начало рейса

          ADVANCE (Normal(1,15,1)) ;стоим на 1-й станции

          SAVEVALUE Price+,(40#(Q12+Q13+Q14+Q15)) ;обилечиваем

          ASSIGN 2+,(Q12) ;добавляем желающих до 2-й станции

          ENTER P101,(Q12) ;садим в поезд

          DEPART 12,(Q12) ;уменьшаем длину очереди

          ASSIGN 3+,(Q13) ;добавляем желающих до 3-й станции

          ENTER P101,(Q13) ;садим в поезд

          DEPART 13,(Q13) ;уменьшаем длину очереди

          ASSIGN 4+,(Q14) ;добавляем желающих до 4-й станции

          ENTER P101,(Q14) ;садим в поезд

          DEPART 14,(Q14) ;уменьшаем длину очереди

          ASSIGN 5+,(Q15) ;добавляем желающих до 5-й станции

          ENTER P101,(Q15) ;садим в поезд

          DEPART 15,(Q15) ;уменьшаем длину очереди

          ADVANCE (Normal(2,230,3)) ;перегон 1-2

          ADVANCE (Normal(1,15,1));стоим на 2-й станции

          LEAVE P101,(P2) ;выход едущих до 2-й станции

          ASSIGN 2,0 ;обнуляем

          SAVEVALUE Price+,(40#(Q23+Q24+Q25)) ;обилечиваем

          ASSIGN 3+,(Q23) ;добавляем желающих до 3-й станции

          ENTER P101,(Q23) ;садим в поезд

          DEPART 23,(Q23) ;уменьшаем длину очереди

          ASSIGN 4+,(Q24) ;добавляем желающих до 4-й станции

          ENTER P101,(Q24) ;садим в поезд

          DEPART 24,(Q24) ;уменьшаем длину очереди

          ASSIGN 5+,(Q25) ;добавляем желающих до 5-й станции

          ENTER P101,(Q25) ;садим в поезд

          DEPART 25,(Q25) ;уменьшаем длину очереди

          ADVANCE (Normal(2,110,3)) ;перегон 2-3

          ADVANCE (Normal(1,15,1));стоим на 3-й станции

          LEAVE P101,(P3) ;выход едущих до 3-й станции

          ASSIGN 3,0 ;обнуляем

          SAVEVALUE Price+,(40#(Q34+Q35)) ;обилечиваем

          ASSIGN 4+,(Q34) ;добавляем желающих до 4-й станции

          ENTER P101,(Q34) ;садим в поезд

          DEPART 34,(Q34) ;уменьшаем длину очереди

          ASSIGN 5+,(Q35) ;добавляем желающих до 5-й станции

          ENTER P101,(Q35) ;садим в поезд

          DEPART 35,(Q35) ;уменьшаем длину очереди

          ADVANCE (Normal(2,150,3)) ;перегон 3-4

          ADVANCE (Normal(1,15,1));стоим на 4-й станции

          LEAVE P101,(P4) ;выход едущих до 4-й станции

          ASSIGN 4,0 ;обнуляем

          SAVEVALUE Price+,(40#Q45) ;обилечиваем

          ASSIGN 5+,(Q45) ;добавляем желающих до 5-й станции

          ENTER P101,(Q45) ;садим в поезд

          DEPART 45,(Q45) ;уменьшаем длину очереди

          ADVANCE (Normal(2,120,3)) ;перегон 4-5

          ADVANCE (Normal(1,15,1));стоим на 5-й станции

          LEAVE P101,(P5) ;выход едущих до 5-й станции

          ASSIGN 5,0 ;обнуляем

          ADVANCE 60 ;разворот

;возврат по маршруту

          ADVANCE (Normal(1,15,1));стоим на 5-й станции

          SAVEVALUE Price+,(40#(Q54+Q53+Q52+Q51)) ;обилечиваем

          ASSIGN 4+,(Q54) ;добавляем желающих до 4-й станции

          ENTER P101,(Q54) ;садим в поезд

          DEPART 54,(Q54) ;уменьшаем длину очереди

          ASSIGN 3+,(Q53) ;добавляем желающих до 3-й станции

          ENTER P101,(Q53) ;садим в поезд

          DEPART 53,(Q53) ;уменьшаем длину очереди

          ASSIGN 2+,(Q52) ;добавляем желающих до 2-й станции

          ENTER P101,(Q52) ;садим в поезд

          DEPART 52,(Q52) ;уменьшаем длину очереди

          ASSIGN 1+,(Q51) ;добавляем желающих до 1-й станции

          ENTER P101,(Q51) ;садим в поезд

          DEPART 51,(Q51) ;уменьшаем длину очереди

          ADVANCE (Normal(2,120,3)) ;перегон 5-4

          ADVANCE (Normal(1,15,1));стоим на 4-й станции

          LEAVE P101,(P4) ;выход едущих до 4-й станции

          ASSIGN 4,0 ;обнуляем

          SAVEVALUE Koef,1

          TEST L R*101,(Q43+Q42+Q41),good1

          SAVEVALUE Koef,(R*101/(Q43+Q42+Q41)) ;при первом проезде не все вместятся

good1     SAVEVALUE Price+,(40#Int((Q43+Q42+Q41)#X$Koef)) ;обилечиваем

          ASSIGN 3+,(Int(X$Koef#Q43)) ;добавляем желающих до 3-й станции

          ENTER P101,(Int(X$Koef#Q43))  ;садим в поезд

          DEPART 43,(Int(X$Koef#Q43)) ;уменьшаем длину очереди

          ASSIGN 2+,(Int(X$Koef#Q42)) ;добавляем желающих до 2-й станции

          ENTER P101,(Int(X$Koef#Q42)) ;садим в поезд

          DEPART 42,(Int(X$Koef#Q42)) ;уменьшаем длину очереди

          ASSIGN 1+,(Int(X$Koef#Q41)) ;добавляем желающих до 1-й станции

          ENTER P101,(Int(X$Koef#Q41)) ;садим в поезд

          DEPART 41,(Int(X$Koef#Q41)) ;уменьшаем длину очереди

          ADVANCE (Normal(2,150,3)) ;перегон 4-3

          ADVANCE (Normal(1,15,1));стоим на 3-й станции

          LEAVE P101,(P3) ;выход едущих до 3-й станции

          ASSIGN 3,0 ;обнуляем

          SAVEVALUE Koef,1

          TEST L R*101,(Q32+Q31),good2

          SAVEVALUE Koef,(R*101/(Q32+Q31)) ;при первом проезде не все вместятся

good2     SAVEVALUE Price+,(40#Int((Q32+Q31)#X$Koef)) ;обилечиваем

          ASSIGN 2+,(Int(X$Koef#Q32)) ;добавляем желающих до 2-й станции

          ENTER P101,(Int(X$Koef#Q32)) ;садим в поезд

          DEPART 32,(Int(X$Koef#Q32)) ;уменьшаем длину очереди

          ASSIGN 1+,(Int(X$Koef#Q31)) ;добавляем желающих до 1-й станции

          ENTER P101,(Int(X$Koef#Q31)) ;садим в поезд

          DEPART 31,(Int(X$Koef#Q31)) ;уменьшаем длину очереди

          ADVANCE (Normal(2,110,3)) ;перегон 3-2

          ADVANCE (Normal(1,15,1));стоим на 2-й станции

          LEAVE P101,(P2) ;выход едущих до 3-й станции

          ASSIGN 2,0 ;обнуляем

          SAVEVALUE Price+,(40#Q21) ;обилечиваем

          ASSIGN 1+,(Q21) ;добавляем желающих до 1-й станции

          ENTER P101,(Q21) ;садим в поезд

          DEPART 21,(Q21) ;уменьшаем длину очереди

          ADVANCE (Normal(2,230,3)) ;перегон 2-1

          ADVANCE (Normal(1,15,1));стоим на 1-й станции

          LEAVE P101,(P1) ;выход едущих до 1-й станции

          ASSIGN 1,0 ;обнуляем

          ADVANCE 60 ;разворот

          ASSIGN Comp+,1 ;число полных рейсов

          ASSIGN TotT+,(AC1-P22) ;добавляем время рейса

          TEST L P$TotT,(P$Comp#1500),tocircle ;раньше не выпускаем

          ADVANCE (1500#P$Comp-P$TotT) ;держим до времени

          ASSIGN TotT,(P$Comp#1500) ;общее время в пути

          TRANSFER ,tocircle

;остальные поезда

          GENERATE 300,,,4 ;остальные четыре поезда

          ASSIGN 101,X$Npoezd

          SAVEVALUE Npoezd+,1

          TRANSFER ,tocircle

;пассажиры

          GENERATE (Exponential(3,0,60.0/17)) ;на 1-ю станцию

          QUEUE (FN$Rasp1) ;увеличиваем соответствующую очередь

          TERMINATE

          GENERATE (Exponential(3,0,60.0/22)) ;на 2-ю станцию

          QUEUE (FN$Rasp2) ;увеличиваем соответствующую очередь

          TERMINATE

          GENERATE (Exponential(3,0,60.0/10)) ;на 3-ю станцию

          QUEUE (FN$Rasp3) ;увеличиваем соответствующую очередь

          TERMINATE

          GENERATE (Exponential(3,0,60.0/18)) ;на 4-ю станцию

          QUEUE (FN$Rasp4) ;увеличиваем соответствующую очередь

          TERMINATE

          GENERATE (Exponential(3,0,60.0/28)) ;на 5-ю станцию

          QUEUE (FN$Rasp5) ;увеличиваем соответствующую очередь

          TERMINATE

;время моделирования

          START 5

         

Моделируем:

 

           START TIME           END TIME  BLOCKS  FACILITIES  STORAGES

                0.000          55200.000   141        0          5

 

 

              NAME                       VALUE 

          COMP                        10013.000

          GOOD1                          80.000

          GOOD2                          97.000

          KOEF                        10012.000

          NEWRACE                         6.000

          NPOEZD                      10010.000

          PRICE                       10011.000

          RASP1                       10000.000

          RASP2                       10001.000

          RASP3                       10002.000

          RASP4                       10003.000

          RASP5                       10004.000

          TOCIRCLE                        4.000

          TOTT                        10014.000

          TRAIN1                          1.000

          TRAIN2                          2.000

          TRAIN3                          3.000

          TRAIN4                          4.000

          TRAIN5                          5.000

 

 

 LABEL              LOC  BLOCK TYPE     ENTRY COUNT CURRENT COUNT RETRY

                    1    GENERATE             1             0       0

                    2    ASSIGN               1             0       0

                    3    SAVEVALUE            1             0       0

TOCIRCLE            4    TEST               185             0       0

                    5    TERMINATE            5             0       0

NEWRACE             6    MARK               180             0       0

                    7    ADVANCE            180             0       0

                    8    SAVEVALUE          180             0       0

                    9    ASSIGN             180             0       0

                   10    ENTER              180             0       0

                   11    DEPART             180             0       0

                   12    ASSIGN             180             0       0

                   13    ENTER              180             0       0

                   14    DEPART             180             0       0

                   15    ASSIGN             180             0       0

                   16    ENTER              180             0       0

                   17    DEPART             180             0       0

                   18    ASSIGN             180             0       0

                   19    ENTER              180             0       0

                   20    DEPART             180             0       0

                   21    ADVANCE            180             0       0

                   22    ADVANCE            180             0       0

                   23    LEAVE              180             0       0

                   24    ASSIGN             180             0       0

                   25    SAVEVALUE          180             0       0

                   26    ASSIGN             180             0       0

                   27    ENTER              180             0       0

                   28    DEPART             180             0       0

                   29    ASSIGN             180             0       0

                   30    ENTER              180             0       0

                   31    DEPART             180             0       0

                   32    ASSIGN             180             0       0

                   33    ENTER              180             0       0

                   34    DEPART             180             0       0

                   35    ADVANCE            180             0       0

                   36    ADVANCE            180             0       0

                   37    LEAVE              180             0       0

                   38    ASSIGN             180             0       0

                   39    SAVEVALUE          180             0       0

                   40    ASSIGN             180             0       0

                   41    ENTER              180             0       0

                   42    DEPART             180             0       0

                   43    ASSIGN             180             0       0

                   44    ENTER              180             0       0

                   45    DEPART             180             0       0

                   46    ADVANCE            180             0       0

                   47    ADVANCE            180             0       0

                   48    LEAVE              180             0       0

                   49    ASSIGN             180             0       0

                   50    SAVEVALUE          180             0       0

                   51    ASSIGN             180             0       0

                   52    ENTER              180             0       0

                   53    DEPART             180             0       0

                   54    ADVANCE            180             0       0

                   55    ADVANCE            180             0       0

                   56    LEAVE              180             0       0

                   57    ASSIGN             180             0       0

                   58    ADVANCE            180             0       0

                   59    ADVANCE            180             0       0

                   60    SAVEVALUE          180             0       0

                   61    ASSIGN             180             0       0

                   62    ENTER              180             0       0

                   63    DEPART             180             0       0

                   64    ASSIGN             180             0       0

                   65    ENTER              180             0       0

                   66    DEPART             180             0       0

                   67    ASSIGN             180             0       0

                   68    ENTER              180             0       0

                   69    DEPART             180             0       0

                   70    ASSIGN             180             0       0

                   71    ENTER              180             0       0

                   72    DEPART             180             0       0

                   73    ADVANCE            180             0       0

                   74    ADVANCE            180             0       0

                   75    LEAVE              180             0       0

                   76    ASSIGN             180             0       0

                   77    SAVEVALUE          180             0       0

                   78    TEST               180             0       0

                   79    SAVEVALUE            1             0       0

GOOD1              80    SAVEVALUE          180             0       0

                   81    ASSIGN             180             0       0

                   82    ENTER              180             0       0

                   83    DEPART             180             0       0

                   84    ASSIGN             180             0       0

                   85    ENTER              180             0       0

                   86    DEPART             180             0       0

                   87    ASSIGN             180             0       0

                   88    ENTER              180             0       0

                   89    DEPART             180             0       0

                   90    ADVANCE            180             0       0

                   91    ADVANCE            180             0       0

                   92    LEAVE              180             0       0

                   93    ASSIGN             180             0       0

                   94    SAVEVALUE          180    


Полная версия статьи PDF

Номер журнала Вестник науки №5 (62) том 4

  


Ссылка для цитирования:

Кондратьев А.А., Попова Т.М. РАЗРАБОТКА ИМИТАЦИОННОЙ МОДЕЛИ РАБОТЫ НАЗЕМНОГО МЕТРОПОЛИТЕНА В СРЕДЕ GPSS WORLD // Вестник науки №5 (62) том 4. С. 742 - 755. 2023 г. ISSN 2712-8849 // Электронный ресурс: https://www.вестник-науки.рф/article/8475 (дата обращения: 29.04.2024 г.)


Альтернативная ссылка латинскими символами: vestnik-nauki.com/article/8475



Нашли грубую ошибку (плагиат, фальсифицированные данные или иные нарушения научно-издательской этики) ?
- напишите письмо в редакцию журнала: zhurnal@vestnik-nauki.com


Вестник науки СМИ ЭЛ № ФС 77 - 84401 © 2023.    16+




* В выпусках журнала могут упоминаться организации (Meta, Facebook, Instagram) в отношении которых судом принято вступившее в законную силу решение о ликвидации или запрете деятельности по основаниям, предусмотренным Федеральным законом от 25 июля 2002 года № 114-ФЗ 'О противодействии экстремистской деятельности' (далее - Федеральный закон 'О противодействии экстремистской деятельности'), или об организации, включенной в опубликованный единый федеральный список организаций, в том числе иностранных и международных организаций, признанных в соответствии с законодательством Российской Федерации террористическими, без указания на то, что соответствующее общественное объединение или иная организация ликвидированы или их деятельность запрещена.