Форум программистов, компьютерный форум, киберфорум
Наши страницы
GPSS
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
рыжая555
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 69
1

Модель отделения сотовой связи

17.01.2016, 15:48. Просмотров 971. Ответов 20
Метки нет (Все метки)

В одно из подразделений городской сотовой связи приходят клиенты трех типов: для внесения абонентской платы, для покупки телефона и для заключения договора на подключение к сети. Время прихода посетителей подчиняется экспоненциальному закону распределения и равно, соответственно, 5, 14 и 25 минут. Время обслуживания клиентов также распределено экспоненциально и равно для первого типа заявок – 2 минуты, для второго типа – 10 минут, и для третьего – 10 минут. Клиенты первого типа уходят, если очередь составляет более трех человек; клиенты второго типа уходят, если очередь больше четырех человек Смоделировать работу отделения за восемь часов непрерывной работы и найти оптимальное количество человек, обслуживающих посетителей, если известно, что потеря клиентов первого и второго типов составляет, соответственно, 20 и 100 рублей с человека; стоимость работы работника отделения составляет 50 рублей в час. Рассмотреть возможность приоритетного обслуживания.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2016, 15:48
Ответы с готовыми решениями:

Модель подразделения городской сотовой связи
В одно из подразделений городской сотовой связи приходят клиенты трех типов: для внесения...

Модель узла связи. Сбор статистики
Здравствуйте. У меня реализована модель узла связи. Описание модели: К узлу коммутации каналами...

Усиление сотовой связи
Здравствуйте уважаемые форумчане. В загородном доме установлена система усиления сотовой...

БД операторов сотовой связи
Помогите пожалуйста... Нужно разработать программу автоматизации абонентской БД операторов сотовой...

Антенна сотовой связи
Здравствуйте. Заранее извинюсь за нубский вопрос. Нужно сделать антенну для телефона, которая будет...

20
Dukalys
Модератор
1784 / 1003 / 280
Регистрация: 13.02.2012
Сообщений: 3,300
17.01.2016, 16:05 2
С решением я бы поступил следующим образом. Оформил бы его в требуемом виде, подготовился, и сдал преподавателю.

Если решение отсутствует, то необходимо разработать модель. На первых порах с этим вам поможет замечательная книга Кудрявцев Основы имитационного моделирования Gpss World. Если после или в ходе разработки возникнут сложности, то здесь уже помощь форумчан в вашем распоряжени.
0
SergProgC++
Эксперт GPSS
365 / 341 / 68
Регистрация: 02.07.2010
Сообщений: 1,426
17.01.2016, 20:15 3
рыжая555, начните с блока generate (exponential(1,0,5))
0
рыжая555
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 69
20.01.2016, 12:36  [ТС] 4
как мне записать :Время обслуживания клиентов также распределено экспоненциально и равно для первого типа заявок – 2 минуты, для второго типа – 10 минут, и для третьего – 10 минут. я не совсем понимаю как работает экспоненциальный закон распределения

Добавлено через 2 минуты
advanсe (exponential(1,0,2) ?
0
20.01.2016, 12:36
Dukalys
Модератор
1784 / 1003 / 280
Регистрация: 13.02.2012
Сообщений: 3,300
20.01.2016, 13:29 5
Да, для первого типа 2е минуты

Код
advanсe (exponential(1,0,2))
0
рыжая555
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 69
20.01.2016, 13:33  [ТС] 6
спасибо! теперь не могу понять как записать следующее :потеря клиентов первого и второго типов составляет, соответственно, 20 и 100 рублей с человека; стоимость работы работника отделения составляет 50 рублей
0
Dukalys
Модератор
1784 / 1003 / 280
Регистрация: 13.02.2012
Сообщений: 3,300
20.01.2016, 13:50 7
Смотрите. в ходе моделирования - перед входом в очередь (QUEUE) человек должен проверить, сколько там народа, если нормально, то обслуживание далее, иначе - переход человека на выход - отказ, там вы и должны изменить прибыль системы - минус Х.

Код
TEST LE Q$NAME,3,OTKAZ  ; Если в очереди с именем name <= (LE) трёх человек, то  человек идёт далее на обслуживание, если условие не выполняется идёт по метке OTKAZ
...
...
OTKAZ SAVEVALUE PRIBIL-,20 ; Прибыль -20
0
рыжая555
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 69
20.01.2016, 16:03  [ТС] 8
спасибо,сейчас поробую)

Добавлено через 2 часа 5 минут
написала программу,но не пойму,что не так с результатом
Код
generate (exponential(1,0,5))
advance(exponential(1,0,2))
TEST LE Q$NAME,3,otkaz1
queue och
seize rab
depart och
release rab
terminate
otkaz1 savevalue pribil+,20
terminate

generate (exponential(1,0,14))
advance(exponential(1,0,10))
TEST LE Q$NAME,4,otkaz2
queue och
seize rab
depart och
release rab
terminate
otkaz2 savevalue pribil+,100
terminate

generate (exponential(1,0,25))
advance(exponential(1,0,10))
queue och
seize rab
depart och
release rab
terminate
generate 480

terminate 1
start 1
Добавлено через 1 минуту
подскажите,что я сделала не правильно
0
Dukalys
Модератор
1784 / 1003 / 280
Регистрация: 13.02.2012
Сообщений: 3,300
20.01.2016, 16:14 9
otkaz1 savevalue pribil+,20
Почему прибыль при отказе прибавляется

Код
advance(exponential(1,0,2))
Задержка обслуживания рабочим, и поэтому задержка нужна после того, как занят рабочий.

В остальном нормально, что вас не устраивает? результаты подробно расшифрованы в Кудрявцеве
0
рыжая555
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 69
20.01.2016, 16:36  [ТС] 10
да вы правы,об этом я не подумала!

Код
generate (exponential(1,0,5))
TEST LE Q$NAME,3,otkaz1
queue och
seize rad
depart och
advance(exponential(1,0,2))
RELEASE rab
terminate
otkaz1 savevalue pribil-,20
terminate

generate (exponential(1,0,14))
TEST LE Q$NAME,4,otkaz2
queue och
seize rab
depart och
advance(exponential(1,0,10))
RELEASE rab
terminate
otkaz2 savevalue pribil-,100
terminate

generate (exponential(1,0,25))
queue och
seize rab
depart och
advance(exponential(1,0,10))
RELEASE rab
terminate
generate 480

terminate 1
start 1

запускаю,но что от меня требует RELEASE rab?
0
Dukalys
Модератор
1784 / 1003 / 280
Регистрация: 13.02.2012
Сообщений: 3,300
20.01.2016, 16:55 11
Код
01/20/16 18:42:32    Clock:2.395373. Next: RELEASE. Line 7. 
01/20/16 18:42:32  RELEASE rab
01/20/16 18:42:32    Attempt to release an unowned Facility.
Что пишет?

Добавлено через 1 минуту
попытка выпустить свободный (не занятый) прибор rab в блоке на строке 7.
Посмотрите какой пример до этого занимала заявка
0
рыжая555
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 69
20.01.2016, 17:29  [ТС] 12
Господи,не пойму все равно,что делать!будьте добрее,обЪясните (я новичек в моделировании((((
0
Dukalys
Модератор
1784 / 1003 / 280
Регистрация: 13.02.2012
Сообщений: 3,300
20.01.2016, 17:44 13
Дело не в моделировании а в понимании

Занимаете одно устройство, а освобождаете другое.
Надеюсь когда писали код узнали какие блоки отвечают за занятие устройства а какие за освобождение.
0
рыжая555
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 69
20.01.2016, 18:38  [ТС] 14
основные блоки я поняла хорошо,спасибо
0
рыжая555
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 69
26.01.2016, 16:24  [ТС] 15
забыла я про свою прогу и обиделась на нее,но сегодня решила запустить иии


Код
generate (exponential(1,0,5))
advance(exponential(1,0,2))
TEST LE Q$NAME,3,otkaz1
queue och
seize rab
depart och
release rab
terminate
otkaz1 savevalue pribil-,20
terminate

generate (exponential(1,0,14))
advance(exponential(1,0,10))
TEST LE Q$NAME,4,otkaz2
queue och
seize rab
depart och
release rab
terminate
otkaz2 savevalue pribil-,100
terminate

generate (exponential(1,0,25))
advance(exponential(1,0,10))
queue och
seize rab
depart och
release rab
terminate
generate 480

terminate 1
start 1

Код
  GPSS World Simulation Report - Untitled Model 1.3.1


                   Tuesday, January 26, 2016 19:18:30  

           START TIME           END TIME  BLOCKS  FACILITIES  STORAGES
                0.000            480.000    29        1          0


              NAME                       VALUE  
          NAME                        10000.000
          OCH                         10001.000
          OTKAZ1                          9.000
          OTKAZ2                         19.000
          PRIBIL                      UNSPECIFIED
          RAB                         10002.000


 LABEL              LOC  BLOCK TYPE     ENTRY COUNT CURRENT COUNT RETRY
                    1    GENERATE            88             0       0
                    2    ADVANCE             88             1       0
                    3    TEST                87             0       0
                    4    QUEUE               87             0       0
                    5    SEIZE               87             0       0
                    6    DEPART              87             0       0
                    7    RELEASE             87             0       0
                    8    TERMINATE           87             0       0
OTKAZ1              9    SAVEVALUE            0             0       0
                   10    TERMINATE            0             0       0
                   11    GENERATE            34             0       0
                   12    ADVANCE             34             2       0
                   13    TEST                32             0       0
                   14    QUEUE               32             0       0
                   15    SEIZE               32             0       0
                   16    DEPART              32             0       0
                   17    RELEASE             32             0       0
                   18    TERMINATE           32             0       0
OTKAZ2             19    SAVEVALUE            0             0       0
                   20    TERMINATE            0             0       0
                   21    GENERATE            23             0       0
                   22    ADVANCE             23             0       0
                   23    QUEUE               23             0       0
                   24    SEIZE               23             0       0
                   25    DEPART              23             0       0
                   26    RELEASE             23             0       0
                   27    TERMINATE           23             0       0
                   28    GENERATE             1             0       0
                   29    TERMINATE            1             0       0


FACILITY         ENTRIES  UTIL.   AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
 RAB                142    0.000       0.000  1        0    0    0     0      0


QUEUE              MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME   AVE.(-0) RETRY
 NAME                0    0      0      0     0.000      0.000      0.000   0
 OCH                 1    0    142    142     0.000      0.000      0.000   0


FEC XN   PRI         BDT      ASSEM  CURRENT  NEXT  PARAMETER    VALUE
   146    0         481.665    146      2      3
   145    0         482.320    145     12     13
   148    0         483.891    148      0      1
   143    0         488.540    143      0     21
   147    0         497.408    147     12     13
   149    0         506.070    149      0     11
   150    0         960.000    150      0     28

вопрос:
А где показывается " оптимальное количество человек, обслуживающих посетителей"
0
Dukalys
Модератор
1784 / 1003 / 280
Регистрация: 13.02.2012
Сообщений: 3,300
26.01.2016, 17:01 16
В конце моделирования нужно ещё выполнить это условие
стоимость работы работника отделения составляет 50 рублей в час
Либо выполнять его параллельно основной модели в отдельном GENERATE - TERMINATE каждый час.

Цитата Сообщение от рыжая555 Посмотреть сообщение
А где показывается " оптимальное количество человек, обслуживающих посетителей"
У вас сейчас по идее 1 рабочий seize rab - release rab - между этими блоками может находиться только 1 заявка (клиент). Вам нужно заменить блоки на многоканальное устройство enter rab leave rab а вверху программы задать количество работкинов, например rab STORAGE 2 ; 2 рабочих.

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

Вот так-вот будете подставлять различное количество рабочих и анализировать прибыль - таким образом и определите оптимальное значение. Большое число будет не выгодно, так как платить нужно рабочим много, а мало тоже не выгодно - потери от уходящих клиентов будут.
0
рыжая555
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 69
26.01.2016, 17:42  [ТС] 17
переделала,как вы и сказали

Код
rab storage 2
zarp variable fn$rab#50#60
ubyt variable x$otkaz+v$zarp


generate (exponential(1,0,5))
TEST LE Q$NAME,3,otkaz1
queue och
enter rab
depart och
advance(exponential(1,0,2))
leave rab
terminate
otkaz1 savevalue pribil-,20
terminate

generate (exponential(1,0,14))
advance(exponential(1,0,10))
TEST LE Q$NAME,4,otkaz2
queue och
enter rab
depart och
advance(exponential(1,0,10))
leave rab
terminate
otkaz2 savevalue pribil-,100
terminate

generate (exponential(1,0,25))
queue och
enter rab
depart och
advance(exponential(1,0,10))
leave rab
terminate
generate 480

terminate 1
start 1

Код
              GPSS World Simulation Report - Untitled Model 1.4.1


                   Tuesday, January 26, 2016 20:35:07  

           START TIME           END TIME  BLOCKS  FACILITIES  STORAGES
                0.000            480.000    30        0          1


              NAME                       VALUE  
          NAME                        10003.000
          OCH                         10004.000
          OTKAZ                       UNSPECIFIED
          OTKAZ1                          9.000
          OTKAZ2                         20.000
          PRIBIL                      UNSPECIFIED
          RAB                         10000.000
          UBYT                        10002.000
          ZARP                        10001.000


 LABEL              LOC  BLOCK TYPE     ENTRY COUNT CURRENT COUNT RETRY
                    1    GENERATE            95             0       0
                    2    TEST                95             0       0
                    3    QUEUE               95             0       0
                    4    ENTER               95             0       0
                    5    DEPART              95             0       0
                    6    ADVANCE             95             1       0
                    7    LEAVE               94             0       0
                    8    TERMINATE           94             0       0
OTKAZ1              9    SAVEVALUE            0             0       0
                   10    TERMINATE            0             0       0
                   11    GENERATE            34             0       0
                   12    ADVANCE             34             0       0
                   13    TEST                34             0       0
                   14    QUEUE               34             0       0
                   15    ENTER               34             0       0
                   16    DEPART              34             0       0
                   17    ADVANCE             34             1       0
                   18    LEAVE               33             0       0
                   19    TERMINATE           33             0       0
OTKAZ2             20    SAVEVALUE            0             0       0
                   21    TERMINATE            0             0       0
                   22    GENERATE            21             0       0
                   23    QUEUE               21             0       0
                   24    ENTER               21             0       0
                   25    DEPART              21             0       0
                   26    ADVANCE             21             0       0
                   27    LEAVE               21             0       0
                   28    TERMINATE           21             0       0
                   29    GENERATE             1             0       0
                   30    TERMINATE            1             0       0


QUEUE              MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME   AVE.(-0) RETRY
 NAME                0    0      0      0     0.000      0.000      0.000   0
 OCH                27    0    150     25     6.522     20.871     25.045   0


STORAGE            CAP. REM. MIN. MAX.  ENTRIES AVL.  AVE.C. UTIL. RETRY DELAY
 RAB                 2    0   0     2      150   1    1.670  0.835    0    0


FEC XN   PRI         BDT      ASSEM  CURRENT  NEXT  PARAMETER    VALUE
   154    0         480.669    154      0      1
   153    0         480.762    153      0     11
   150    0         480.995    150      6      7
   152    0         482.990    152     17     18
   148    0         484.753    148      0     22
   155    0         960.000    155      0     29
Добавлено через 3 минуты
надеюсь правильно?

Добавлено через 1 минуту
advance(exponential(1,0,10)) забыла убрать во 2 типе

Добавлено через 29 секунд
Код
rab storage 2
zarp variable fn$rab#50#60
ubyt variable x$otkaz+v$zarp


generate (exponential(1,0,5))
TEST LE Q$NAME,3,otkaz1
queue och
enter rab
depart och
advance(exponential(1,0,2))
leave rab
terminate
otkaz1 savevalue pribil-,20
terminate

generate (exponential(1,0,14))
TEST LE Q$NAME,4,otkaz2
queue och
enter rab
depart och
advance(exponential(1,0,10))
leave rab
terminate
otkaz2 savevalue pribil-,100
terminate

generate (exponential(1,0,25))
queue och
enter rab
depart och
advance(exponential(1,0,10))
leave rab
terminate
generate 480

terminate 1
start 1
0
Dukalys
Модератор
1784 / 1003 / 280
Регистрация: 13.02.2012
Сообщений: 3,300
26.01.2016, 17:52 18
Зарплату из прибыли не вычитаете вроде бы нигде (см. предыдущий пост).
Код
GENERATE 60
SAVEVALUE вычитаем прибыль за всех рабочих
TERMINATE
Код
LABEL              LOC  BLOCK TYPE     ENTRY COUNT CURRENT COUNT RETRY
                    1    GENERATE            95             0       0
                    2    TEST                95             0       0
                    3    QUEUE               95             0       0
                    4    ENTER               95             0       0
                    5    DEPART              95             0       0
                    6    ADVANCE             95             1       0
                    7    LEAVE               94             0       0
                    8    TERMINATE           94             0       0
OTKAZ1              9    SAVEVALUE            0             0       0
                   10    TERMINATE            0             0       0
                   11    GENERATE            34             0       0
                   12    ADVANCE             34             0       0
                   13    TEST                34             0       0
                   14    QUEUE               34             0       0
                   15    ENTER               34             0       0
                   16    DEPART              34             0       0
                   17    ADVANCE             34             1       0
                   18    LEAVE               33             0       0
                   19    TERMINATE           33             0       0
OTKAZ2             20    SAVEVALUE            0             0       0
                   21    TERMINATE            0             0       0
                   22    GENERATE            21             0       0
                   23    QUEUE               21             0       0
                   24    ENTER               21             0       0
                   25    DEPART              21             0       0
                   26    ADVANCE             21             0       0
                   27    LEAVE               21             0       0
                   28    TERMINATE           21             0       0
                   29    GENERATE             1             0       0
                   30    TERMINATE            1             0       0
Сморите, при двух рабочих ни 1 отказа не было OTKAZ1 OTKAZ2 0 клиентов прошло через эти блоки.
Увеличивайте время моделирования чтобы получить более корректную статистику.
до 480000 хотябы, может будут отказы с течением времени.
0
рыжая555
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 69
26.01.2016, 18:53  [ТС] 19
но,в условии говориться "Смоделировать работу отделения за восемь часов непрерывной работы "

Добавлено через 47 минут
время изменила,но более корректной статистики нет,стало хуже,может оставить время?

Добавлено через 3 минуты
а что с этой строкой то otkaz2 savevalue pribil-,100?
0
Dukalys
Модератор
1784 / 1003 / 280
Регистрация: 13.02.2012
Сообщений: 3,300
26.01.2016, 19:13 20
вам скажут киньте 1 раз монету и соберите статистику - 100% орёл например. Это корректно?
Время увеличить в 10000 раз!

-100 это штраф по отказу. Добавить минус прибыли по зарплате каждый час.

прибыль кстати всёвремя будет отрицательной потомучто по сути не прибыль считаем а затраты, чем больше они тем хуже.
0
26.01.2016, 19:13
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2016, 19:13

оператор сотовой связи
кто знает как на С# програмно определить ределить оператора сотовой связи и страну?

Общение с операторами сотовой связи
Абонент: Это абонент Костецкий, 68 года рождения, женат, двое детей... Скажите, какой у меня...

Усиление сигнала сотовой связи
Всем доброго времени суток! Собсна есть нужда в вашей помощи, господа и дамы. Суть в следующем,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.