
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
Страницы: (54) « Первая ... 35 36 [37] 38 39 ... 53 54 ( Перейти к последнему сообщению ) |
Сообщ.
#541
,
|
|
|
Atnos, воспользуйтесь пользовательскими списками. вы удивитесь насколько простая это задача.
|
![]() |
|
|
Привет всем. Нужна помощь. Если кому не сложно. Помогите доделать модель Супермаркета.
Необходимо промоделировать работу супермаркета, например, «Лента» (кстати, ничего там хорошего нет). Супермаркет имеет парковку на 130 автомобилей. В том случае, если все места заняты, автомобиль покидает территорию магазина. Припарковав автомобиль, покупатели входят в помещение магазина. При входе в зал, покупатель может взять тележку (130 штук) или корзинку (60 штук), для перевозки (переноски) купленных товаров. Магазин имеет 15 кассовых терминалов. В обычном режиме работает 8 терминалов. Из них один – для быстрого обслуживания покупателей с небольшим количеством покупок (до 12). На выходе из магазина находится контролер-интервьюер, спрашивающий качество обслуживания и выборочно проверяющий соответствие чеков и покупок. В обычном режиме опрашиваются все покупатели. Параметры функционирования торгового комплекса следующие. • Поток машин, прибывающий на стоянку, и покупателей, входящих в магазин нормальный. • Время прихода покупателей в магазин, колеблется в пределах, от 45 до 70 сек включительно. • Если производится покупка более 12 видов товара, покупатель берет тележку. • Время обслуживания кассиром покупателя с тележкой составляет от 6.5 до 10.0 мин включительно. • Время обслуживания покупателя с корзинкой занимает от 5.5 до 7.8 мин включительно • На интервью тратится от 1.0 до 1.6 мин включительно. Необходимо промоделировать работу торгового комплекса в течение 10.0 часов Выделил то что мне не понятно.. Про интервьюера вроде сделал , но возможно не правильно. ![]() ![]() RMULT 1187 Kassa_2 EQU 2 Kassa_N EQU 8 Time_work VARIABLE 10#60#60 N_Pokupok VARIABLE (RN1@96+5) Finance VARIABLE (RN1@3+1)#40+150 Time_system TABLE M1,1000,1000,7 Pokupki TABLE P$Kol_pokupok,10,10,10 N_Pokupatel TABLE X$Pokupatel,100,50,12 Park STORAGE 130 Telejka STORAGE 130 Korzina STORAGE 60 Kassir VARIABLE (P$Kol_pokupok)#2+P$Oplata Time_mag VARIABLE P$Kol_pokupok#100 INITIAL X$Pokupatel,0 **************************************************************** Parking TRANSFER Both,,Lost ENTER Park ADVANCE 57.5,12.5 SAVEVALUE Pokupatel+,1 ASSIGN Kol_pokupok,V$N_Pokupok ASSIGN Oplata,V$Finance TEST L P$Kol_pokupok,12,QTelejka GATE SNF Korzina,QTelejka **************************************************************** QUEUE Korzina_Q ENTER Korzina DEPART Korzina_Q ASSIGN Tara,Korzina TRANSFER ,Magazin_Lenta **************************************************************** QTelejka QUEUE Telejka_Q ENTER Telejka DEPART Telejka_Q ASSIGN Tara,Telejka **************************************************************** Magazin_Lenta ADVANCE V$Time_mag TEST LE P$Kol_pokupok,12,Min_och COUNT L Kassir_0,Kassa_2,Kassa_N,1,Q TEST E P$Kassir_0,0,Min_och **************************************************************** QUEUE Express_Q SEIZE Express DEPART Express_Q ADVANCE V$Kassir RELEASE Express LEAVE P$Tara TRANSFER ,Fin ****************************************** Min_och SELECT MIN Min_ochered,Kassa_2,Kassa_N,,Q QUEUE P$Min_ochered SEIZE P$Min_ochered DEPART P$Min_ochered ADVANCE V$Kassir RELEASE P$Min_ochered LEAVE P$Tara ******************************************** Fin ADVANCE 78,18 TABULATE Time_system TABULATE Pokupki SAVEVALUE Pokupatel-,1 ADVANCE 57.5,12.5 LEAVE Park TERMINATE Lost TERMINATE **************************************** [B] GENERATE (Exponential(1,0,60)),,,200 TRANSFER ,Parking GENERATE (Exponential(1,0,40)),,1800,400 TRANSFER ,Parking GENERATE (Exponential(1,0,80)),,5400,300 TRANSFER ,Parking GENERATE (Exponential(1,0,120)),,9000 TRANSFER ,Parking[/B] ***************************************** GENERATE V$Time_work TABULATE N_pokupatel TERMINATE 1 START 1 |
Сообщ.
#543
,
|
|
|
Цитата TEMENb @ Atnos, воспользуйтесь пользовательскими списками. вы удивитесь насколько простая это задача. спасибо за совет, ток я не фига не могу понять эти списки( ![]() полазил по инету, книгу почитал, весь день седни убил чтоб понять как они работают, не фига не могу понять( наверно я туп. если можно, не могли бы вы простинькую программу с их работаи дать? для того чтобы разобратся можно было. |
Сообщ.
#544
,
|
|
|
циклический алгоритм, три терминала. время цикла - 1 емд.
![]() ![]() generate 3 link 1,fifo generate 3 link 2,fifo generate 3 link 3,fifo met1 queue 1 seize 1 depart 1 advance 1 release 1 terminate 1 generate ,,,1 assign 1,0 met assign 1,((p1@3)+1) test g ch*1,0 unlink p1,met1,1 advance 1 transfer ,met start 1000 |
Сообщ.
#545
,
|
|
|
Всем привет, если не сложно помогите.
Есть вот такая задачка, возможно она уже встречалась, никак не могу ее найти нигде. Текст зачади: На ВЦ принято планово-профилактическое обслуживание. ВЦ с небольшим парком ЭВМ, поэтому ремонтом ЭВМ занимается всего один радиомеханик (в терминах СМО - ремонтник). Это означает: что одновременно можно выполнять обслуживание только одной ЭВМ. Все ЭВМ должны регулярно проходить профилактический осмотр. Определенное число ЭВМ подвергающееся ежедневному осмотру согласно графику технического обслуживания, распределено равномерно и составляет от 1 до 3. Время, необходимое для осмотра и обслуживания каждой ЭВМ примерно распределено в интервале от 45 мин. до 1 ч. 15 мин. За это время необходимо проверить саму ЗВМ, а также такие внешние устройства как цветные струйные принтеры, нуждающиеся в смене или заправке картриджей красителем или лазерные принтеры, нуждающиеся в заправке тонером. Несколько ЭВМ имеют в качестве внешних устройств цветные плоттеры, у которых достаточно сложный профилактический осмотр. Рабочий день ремонтника длится 8 ч, но возможна и многосменная работа. В некоторых случаях профилактический осмотр прерывается для устранения внезапных отказов сетевых серверов, работающих в три смены, т.е 24 ч в сутки. В этом случае текущая профилактическая работа прекращается, и ремонтник начинает без задержки ремонта сервера. Тем не менее, машина-сервер, нуждающаяся в ремонте, не может вытеснить другую машину-сервер, уже стоящую на внеплановом ремонте. Распределение времени между поступлениями машин-серверов является пуассоновским со средним интервалом равным 42 ч. Если ремонтник отсутствует в момент поступления ЭВМ эти ЭВМ должны ожидать до 8ч утра. Время их обслуживания распределено по экспоненте со средним значение в 17 ч. Необходимо построить GPSS-модель для имитации производственной деятельности ВЦ. По полученной модели необходимо оценить распределение случайной переменной "число машин-серверов, находящихся на внеплановом ремонте". Выполнить прогон модели, имитирующей работу ВЦ в течении 25 дней, введя промежуточную информацию по окончании каждых пяти дней. Для упрощения можно считать, что ремонтник работает 8 ч в день без перерыва, и не учитывать выходные. Это аналогично тому, что ВЦ работает 7 дней в неделю. Для решения было принято 5 сегментов. В общем и в целом все понятно, не могу разобраться как работает 4 сегмент (и вообще правильно ли он написан). Описание сегмента: Сегмент "сбор данных для неработающих ЭВМ-серверов" используется для сбора данных, позволяющих оценить распределение числа неработающих ЭВМ-приборов. Для этих целей используется взвешенные таблицы, которые позволяют вводить в них в один и тот же момент времени наблюдаемые случайные величины. Для этих целей включаются два блока - TABULATE, но если ввод в таблицу случаен (значение величин >= 2), то этот подход не годен. В этом случае используется необязательный элемент олеранд, называемый весовым фактором, обозначающий число раз, которое величина, подлежащая табулированию, должна вводится в таблицу. Это позволяет назначать разные веса различным наблюдаемым величинам. Собственно сам код: ![]() ![]() XPDIS FUNCTION RN1,C24 0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915 .7,1.2/.75,138/.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.0/.9997,8.0 JOBS FUNCTION RN1,C2 0,1/1,4 TAB1 TABLE P2,0,1,6 * *Model segment 1 * GENERATE 1440,,1,,2 SPLIT FN$JOBS,NEXT1 NEXT1 queue TO SEIZE REM ADVANCE 60,15 RELEASE REM depart TO TERMINATE * *Model segment 2 * GENERATE 2520,FN$XPDIS,,,2 QUEUE TRUBL PREEMPT REM ADVANCE 1020,FN$XPDIS RETURN REM DEPART TRUBL TERMINATE * *Model segment 3 * GENERATE 1440,,481,,3 PREEMPT REM,PR ADVANCE 960 RETURN REM TERMINATE * *Model segment 4 * GENERATE 35041,,1,,1 WATCH MARK 1 ASSIGN 2,FR$TRUBL TEST NE 1,0 TABULATE TAB1,1 TRANSFER ,WATCH TERMINATE * *Model segment 5 * GENERATE 7200,,6241 TERMINATE 1 START 5,,1,1 |
Сообщ.
#546
,
|
|
|
Здравствуйте!
Помогите пожалуйста! Каким образом можно не используя М1 и оператор MARK сохранить работоспособность оператора TABULATE в моем коде? [ code ] FUNC1 FUNCTION RN1,C2 0,13/1,32. FUNC2 FUNCTION RN2,C11 0,0/.125,2/.25,7/.375,12/.45,20/.5,25/.625,40/.75,55/.875,80/.9,90/1,100. FUNC3 FUNCTION RN3,C25 0,-5/.00003,-4/.00135,-3 .00621,-2.5/.02275,-2/.06681,-1.5 .11507,-1.2/.15866,-1/.21186,-.8 .27425,-.6/.34458,-.4/.42074,-.2 .5,0/.57926,.2/.65542,.4 .72575,.6/.78814,.8/.84134,1 .88493,1.2/.93319,1.5/.97725,2 .99379,2.5/.99865,3/.99997,4/1,5 NORM VARIABLE FN$FUNC3 # 3 + 20 FUNC4 FUNCTION RN7,D4 .25,20/.5,60/.75,80/1,100. TAB1 TABLE M1,50,10,12 ****************************************************************** GENERATE FN$FUNC4 ; Генерация транзактов ADVANCE V$NORM ; Задержка 1 ADVANCE FN$FUNC1 ; Задержка 2 ADVANCE 23,9 ; Задержка 3 ADVANCE FN$FUNC2 ; Задержка 4 TABULATE TAB1 ; Табулирование TRANSFER .587,LBL1,LBL2 ; Случайный переход LBL1 TERMINATE 1 ; Удаление транзактов 1 LBL2 TERMINATE 1 ; Удаление транзактов 2 ****************************************************************** START 500 ; Повторить 500 раз [ /code ] |
Сообщ.
#547
,
|
|
|
![]() ![]() FUNC1 FUNCTION RN1,C2 0,13/1,32. FUNC2 FUNCTION RN2,C11 0,0/.125,2/.25,7/.375,12/.45,20/.5,25/.625,40/.75,55/.875,80/.9,90/1,100. FUNC3 FUNCTION RN3,C25 0,-5/.00003,-4/.00135,-3 .00621,-2.5/.02275,-2/.06681,-1.5 .11507,-1.2/.15866,-1/.21186,-.8 .27425,-.6/.34458,-.4/.42074,-.2 .5,0/.57926,.2/.65542,.4 .72575,.6/.78814,.8/.84134,1 .88493,1.2/.93319,1.5/.97725,2 .99379,2.5/.99865,3/.99997,4/1,5 NORM VARIABLE FN$FUNC3 # 3 + 20 FUNC4 FUNCTION RN7,D4 .25,20/.5,60/.75,80/1,100. TAB1 TABLE (AC1-p1),50,10,12 ****************************************************************** GENERATE FN$FUNC4 ; Генерация транзактов assign 1,ac1 ADVANCE V$NORM ; Задержка 1 ADVANCE FN$FUNC1 ; Задержка 2 ADVANCE 23,9 ; Задержка 3 ADVANCE FN$FUNC2 ; Задержка 4 TABULATE TAB1 ; Табулирование TRANSFER .587,LBL1,LBL2 ; Случайный переход LBL1 TERMINATE 1 ; Удаление транзактов 1 LBL2 TERMINATE 1 ; Удаление транзактов 2 ****************************************************************** START 500 ; Повторить 500 раз Добавлено mark сохраняет в параметр транзакта (или в отметку времени транзакта, если прописан без параметров), значение сча AC1. Так же значение сча АС1 прописывается в отметку времени транзакта при создании транзакта. Если явно использовать марк нельзя, то тогда сделаем вручную его работу. попросту сохраняем значение времени в параметр транзакта. М1 (МРj, MP$j) - соответствует разнице СЧА АС1 и времени, сохраненной в отметке времени транзакта (сохраненному в параметре транзакта с числовым/символьным именем j) соответственно, вместо M1 вручную пропишем (AC1-параметр) Вот и вся магия ) |
Сообщ.
#548
,
|
|
|
Огромнейшее спасибо!
![]() |
Сообщ.
#549
,
|
|
|
Помогите смоделировать, пожалуйста. Как правильно задать количесвто посетителей, по какому закону?
Задание: В студенческой столовой «Колобок» есть N столов, 4*N стульев и M официантов. Посетители приходят в столовую и занимают места за столами. Официанты обслуживают столы в порядке очереди с дисциплиной FIFO с приоритетами (сначала столы, за которыми большее количество человек). Если свободных столов нет, посетитель покидает столовую. Посетитель может пересаживаться с одного стола за другой, допускаем, что переход занимает 3 минуты. Создать имитационную модель работы столовой. Предусмотреть расчет оптимального количества официантов. Допускаем, что завершение моделирования не нуждается ни в каких событиях. |
Сообщ.
#550
,
|
|
|
Есть N устройств. Как равновероятностно перейти на одно из них?
|
Сообщ.
#551
,
|
|
|
![]() ![]() transfer all,met1,met2 met1 transfer ,ystr1 transfer ,ystr2 transfer ,ystr3 transfer ,ystr4 transfer ,ystr5 met2 transfer ,ystr6 |
Сообщ.
#552
,
|
|
|
Цитата TEMENb @ ![]() ![]() transfer all,met1,met2 met1 transfer ,ystr1 transfer ,ystr2 transfer ,ystr3 transfer ,ystr4 transfer ,ystr5 met2 transfer ,ystr6 Это хорошо с небольшим количеством устройств. А если их 100 штук, например. |
Сообщ.
#553
,
|
|
|
Говорите сразу чего хотите. вариантов далеко не два.
![]() ![]() generate 1 assign 1,(duniform(1,1,100)) seize p1 release p1 terminate 1 start 100 |
Сообщ.
#554
,
|
|
|
Цитата TEMENb @ (duniform(1,1,100)) Это, я так понимаю, дискретное равномерное распределение? Что ж, спасибо огромное. Моя жажда познаний удовлетворена ![]() |
Сообщ.
#555
,
|
|
|
Цитата masher @ дискретное равномерное распределение именно так. равномерное расределение, возвращающее целые значения. |