На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (54) « Первая ... 26 27 [28] 29 30 ...  53 54  ( Перейти к последнему сообщению )  
> GPSS , Вопрос для знающих
    Цитата tigreg @
    В моей программе не работает параметр с именем ONE. В чем может быть причина?
    Зачем использовать одинаковые имена для переменной пользоватея ONE EQU 1 и для параметров транзакта P$ONE?

    ASSIGN 2,(MX$GTD(1,ONE)#P1) - здесь обращение к переменной
    ASSIGN ONE+,1 - к параметру
    TEST L ONE,10,SEG1 - к переменной
    SEG1 ASSIGN ONE,1 - к пареметру

    возможно подойдет TEST L P$ONE,10,SEG1

    andreynov не вижу разницы между следующими фрагментами. Если какой то транзакт занят ОКУ(МКУ), то он и должен его освободить
    Цитата
    19 TRANSFER 1 0 0
    Цитата TEMENb @
    причина забитости очередей абсолютно всегда одна и та же - высокая интенсивность входящего потока и маленькая интенсивность пропускной способности канала.. что то вроде забитого унитаза
    Цитата andreynov @
    Вот например, после сборки 4% деталей отправляется на предварительную обработку, но они уже собраны, их опять надо разобрать на 2 части?
    Цитата TEMENb @
    причина плохого поведения модели в ваших апгрейдах.
      Цитата Eugen @
      Зачем использовать одинаковые имена для переменной пользоватея ONE EQU 1 и для параметров транзакта P$ONE?

      ASSIGN 2,(MX$GTD(1,ONE)#P1) - здесь обращение к переменной
      ASSIGN ONE+,1 - к параметру
      TEST L ONE,10,SEG1 - к переменной
      SEG1 ASSIGN ONE,1 - к пареметру



      Симпатично получается )

      в асоциируем переменной значение 1
      Цитата Eugen @
      ONE EQU 1

      переменная подставляет значение 1
      Цитата Eugen @
      SSIGN 2,(MX$GTD(1,ONE)#P1) - здесь обращение к переменной

      обращаемся к параметру 1 (переменная подставляет свое значение)
      Цитата Eugen @
      ASSIGN ONE+,1 - к параметру

      обращаемся к переменной. т.е. условие вроде как если один меньше десяти ))
      Цитата Eugen @
      TEST L ONE,10,SEG1 - к переменной

      обращаемся к параметру номер 1
      Цитата Eugen @
      SEG1 ASSIGN ONE,1 - к пареметру



      И вопреки моим сомнениям, в этой конструкции мы обращаемся к так же к параметру номер 1 =)
      Цитата Eugen @
      TEST L P$ONE,10,SEG1
        Спасибо, господа программисты... но с русским у вас что-то не то ;)
          tigreg, це тому що деякi з нас не зовсiм росiяни, швидше жителi колишнього СРСР ;)
            ну, ясно тогда :)
              Eugen, ты скажи конкретно, что не так? до того, как отправить уже собранную деталь обратно на предварительную обработку (4%) нужно освободить память? я правильно понял?
              если так, то так уже делал, очереди такие же большие. это верное замечание, но немного не в тему
                SEG1 ASSIGN ONE,1 - к пареметру транзакта с именем ONE, или к параметру, чей номер указан в перемнной ONE???

                TEST L P$ONE,10,SEG1 - здесь то явно указано P$ - параметр транзакта ONE
                ИЛИ
                TEST L P*ONE,10,SEG1 - здесь косвенная адресация. Обращаемся к параметру чей номер указан в переменной ONE(сработает/нет hz)
                что не так?

                Добавлено
                не в тему, то что транзакт не освободив МКУ помещается в список пользователя, вот это не в тему
                  Цитата Eugen @
                  SEG1 ASSIGN ONE,1 - к пареметру транзакта с именем ONE, или к параметру, чей номер указан в перемнной ONE???

                  TEST L P$ONE,10,SEG1 - здесь то явно указано P$ - параметр транзакта ONE
                  ИЛИ
                  TEST L P*ONE,10,SEG1 - здесь косвенная адресация. Обращаемся к параметру чей номер указан в переменной ONE(сработает/нет hz)
                  что не так?

                  Проверяй сам )

                  ExpandedWrap disabled
                    ONE EQU 1
                        GENERATE    1
                        ASSIGN  ONE,10
                        ASSIGN  1+,1
                        SAVEVALUE   FIR,P1
                        SAVEVALUE   SEC,P$ONE
                        TERMINATE   1
                     
                        START   1


                  Добавлено
                  ExpandedWrap disabled
                    ONE EQU 1
                        GENERATE    1
                        ASSIGN  ONE,10
                        SAVEVALUE   FIR2,P1
                        SAVEVALUE   SEC2,P$ONE
                        ASSIGN  1+,1
                        SAVEVALUE   FIR1,P1
                        SAVEVALUE   SEC1,P$ONE
                        TERMINATE   1
                     
                        START   1
                    Добрый вечер! Прошу помочь мне.
                    Есть такое задание:

                    В студенческом машинном зале расположены две мини-ЭВМ и одно устройство подготовки данных (УПД). Студенты приходят с интервалом 8±3 мин. и треть из них хочет испытать УПД и ЭВМ, а остальные только ЭВМ. Допустимое количество студентов в машинном зале 4 чел., включая работающего на УПД.
                    Работа на УПД занимает 9±4 мин. Работа на ЭВМ - 15±10 мин.; 20% работавших на ЭВМ возвращаются для повторного использования УПД и ЭВМ и остаются при этом в машинном зале.
                    Если студент пришел в машинный зал, а там уже есть 4 чел., то он ждет не более 15±2 мин. в очереди в машинный зал и, если нет возможности в течение этого времени начать работать, то он уходит.
                    Смоделировать работу в машинном зале в течение 48 часов.
                    Определить:
                    - загрузку УПД и обеих ЭВМ,
                    - максимальную длину очереди в машинный зал,
                    - среднее время ожидания в очереди в машинный зал,
                    - распределение общего времени работы студента в машинном зале,
                    - количество студентов, которые не дождались возможности поработать и ушли.

                    И соответственно код этой программы:
                    SIMULATE
                    GENERATE 8,3 ;генерация транзактов, изображающих студентов
                    VB1 VARIABLE RN1/200+13 ;вычисление максимально возможного времени пребывания студента в очереди
                    ASSIGN 3,0 ;разница между временем встраивания студента в очередь и текущим моментом
                    ASSIGN 2,V$VB1 ;запись максимального времени
                    ASSIGN 1,X1 ;время вхождения студента в очередь
                    TEST NE X3,0,ENR ;если очередь пуста, перейти к проверке занятости машинного зала
                    ENO QUEUE OZD ;регистрация в очереди
                    SAVEVALUE 3+,1 ;увеличение размера очереди
                    ADC ADVANCE 1 ;задержка студента в ожидании свободного места в машинном зале
                    GATE SF CCL,DPT ;если в машинном зале есть место, покинуть очередь
                    SAVEVALUE 2,X1 ;запись текущего времени
                    SAVEVALUE 2-,P1 ;вычисление разницы между текущим временем и временем вхождения
                    ASSIGN 3,X2 ;и запись разницы
                    TEST LE P3,P2,DPT ;если разница превысила время ожидания, покинуть очередь,
                    TRANSFER ,ADC ;в противном случае, снова ждать одну минуту
                    DPT SAVEVALUE 3-,1 ;уменьшение числа студентов в очереди
                    DEPART OZD ;студент покидает очередь
                    TEST G P3,P2,EN1 ;если разница не превышает времени ожидания, занять место в зале,
                    TERMINATE ;в противном случае, покинуть машинный зал
                    ENR GATE SNF CCL,ENO ;если в машинном зале нет мест, встать в очередь,
                    EN1 ENTER CCL ;в противном случае, занять свободное место
                    MARK ;отметка начала работы студента в машинном зале
                    TRANSFER .333,CP1,UP1 ;треть студентов выполняет работу на УПД и ЭВМ, остальные только на ЭВМ
                    UP1 SEIZE UPD ;студент занимает место на УПД
                    ADVANCE 9,4 ;и работает некоторое время,
                    RELEASE UPD ;затем покидает УПД и
                    CP1 ENTER COM ;занимает место за одной из двух ЭВМ,
                    ADVANCE 15,10 ;работает в течении нескольких минут и
                    LEAVE COM ;покидает ЭВМ
                    TRANSFER .200,LVE,UP1 ;20%студентов возвращаются для повторного использования УПД и ЭВМ
                    LVE LEAVE CCL ;студент покидает машинный зал
                    TABULATE MWT ;фиксация времени пребывания студента в машинном зале
                    TERMINATE ;студент уходит
                    GENERATE 1 ;моделирование времени работы системы
                    SAVEVALUE 1+,1 ;счетчик времени (в минутах)
                    TRM TERMINATE 1 ;одна минута системного времени прошла
                    CCL STORAGE 4 ;вместительность машинного зала
                    COM STORAGE 2 ;количество ЭВМ
                    MWT TABLE M1,15,15,15 ;описание таблицы распределения общего времени работы студента в машинном зале
                    START 2880 ;работа системы в течении 48 часов (60*48=2880 часов)

                    Подскажите пожалуйста как нужно переделать эту программу под такое задание:

                    В студенческом машинном зале расположены две ЭВМ и одно устройство подготовки данных (УПД). Студенты приходят с интервалом в 8±2 мин, и треть из них хочет использовать УПД и ЭВМ, а остальные только ЭВМ. Допустимая очередь в машинном зале составляет четыре человека, включая работающего на УПД. Работа на УПД занимает 8±1 мин, а на ЭВМ – 17 мин. Кроме того, 20 % работавших на ЭВМ возвращается для повторного использования УПД и ЭВМ.Смоделировать работу машинного зала в течение 60 ч. Определить загрузку УПД, ЭВМ и вероятности отказа в обслуживании вследствие переполнения очереди. Определить соотношение желающих работать на ЭВМ и на УПД в очереди.

                    Если у кого-то есть программа скиньте пожалуйста на мыло: oleg-ryabov@mail.ru
                    Заранее благодарен.
                      ONE EQU 1
                      GENERATE 1
                      ASSIGN ONE,10
                      ASSIGN 1+,1
                      SAVEVALUE FIR,P1
                      SAVEVALUE SEC,P$ONE

                      ASSIGN P$ONE,5 :blink:
                      SAVEVALUE THREE,p11
                      TERMINATE 1

                      START 1
                      Цитата tigreg @
                      можно ли задать значение параметра до блока GENERATE?
                      нет. Зачем?
                        Для того, чтобы параметр one принимал значения от 1 до 10. Сейчас у меня ни один транзакт не попадает в seg1, потому что каждый раз, пар-ру one присваивается значение 0. но вот если бы оно присваивалось выше generate...

                        ONE EQU 1

                        SEG2 GENERATE 10
                        ASSIGN ONE,0
                        ASSIGN 1+,1
                        ASSIGN 3,(COS(3.14#2#RN1/1000)+COS(3.14#2#RN2/1000))
                        ASSIGN 4,(MX$GTD(1,P1)#P3)

                        TABULATE INPUT
                        TABULATE OUTPUT

                        QUEUE QUE
                        TEST L P1,10,SEG1
                        DEPART QUE
                        TERMINATE 1

                        SEG1 ASSIGN 1,1
                        TRANSFER ,SEG2
                          Цитата Eugen @
                          ASSIGN P$ONE,5
                          SAVEVALUE THREE,p11
                          :yes:

                          ASSIGN A,B

                          А и В - параметры. в качестве параметра в качестве параметров могут выступать имя, k, СЧАj, СЧА$имя или СЧА*j,
                          где
                          k Неотрицательная целая константа;
                          имя Символическое имя;
                          СЧАj Общее наименование стандартного числового атрибута, за которым следует числовое имя;
                          СЧА$имя Общее наименование стандартного числового атрибута, за которым следует знак доллара ($) и символическое имя элемента;
                          СЧА*j Общее наименование стандартного числового атрибута, за которым следует звездочка (*) и номер параметра, величина которого соответствует (числовому) имени элемента.

                          шрайбер. приложение 2. Список блоков gpss.
                            Eugen, изменил на:

                            ExpandedWrap disabled
                              MET4    ENTER   SBOR    ;занять устройство сборки
                                  DEPART  OCH2    ;покинуть очередь 2
                                  ASSEMBLE    2   ;собрать из двух деталей одну
                                  ADVANCE 6   ;Задержка на время обработки
                                  LEAVE   SBOR    ;покидаем сборку
                                  LEAVE   SBOR    ;пришло две детали, а входит одно. потому покидаем два раза.
                                  TRANSFER    .04,MET5    ;4 % деталей возвращаются на предв. обработку
                                  ADVANCE (Exponential(1,0,8));регулировка
                                  TERMINATE       ;транзакт покидает систему


                            Всё осталось так же. Вот отчет:

                            ExpandedWrap disabled
                                            GPSS World Simulation Report - forum.10.1
                               
                               
                                                 Wednesday, May 27, 2009 01:50:10  
                               
                                         START TIME           END TIME  BLOCKS  FACILITIES  STORAGES
                                              0.000           1440.000    31        1          1
                               
                               
                                            NAME                       VALUE  
                                        MET1                            2.000
                                        MET2                            5.000
                                        MET3                           13.000
                                        MET4                           15.000
                                        MET5                            6.000
                                        OCH1                        10001.000
                                        OCH2                        10003.000
                                        POVT                           25.000
                                        PREDV                       10002.000
                                        SBOR                        10000.000
                               
                               
                               LABEL              LOC  BLOCK TYPE     ENTRY COUNT CURRENT COUNT RETRY
                                                  1    GENERATE             1             0       0
                              MET1                2    ADVANCE            150             1       0
                                                  3    SPLIT              149             0       0
                                                  4    TRANSFER           149             0       0
                              MET2                5    TRANSFER           447             0       0
                              MET5                6    QUEUE              421           215       0
                                                  7    SEIZE              206             0       0
                                                  8    DEPART             206             0       0
                                                  9    ADVANCE            206             1       0
                                                 10    RELEASE            205             0       0
                                                 11    QUEUE              205             0       0
                                                 12    LINK               205             0       0
                              MET3               13    QUEUE              218             0       0
                                                 14    LINK               218            13       0
                              MET4               15    ENTER              410             0       0
                                                 16    DEPART             410             0       0
                                                 17    ASSEMBLE           410             0       0
                                                 18    ADVANCE            205             1       0
                                                 19    LEAVE              204             0       0
                                                 20    LEAVE              204             0       0
                                                 21    TRANSFER           204             0       0
                                                 22    ADVANCE             12             0       0
                                                 23    TERMINATE           12             0       0
                                                 24    GENERATE             1             0       0
                              POVT               25    TEST               206             1       0
                                                 26    TEST               205             0       0
                                                 27    UNLINK             205             0       0
                                                 28    UNLINK             205             0       0
                                                 29    TRANSFER           205             0       0
                                                 30    GENERATE             1             0       0
                                                 31    TERMINATE            1             0       0
                               
                               
                              FACILITY         ENTRIES  UTIL.   AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
                               PREDV              206    0.999       6.982  1      192    0    0     0    215
                               
                               
                              QUEUE              MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME   AVE.(-0) RETRY
                               OCH1              216  215    421      1   107.430    367.455    368.330   0
                               OCH2               21   13    423    205    12.592     42.868     83.179   0
                               
                               
                              STORAGE            CAP. REM. MIN. MAX.  ENTRIES AVL.  AVE.C. UTIL. RETRY DELAY
                               SBOR                2    0   0     2      410   1    1.705  0.852    0    0
                               
                               
                              USER CHAIN         SIZE RETRY  AVE.CONT   ENTRIES  MAX     AVE.TIME
                               1                   13    0     12.592      218    20       83.179
                               2                    0    1      0.000      205     1        0.000
                               
                               
                              FEC XN   PRI         BDT      ASSEM  CURRENT  NEXT  PARAMETER    VALUE
                                 418    0        1442.715      1     18     19
                                 192    0        1443.715      1      9     10
                                   1    0        1464.667      1      2      3
                                 451    0        2880.000    451      0     30
                              TEMENb
                              Спасибо за советы по первым вопросам, все получилось.
                              А по поводу последнего:
                              Цитата TEMENb @
                              Цитата Angellina @
                              4) И как сделать так, чтобы вероятность выдачи правильного ответа не могла превышать 1.

                              А как сделать так, что бы ВЕРОЯТНОСТЬ могла превысить 1?


                              К сожалению, в моей программе именно так и получается, а еще и отрицательная бывает :wacko:
                              Поэтому я и спрашиваю.
                              ExpandedWrap disabled
                                SAVEVALUE               RETRY       VALUE
                                 VER1                     0   -2.71921e+010                          
                                 VER2                     0   270912626.430                          
                                 VER3                     0   -5.6089e+006
                                Всем привет и доброго времени суток. У меня следующая проблема, нужно решить задачу и смоделировать её в GPSS World (очень простая по структуре), ищу человека хорошего знающего GPSS, для её решения, за соответсвующие вознаграждение. Просто сам в запарке и не когда нормально сесть за прогу. Пишите мне на мыло filosof21veka@mail.ru или звоните на мобильный 89636488666.
                                Сообщение отредактировано: real_live -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (54) « Первая ... 26 27 [28] 29 30 ...  53 54


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