На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> GPSS World , Время транзактов!
    Не могу увеличить/уменьшить время транзактов! Например двое людей моют одну машину при этом время занимает у них 1 час, допустим они уже моют 30 мин, но подъезжает машина вторая и один рабочий начинает мыть её и это означает что оставшиеся время у первого рабочего увеличивается! Или наоборот моет человек машину а к нему подходит ещё один и время мойки уменьшается. Как можно такое реализовать в GPSS world?!
      один из вариантов решения..
      moika STORAGE	2
      	GENERATE	45,10		;легковые
      	SEIZE		place1	
      	ENTER		moika	
      	SAVEVALUE	1,60		;время необходимое на мытье машины
      	TEST LE         x1,0	
      	LEAVE		moika	
      	RELEASE		place1	
      	TERMINATE		
      
      	GENERATE	120,10		;грузовики
      	SEIZE		place2	
      	ENTER		moika	
      	SAVEVALUE	2,90	
      	TEST LE         x2,0	
      	LEAVE		moika	
      	RELEASE		place2	
      	TERMINATE	
      
      
      	GENERATE	,,,1	
      met2	ASSIGN		1,1		;этот рабочий "преписан" к 1му помывочному месту
      	TEST NE	   S$moika,0	;число свободных ед.памяти !=0?
      	TEST NE	   F$place1,1,met1	;устройство place1 НЕ занято?
      	ASSIGN		1,2		;временно, перевести рабочего ко второму помывочному месту
      met1	ADVANCE		1
      	SAVEVALUE	P1-,1
      	TRANSFER	,met2
      
      	GENERATE	,,,1	
      met4	ASSIGN		1,2
      	TEST NE	   (F$place1+F$place2),0	;сумма параметров !=0?
      	TEST NE    	 F$place2,1,met3	
      	ASSIGN		1,1
      met3	ADVANCE		1
      	SAVEVALUE	P1-,1
      	TRANSFER	,met4
      
      	GENERATE        (60#24#10)
      	TERMINATE	1
      start 1
      
        Симпатичное решение.
        Особенно понравилось
        Цитата
        SAVEVALUE P1-,1
        Как то привык называть сохраняемые величины символьными именами. Тогда в моей интерпритации Этот сегмент
        Цитата
        GENERATE ,,,1
        met4 ASSIGN 1,2
        TEST NE (F$place1+F$place2),0 ;сумма параметров !=0?
        TEST NE F$place2,1,met3
        ASSIGN 1,1
        met3 ADVANCE 1
        SAVEVALUE P1-,1
        TRANSFER ,met4
        выглядел бы вот так..
        GENERATE ,,,1
        met4 TEST NE (F$place1+F$place2),0 ;сумма параметров !=0?
        TEST NE F$place2,1,met3
        ADVANCE 1
        SAVEVALUE 1-,1
        TRANSFER ,met4
        met3 ADVANCE 1
        SAVEVALUE 2-,1
        TRANSFER ,met4

        А повторения - это зло. легко запутаться :((

        Евгену респект!
        Сообщение отредактировано: TEMENb -
          не верный комент
          Цитата Eugen @
          TEST NE S$moika,0 ;число свободных ед.памяти !=0?
          TEST NE S$moika,0 ;текущее содержимое памяти !=0?

          Цитата
          GENERATE ,,,1
          met4 TEST NE (F$place1+F$place2),0 ;сумма параметров !=0?
          TEST NE F$place2,1,met3
          ADVANCE 1
          SAVEVALUE 1-,1
          TRANSFER ,met4
          met3 ADVANCE 1
          SAVEVALUE 2-,1
          TRANSFER ,met4

          А повторения - это зло. легко запутаться (
          так конечно лучше и SAVEVALUE P1-,1 было лишним

          еще один вариант + косвенная адресация
          ExpandedWrap disabled
            moika STORAGE   2
             
                GENERATE    45,10   ;легковые
                ASSIGN  position,1  ;место №1 на мойке
                ASSIGN  time,60
                TRANSFER ,met10
                
                GENERATE    120,10  ;грузовики
                ASSIGN  position,2
                ASSIGN  time,90
             
            met10   SEIZE   P$position
                ENTER   moika  
                SAVEVALUE P$position,P$time
                TEST LE x*position,0    
                LEAVE   moika  
                RELEASE P$position  
                TERMINATE      
             
             
                GENERATE    ,,,1    
                ASSIGN  registration,1  ;рабочий "преписан" к 1му помывочному месту
                TRANSFER ,met2
             
                GENERATE    ,,,1    
                ASSIGN  registration,2  ;рабочий "преписан" ко 2му помывочному месту
             
            met2    ASSIGN  1,P$registration    ;в параметр 1 записать место преписки
                TEST NE S$moika,0   ;текущее содержимое памяти !=0?
             
                TEST NE F*1,1,met1  ;устройство 1(или 2) НЕ занято?
                ASSIGN  1,((P1@2)+1)    ;временно, перевести рабочего к другому помывочному месту 1->2; 2->1
            met1    ADVANCE 1
                SAVEVALUE   P1-,1
                TRANSFER    ,met2
             
                GENERATE (60#24#10)
                TERMINATE   1
            start 1

          Повторение - мать за-и-и-икания :)
          Сообщение отредактировано: Eugen -
            ;) Всем привет. Вы знаете как найти максимальную длину очереди к устройству аналитечески(с помощью формулы)? Заранее спасибо
              Помогите пожалуйста решить задачу. Вопрос жизни и смерти, а то сессии капец.
              ExpandedWrap disabled
                Управление запасами
                Сдача крови – контроль запаса (Ш406)
                Рассмотрим работу больничного хранилища крови. Как только уровень запаса крови падает до числа ROP и в этот момент не ожидается прибытия заказанной ранее крови от поставщика, выдаётся запрос на ROQ единиц. Время между подобными запросами распределено нормально с параметрами 30 и 3 ч.
                Время между запросами на кровь распределено экспоненциально со средним 15 запросов в сутки. Распределение числа необходимых человеку единиц приведено в таблице
                Требуемое число единиц12345
                Относительная частота452515105
                  Если требуется больше крови, чем в настоящий момент имеется в хранилище, возникает аварийная ситуация. Тогда всё имеющаяся в наличии кровь идёт на удовлетворение запроса, и также для обеспечения необходимого остатка используют специальную процедуру, не рассматриваемую здесь. Больнице не нужно компенсировать кровь, полученную в аварийной ситуации.
                Больница также получает кровь от доноров. Число таких ежедневных сдач крови распределено по нормальному закону с параметрами 5 и 1 единиц. Сданная кровь доступна только после 17 ч того дня, в который была сдана.
                Кровь имеет определённый период хранения. Неиспользованная кровь списывается. Кровь, сданная непосредственно в больницу, имеет срок хранения 25 дней. Кровь по заказу имеет срок хранения 18 дней, считая со дня прибытия. Из запаса сначала берётся кровь с меньшим сроком годности.
                Построить GPSS модель для моделирования такого хранилища. Включить в модель возможность подсчёта распределения следующих двух СВ:
                1.  Число аварийных ситуаций, возникающих в 30-дневный период;
                2.  Число единиц крови, подлежащих списанию в 30-дневный срок.
                Предположим (это реально), что в больнице оперируют 24 часа в день, 7 дней в неделю.
                Предположим (это нереально), что заказанные поставки крови могут поступать в любое время (не только с 8.00 – 17.00 и с понедельника по пятницу), что доноры сдают кровь 7 дней в неделю, а не по особым дням и что требование на кровь поступает не зависимо от времени дня. Пусть вначале хранилище имеет ROP+ROQ/2 единиц крови и каждой единице остаётся до срока хранения 15 дней. При таком начальном запасе определить время моделирования до достижения стабильных результатов. Сделать ещё несколько экспериментов, чтобы выяснить влияние величин ROP и ROQ на интересующие нас характеристики.
                Ввести временные условия, которые позволили бы сделать систему более реалистичной.
              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0297 ]   [ 14 queries used ]   [ Generated: 26.05.24, 20:45 GMT ]