GPSS
, Вопрос для знающих
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.84] |
|
|
| Страницы: (54) « Первая ... 28 29 [30] 31 32 ... 53 54 ( Перейти к последнему сообщению ) |
GPSS
, Вопрос для знающих
|
Сообщ.
#436
,
|
|
|
|
Цитата gvard @ У меня такой вопрос как нужно организовать вот это условие: Допустимое количество студентов в машинном зале 4 чел., включая работающего на УПД. либо сделай очередь ввиде МКУ (что не совсем удобно, т.к. возвращающийся с эвм на упд в очередь может не попасть), либо поставить условие (блок TEST) на размер очереди. |
|
Сообщ.
#437
,
|
|
|
|
Eugen
угу. сам уже до этого допер поменял CH на CHAN и все заработало.Спасибо всем откликнувшимся |
|
Сообщ.
#438
,
|
|
|
|
Lovely_TiGrRrA, ну ты для начала напиши код...
|
|
Сообщ.
#439
,
|
|
|
|
слушай можешь пожалуйста написать полносью код проги работающей.....(студенты приходят с интервалом 8+-2 мин..... ).Буду признателен
|
|
Сообщ.
#440
,
|
|
|
|
TEMENb можешь прислать код проги?
|
|
Сообщ.
#441
,
|
|
|
|
да у тебя есть код этой проги
|
|
Сообщ.
#442
,
|
|
|
|
вот толи недосып сказыается то ли я уже вижу код этой проги в этой ветке. немного недоделаный, но всетаки.
если есть желание, что бы кто то за вас наваял ваше задание да отправил - готовьте мани. |
|
Сообщ.
#443
,
|
|
|
|
да что бы есть, нужны мани = решенные задачи - все просто
|
|
Сообщ.
#444
,
|
|
|
|
я с кодом немного поразбирался, так то все просто только вопросс как правильно записать время которое уходит на заправку топливом?? и еще как записать процент машин идущих на разные колонки?
спасибо) |
|
Сообщ.
#445
,
|
|
|
|
Доброго всем времени суток!
Дамы и господа, подскажите, пожалуйста решение данной задачи: "К ЭВМ подключено четыре терминала, с которых осуществляется решение задач. По команде с терминала выполняют операции редактирования, трансляции, планирования и решения. Причем, если хоть один терминал выполняет планирование, остальные вынуждены простаивать из-за нехватки оперативной памяти. Если два терминала выдают требование на решение, то оставшиеся два простаивают, и если работают три терминала, выдающих задания на трансляцию, то оставшийся терминал блокируется. Интенсивности поступления задач различных типов равны. Задачи одного типа от одного терминала поступают через экспоненциально распределенные интервалы времени со средним значением 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 |
|
Сообщ.
#446
,
|
|
|
|
со временем разобрался, а вот с процентами пока никак)
|
|
Сообщ.
#447
,
|
|
|
|
Помогите, пожалуйста
Есть следующая задача: Исходные данные к проектированию: средство реализации 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 Вот что у меня получилось. ![]() ![]() 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.Среднеквадратическое отклонение времени пребывания заявок в очереди. И, наконец, правильно ли работает программа? |
|
Сообщ.
#448
,
|
|
|
|
![]() ![]() 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 то вылетает ошибка. ПОЧЕМУ??? |
|
Сообщ.
#449
,
|
|
|
|
Angellina
вот кое чего могу сказать может поможет.... 1)AVE.TIME (Среднее время) – среднее время пребывания одного транзакта в очереди с учетом всех входов в очередь. 2) 3)UTIL. (Коэффициент использования) 4)STD.DEV. (Среднеквадратическое отклонение) – оценка среднеквадратического отклонения |
|
Сообщ.
#450
,
|
|
|
|
Цитата Vovik_asp @ 1)AVE.TIME (Среднее время) – среднее время пребывания одного транзакта в очереди с учетом всех входов в очередь. Мне надо среднее время пребывания запросов в системе, а не в очереди Цитата Vovik_asp @ 3)UTIL. (Коэффициент использования) Мне надо коэффициент использования каждой очереди, а такого параметра в отчете нет и наконец Цитата Vovik_asp @ 4)STD.DEV. (Среднеквадратическое отклонение) – оценка среднеквадратического отклонения С этим я согласна, но для того, чтобы в отчете был этот параметр, изначально в программе надо что-то прописывать, что??? |