На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Помогите с GPSSом пожалуйста , спасите мешка))
    Вопщем таг)
    задача:

    Рассмотрим библиотеку без открытого доступа. В такой библиотеке любой желающий получить книгу должен представить библиотекарю, работающему у стола выдачи, листок запроса. После этого библиотекарь идет в книгохранилище, ищет там книгу и возвращается с ней к столу. Затем происходит процедура выдачи, после чего посетитель уходит с книгой.
    Если обслуживания ожидают несколько человек, то библиотекарь часто экономит время, необходимое для хождения от стола выдачи до хранилища, забирая листки запроса сразу у нескольких читателей. Поскольку число книг, которое библиотекарь может нести одновременно, ограниченно, то и число листков, забираемых библиотекарем одновременно, будет ограниченно.
    Построить GPSS - модель для имитации процедуры выдачи книг в библиотеке при следующих условиях.
    1.Лица, желающие получить книги, приходят к столу по закону Пуассона со средней интенсивностью 30 человек в час.
    2. Каждый хочет получить ровно одну книгу. Более того, требуемая книга всегда имеется.
    3. Число библиотекарей, работающих у стола выдачи, должно быть переменным.
    4. Как только библиотекарь освобождается, он может взять листки запроса не более чем
    чем у четырех человек одновременно (если такое число людей ожидает обслуживания).
    5. В модели приняты следующие временные характеристики.
    а). Время, затрачиваемое на передачу листков запроса, несущественно.
    б). Время, необходимое на прохождения в один конец от стола выдачи до хранилища равно 1±0,5 мин.
    в). Время, необходимое на поиск одной, двух, трех или четырех книг, распределено по нормальному закону со средним соответственно 3, 6, 9 и 12 мин и стандартным отклонением, равным 20% от среднего.
    г). После возвращения библиотекаря из хранилища время, требуемое на завершение процедуры выдачи, составляет 2 ±1 мин на человека.
    6. Листки запросов берут в порядке поступления. По возвращении библиотекаря из хранилища завершение процедуры выдачи осуществляется по этому же принципу.
    7. Если свободны два или более библиотекарей и прибывает посетитель, то его обслуживает тот, кто был свободен дольше других.
    8. Если свободны два или более библиотекарей и обслуживания ожидают два или более посетителей, то библиотекари не делят работу поровну между собой. Вместо этого, один библиотекарь берет столько листков, сколько сможет (но не более четырех); затем, если остаются еще посетители с листками, то следующий библиотекарь также берет столько листков, сколько сможет и т.д.
    В модели следует определить распределение случайных величин «время, проведенное каждым читателем у стола выдачи» и «число листков, забираемых библиотекарем». Необходимо найти также нагрузку библиотекарей. Получить требуемую информацию для случаев трех, четырех и пяти библиотекарей, работающих у стола выдачи. Для каждого случая продолжать моделирование до тех пор, пока не будут полностью обслужены 100 человек.


    То что есть:
    ExpandedWrap disabled
      ;  GPSS/PC Program file SCHR6B                05-27-1984   11:09:46
      10 *   Adapted from "Simulation Using GPSS", by Thomas J. Schriber
      100 *     LIBRARY STUDY    
      110 * LOC       OPERATION       A,B,C,D,E,F,G             COMMENTS    
      115         SIMULATE        
      125 *        EQUIVALENCE DENINITION(S)    
      135 SLIP    EQU 10    
      145 *        FUNCTION DEFINITION(S)    
      155 SNORM   FUNCTION    RN1,C25              ;Standard normal distribution func
      0,-5/.00003,-4/.00135,-3/.00621,-2.5/.02275,-2
      .06681,-1.5/.11507,-1.2/.15866,-1/.21186,-.8/.27425,-.6
      .34458,-.4/.42074,-.2/.5,0/.57926,.2/.65542,.4
      .72575,.6/.78814,.8/.84134,1/.88493,1.2/.93319,1.5
      .97725,2/.99379,2.5/.99865,3/.99997,4/1,5
      185 XPDIS   FUNCTION    RN1,C24              ;Exponential Distribution Function
      0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38
      .8,1.6/.84,1.83/.88,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2
      .97,3.5/.98,3.9/.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
      195 *        STORAGE CAPACITY DEFINITION(S)    
      205 BUSY    STORAGE     3                    ;Set storage capacity for 3-clerk
      215 *        TABLE DEFINITION(S)    
      225 DELAY   TABLE       M1,360,60,26          ;Time spent at checkout dest
      230 SLIPS   TABLE       X$COUNT,1,1,5          ;Number of slips picked up    
      240 *        VARIABLE DEFINITION(S)    
      250 DOUBL   BVARIABLE X$COUNT'E'4+W$WAIT'E'0    
      255 GNORM   FVARIABLE (FN$SNORM/5+1)#180#P2    
      265 *        MODEL SEGMENT 1    
      270 *    
      275         GENERATE    120,FN$XPDIS,,,1     ;People arrive at checkout desk
      280 WAIT    ADVANCE                          ;Dummy advance block    
      285         GATE LS     SLIP                 ;Wait until clerk has    
      290 *                                         opened 'slip-pickup' gate
      295         ASSIGN      1,X$CLERK            ;Set P1 = clerk I.D. no.    
      300         SAVEVALUE   COUNT+,1             ;Update count of slips clerk now h
      305         TEST E      BV$DOUBL,1,BYPAS     ;Is this clerk done picking up
      310 *                                          slips? If not, bypass the next
      315 *                                          block    
      320         LOGIC R     SLIP                 ;Yes, close the 'slip-pickup' gate
      325 BYPAS   GATE LS     P1                   ;Wait until clerk has opened    
      330 *                                          'checkout-finished' gate    
      335         LOGIC R     P1                   ;Close 'checkout-finished' gate
      340         TABULATE    DELAY                ;Record time spent at checkout des
      345         TERMINATE   1                    ;Leave the checkout desk    
      350 *    
      355 *        MODEL SEGMENT 2    
      360 *    
      365 BLOKA   GENERATE    ,,,3                 ;Provide 3 clerks    
      370         ASSIGN      1,N$BLOKA            ;Set P1 = clerk I.D. no.    
      375 BLOKB   TEST G      W$WAIT,0             ;Anyone waiting for slip-pickup?
      380         ENTER       BUSY                 ;Yes, enter busy status    
      385         SAVEVALUE   COUNT,0              ;Zero out 'slips picked up' counte
      390         SAVEVALUE   CLERK,P1             ;Communicate clerk I.D. no. to
      395 *                                          people about to be served    
      400         LOGIC S     SLIP                 ;Open slip-pickup gate    
      405         BUFFER                           ;Restart scan to let people throug
      410 *                                          the just-opened gate    
      415         ASSIGN      2,X$COUNT            ;Set P2 = no. of slips picked up
      420         TABULATE    SLIPS                ;Record no. of slips picked up
      425         ADVANCE     60,30                ;Travel into the stacks    
      430         ADVANCE     V$GNORM              ;Locate the books    
      435         ADVANCE     60,30                ;Return from the stacks    
      440 BLOKC   ADVANCE     120,60               ;Finish checking out next person
      445         LOGIC S     P1                   ;Open 'checkout-finished' gate
      450         BUFFER                           ;Restart scan to let this next
      455 *                                          person through the just-opened gate    
      460         LOOP        2,BLOKC              ;Loop back to finish checking out
      465 *                                          next person (if any)    
      470         LEAVE       BUSY                 ;Otherwise, clerk leaves busy stat
      475         TRANSFER    ,BLOKB               ;Go start next service cycle


    естессно это чудо в студенческой версии не фацает - пишет вот это:
    ExpandedWrap disabled
      12/18/07 19:29:41  Model Translation Begun.
      12/18/07 19:29:41  Line 23, Col 25. Invalid SNA Entity Specifier.
      12/18/07 19:29:41  230 SLIPS   TABLE       X$COUNT,1,1,5          ;Number of slips picked up    
      12/18/07 19:29:41  Line 25, Col 23. Invalid SNA Entity Specifier.
      12/18/07 19:29:41  250 DOUBL   BVARIABLE X$COUNT'E'4+W$WAIT'E'0    
      12/18/07 19:29:41  Line 34, Col 24. GPSS Verb cannot be used as operator or operand. Operand A.
      12/18/07 19:29:41  300         SAVEVALUE   COUNT+,1             ;Update count of slips clerk now h
      12/18/07 19:29:41  Line 51, Col 24. GPSS Verb cannot be used as operator or operand. Operand A.
      12/18/07 19:29:41  385         SAVEVALUE   COUNT,0              ;Zero out 'slips picked up' counte
      12/18/07 19:29:41  Line 57, Col 27. Invalid SNA Entity Specifier.
      12/18/07 19:29:41  415         ASSIGN      2,X$COUNT            ;Set P2 = no. of slips picked up
      12/18/07 19:29:41  **** Model Translation Aborted ****


    Кто может, помогите подогнать под студенческую... пожалуйста ;)

    Добавлено
    а забыл)) прога взята из примеров моделей на GPSSe, так что думаю там все правильно должно быть...
      В gpss есть такой блок COUNT. Поэтому он не фацает. Назови переменную подругому - COUNT1
      коммерческая от чудодейственой студенческой версии отличается размером программируемых моделей - 149блоков.
        Спасибо! Запустилось)) буду сдаватся :D
          Система передачи данных обеспечивает передачу пакетов дан¬ных из пункта А в пункт C через транзитный пункт В. В пункт А паке¬ты поступают через 10± 5 мс. Здесь они сохраняются в накопителе c максимальной вместительностью 25 пакетов и c равной вероятно¬стью передаются по одной из двух линий: AB1 – за 20 мс; AB2 – за 20 ± 5 мс. В пункте В пакеты снова буферизируются в накопителе c максимальной вместительностью 20 пакетов и дальше передаются по линии BC1 за 20 ± 3 мс и по линии BC2 за 25 мс. Причем пакеты, ко¬торые передавались по AB1, поступают в BC1, а те, которые передавались по AB2, – в BC2. При достижении предельного значения коли¬чества пакетов в накопителе (максимальной вместительности) пакет, который пытается попасть в этот накопитель, уничтожается.
          Промоделировать работу системы на протяжении 1 мин.
          Оценить вероятность уничтожения пакетов.


          Помогите пожалуйста! Завтра сдавать, времени нет =(((((((((( Могу деньги на сотовый вам закинуть.

          Добавлено
          Immol у тебя блок-схема есть на твою задачу? если есть, не мог бы ты дать мне её =(( ваще попадалаво в универе.

          Добавлено
          Immol mixfix@pochta.ru
            ExpandedWrap disabled
              Система передачи данных обеспечивает передачу пакетов дан¬ных из пункта А в пункт C через транзитный пункт В. В пункт А паке¬ты поступают через 10± 5 мс. Здесь они сохраняются в накопителе c максимальной вместительностью 25 пакетов и c равной вероятно¬стью передаются по одной из двух линий: AB1 – за 20 мс; AB2 – за 20 ± 5 мс. В пункте В пакеты снова буферизируются в накопителе c максимальной вместительностью 20 пакетов и дальше передаются по линии BC1 за 20 ± 3 мс и по линии BC2 за 25 мс. Причем пакеты, ко¬торые передавались по AB1, поступают в BC1, а те, которые передавались по AB2, – в BC2. При достижении предельного значения коли¬чества пакетов в накопителе (максимальной вместительности) пакет, который пытается попасть в этот накопитель, уничтожается.
              Промоделировать работу системы на протяжении 1 мин.
              Оценить вероятность уничтожения пакетов.
               
               
               
              ;simulate
              initial x$kill,0            ; объявление переменной, значение 0
               
              generate 10,5           ; создание транзакций 10+-5
               
              test l q$ochAB,25,mKill     ; проверка количества очереди если больше 25 то на выход
              queue ochAB         ; создание очереди
              seize mess1         ; вход в оду
              advance 10          ; задержка транзактов в очереди
              depart ochAB            ; выход из очереди
              release mess1           ; освобождение оду
              transfer .5,mAB1,mAB2       ; распределение транзактов на 2 пути по 50%
               
              mAB1 advance 20         ; путь AB1 задержка 20 мс
              assign 1,0          ; задание первому параметру значение 0
              transfer ,mPunB         ; передача транзактов в пункт B
               
              mAB2 advance 20,5           ; путь AB2 задержка 20+-5 мс
              assign 1,1          ; задание первому параметру значение 1
              transfer ,mPunB         ; передача транзактов в пункт B
               
              mPunB test l q$ochBC,20,mKill       ; проверка количества очереди если больше 20 то на выход
              queue ochBC         ; создание очереди
              seize mess2         ; вход в оду
              advance 10          ; задержка транзактов в очереди
              depart ochBC            ; выход из очереди
              release mess2           ; освобождение оду
              test e p1,0,mBC2            ; проверка если значение параметра равно 1 значит транзакт пришел из AB2 отправляем в BC2
               
              mBC1 Advance 20,3           ; путь BC1 задержка 20+-3 мс
              transfer ,mEnd          ; передача транзактов на выход
               
              mBC2 advance 25         ; путь BC2 задержка 25 мс
              transfer ,mEnd          ; передача транзактов на выход
               
              mKill savevalue kill+,1     ; увеличение переменной на 1
               
              mEnd terminate          ; удаление транзактов
               
              generate 60000
              terminate 1
              start 1
               
               
              эта задача если кому надо.
              Нажми сюда!
              Сообщение отредактировано: Eugen -
                Immol, а у вас нет комментариев к вашей программе на русском языке.

                Добавлено
                ImmolImmol
                Immol, а у вас нет комментариев к вашей программе на русском языке. А то не могу понять программы.
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0369 ]   [ 15 queries used ]   [ Generated: 10.12.22, 06:00 GMT ]