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

    либо сделай очередь ввиде МКУ (что не совсем удобно, т.к. возвращающийся с эвм на упд в очередь может не попасть), либо поставить условие (блок TEST) на размер очереди.
      Eugen
      угу. сам уже до этого допер :D поменял CH на CHAN и все заработало.

      Спасибо всем откликнувшимся :)
        Lovely_TiGrRrA, ну ты для начала напиши код...
          слушай можешь пожалуйста написать полносью код проги работающей.....(студенты приходят с интервалом 8+-2 мин..... ).Буду признателен
            TEMENb можешь прислать код проги?
              да у тебя есть код этой проги :whistle:
                вот толи недосып сказыается то ли я уже вижу код этой проги в этой ветке. немного недоделаный, но всетаки.
                если есть желание, что бы кто то за вас наваял ваше задание да отправил - готовьте мани.
                  да что бы есть, нужны мани = решенные задачи - все просто
                    я с кодом немного поразбирался, так то все просто только вопросс как правильно записать время которое уходит на заправку топливом?? и еще как записать процент машин идущих на разные колонки?
                    спасибо)
                      Доброго всем времени суток!
                      Дамы и господа, подскажите, пожалуйста решение данной задачи:

                      "К ЭВМ подключено четыре терминала, с которых осуществляется решение задач. По команде с терминала выполняют операции редактирования, трансляции, планирования и решения. Причем, если хоть один терминал выполняет планирование, остальные вынуждены простаивать из-за нехватки оперативной памяти. Если два терминала выдают требование на решение, то оставшиеся два простаивают, и если работают три терминала, выдающих задания на трансляцию, то оставшийся терминал блокируется. Интенсивности поступления задач различных типов равны. Задачи одного типа от одного терминала поступают через экспоненциально распределенные интервалы времени со средним значением 160 с. Выполнение любой операции длится 10 с. Смоделировать работу ЭВМ в течение 4 ч. Определить загрузку процессора, вероятности простоя терминалов и частоту одновременного выполнения трансляции с трех терминалов."

                      Знаю нескольких языках, но этот, что-то не дается :/

                      Вот, что я смог навоять:
                      Simulate

                      XPDIS FUNCTION RN1,C24
                      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/.9999,8

                      RAM Stprage 4

                      Generate 160,FN$XPDIS

                      Transfer (3/4), Red
                      Transfer (2/3), Transl
                      Transfer (1/2), Plan, Reshen


                      plan Enter RAM, 4
                      Advance 10
                      Leave RAM, 4
                      Transfer , all

                      Reshen Enter RAM, 2
                      Advance 10
                      Leave RAM, 2
                      Transfer , all

                      Transl Enter RAM, 1.3
                      Advance 10
                      Leave RAM, 1.3
                      Transfer , all

                      Red Enter RAM
                      Advance 10
                      Leave RAM
                      Transfer , all

                      all Terminate

                      Generate 160,FN$XPDIS

                      Transfer (3/4), Red
                      Transfer (2/3), Transl
                      Transfer (1/2), Plan, Reshen


                      plan Enter RAM, 4
                      Advance 10
                      Leave RAM, 4
                      Transfer , all

                      Reshen Enter RAM, 2
                      Advance 10
                      Leave RAM, 2
                      Transfer , all

                      Transl Enter RAM, 1.3
                      Advance 10
                      Leave RAM, 1.3
                      Transfer , all

                      Red Enter RAM
                      Advance 10
                      Leave RAM
                      Transfer , all

                      all Terminate


                      Generate 160,FN$XPDIS

                      Transfer (3/4), Red
                      Transfer (2/3), Transl
                      Transfer (1/2), Plan, Reshen


                      plan Enter RAM, 4
                      Advance 10
                      Leave RAM, 4
                      Transfer , all

                      Reshen Enter RAM, 2
                      Advance 10
                      Leave RAM, 2
                      Transfer , all

                      Transl Enter RAM, 1.3
                      Advance 10
                      Leave RAM, 1.3
                      Transfer , all

                      Red Enter RAM
                      Advance 10
                      Leave RAM
                      Transfer , all

                      all Terminate


                      Generate 160,FN$XPDIS

                      Transfer (3/4), Red
                      Transfer (2/3), Transl
                      Transfer (1/2), Plan, Reshen


                      plan Enter RAM, 4
                      Advance 10
                      Leave RAM, 4
                      Transfer , all

                      Reshen Enter RAM, 2
                      Advance 10
                      Leave RAM, 2
                      Transfer , all

                      Transl Enter RAM, 1.3
                      Advance 10
                      Leave RAM, 1.3
                      Transfer , all

                      Red Enter RAM
                      Advance 10
                      Leave RAM
                      Transfer , all

                      all Terminate


                      Generate 14400
                      Terminate 1
                      Start
                      End
                        со временем разобрался, а вот с процентами пока никак)
                          Помогите, пожалуйста
                          Есть следующая задача:

                          Исходные данные к проектированию: средство реализации GPSS World.
                          Объект моделирования – экспертная система, пополняемая записями экспертов. В начальный момент времени вероятность выдачи правильного ответа по запросу каждого типа равна нулю. По проектным прогнозам, в связи с работой экспертов по пополнению системы, со временем эксплуатации системы вероятность выдачи правильного результата возрастает. Проектные прогнозы представлены в таблице.

                          дни 1 2 3 4 5 6 7 8
                          Вер.А 47,7 71,6 84,7 89,3 94,5 97,1 97,1 96,4
                          Вер.В 31,3 51,5 65,2 77,8 82,1 84,2 89,2 92,0
                          Вер.С 24,0 47,1 57,7 65,7 74,5 81,4 83,3 84,2

                          дни 9 10 11 12 13 14 15 16
                          Вер.А 97,8 96,4 97,9 99,5 98,0 97,1 98,0 98,8
                          Вер.В 92,4 92,2 95,6 94,2 93,1 94,6 95,4 96,4
                          Вер.С 87,9 90,9 90,3 89,2 91,6 92,0 90,6 92,5

                          дни 17 18 19 20
                          Вер.А 98,0 97,1 98,0 99,2
                          Вер.В 94,9 93,4 95,0 93,7
                          Вер.С 94,2 93,6 92,8 94,0

                          Система начинает принимать к обслуживанию запросы пользователей типа А, когда вероятность выдачи правильного ответа для этого типа достигнет 58%; запросы типа В – при 65%; типа С – при 80%. С остаточной вероятностью для каждого типа запроса выдается неверный результат. Запросы типа С обладают абсолютным приоритетом, прерванное обслуживание завершается после обслуживания приоритетного запроса. Если по какому-либо из типов запросов неверный результат выдается три раза подряд, то работы системы приостанавливается для корректировки. Запросы, поступающие во время корректировки, ожидают ее завершения во входной очереди. Время обработки запроса зависит от типа; начальные значения параметров распределения времен обработки представлены в таблице. С момента начала обслуживания запросов каждого типа математическое ожидание времени обработки уменьшается на 0,05% от начального значения после обслуживания очередного запроса до тех пор, пока не достигнет 0,35 от начального значения; далее эта величина не изменяется. Единица измерения времени в таблице исходных данных – минуты.

                          тип А тип В тип С обсл. А обсл. В обсл. С корректировка
                          эксп. эксп. эксп. эксп. эксп. эксп. эксп.
                          l=0,07 l=0,028 l=0,02 l=0,5 l=0,2 l=0,083 l=0,1

                          Вот что у меня получилось.

                          ExpandedWrap disabled
                             
                            PROV1   BVARIABLE X$VER1'L'0.58
                            ;
                            PROV2   BVARIABLE X$VER2'L'0.65
                            ;
                            PROV3   BVARIABLE X$VER3'L'0.80
                            ;
                            PROVA   BVARIABLE   (P10'E'11)'OR'(P10'E'12)
                            ;булева переменная проверяющая, что заявка является заявкой типа A
                             
                            INITIAL X$VER1,0
                            ;Переменная, которая хранит вероятность выдачи верного результата на запрос типа A
                            INITIAL X$VER2,0
                            ;Переменная, которая хранит вероятность выдачи верного результата на запрос типа B
                            INITIAL X$VER3,0
                            ;Переменная, которая хранит вероятность выдачи верного результата на запрос типа C
                            INITIAL X$MO1,2
                            ;Переменная, которая хранит математическое ожидание обслуживания запроса типа A
                            INITIAL X$MO2,5
                            ;Переменная, которая хранит математическое ожидание обслуживания запроса типа B
                            INITIAL X$MO3,12.048
                            ;Переменная, которая хранит математическое ожидание обслуживания запроса типа C
                            INITIAL X$COUNT1,0
                            ;Переменная, которая хранит значение счетчика неверных ответов на запрос типа A
                            INITIAL X$COUNT2,0
                            ;Переменная, которая хранит значение счетчика неверных ответов на запрос типа B
                            INITIAL X$COUNT3,0
                            ;Переменная, которая хранит значение счетчика неверных ответов на запрос типа C
                             
                             
                            T_A GENERATE (Exponential(1,0,14.286))
                            ;генерирование заявок типа A
                                MARK    20
                            ;в параметр 20 каждой заявки записывается значение времени прошедшего с начала моделирования
                                SAVEVALUE   VER1,((-3#10^(-24)#P20^6+3#10^(-19)#P20^5-2#10^(-14)#P20^4+4#10^(-10)#P20^3-5#10^(-6)#P20^2+0.0317#P20+11.3)/100)
                            ;вычисление значения вероятности выдачи правильного ответа по запросу типа A и сохранение значения в переменной VER1
                                TEST NE BV$PROV1,1,OUT1
                            ;проверка, определяющая может ли начинаться обработка запросов типа A,
                            ;если вероятность выдачи правильного ответа >=58%, то далее
                                TRANSFER    X$VER1,T_A1,T_A2
                             
                            T_B GENERATE (Exponential(1,0,35.714))
                            ;генерирование заявок типа B
                                MARK    20
                            ;в параметр 20 каждой заявки записывается значение времени прошедшего с начала моделирования
                                SAVEVALUE   VER2,((3#10^(-20)#P20^5-3#10^(-15)#P20^4+10^(-10)#P20^3-2#10^(-6)#P20^2+0.0225#P20+3.431)/100)
                            ;вычисление значения вероятности выдачи правильного ответа по запросу типа B и сохранение значения в переменной VER2
                                TEST NE BV$PROV2,1,OUT1
                            ;проверка, определяющая может ли начинаться обработка запросов типа B,
                            ;если вероятность выдачи правильного ответа >=65%, то далее
                                TRANSFER    X$VER2,T_B1,T_B2
                             
                            T_C GENERATE    (Exponential(1,0,50))
                            ;генерирование заявок типа C
                                MARK    20
                            ;в параметр 20 каждой заявки записывается значение времени прошедшего с начала моделирования
                                SAVEVALUE   VER3,((-6#10^(-16)#P20^4+4#10^(-11)#P20^3-10^(-6)#P20^2+0.0171#P20+4.0942)/100)
                            ;вычисление значения вероятности выдачи правильного ответа по запросу типа С и сохранение значения в переменной VER3
                                TEST NE BV$PROV3,1,OUT1
                            ;проверка, определяющая может ли начинаться обработка запросов типа С,
                            ;если вероятность выдачи правильного ответа >=80%, то далее
                                PRIORITY    2
                            ;установка приоритета запросов типа С равным 2
                                TRANSFER    X$VER3,T_C1,T_C2
                             
                            ;запись типов заявок в 10 параметр каждой заявки
                            ;где 11,21,31 правильные ответы на запросы типа A, B, C соответственно и
                            ;где 12,22,32 неверные ответы на запросы типа A, B, C соответственно
                            T_A1    ASSIGN  10,11
                                TRANSFER    ,TAB_SERV
                             
                            T_A2    ASSIGN  10,12
                                TRANSFER    ,TAB_SERV
                             
                            T_B1    ASSIGN  10,21
                                TRANSFER    ,TAB_SERV
                             
                            T_B2    ASSIGN  10,22
                                TRANSFER    ,TAB_SERV
                             
                            T_C1    ASSIGN  10,31
                                TRANSFER    ,TC_SERV
                             
                            T_C2    ASSIGN  10,32
                                TRANSFER    ,TC_SERV
                             
                            ;Блок обслуживания заявок
                             
                            TAB_SERV    QUEUE   O1
                            ;помещение заявок в очередь
                                SEIZE   DEVICE_S1          
                            ;Проверка занятости устройства DEVICE_S1
                                DEPART  O1          
                            ;Выход заявки из очереди О1
                                TEST E  BV$PROVA,1,TB_SERV
                            ;проверка, если запрос типа A, переход далее, иначе на обслуживание заявок типа B
                             
                            TA_SERV ADVANCE (Exponential(1,0,MO1))
                            ;задержка заявки типа A на время, необходимое для обработки
                                RELEASE DEVICE_S1          
                            ;Освобождение устройства DEVICE_S1
                                SAVEVALUE   MO1-,0.001
                            ;уменьшение значения мат.ожидания на 0.05% oт начального значения после обслуживания очередного запроса
                                TEST LE X$MO1,0.7,TA_ERR
                                SAVEVALUE   MO1,0.7
                            ;проверка, не достигло ли мат.ожидание 0,35 от начального значения
                            ;если достигло, то мат.ожидание становится равным этому значению
                             
                            TA_ERR  TEST E  P10,12,OUT_OK
                            ;проверка, если тип заявки 12 (неверный ответ на запрос типа A) переход далее к счетчику
                                SAVEVALUE   COUNT1+,1
                            ;увеличение значения счетчика на 1
                                TEST E  X$COUNT1,3,OUT_OK
                            ;проверка, если значение счетчика=3, то переход далее на корректировку системы и обнуление счетчика
                                ADVANCE (Exponential(1,0,10))    
                                SAVEVALUE   COUNT1,0
                                TRANSFER    ,OUT_OK
                             
                            TB_SERV ADVANCE (Exponential(1,0,MO2))
                            ;задержка заявки типа B на время, необходимое для обработки
                                RELEASE DEVICE_S1          
                            ;Освобождение устройства DEVICE_S1
                                SAVEVALUE   MO2-,0.0025
                            ;уменьшение значения мат.ожидания на 0.05% oт начального значения после обслуживания очередного запроса
                                TEST LE X$MO2,1.75,TB_ERR
                                SAVEVALUE   MO2,1.75
                            ;проверка, не достигло ли мат.ожидание 0,35 от начального значения
                            ;если достигло, то мат.ожидание становится равным этому значению
                             
                            TB_ERR  TEST E  P10,22,OUT_OK
                            ;проверка, если тип заявки 22 (неверный ответ на запрос типа B) переход далее к счетчику
                                SAVEVALUE   COUNT2+,1
                            ;увеличение значения счетчика на 1
                                TEST E  X$COUNT2,3,OUT_OK
                            ;проверка, если значение счетчика=3, то переход далее на корректировку системы и обнуление счетчика
                                ADVANCE (Exponential(1,0,10))    
                                SAVEVALUE   COUNT2,0
                                TRANSFER    ,OUT_OK
                             
                            TC_SERV QUEUE   O_PR            
                            ;Вход заявки в очередь О_PR для запросов типа С обладающих абсолютным приоритетом
                                PREEMPT DEVICE_S1,PR    
                            ;Прерывание обслуживания заявки первого типа в устройстве DEVICE_S1
                                DEPART  O_PR            
                            ;Выход заявки из очереди О_PR
                                ADVANCE (Exponential(1,0,MO3))
                            ;задержка заявки типа C на время, необходимое для обработки
                                RETURN  DEVICE_S1          
                            ;Освобождение устройства DEVICE_S1
                                SAVEVALUE   MO3-,0.006024
                            ;уменьшение значения мат.ожидания на 0.05% oт начального значения после обслуживания очередного запроса
                                TEST LE X$MO3,4.2168,TC_ERR
                                SAVEVALUE   MO3,4.2168
                            ;проверка, не достигло ли мат.ожидание 0,35 от начального значения
                            ;если достигло, то мат.ожидание становится равным этому значению
                             
                            TC_ERR  TEST E  P10,32,OUT_OK
                            ;проверка, если тип заявки 32 (неверный ответ на запрос типа С) переход далее к счетчику
                                SAVEVALUE   COUNT3+,1
                            ;увеличение значения счетчика на 1
                                TEST E  X$COUNT3,3,OUT_OK
                            ;проверка, если значение счетчика=3, то переход далее на корректировку системы и обнуление счетчика
                                ADVANCE (Exponential(1,0,10))    
                                SAVEVALUE   COUNT3,0
                                TRANSFER    ,OUT_OK
                             
                            OUT1    TERMINATE
                             
                            OUT_OK  TERMINATE
                                
                                GENERATE    1000000
                                TERMINATE 1
                                START   1


                          Мне кажется что программа работает некорректно, например, при любом времени работы системы (или числе прогонов) на обслуживание идут всегда 554 запроса типа А.

                          Подскажите пожалуйста:
                          1)Как и где прописать то, что запросы, поступающие во время корректировки, ожидают ее завершения во входной очереди;
                          2)Как сделать так, чтобы вероятность выдачи правильного ответа не могла превышать 1.

                          И как высчитать следующие характеристики системы:
                          1.Среднее время пребывания запросов в системе;
                          2.Среднеквадратическое отклонение времени пребывания запросов в системе;
                          3.Коэффициент использования каждой очереди;
                          4.Среднеквадратическое отклонение времени пребывания заявок в очереди.


                          И, наконец, правильно ли работает программа?
                            ExpandedWrap disabled
                              RAST    FUNCTION    P$NUM,D9            ;функция соответствия номера участка расстоянию до участка
                                  1,1/2,1/3,1/4,1/5,1/6,1/7,1/8,1/9,1
                              RAST1   FUNCTION    P$NUM,D8            ;функция соответствия номера участка расстоянию до участка от участка номер 1
                                  2,1/3,1/4,1/5,1/6,1/7,1/8,1/9,1
                              RAST2   FUNCTION    P$NUM,D8            ;функция соответствия номера участка расстоянию до участка от участка номер 2
                                  1,1/3,1/4,1/5,1/6,1/7,1/8,1/9,1
                              RAST3   FUNCTION    P$NUM,D8            ;функция соответствия номера участка расстоянию до участка от участка номер 3
                                  1,1/2,1/4,1/5,1/6,1/7,1/8,1/9,1
                              RAST4   FUNCTION    P$NUM,D8            ;функция соответствия номера участка расстоянию до участка от участка номер 4
                                  1,1/2,1/3,1/5,1/6,1/7,1/8,1/9,1
                              RAST5   FUNCTION    P$NUM,D8            ;функция соответствия номера участка расстоянию до участка от участка номер 5
                                  1,1/2,1/3,1/4,1/6,1/7,1/8,1/9,1
                              RAST6   FUNCTION    P$NUM,D8            ;функция соответствия номера участка расстоянию до участка от участка номер 6
                                  1,1/2,1/3,1/4,1/5,1/7,1/8,1/9,1
                              RAST7   FUNCTION    P$NUM,D8            ;функция соответствия номера участка расстоянию до участка от участка номер 7
                                  1,1/2,1/3,1/4,1/5,1/6,1/8,1/9,1
                              RAST8   FUNCTION    P$NUM,D8            ;функция соответствия номера участка расстоянию до участка от участка номер 8
                                  1,1/2,1/3,1/4,1/5,1/6,1/7,1/9,1
                              RAST9   FUNCTION    P$QQQ,D8            ;функция соответствия номера участка расстоянию до участка от участка номер 9
                                  1,1/2,1/3,1/4,1/5,1/6,1/7,1/8,1
                               
                              ;Следующие 10 строк нужны для того, что бы обращаться к функциям по номеру
                              ;RAST   EQU 10          ;задать в соответствие имени RAST значение 10
                              RAST1   EQU 1           ;задать в соответствие имени RAST1 значение 1
                              RAST3   EQU 2           ;задать в соответствие имени RAST2 значение 2
                              RAST3   EQU 3           ;задать в соответствие имени RAST3 значение 3
                              RAST4   EQU 4           ;задать в соответствие имени RAST4 значение 4
                              RAST5   EQU 5           ;задать в соответствие имени RAST5 значение 5
                              RAST6   EQU 6           ;задать в соответствие имени RAST6 значение 6
                              RAST7   EQU 7           ;задать в соответствие имени RAST7 значение 7
                              RAST8   EQU 8           ;задать в соответствие имени RAST8 значение 8
                              RAST9   EQU 9           ;задать в соответствие имени RAST9 значение 9
                               
                                  INITIAL X$MESTO,10
                               
                              MET GENERATE    ,,,9            ;генерируем 9 участков
                                  assign  QQQ,1
                                  ASSIGN  NUM,N$MET           ;в первый параметр полозить значение равное колличеству транзактов, прошадших сквозь метку МЕТ
                              POVT    ADVANCE (POISSON(1,(24+(3#P$NUM)))) ;ожидаем время до возникновения аварии
                                  QUEUE   AVARIA          ;занять очередь на тушение пожара
                                  SEIZE   BRIGADA         ;бригада выехала
                                  ASSIGN  POS,10;X$MESTO          ;В параметр POS положить значение местонахождения бригады
                                  ADVANCE (FN$RAST/(40#1000/60))      ;время на поездку к месту пожана
                                  SAVEVALUE   MESTO,P$NUM         ;отметить что бригада находится в новом месте
                                  DEPART  AVARIA          ;покинуть очередь (неачали устранять аварию)
                                  ADVANCE (NORMAL(2,40,10))       ;задержка на время устранения аварии
                                  TEST NE Q$POJAR,0,MET2          ;если в очереди есть транзакты (колличество транзактов не равно нулю), то дальше, иначе на метку
                                  ADVANCE (FN$RAST/(40#1000/60))      ;задержка на поездку на базу
                                  SAVEVALUE   MESTO,10            ;отметить что бригада находится в на базе
                              MET2    RELEASE BRIGADA         ;бригада освободилась
                                  TRANSFER    ,POVT           ;перейти на метку
                               
                                  GENERATE    (30#24#60)          ;через месяц сгенерировать транакт
                                  TERMINATE   1           ;транзакт покидает систему
                               
                                  START   1


                            Если вот это раскоментировать
                            ;RAST EQU 10 ;задать в соответствие имени RAST значение 10

                            то вылетает ошибка.
                            ПОЧЕМУ???
                              Angellina
                              вот кое чего могу сказать может поможет....

                              1)AVE.TIME (Среднее время) – среднее время пребывания одного транзакта в очереди с учетом всех входов в очередь.
                              2)
                              3)UTIL. (Коэффициент использования)
                              4)STD.DEV. (Среднеквадратическое отклонение) – оценка среднеквадратического отклонения
                                Цитата Vovik_asp @
                                1)AVE.TIME (Среднее время) – среднее время пребывания одного транзакта в очереди с учетом всех входов в очередь.

                                Мне надо среднее время пребывания запросов в системе, а не в очереди

                                Цитата Vovik_asp @
                                3)UTIL. (Коэффициент использования)

                                Мне надо коэффициент использования каждой очереди, а такого параметра в отчете нет

                                и наконец
                                Цитата Vovik_asp @
                                4)STD.DEV. (Среднеквадратическое отклонение) – оценка среднеквадратического отклонения


                                С этим я согласна, но для того, чтобы в отчете был этот параметр, изначально в программе надо что-то прописывать, что???
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (54) « Первая ... 28 29 [30] 31 32 ...  53 54


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0579 ]   [ 14 queries used ]   [ Generated: 14.12.25, 03:02 GMT ]