
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
Страницы: (54) « Первая ... 25 26 [27] 28 29 ... 53 54 ( Перейти к последнему сообщению ) |
Сообщ.
#391
,
|
|
|
Сенсей снова с нами TEMENb в чем же тогда причина, что очереди забиты уж очень сильно..??
Los_Caballeros Основной гемор здесь Цитата тут возникает много вариантов и лучше спросить у препода, уточнить процедуру перехода роботов из А в Б... моделька оч.большая и ошибокой мож. быть много. Логику управления передвижениями роботов лучше вынести в PLUS процедуры... (при этом должен использоваться ближайший из роботов). |
Сообщ.
#392
,
|
|
|
Исходные данные к проектированию: средство реализации 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 1 OUT_OK TERMINATE 1 START 1000000 У меня возникли следующие проблемы: 1) Как в программе прописать определенное время моделирования; 2) Как учесть то, что заявки, обслуживание которых прервано из-за обслуживания более приоритетной типа C, должны дообслуживаться; 3) Как учесть то, что запросы, поступающие во время корректировки, ожидают ее завершения во входной очереди; 4) И как сделать так, чтобы вероятность выдачи правильного ответа не могла превышать 1. Добавлено И еще при любом числе прогонов от 1000 до 10000000 (1000, 10000, 100000, 1000000, 10000000) количество запросов типа A, которые заходят в систему всегда равно 554, по-моему это как-то странно |
Сообщ.
#393
,
|
|
|
Los_Caballeros, я в прошлом семестре гемороился над реализацией этой задачи три дня. Сделал без плюс процедур, но блин программа вышла такая, что черт ногу сломит.
90 функциональных блоков, если мне память не изменяет. Добавлено Цитата Angellina @ для этого надо поставить еще один сегмент.1) Как в программе прописать определенное время моделирования; ![]() ![]() generate 1000 terminate 1 Цитата Angellina @ блок примит сам по себе ставит заявки в список будущих событий, т.е. на дообслуживание. исключение, если вы посылаете транзакты, получившие отказ, в альтернативный блок. Впрочем даже в этом случае транзакт стоит в списке будущих событий и устройство вроде как не покидал, но я не вкурсе как его тогда вернуть на дообслуживание. Впрочем на сколько я вижу вы не посылаете на альтернативный блок => транзакты сами по себе дообслуживаются после обслуживания более приоритетного транзакта. более подробно тут.2) Как учесть то, что заявки, обслуживание которых прервано из-за обслуживания более приоритетной типа C, должны дообслуживаться; Цитата Angellina @ сразу признаюсь, что код ваш я не читал. и зарание приношу извинения, если отвечу невпопад. 3) Как учесть то, что запросы, поступающие во время корректировки, ожидают ее завершения во входной очереди; Но. Если вам надо сделать какую то задержку по условию - попробуйте воспользоваться блоком TEST. Как ваша система выглядит во время коректировки? Если ввести переменную, которая в начале коректировки получает значение 1, а по окончании коректировки получает значение 0, то должна подойти структура вроде этой ![]() ![]() test ne x$kor,1 ;если флаг коректировки не равен единице (значит коректировка не осуществляется), то дальше. иначе ожидать Цитата Angellina @ А как сделать так, что бы ВЕРОЯТНОСТЬ могла превысить 1? 4) И как сделать так, чтобы вероятность выдачи правильного ответа не могла превышать 1. ![]() |
Сообщ.
#394
,
|
|
|
TEMENb, всё с тобой ясно, короче... Дольше отмазываешься, мог бы уже 5 раз объяснить, если бы хотел...
|
Сообщ.
#395
,
|
|
|
Eugen, причина забитости очередей абсолютно всегда одна и та же - высокая интенсивность входящего потока и маленькая интенсивность пропускной способности канала.. что то вроде забитого унитаза
![]() а я к сожалению вантус дома забыл.. ![]() Добавлено andreynov, в этом нет ничего удивительного. я помогаю только тем, кто что то делает сам. Ито, к сожалению не хватает времени всем помочь. отдыхать всетаки мне тоже надо. У вас же МОЙ код. я не считаю нужным его разжовывать. |
Сообщ.
#396
,
|
|
|
TEMENb, я и не отрицаю, что твой! Задача схожая, всё что требуется в моем варианте, я подправил.
Отдыхать всем надо, но три строчки написать - не большой труд. |
Сообщ.
#397
,
|
|
|
пересмотрел свой архив. оба моих решения этой программы нормально функционируют. из этого делаю вывод, что причина плохого поведения модели в ваших апгрейдах.
|
Сообщ.
#398
,
|
|
|
Ну ты же знаешь эту задачу, делал уже... Посмотри, может где ошибку увидишь?
Вот например, после сборки 4% деталей отправляется на предварительную обработку, но они уже собраны, их опять надо разобрать на 2 части? Хотя, я думаю не в этом дело... |
Сообщ.
#399
,
|
|
|
Люди добрые помоги!!!!нужно решить задачу на языке GPSS/PS.Этот язык вообще не понимаю и не знаю!!!!
Задание: В центре координации работ в одном из подразделений предполагается организовать обслуживание так же, как в системе с одним прибором и очередью; входящий поток является пуассоновсим с интенсивностью 4.5 клиентов в день. Несмотря на то, что клиенты делятся на три различных типа, время, необходимое для направления на работу, для них одинаково, распределено по экспоненциальному закону и имеет среднее значение 0.2 дня. Обслуживание клиентов происходит по принципу "первым пришел - первым обслужен". Однако важно то, что клиенты первого типа не могут долго ждать. Клиенты второго типа спешат, но не очень, а клиентам третьего типа почти безразлично время ожидания. Клиенты трех типов приходят со средней интенсивностью 1.5; 2.0 и 1.0 в день соответственно. Поскольку для всех трех типов среднее время ожидания достаточно велико, было предложено обслуживать клиентов на приоритетной основе. Сравните время ожидания (включая время обслуживания) по каждому типу клиентов при дисциплине обслуживания: • "первым пришел - первым обслужен"; • "первым пришел - первым обслужен внутри одного класса приоритетов". Зарание огромное спасибо!!!! |
Сообщ.
#400
,
|
|
|
Привет! В моей программе не работает параметр с именем ONE. В чем может быть причина?
INPUT TABLE V$IN,-2,0.2,20 OUTPUT TABLE V$OUT,-50,2,50 GTD MATRIX ,1,9 INITIAL MX$GTD(1,1),0.15 INITIAL MX$GTD(1,2),-1.45 INITIAL MX$GTD(1,3),6.29 INITIAL MX$GTD(1,4),6.29 INITIAL MX$GTD(1,5),24.74 INITIAL MX$GTD(1,6),-25.18 INITIAL MX$GTD(1,7),16.21 INITIAL MX$GTD(1,8),-6.04 INITIAL MX$GTD(1,9),1 IN VARIABLE P1 OUT VARIABLE P2 ONE EQU 1 SEG2 GENERATE 10 ASSIGN 1,(COS(3.14#2#RN1/1000)+COS(3.14#2#RN2/1000)) ASSIGN 2,(MX$GTD(1,ONE)#P1) ASSIGN ONE+,1 TABULATE INPUT TABULATE OUTPUT QUEUE QUE TEST L ONE,10,SEG1 depart que TERMINATE 1 SEG1 ASSIGN ONE,1 TRANSFER ,SEG2 |
Сообщ.
#401
,
|
|
|
Petroid
Можешь кинуть мне эту работу, уже в пятницу сдавать! В системепередачиданныхосуществляетсяобмен пакетамиданных между пунктами А и В по дуплексному каналу связи. Пакеты поступают в пункты системы от абонентов с интервалами времени 10 ± 3 мс. Передача пакета занимает 10 см. В пунктах имеются буферные регистры, которые могут хранить два пакета (включая передаваемый). В случае прихода пакета в момент занятости регистров пунктам системы предоставляется выход на спутниковую полудуплексную линию связи, которая осуществляет передачу пакетовданных за 10 ± 5 мс. При занятости спутниковой линии пакет получает отказ. Смоделироватьобмен информацией в системепередачиданных в течение 1 мин. Определить частоту вызовов спутниковой линии и ее загрузку. В случае возможных отказов определить необходимый для безотказной работы системы объем буферных регистров. mds86@bk.ru заранее благодарю! |
Сообщ.
#402
,
|
|
|
Цитата В системе передачи данных осуществляется обмен пакетами данных между пунктами A и B по дуплексному каналу связи. Пакеты поступают в пункты системы от абонентов с интервалами времени между ними 10 ± 3 мс. Передача пакета занимает 10 мс. В пунктах имеются буферные регистры, которые могут хранить два пакета (включая передаваемый). В случае прихода пакета в момент занятости регистров пунктам системы предоставляется выход на спутниковую полудуплексную линию связи, которая осуществляет передачу пакетов данных за 10 ± 5 мс. При занятости спутниковой линии пакет получает отказ. Смоделировать обмен информацией в системе передачи данных в течение 1 мин. Определить частоту вызовов спутниковой линии и ее загрузку. В случае возможности отказов определить необходимый для безотказной работы системы объем буферных регистров. ![]() ![]() 10 INITIAL X$LOST,0 ; Обнуление числа потерянных пакетов 20 SAT_FREQ TABLE C1,10000,10000,6 ; Таблица для частоты вызовов спутниковой линии 30 BUF_A STORAGE 2 ; Буфер для хранения пакетов в пункте A 40 BUF_B STORAGE 2 ; Буфер для хранения пакетов в пункте B 50 * Передача пакетов из пункта A в пункт B 60 GENERATE 10,3 ; Поступление пакетов от абонентов 70 GATE SNF BUF_A,SAT ; Если буфер заполнен не полностью 75 * (в противном случае переход на спутниковый канал) 80 ENTER BUF_A ; Помещение пакета в буфер 90 ADVANCE 10 ; Передача пакета по каналу связи 100 LEAVE BUF_A ; Удаление пакета из буфера 110 TRANSFER ,KILL ; Уничтожение пакета 120 * Передача пакетов из пункта B в пункт A 130 GENERATE 10,3 ; Поступление пакетов от абонентов 140 GATE SNF BUF_B,SAT ; Если буфер заполнен не полностью 145 * (в противном случае переход на спутниковый канал) 150 ENTER BUF_B ; Помещение пакета в буфер 160 ADVANCE 10 ; Передача пакета по каналу связи 170 LEAVE BUF_B ; Удаление пакета из буфера 180 TRANSFER ,KILL ; Уничтожение пакета 190 * Передача пакетов по спутниковому каналу 200 SAT TABULATE SAT_FREQ,1 ; Подсчет пакетов, переданных на спутниковый канал 210 GATE NU SAT_LINE,OUT ; Если спутниковая линия не занята 75 * (в противном случае переход к подсчету утерянных пакетов) 220 SEIZE SAT_LINE ; Занятие спутниковой линии пакетом 230 ADVANCE 10,5 ; Передача пакета 240 RELEASE SAT_LINE ; Освобождение спутниковой линии 250 TRANSFER ,KILL ; Уничтожение пакета 260 * Подсчет количества утерянных пакетов 270 OUT SAVEVALUE LOST+,1 280 KILL TERMINATE ; Уничтожение пакета 285 * Моделирование в течение одной минуты 290 GENERATE 1,,60000 300 TERMINATE 1 mds86. Могу скинуть с отчётом. Это была моя курсовая работа ![]() В отчёте даже блок схема-модели имеется, сам всё делал ![]() |
Сообщ.
#403
,
|
|
|
andreynov,скин если не сложно! буду очень признателен!!!! БОЛЬШОЕ ТЕБЕ СПАСИБО!!!
|
Сообщ.
#404
,
|
|
|
mds86, большое тебе пожалуйста
![]() куда скинуть то? |
Сообщ.
#405
,
|
|
|
скинь на mds86@bk.ru! еще раз спасибо!
|