Лабораторная работа по GPSS разработка имитационной программы для анализа работы склада в течение календарного года

Цель работы: Разработать имитационную программу для анализа работы склада в течение календарного года. Определить количество контейнеров, которое проходит через склад. Определить оптимальный объём склада. Определить минимальное и максимальное время доставки груза заказчику с момента прихода машины с грузом на склад своими силами и машинами заказчика. Предложить варианты повышения эффективности работы склада. Задания выполняются согласно  индивидуальным вариантам.

Лабораторное задание: На склад прибывают грузовые автомобили с контейнерами (от 4 до 10 шт.). В среднем на склад прибывает a автомобилей в час (интервалы между моментами их прибытия – экспоненциальные случайные величины). Одновременно на складе могут разгружаться не более чем 3 автомобиля. Выгрузка одного контейнера занимает от 4 до 12 минут. Склад вмещает b контейнеров. При заполнении склада разгрузка приостанавливается.
Примерно c % грузов доставляются заказчикам автомобилями, принадлежащими складу. Склад имеет e автомобилей. Доставка груза заказчику занимает от 1 до 5 ч. Остальные  грузы вывозятся автомобилями заказчиков. Интервал от поступления груза до прибытия за ним автомобилей заказчика составляет от 5 до 20 ч. 
Одновременно на складе могут загружаться не более пяти автомобилей. Затраты времени на погрузку примерно такие же, как и на выгрузку.


Вариант задания

Вариант
a
b
c
E
6
13
130
65
9

Ход работы
Листинг программы без модификации:

WayA table M1,2,1,100
WayB table M1,2,1,100

Zagruzka storage 5
Razgruzka storage 3
Sclad storage 130
CarPark storage 9

generate (Exponential(1,0,13))
assign 1,(duniform(1,4,12))
assign 2,p1
assign 3,p1

queue in,p1
gate SV Razgruzka
enter Razgruzka
depart in

***процесс разгрузки***
loop_1 gate SNF Sclad,No
       advance (Uniform(1,4/60#1,12/60#1))
       enter Sclad
       transfer ,end_loop
No     sunavail Razgruzka
end_loop LOOP 1,loop_1
leave  Razgruzka

***процесс загрузки***
enter Zagruzka
transfer .2,CarA,CarB

***автомобили склада***
CarA enter CarPark
loop_2 advance (Uniform(1,4/60#1,12/60#1))
       leave Sclad
       gate SNF Sclad,end_2
       savail Razgruzka
end_2 LOOP 2,loop_2
leave Zagruzka
advance (uniform(1,1,5))

loop_p advance (Uniform(1,4/60#1,12/60#1))
       LOOP 3,loop_p
tabulate WayA
advance (uniform(1,1,5))
leave CarPark
transfer ,end_zagr

***автомобили заказчика***
CarB assign 4,(uniform(1,0.5,1.5))
test GE M1,P4
loop_4 advance (Uniform(1,4/60#1,12/60#1))
       leave Sclad
       gate SNF Sclad,end_4
       savail Razgruzka
end_4 LOOP 2,loop_4
leave Zagruzka
advance (uniform(1,1,5))

loop_3 advance (Uniform(1,4/60#1,12/60#1))
       LOOP 3,loop_3
tabulate WayB

end_zagr terminate

generate (365#24)
terminate 1

Отчет

     GPSS World Simulation Report - Untitled Model 1.1.1


                   Friday, May 24, 2013 10:18:23 

           START TIME           END TIME  BLOCKS  FACILITIES  STORAGES
                0.000           8760.000    46        0          4


              NAME                       VALUE 
          CARA                           18.000
          CARB                           32.000
          CARPARK                     10005.000
          END_2                          23.000
          END_4                          38.000
          END_LOOP                       14.000
          END_ZAGR                       44.000
          IN                          10006.000
          LOOP_1                          9.000
          LOOP_2                         19.000
          LOOP_3                         41.000
          LOOP_4                         34.000
          LOOP_P                         26.000
          NO                             13.000
          RAZGRUZKA                   10003.000
          SCLAD                       10004.000
          WAYA                        10000.000
          WAYB                        10001.000
          ZAGRUZKA                    10002.000


 LABEL              LOC  BLOCK TYPE     ENTRY COUNT CURRENT COUNT RETRY
                    1    GENERATE           665             0       0
                    2    ASSIGN             665             0       0
                    3    ASSIGN             665             0       0
                    4    ASSIGN             665             0       0
                    5    QUEUE              665             0       0
                    6    GATE               665             0       0
                    7    ENTER              665             0       0
                    8    DEPART             665             0       0
LOOP_1              9    GATE              5319             0       0
                   10    ADVANCE           5319             0       0
                   11    ENTER             5319             0       0
                   12    TRANSFER          5319             0       0
NO                 13    SUNAVAIL             0             0       0
END_LOOP           14    LOOP              5319             0       0
                   15    LEAVE              665             0       0
                   16    ENTER              665             0       0
                   17    TRANSFER           665             0       0
CARA               18    ENTER              517             0       0
LOOP_2             19    ADVANCE           4137             0       0
                   20    LEAVE             4137             0       0
                   21    GATE              4137             0       0
                   22    SAVAIL            4137             0       0
END_2              23    LOOP              4137             0       0
                   24    LEAVE              517             0       0
                   25    ADVANCE            517             0       0
LOOP_P             26    ADVANCE           4137             0       0
                   27    LOOP              4137             0       0
                   28    TABULATE           517             0       0
                   29    ADVANCE            517             0       0
                   30    LEAVE              517             0       0
                   31    TRANSFER           517             0       0
CARB               32    ASSIGN             148             0       0
                   33    TEST               148             0       0
LOOP_4             34    ADVANCE           1182             0       0
                   35    LEAVE             1182             0       0
                   36    GATE              1182             0       0
                   37    SAVAIL            1182             0       0
END_4              38    LOOP              1182             0       0
                   39    LEAVE              148             0       0
                   40    ADVANCE            148             0       0
LOOP_3             41    ADVANCE           1182             0       0
                   42    LOOP              1182             0       0
                   43    TABULATE           148             0       0
END_ZAGR           44    TERMINATE          665             0       0
                   45    GENERATE             1             0       0
                   46    TERMINATE            1             0       0


QUEUE              MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME   AVE.(-0) RETRY
 IN               4655 4654   5319    665  2268.332   3735.776   4269.573   0


STORAGE            CAP. REM. MIN. MAX.  ENTRIES AVL.  AVE.C. UTIL. RETRY DELAY
 ZAGRUZKA            5    5   0     3      665   1    0.155  0.031    0    0
 RAZGRUZKA           3    3   0     2      665   1    0.081  0.027    0    0
 SCLAD             130  130   0    21     5319   1    1.134  0.009    0    0
 CARPARK             9    9   0     4      517   1    0.482  0.054    0    0
  
Листинг программы с  модификацией:
WayA table M1,2,1,100
WayB table M1,2,1,100

Zagruzka storage 8
Razgruzka storage 5
Sclad storage 1500
CarPark storage 12

generate (Exponential(1,0,13))
assign 1,(duniform(1,4,12))
assign 2,p1
assign 3,p1

queue in,p1
gate SV Razgruzka
enter Razgruzka
depart in

***процесс разгрузки***
loop_1 gate SNF Sclad,No
       advance (Uniform(1,4/60#1,12/60#1))
       enter Sclad
       transfer ,end_loop
No     sunavail Razgruzka
end_loop LOOP 1,loop_1
leave  Razgruzka

***процесс загрузки***
enter Zagruzka
transfer .2,CarA,CarB

***автомобили склада***
CarA enter CarPark
loop_2 advance (Uniform(1,4/60#1,12/60#1))
       leave Sclad
       gate SNF Sclad,end_2
       savail Razgruzka
end_2 LOOP 2,loop_2
leave Zagruzka
advance (uniform(1,1,5))

loop_p advance (Uniform(1,4/60#1,12/60#1))
       LOOP 3,loop_p
tabulate WayA
advance (uniform(1,1,5))
leave CarPark
transfer ,end_zagr

***автомобили заказчика***
CarB assign 4,(uniform(1,0.5,1.5))
test GE M1,P4
loop_4 advance (Uniform(1,4/60#1,12/60#1))
       leave Sclad
       gate SNF Sclad,end_4
       savail Razgruzka
end_4 LOOP 2,loop_4
leave Zagruzka
advance (uniform(1,1,5))

loop_3 advance (Uniform(1,4/60#1,12/60#1))
       LOOP 3,loop_3
tabulate WayB

end_zagr terminate

generate (365#24)
terminate 1

Отчет

              GPSS World Simulation Report - LAB4.138.1


                   Thursday, April 18, 2013 12:08:29 

           START TIME           END TIME  BLOCKS  FACILITIES  STORAGES
                0.000           8760.000    46        0          4


              NAME                       VALUE 
          CARA                           18.000
          CARB                           32.000
          CARPARK                     10005.000
          END_2                          23.000
          END_4                          38.000
          END_LOOP                       14.000
          END_ZAGR                       44.000
          IN                          10006.000
          LOOP_1                          9.000
          LOOP_2                         19.000
          LOOP_3                         41.000
          LOOP_4                         34.000
          LOOP_P                         26.000
          NO                             13.000
          RAZGRUZKA                   10003.000
          SCLAD                       10004.000
          WAYA                        10000.000
          WAYB                        10001.000
          ZAGRUZKA                    10002.000


 LABEL              LOC  BLOCK TYPE     ENTRY COUNT CURRENT COUNT RETRY
                    1    GENERATE           731             0       0
                    2    ASSIGN             731             0       0
                    3    ASSIGN             731             0       0
                    4    ASSIGN             731             0       0
                    5    QUEUE              731             0       0
                    6    GATE               731             0       0
                    7    ENTER              731             0       0
                    8    DEPART             731             0       0
LOOP_1              9    GATE              5714             0       0
                   10    ADVANCE           5714             0       0
                   11    ENTER             5714             0       0
                   12    TRANSFER          5714             0       0
NO                 13    SUNAVAIL             0             0       0
END_LOOP           14    LOOP              5714             0       0
                   15    LEAVE              731             0       0
                   16    ENTER              731             0       0
                   17    TRANSFER           731             0       0
CARA               18    ENTER              602             0       0
LOOP_2             19    ADVANCE           4704             0       0
                   20    LEAVE             4704             0       0
                   21    GATE              4704             0       0
                   22    SAVAIL            4704             0       0
END_2              23    LOOP              4704             0       0
                   24    LEAVE              602             0       0
                   25    ADVANCE            602             0       0
LOOP_P             26    ADVANCE           4704             0       0
                   27    LOOP              4704             0       0
                   28    TABULATE           602             0       0
                   29    ADVANCE            602             0       0
                   30    LEAVE              602             0       0
                   31    TRANSFER           602             0       0
CARB               32    ASSIGN             129             0       0
                   33    TEST               129             0       0
LOOP_4             34    ADVANCE           1010             0       0
                   35    LEAVE             1010             0       0
                   36    GATE              1010             0       0
                   37    SAVAIL            1010             0       0
END_4              38    LOOP              1010             0       0
                   39    LEAVE              129             0       0
                   40    ADVANCE            129             0       0
LOOP_3             41    ADVANCE           1010             0       0
                   42    LOOP              1010             0       0
                   43    TABULATE           129             0       0
END_ZAGR           44    TERMINATE          731             0       0
                   45    GENERATE             1             0       0
                   46    TERMINATE            1             0       0


QUEUE              MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME   AVE.(-0) RETRY
 IN               4984 4983   5714    731  2557.934   3921.508   4496.789   0


STORAGE            CAP. REM. MIN. MAX.  ENTRIES AVL.  AVE.C. UTIL. RETRY DELAY
 ZAGRUZKA           15   15   0     4      731   1    0.147  0.010    0    0
 RAZGRUZKA          13   13   0     4      731   1    0.086  0.007    0    0
 SCLAD            1600 1600   0    27     5714   1    1.141  0.001    0    0
 CARPARK            10   10   0     7      602   1    0.549  0.055    0    0

Вывод: При моделировании программы без модификаций мы получили следующие результаты: через склад прошло 5319 контейнеров, автомобили предприятия сделали 517 рейсов, разгружено и загружено 665 автомобилей.
Изменение времени разгрузки и загрузки повышения результата не дает.
Изменили вместимость склада с 130 до 1500 контейнеров, количество автомобилей предприятия с 3 до 10.

С модифицированной программой мы получили следующее: через склад прошло 5714 контейнеров, автомобили предприятия сделали 602 рейса, разгружен и загружен 731 автомобиль. Таким образом, модификация к существенному увеличению производительности не привела.

Комментариев нет:

Отправить комментарий