На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (54) « Первая ... 2 3 [4] 5 6 ...  53 54  ( Перейти к последнему сообщению )  
> GPSS , Вопрос для знающих
    TEMENb, спасибо, прежде всего, за развёрнутый ответ.

    Да, насколько я понимаю в микро-версии просто нет части команд:


    "Модели на micro-GPSS компактны, часто состоят из меньшего числа операторов, чем такие же модели, написанные на процедурных языках (например, на Фортране или Бейсике). Это объясняется тем, что в micro-GPSS встроено максимально возможное число логических программ, необходимых для моделирующих систем. В него также входят специальные средства для описания динамического поведения систем, меняющихся во времени, причем изменение состояний происходит в дискретные моменты времени.
    Micro-GPSS очень удобен при программировании, поскольку интерпрета-тор micro-GPSS (здесь и далее интерпретатором называется моделирующая часть системы micro-GPSS) многие функции выполняет автоматически. На-пример, micro-GPSS без специального на то указания пользователя собирает статистические данные, описывающие поведение модели, автоматически печа-тает итоговую статистику по завершении моделирования. Пользователю нет необходимости включать в модель операторы для сбора и накопления этих данных или задавать формат, указывающий, в каком виде должны быть распе-чатаны итоговые данные."

    Вот сам интепретатор, который нам дали - http://poiskolog.ru/trash/gpss-rus.EXE
    А вот краткая методичка по командам - http://poiskolog.ru/trash/Micro_GPSS.doc

    Касаемо самой программы - я уже написала, что тоже считаю что найденный мною вариант нерабочий - я просто привела его как пример. Именно по этой причине я постаралась сделать несколько своих вариантов - как я считаю правильным. Так вот по-возможности хотелось бы получить подсказку что у меня неправильно в _моих_ вариантах решения этой задачи, а не в том, который я привела первым для примера ;)
      Методу скачаим. А сам микрожпсс я уже нашел.. вроде (не скачал, но еще не запускал)))
      Судя по нагугленному - микрожпсс - это слабенькая попытка сделать жпсс более гибким.. эм... с возможностью создания своих блоков и "улучшением" уже имеющихся. Срезана половина команд (заменена на ифы и вайлы).. и вроде теперь он проще учится )))

      Вообщем это надо в среду лезть.. смотреть - пробовать... :ph34r:

      Добавлено
      ааааааааааааааааааааа :D
      фигасее улучшили :lool:

      эта писец, детишки )))))
      этот черный экранчик вызывает у меня благоговейный трепет ))))
      Цитата

      MICRO-GPSS STUDENT VERSION 95-01-01
      C INGOLF STAHL

      Введите имя файла с программой на GPSS
      Длинна имени должна 4-25



      Интересно, конечно, кому и что должна длинна :P


      Да уж, он полюбасу легче для изучения, особенно с учетом того, что программу надо писать в блокноте, а потом каждый раз прописывать путь к файлу в програмке-интерпритаторе

      "таких извращений Иван не видл" (с)
      :D
        Что происходит при изменении команды START 1 на команду START 10? При 10 прогонах получатся более точные результаты?
          Ююю, стыдно должно быть за такие вопросы ))
          Это самая первая лекция/лаба/глава.
          START А - означает промоделировать, со счетчиком завершений равным А.
          TERMINATE A - когда транзакт покидает модель, из вчетчика завершений вычитается значение А.

          Когда значение счетчика завершений становится равным нулю (или меньше нуля), то моделирование заканчивается.

          Цитата Ююю @
          Что происходит при изменении команды START 1 на команду START 10? При 10 прогонах получатся более точные результаты?

          В данном случае вы либо увеличиваете время моделирования в 10 раз, либо увеличиваете в 10 раз колличество обработанных транзактов, либо... вообщем все зависит от конкретно вашей задачи.

          А результаты станосятся точнее, т.к. по теории вероятности, чем больше проведено экспериментов (чем дольше проводился эксперимент), тем точнее результат.
            привет всем! подскажите пожалуйста правильно ли я решила задачу!!!!
            Абоненты звонят каждые 10 сек., время приема вызова распределено по экспоненц. з-ну со средним знач. 12 сек. , в случае неудачи дозвониться абонент попыток дозвониться больше не предпринимает. Смоделировать работу в течение 8 ч.

            TELEPHON STORAGE 2
            GENERATE 10
            GATE NU TEL,OUT
            ENTER TELEPHON
            ADVANCE (Exponential (1,0,12))
            LEAVE TELEPHON
            OUT TERMINATE

            GENERATE 28800
            TERMINATE 1

            один из подвопросов - определить наименьшее число телефонов , при котором вызов принимается не менее чем от 90% абонентов. минимальное число телефонов использую - 2 шт., а отчет выдает что загруженность всего 61%. А я должна ответить какое число телефонов при 90%!
            ничего уже не понимаю!
              Подскажите как реализовать: Интервалы времени в потоке распределены по экспоненциальному закону со средним временим, распределенным равномерно от 20 до 40 единиц времени. Имеется ввиду что в GENERATE указывать?
                GENERATE 30,10 вроде как...
                  Milaya, все верно. поступающий поток - 0.1 в секунду, а обрабатывающий поток - 0,1(6).

                  Итого 0.1/0.1(6)=0.6

                  60%

                  идите компосируйте мозг преподу ))

                  Добавлено
                  Цитата artyomst @
                  Интервалы времени в потоке распределены по экспоненциальному закону со средним временим, распределенным равномерно от 20 до 40 единиц времени


                  среднее значение - 30
                  отклонение - 10
                  закон - экспоненциальнй

                  итого смещение - 20
                  коефиыиент растягивания - 20

                  ExpandedWrap disabled
                    GENERATE (Exponential (1,20,20))


                  Добавлено
                  Цитата Milaya @
                  GENERATE 30,10 вроде как...

                  Это равномерный закон

                  Добавлено
                  Вроде разрулил.. :D
                    Некий производитель выпускает центробежные насосные агрегаты, которые собираются по заказам клиентов. Заказы поступают в среднем каждые 5 часов (экспоненциальное распределение). При поступлении заказа с него снимают две копии. Исходный заказ используется для получения со склада двигателя и подготовки его к сборке (200+100 минут). Первая копия используется для заказа и подгонки насоса (180+120 минут), а вторая копия -для производства опорной плиты (80+20 минут).
                    Когда насос и опорная плита готова, производится проверочный монтаж (50+10 минут). После того как будут готовы все три компонента, производится окончательная сборка. Агрегат разбирается, насос и двигатель окрашиваются, а опорная плита оцинковывается. Затем агрегат собирается окончательно (150+30 минут). Необходимо:
                    Смоделировать сборку 50 насосных агрегатов

                    Вот что я смог:
                    ExpandedWrap disabled
                      zakaz storage 2
                       
                      generate 300,,,,50
                      queue engine //очередь для получения двигателя
                      depart engine
                      advance 200,100 // время получения двигателя
                       
                      queue nasos // очередь для насоса
                      enter zakaz
                      depart nasos
                      advance 180,120 // подгонка насоса
                       
                      queue plita // очередь для плиты
                      enter zakaz
                      depart plita
                      advance 80,20 // производство опорной плиты
                       
                      leave zakaz
                      leave zakaz

                    а вот дальше что использовать для

                    Цитата
                    Когда насос и опорная плита готова, производится проверочный монтаж
                      1. копии не снимаются (spleet)
                      2. одна деталь проходит обе обработки, а должна проходить одна копия одну. а джругая - другу.
                      Цитата jaguar555 @
                      того как будут готовы все три компонента

                      откуда ТРИ компонента?
                      3. потом их надо обьеденить (acemble) и сделать проверочный монтаж.
                      4. потом снова разбивается и отдельно части обрабатываются
                      5. и снова собирается.

                      и моделирование заканчивается когда ОБРАБОТАЛОСЬ 50 деталей. не обязательно задавать на вход 50. Да и экспоненциальным распредилением на входе не пахнет.
                        TEMENb
                        Цитата
                        4. потом снова разбивается и отдельно части обрабатываются
                        5. и снова собирается.


                        Преп сказал, что это 2 advance делается

                        вот что то еще мне удалось придумать
                        ExpandedWrap disabled
                              generate (exponential(1,0,300))
                              queue engine
                              seize stockman
                              depart engine
                              advance 200,100
                              split 1,nasos
                              split 1,plita
                           
                          nasos   queue get_nasos
                              seize worker
                              depart get_nasos        
                              advance 180,120
                           
                          plita   queue make_plita
                              seize worker1
                              depart make_plita
                              advance 80,20
                              
                              assemble 3
                              queue check
                              seize worker2
                              depart check
                              advance 50,10
                              advance 150,30
                              release worker2
                              terminate
                              
                          GENERATE 1000
                          TERMINATE 1
                          START 1

                        Модель работает но как то странно: если ее запустить не 1 раз а 10, то получится что двигателей заказано 30 с лишним, а насосов и плит для них только 2, а в assemble их попадает около 50
                        Сообщение отредактировано: jaguar555 -
                          о, появился сплит )
                          Это радует. только сплитов много сильно ;)
                          попробуй второй салит заменить на трансфер ;)

                          и ассембл надо с параметром 2

                          после обработки на метке насос - трансфер на асембл (насос ведь не участвует в заказе плиты)

                          после асембла еще сплин, обработка и еще асембл.


                          Другими словами: теперь больше похоже на правду, но всеравно еще не то, что надо )
                            Сдал седня такой вариант. поставили мне 4 бала и сказали что можно было все сделать проще, но не сказали как
                            Спасибо за помощь
                            ExpandedWrap disabled
                              worker storage 2
                              generate (exponential(1,0,300))
                                  queue engine
                                  enter worker,2
                                  depart engine
                                  advance 200,100
                                  leave worker,2
                                  split 1,plita
                               
                                  queue get_nasos
                                  enter worker
                                  depart get_nasos        
                                  advance 180,120
                                  leave worker
                                  transfer ,pribor
                               
                              plita   queue make_plita
                                  enter worker
                                  depart make_plita
                                  advance 80,20
                                  leave worker
                                  
                              pribor  assemble 2
                                  queue check
                                  enter worker,2
                                  depart check
                                  advance 50,10
                                  advance 150,30
                                  leave worker,2
                                  terminate
                                  
                              GENERATE 1000
                              TERMINATE 1
                              START 1
                              ну попрежнему не выполнено
                              Цитата jaguar555 @
                              Агрегат разбирается, насос и двигатель окрашиваются, а опорная плита оцинковывается. Затем агрегат собирается окончательно

                              хотя на похоже это подрядидущие сплит и асембл которыми можно пожертвовать.
                              а в остальном вроде соответствует заданию =)

                              Где можно было упростить/добавить - незнаю, т.к. в задание особо не вчитывался. вы уж извините ;)


                              З.Ы.: м.. мдя.
                              действительно нужен еще один сплит (плита, насос есть, а мотора нет), а после него уже трансфер..
                              Соответственно и асембл 3..

                              Цитата TEMENb @
                              откуда ТРИ компонента?

                              Извините недосмотрел...
                                На комплектовочный конвейер сборочного цеха каждые Т1 минут поступают N1 деталей первого типа и каждые Т2 минут – N2 деталей второго типа. Изделие комплектуется из N3 деталей каждого типа. Комплектация начинается только при наличии деталей обоих типов в необходимом количестве (рис. 1.)






                                Конвейер движется ритмично с шагом Т3 минут. При отсутствии необходимого количества деталей секция конвейера перемещается пустой («холостой ход»).
                                Определить целесообразность перехода на другие режимы работы конвейера, оперируя такими параметрами:
                                1)размерами секции – количеством деталей каждого типа, из которых комплектуется изделие (возможны дополнительные варианты – по N4 и N5 изделий);
                                2) шагом конвейера (возможны дополнительные варианты – Т4 и Т5 минут).
                                Оценить вероятность «холостого хода», средних и максимальных длин очередей каждого типа изделий.

                                Варианты заданий

                                Вариант Параметры
                                Т1 N1 Т2 N2 N3 Т3 N4 N5 Т4 Т5
                                1 5±1 5 20±5 20 10 10 20 5 20 5
                                2 10±3 8 40±10 32 16 20 32 8 36 9
                                3 15±5 12 60±12 36 24 30 36 12 45 15
                                4 12±4 6 48±10 24 24 24 24 6 45 15



                                Есть код на GPSS, но он почему то не компелируется. Помогите пожайлуста!!!

                                izd1 storage 10 объявление накопителя для изделий 1
                                izd2 storage 10 объявление накопителя для изделий 2
                                pust variable 0
                                poln variable 0
                                generate 480 задание общего времени моделирования
                                terminate 1
                                generate 5,1 генерация деталей 1 первого типа
                                QUEUE o1
                                enter izd1 вход деталей в накопитель 1
                                terminate
                                generate 20,7 генерация деталей 1 первого типа
                                QUEUE o1
                                split 1 создание 1 копии выходящего в блок транзакта
                                enter izd2,2 вход деталей 2 в накопитель
                                terminate
                                generate 10 задание числа секций
                                test GE s$izd2,1,pst проверка наличия деталей в накопителе 1
                                test GE s$izd1,2,pst проверка наличия деталей в накопителе 2
                                leave izd1,2 освобождение накопителя 1
                                leave izd2,1 освобождение накопителя 2
                                advance 10 обработка
                                savevalue poln+,1 подсечет кол-ва полных секций
                                terminate
                                pst savevalue pust+,1 кол-во пустых секций
                                terminate
                                start 1
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (54) « Первая ... 2 3 [4] 5 6 ...  53 54


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0423 ]   [ 15 queries used ]   [ Generated: 21.04.25, 08:57 GMT ]