На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Создание модели в GPSS
    Здравствуйте. Есть такая задачка: В парикмахерскую с 3 креслами могут приходить клиенты двух типов. Клиенты первого типа желают только стричься, распределение интервалов их прихода 35 + 10 мин. Клиенты второго типа желают стричься и бриться, распределение интервалов их прихода 60 + 20 мин. Очередь для всех клиентов общая к первому освободившемуся парикмахеру. На стрижку уходит в среднем 30 мин, а на бритье - 12 мин ( время распределено по экспоненциальному закону). Парикмахерская открывается в 8 ч 30 мин, а закрывается в 17 ч 00 мин. Парикмахеры обедают по очереди соответственно в 12 ч 00 мин, в 12 ч 30 мин и в13 ч 00 мин. Время перерыва на обед 30 мин. Если к началу обеда парикмахер был занят, то перед тем, как устроить перерыв, он заканчивает обслуживание клиента. Клиенты, которые приходят в парикмахерскую в течение перерыва, ждут его окончания. Выполнить моделирование парикмахерской в течение рабочего дня. Определить загрузку парикмахеров, среднее время, необходимое клиенту на обслуживание. Определить оптимальные параметры потоков клиентов для данной парикмахерской.
    Сделала вот что:
    brit fvariable -1/12#log((RN1+1)/1000)
    strig fvariable -1/30#log((RN2+1)/1000)

    generate 35,10
    queue och
    transfer both, met1,met11

    met1 seize par1
    depart och
    advance 30,v$strig
    release par1

    transfer ,out1
    met11 transfer both, met2,met3
    met2 seize par2
    depart och
    advance 30,v$strig
    release par2
    transfer ,out1
    met3 seize par3
    depart och
    advance 30,v$strig
    release par3
    out1 terminate



    generate 60,20
    queue och
    transfer both, met111,met1111
    met111 seize par1
    depart och
    advance 12,v$brit
    advance 30,v$strig
    release par1
    transfer ,out2
    met1111 transfer both, met22,met33
    met22 seize par2
    depart och
    advance 12,v$brit
    advance 30,v$strig
    release par2
    transfer ,out2
    met33 seize par3
    depart och
    advance 12,v$brit
    advance 30,v$strig
    release par3
    out2 terminate

    generate 510
    terminate 1
    start 1

    А как смоделировать перерыв на обед подскажите пожалуйста :-?
      Цитата Valentinka10 @
      А как смоделировать перерыв на обед подскажите пожалуйста


      навскидку - можно принудительно заблокировать устройства, нуждающиеся в перерыве.
      Для этого можно создать дополнительные сегменты
      ExpandedWrap disabled
            generate    ,,210,1
            preempt par1
            advance 30
            release par1
            terminate


      Т.е. выходит, что через 210 минут после начала рабочего дня, парекмахер1 бежит обедать. Правда в это время посетитель послушно сидит в кресле и ждет... но это уже его трудности )
      На самом деле ИМХО правильнее было бы сделать обед сразу после завершения стрижки
      ExpandedWrap disabled
            generate    ,,210,1,1
            seize   par1
            advance 30
            release par1
            terminate
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0170 ]   [ 15 queries used ]   [ Generated: 26.04.24, 12:37 GMT ]