На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (54) « Первая ... 17 18 [19] 20 21 ...  53 54  ( Перейти к последнему сообщению )  
> GPSS , Вопрос для знающих
    Доброго времени суток, проверьте пожалуйста правильность написания модели. Условие задачи : В аэропорту на ленту транспортера поступает багаж где он проходит проверку, 5% не проходят проверку и идут на дополнительную проверку после чего возвращаются обратно на ленту, после проверки багаж разделяется на четыре разных погрузочных ленты(и вот тут заключается основная проблема вроде все работает но как-то не так).
    Вот то что я намоделировал:
    SIMULATE
    CHECK STORAGE 2
    L STORAGE 4
    OBR STORAGE 2
    BAG STORAGE 8
    INTEGER &I

    * МОДУЛЬ ИСПОЛНЕНИЯ

    GENERATE 1,1 поступление багажа
    RETEST QUEUE CHECK организация очереди контроля
    ENTER OBR
    DEPART CHECK
    ADVANCE 1,1
    LEAVE OBR
    TRANSFER .050,,TEST 5% багажа идет на дополнительную проверку

    * TEST

    TEST QUEUE MTEST организация очереди на дополнителую проверку
    SEIZE TESTER
    DEPART MTEST
    ADVANCE 2,1
    RELEASE TESTER
    TRANSFER ,RETEST возврат на общий контроль

    * Разделение на линии


    L1 TEST E L1,1,OT проверка если не проходит то идет обратно на выбор линии
    QUEUE LNB
    ENTER BAG
    DEPART LNB
    ADVANCE 1
    LEAVE BAG
    TERMINATE 1
    OT TRANSFER ,L2
    L2 TEST E L2,2,OTH проверка если не проходит то идет обратно на выбор линии
    QUEUE LNC
    ENTER BAG
    DEPART LNC
    ADVANCE 1
    LEAVE BAG
    TERMINATE 1
    OTH TRANSFER ,L3
    L3 TEST E L3,3,OTHE проверка если не проходит то идет обратно на выбор линии
    QUEUE LND
    ENTER BAG
    DEPART LND
    ADVANCE 1
    LEAVE BAG
    TERMINATE 1
    OTHE TRANSFER ,L4
    L4 TEST E L4,4,L1 проверка если не проходит то идет обратно на выбор линии
    QUEUE LNE
    ENTER BAG
    DEPART LNE
    ADVANCE 1
    LEAVE BAG
    TERMINATE 1




    * ПРОВЕРКА

    DO &I=1,35,1
    START 60
    CLEAR
    ENDDO
    END

    Заранее спасибо за помощь.
      ошибки:
      - нет полного текста задачи
      - нет символа конца gpss кода перед коментариями
      - метки TEST не может быть в gpss, это название исполняемого блока
      - L1, L2, L3, L4 равны номерам строк, где они указаны как метки блокив. Так что устолия всегда false

      что делает эта конструкция?
      Цитата
      DO &I=1,35,1
      START 60
      CLEAR
      ENDDO
      END

      задача вроде не сложная, могу подправить за $
        Eugen спасибо большое за помощь, но исправить хочу сам, я сейчас обучаюсь этому языку, Вы мне тока объясните пожалуйста, где я накасячил.
        1.нет символа конца gpss кода перед комментариями –что это за символ
        2.L1, L2, L3, L4 равны номерам строк, где они указаны как метки блокjв. Так что устолия всегда false- можно по подробнее обьяснить что необходимо сделать.
        3.С меткой TEST это я просмотрел
        4.А Эта конструкция задает петлю чтобы не надо было каждый раз писать Start Clear для получения различных данных.
        Я пишу на GPSSH

        Заранее спасибо
          1. GENERATE 1,1 поступление багажа - разве их не нужно разделять ";" или "*"
          2. L1 TEST E L1,1,OT - и далее еще 3 строки. При проверкb условия if(L1 == 1).. здесь L1 всегда = номеру строки в которой стоит этот TEST
          4. DO &I=1,35,1 - что обозначет каждая цифра
            Детали, необходимые для работы цеха, находятся на цеховом и центральных складах. На цеховом складе хранится 20 комплектов деталей, потребность в которых возникает через 60+-10 минут и составляет один комплект. В случае снижения запасов до трех комплектов, формируется в течении 60 минут заявка на пополнение запасов цехового склада до полного объема в 20 комплектов, которая посылается на центральный склад, где в течении 60+-20 минут происходит комплектование за 60+-5 минут осуществляется доставка деталей в цеховой склад.
            Смоделировать работу цеха в течении 400 часов. Определить вероятность простоя цеха из-за отсутствия деталей и среднюю загруженность цехового склада. Определить момент пополнения запасов цехового склада при котором вероятность простоя цеха равна 0.
            Вот моя программа.
            ExpandedWrap disabled
              simulate
              initial x$och,20;
              generate 24000;
              terminate 1;
              generate 60,10;
              test NE x$och,0,vihod0;
              SAVEVALUE och-,1;
              test e x$och,3,vihod;
              split 1,centrskl;
              vihod terminate ;
              vihod0  terminate;
              centrskl  advance 60;
              advance 60,20;
              advance 60,5;
              SAVEVALUE och,20;
              terminate;
              start 1;

            Нужно определить:
            1)Вероятность простоя цеха из-за отсутсятвия деталей.
            2)среднюю загрузженность цехового склада.
            3)Определить момент пополнения запасов цехового склада при котором вероятность простоя цеха равна 0
            Помогите опредилить эти значения?
            Сообщение отредактировано: Dzon -
              2Eugen
              Доброго времени суток,
              1. нет их разделять не нужно их нужно просто писать в соответствующей колонке (25 вроде пробел от начала строки)
              2.тоесть вместо L1 TEST E L1,1,OT необходимо написать FL TEST E L1,1,OT( например) я правильно понял?
              3.сначала в блоке SIMULATE пишем INTEGER &I (для ввода петли)
              &I=1 - индекс начала петли,представляющей собой целочисленную скалярную ампеерпеременную;
              35 - характеризует собой предельный номер конечного члена петли(сколько раз прогонять)
              1 - задает приращение индекса

              Ещё раз спасибо за помощь
                Здрасти!
                хотелось бы переделать задачку из GPSSWorld просто в GPSS
                возможно ли это?!
                VVrema variable (Exponential(1,0,X$Vrem))
                initial X$Vrem,5

                generate 6,3
                savevalue Vsego+,1
                assign PVrema1,V$VVrema
                assign PVrema2,V$VVrema
                queue Och1
                seize Ustr1
                depart Och1
                advance P$PVrema1
                release Ustr1

                queue Och2
                seize Ustr2
                depart Och2
                advance P$PVrema2
                release Ustr2

                test LE (P$PVrema1+P$PVrema2),10,MetBol
                test L (X$Bol/X$Vsego),.3,MetTerm
                savevalue Vrem,5
                MetTerm terminate

                MetBol savevalue Bol+,1
                test GE (X$Bol/X$Vsego),.3,Met1
                savevalue Vrem,4
                MetTerm1 terminate

                Met1 savevalue Vrem,5
                transfer ,MetTerm1

                generate 10000
                terminate 1
                start 1
                  Возможно.
                  пронумеруйте каждый функциональный блок, все формулы вынесите вычисляемыми выражениями, в т.ч и условия для теста. Закон распредиления прийдется задать при помощи оператора FUNCTION
                  Удачи )
                    Привет! Не не понимаю, в чем ошибка...
                    Задача такая: На двухканальный телефон скорой помощи в среднем 1 раз в 100 секунд с равной вероятностью звонят старики, взрослые и дети. Время разговора с ними соответственно 180 с, 150 с, 210 с.
                    мой текст программы такой:
                    emerg storage 2
                    generate 100
                    transfer pick old,baby
                    old assign 1,(Uniform(1,160,200))
                    transfer ,old1
                    aged assign 2,(Uniform(1,130,170))
                    transfer ,aged1
                    baby assign 3,(Uniform(1,190,230))
                    transfer ,baby1
                    old1 enter emerg
                    advance P1
                    leave emerg
                    terminate

                    aged1 enter emerg
                    advance P2
                    leave emerg
                    terminate
                    baby1 enter emerg
                    advance P3
                    leave emerg
                    terminate
                    generate 86400
                    terminate 1

                    программа выдает такую ошибку:28
                    ADVANCE. Line 16.
                    advance P2
                    Reference to a non-existent Parameter.
                      1. В операторе трансфер стоит пробел вместо запятой,
                      2. параметр пик кидает на случайную строку между метками. В результате чего транзакты попадают на адвансы, не попав на ассижены, следстиве - попытка задержатся на велечину параметра, которого еще вообще то не существует
                      3. метки baby1, aged1 и old1 - не пришей кобыле хвост. код то одинаковый. Упростим.
                      4. ИМХО лучше использовать DUniform. Он дает дискретные значения. В ЖПСС верд погоды не делает (прекрасно работает с дробным временем), но чисто теоритически так вроде как привильней.


                      Цитата
                      emerg storage 2
                      generate 100
                      transfer pick,met1,met2
                      met1 transfer ,old
                      transfer ,aged
                      met2 transfer ,baby
                      old assign 1,(DUniform(1,160,200))
                      transfer ,met3
                      aged assign 1,(DUniform(1,130,170))
                      transfer ,met3
                      baby assign 1,(DUniform(1,190,230))
                      transfer ,met3


                      met3 enter emerg
                      advance P1
                      leave emerg
                      terminate
                      generate 86400
                      terminate 1
                      start 1


                      А вообще, раз сказано про равные ВЕРОЯТНОСТИ, то помоему лучше задать переходы именно вероятностями

                      Цитата
                      emerg storage 2
                      generate 100
                      transfer (2/3),old
                      transfer .5,aged,baby

                      old assign 1,(DUniform(1,160,200))
                      transfer ,met3
                      aged assign 1,(DUniform(1,130,170))
                      transfer ,met3
                      baby assign 1,(DUniform(1,190,230))
                      transfer ,met3


                      met3 enter emerg
                      advance P1
                      leave emerg
                      terminate
                      generate 86400
                      terminate 1
                      start 1


                      З.Ы.: выделяйте код.

                      Добавлено
                      Ну и это тебе на закуску ))
                      Цитата
                      OLD VARIABLE (DUniform(1,160,200))
                      AGED VARIABLE (DUniform(1,130,170))
                      BABY VARIABLE (DUniform(1,190,230))

                      fun function RN2,E3
                      .33,V$OLD/.66,V$AGED/1,V$BABY
                      emerg storage 2
                      generate 100

                      assign 1,FN$FUN



                      enter emerg
                      advance P1
                      leave emerg
                      terminate
                      generate 86400
                      terminate 1
                      start 1
                        Люди,спасайте. Короче у меня версия GPSS, в которой размер модели ограничен 180 блоками (180 операндов, строк кода).
                        Подскажите, кто знает, как снять это огранечение. Или если как я понимаю это ограничение именно версии программы, дайте ссылочкку плиз, где скачать, версию хотябы на 500 строк. (и желательно просто бесплатную ссылку <_< )

                        Спайте, курсач горит :(
                          h4_botan, не попадалась еще ни одна программа, для которой не хватило бы 180 блоков.
                          Скорей всего вы что то делаете не так.

                          Добавлено
                          А способ снять ограничение весьма прост. для этого надо заплатить 500 бакинских минутеансофтвейру за комерческую версию программы :yes:

                          Добавлено
                          З.Ы.: для сравнения можешь перечитать предыдущие два поста. Я не напрягаясь уменьшил вдвое размер программы, без искажения условий и потери точности моделирования.
                            Гы гы гы гы, давайте я к примеру выложу условие задачи, а вы мне,Уважаемый, скажите, уложитесь ли вы в 180 блоков.

                            На вход СМО поступает входной поток, в котором с вероятностью 0,58 имеются заявки первого типа; с остаточной вероятностью – второго. Заявки первого типа обслуживаются в 3-х канальном узле с общей очередью (устройства 1-3); второго типа – в двухканальном узле с индивидуальными очередями каждого устройства (устройства 4 и 5). СМО также располагает тремя безотказными резервными устройствами, которые могут быть использованы в случае отказа любого из основных устройств СМО. Отказы наступают в системе с заданной периодичностью, причем с вероятностью 0,75 наступает отказ одного устройства; с вероятность 0,2 – двух устройств; с вероятностью 0,05 – трех устройств (любого или любых равновероятно). В случае множественности отказа время восстановления индивидуально для каждого отказавшего устройства. Время обслуживания в используемом резерве эквивалентно времени обслуживания в резервируемом устройстве. На момент запуска системы одно резервное устройство находится в «горячем» резерве у первого устройства трехканального узла; второе – в «горячем» резерве у первого устройства двухканального узла; третье – в «холодном» резерве. Для первого отказа, если он происходит не в устройствах с «горячим» резервом, используется «холодный» резерв. Резерв считается использованным, если он отработал время восстановления устройства. Отключение использованного резерва от устройства (перевод в «холодное» состояние) происходит после наступления в системе очередного отказа в том случае, если отказ не наступил в устройстве, к которому подключен резерв. В случае отказа устройства СМО остаток незавершенного обслуживания ожидает продолжения обслуживания в резервном устройстве в течение времени, равного 1,25×МОп, где МОп – заданное математическое ожидание времени подключения резерва. Если за этот интервал подключения резерва не происходит (не успевает, нет свободных резервных устройств), то остаток направляется в кратчайшую очередь работающих устройств своего узла, где принимается при длине очереди не более 2-х заявок; в противном случае – теряется.

                            :D

                            Добавлено
                            Кстати, могу, приложить код ко всему этому....
                              2TEMENb, Вы случайно не можете мне помочь с задачей? я её выше описал, а то eugen пропал куда-то.. =\

                              Заранее спасибо
                                ну обемная задачка, по преварительным оценкам до 60-90 блоков )

                                видели задачки и пообьемней :D

                                давай код. будем править.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (54) « Первая ... 17 18 [19] 20 21 ...  53 54


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0458 ]   [ 15 queries used ]   [ Generated: 19.06.25, 07:42 GMT ]