1 / 1 / 1
Регистрация: 20.04.2015
Сообщений: 52
1

Многоканальная СМО с неограниченою очередью

16.11.2016, 18:06. Показов 11095. Ответов 62
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть задача : В порту имеются причалы для разгрузки судов. Интенсивность потока судов равна λ судов в сутки. Среднее время разгрузки судна составляет s суток . Предполагается , что очередь судов ,ожидающих разгрузки, может быть неограниченной длины.
Входные параметры:
1.Интенсивность поступления заявок λ = 0,6;
2.Среднее время разгрузки судна s = 4 суток;
3.Количество каналов r = 6;
4.Интенсивность обслуживания μ = 1/s = 0,25;
Нагрузка СМО, ρ = ( λ )/μ = 2,4;

Вопрос - как написать это в GPSS WORLD и сделать график?Помогите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2016, 18:06
Ответы с готовыми решениями:

Одноканальная и многоканальная СМО с бесконечной очередью
Ребята, помогите пожалуйста! мне нужно смоделировать две модели СМО : Одноканальная и...

Многоканальная смо с неограниченной очередью (мастерская по ремонту холодильников)
В мастерской по ремонту холодильников работает n мастеров. В среднем в течение дня поступает в...

Многоканальная СМО с отказами
Имеется многоканальная СМО с отказами λ = 1, μ = 2, количество каналов = 9 Подскажите, как...

Многоканальная СМО с отказами и равномерной
Помогите пожалуйста с задачкой. В интернете ничего не могу по этой теме. Тема: Многоканальная СМО...

62
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
17.11.2016, 07:13 2
Кудрявцев Е. М. GPSS World. Основы имитационного моделирования различных систем

Проще и нагляднее некуда.
0
1 / 1 / 1
Регистрация: 20.04.2015
Сообщений: 52
17.11.2016, 14:10  [ТС] 3
Dukalys, соорудил такой код для 6 каналов
Код
NAK 	STORAGE 7

	GENERATE (Exponential(1,0,0.6))
	ENTER NAK
	TRANSFER BOTH,KAN1,KAN2
	TRANSFER NEXT,KAN3,KAN4
KAN1 	SEIZE CAN1
	ASSIGN 1,CAN1
	TRANSFER ,COME

KAN2	SEIZE CAN2
	ASSIGN 1,CAN2
	
TRANSFER ,COME

KAN3	SEIZE CAN3
	ASSIGN 1,CAN3

KAN4	SEIZE CAN5
	ASSIGN 1,CAN5

	TRANSFER ,COME

KAN5	SEIZE CAN5
	ASSIGN 1,CAN5

	TRANSFER ,COME

KAN6	SEIZE CAN6
	ASSIGN 1,CAN6

	TRANSFER ,KAN6,COME

COME 	LEAVE NAK
	ADVANCE (EXPONENTIAL(1,0,4))
	
	RELEASE P1
	TERMINATE 1
	START 10000
Но в отчете показывает занятость только каналов CAN1,CAN2 и в трансфер запихиваются только 2 канала а у меня их 6,как это пофиксить?
0
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
17.11.2016, 16:33 4
Соберите вначале код без одноканальных устройств SEIZE-RELEASE

Код
STORAGE
GENERATE
QUEUE
ENTER-LEAVE
TERMINATE
Посмотрите для такой модели статистику - сколько ресурсов максимум использовалось и т.д. а далее уже можно ввести одноканальные устройства и их выбор через TRANSFER - это важно в тех случаях когда мы хотим посмотреть вероятности занятия конкретных устройств.


Кстати можно не transfer использовать, а TEST - проверяя занято ли устройство F$CAN1 =1 когда занято и =0 когда свободно (вроде так).

P.S. STORAGE =7 ? не 6 ?

Добавлено через 3 минуты
Код
GENERATE (Exponential(1,0,0.6))
EXPONENTIAL(A,B,C)

C- среднее время между заявками.
проверьте модель всю и учтите что модельное время в модели должны быть везде одинаковым, если выбрали там часы или чтото подобное - то везде!
0
1 / 1 / 1
Регистрация: 20.04.2015
Сообщений: 52
17.11.2016, 17:01  [ТС] 5
Ну я взял пример с той книги ,что вы посоветовали у меня в задаче,что я кинул (1 пост) Многоканальная СМО с неограниченой очередью (страница в книге 260) но там показано на примеру двух каналов ,у меня 6 каналов, и как я понял TRANSFER BOTH - действует для 2 каналов , или я не тот пример рассмотрел?
Миниатюры
Многоканальная СМО с неограниченою очередью   Многоканальная СМО с неограниченою очередью  
0
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
17.11.2016, 17:57 6
Все примеры смотрите. ответ выше.
0
1 / 1 / 1
Регистрация: 20.04.2015
Сообщений: 52
18.11.2016, 15:29  [ТС] 7
В той книге есть код для трехканальной СМО с неогран. очередью ,он прекрасно работает я построил на том примере для 6 каналов
Код
NAK 	STORAGE 6
	GENERATE (Exponential(1,0,0.6))
	ENTER NAK
	TRANSFER ALL,KAN1,KAN6,6

KAN1 	SEIZE CAN1
	ASSIGN 1,CAN1
	
	TRANSFER ,COME	

	SEIZE CAN2
	ASSIGN 1,CAN2
	
	TRANSFER ,COME
	
	SEIZE CAN3
	ASSIGN 1,CAN3

	TRANSFER ,COME

	SEIZE CAN4
	ASSIGN 1,CAN4

	TRANSFER ,COME

	SEIZE CAN5
	ASSIGN 1,CAN5
	
	TRANSFER ,COME

KAN6	SEIZE CAN6
	ASSIGN 1,CAN6

COME 	LEAVE NAK
	ADVANCE (EXPONENTIAL(1,0,4))
	
	RELEASE P1
	TERMINATE 1
	START 10000
Для 3 работает все хорошо,а для 6 пишет что 2,4,6 каналы UNSPECIFIED ,я вот не могу понять принцип один и тот же а оно не хочет работать,мне кажется что проблема в TRANSFER но в чем конкретно понять не могу
0
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
18.11.2016, 17:02 8
Не преследую цели обидить, но вы как будто через строчку читаете и книгу и форум.
ADVANCE - это что? Почему он у вас после LEAVE?

Комментируйте код, это будет вас поправлять автоматически, вы сами увидите что последовательность некорректная.

Я уже делал выше замечание по GENERATE вы не обращаете на это внимание.


По поводу Трансфер у вас верные опасения, нужно указать корректное значение в поле В - нумерацию блоков можно посмотреть по результатам моделирования в отчёте или window - simulation window - block window при моделировании.
TRANSFER [<A>],[<B>],[<C>],[<D>]
Режим ALL
Если в поле А стоит зарезервированное слово ALL, блок TRANSFER работает в режиме ALL. В этом
режиме каждый входящий транзакт прежде всего пытается перейти к блоку, указанному в поле В. Если
транзакт в этот блок войти не может, то последовательно проверяются все блоки в определенном ряду
в поисках первого, способного принять этот транзакт, включая блок, указанный операндом С. Номер
каждого проверяемого блока вычисляется как сумма номера предыдущего блока и шага, заданного
операндом D: N + M, N + 2M, N + 3M, ... L, где N - номер блока, указанного в поле В; М - значение
шага, заданного в поле D; L - номер блока, указанного в поле С. Этот номер должен быть больше
номера блока, указанного в поле В, на величину, кратную шагу М. Если операнд D не задан, то
проверяется каждый блок, номер которого принадлежит этому ряду, включая блок, определенный
операндом С . Блоки, номера которых выше номера блока, указанного в поле С, не проверяются. Как
только первый блок, способный принять транзакт, будет найден, транзакт входит в этот блок и оттуда
продолжает свое дальнейшее движение. Если транзакт не может перейти ни к одному из указанных
блоков, оно остается в блоке TRANSFER и повторяет описанную выше процедуру при каждом просмотре
списка текущих событий до тех пор, пока не выйдет из блока. Поскольку обычно в полях В и С
записываются символические метки блоков, блоки следует располагать таким образом, чтобы при
присвоении номеров разность между номерами блоков, указанных в полях В и С, была кратна шагу,
указанному в поле D. Например, TRANSFER ALL, 60, 120, 10 В этом примере транзакт будет
последовательно пытаться перейти к блокам 60, 70, 80, ... 120. TRANSFER ALL, NEXT1, NEXT2, 5 Здесь
режим ALL допустим только в том случае, если разность между номерами, присвоенными блокам NEXT1
и NEXT2, кратна 5. TRANSFER ALL, 60, 120, 25 В данном примере режим ALL недопустим, потому что
разность между номерами блоков, записанных в полях В и С, не является кратной шагу, указанному в
поле D. Условными являются только режимы BOTH и ALL. Во всех остальных режимах выбор
следующего блока производится в момент входа транзакта в блок. В режимах BOTH и АLL выбор
следующего блока производится в момент снятия блокирующего условия. Следует отметить, что
каждый раз, когда интерпретатор при просмотре списка текущих событий обнаруживает транзакт,
задержанный в блоках TRANSFER BOTH или TRANSFER ALL, он пытается продвинуть транзакт, начиная с
блока, указанного в поле В. Следовательно, в режиме BOTH в тех случаях, когда возможен переход к
обоим блокам (В и С), блок В имеет некоторое преимущество. Аналогично, в режиме ALL в случае,
когда возможен переход к нескольким блокам, блоки с меньшими номерами имеют некоторое
преимущество перед блоками с большими номерами.
0
1 / 1 / 1
Регистрация: 20.04.2015
Сообщений: 52
18.11.2016, 17:09  [ТС] 9
Цитата Сообщение от Dukalys Посмотреть сообщение
ADVANCE - это что? Почему он у вас после LEAVE?
Все из той книги что вы посоветовали =)
Я бы не стал писать то ,в чем не соображаю,может я не тот пример выбрал,хотя все подходит по идее
0
1 / 1 / 1
Регистрация: 20.04.2015
Сообщений: 52
18.11.2016, 17:11  [ТС] 10
забыл добавить
Миниатюры
Многоканальная СМО с неограниченою очередью   Многоканальная СМО с неограниченою очередью  
0
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
18.11.2016, 17:16 11
Конструкции у нас стандартные какие

например SEIZE - ADVANCE - REALSE

если сделать SEIZE - RELEASE - ADVANCE то устройство у вас будет заниматься и мгновенно освобождать - статистику вы по нему не получите нормальную. Тоже самое у вас сейчас сделано.

Добавлено через 3 минуты
В приведённой модели ENTER - LEAVE работает в какомто специфическом режиме - оно не включает задержку ADVANCE и статистику ваще ниочём будет содержать

ENTER - ADVANCE - LEAVE Вот верно.
В вашем случае
ENTER SEIZE ADVANCE RELEASE LEAVE
Такая структура позволит получить общую стату по ENTER-LEAVE и отдельные статистики для каждого устройства в рамках многоканального устройства
0
1 / 1 / 1
Регистрация: 20.04.2015
Сообщений: 52
18.11.2016, 17:16  [ТС] 12
Если я правильно понял,то я должен подоставлять ADVANCE в каждый CAN? Вы извините ,если я вам ставлю слишком глупые вопросы,просто пытаюсь понять принцип работы.
0
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
18.11.2016, 17:19 13
ADVANCE в каждый канал не нужен, вы отправили на COME сделайте там ADVANCE а далее LEAVE.

ADVANCE вмещает не ограниченное число заявок одновременно

SEIZE-RELEASE может содержать внутри только 1у заявку - это одноканальное устройство
ENTER-LEAVE может содержать заданное число заявок - это многоканальное устройство

Тогда лучше смотреть книгу Шрайбер Имитационное моделирование на GPSS
Там людей не запутывают.
0
1 / 1 / 1
Регистрация: 20.04.2015
Сообщений: 52
18.11.2016, 18:41  [ТС] 14
Код
SIMULATE ;
PORT STORAGE 6 ; 6 портов
GENERATE (Exponential(1,0,0.6)) ;Приход корабля
QUEUE OCHER; Занятие порту
ENTER PORT,1 ;Початок обслуговування 
DEPART OCHER ;Звільнення черги
ADVANCE (EXPONENTIAL(1,0,4)); Обслуживание

LEAVE PORT,1; Завершение обслуживания 
TERMINATE ;Уход корабля
GENERATE 4 ;Время завершения моделирования 
TERMINATE 1 ;
START 1 ;Системный счетчик равен 1
Так правильно?
0
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
18.11.2016, 18:47 15
GENERATE (Exponential(1,0,0.6)) ;Приход корабля
GENERATE 4 ;Время завершения моделирования
Нет.

Остальное верно.
Статистика будет общая по всему многоканальному устройству, посмотрите если не хватает такой статистики то делайте seize release с выбором нужного устройства как выше.
0
1 / 1 / 1
Регистрация: 20.04.2015
Сообщений: 52
18.11.2016, 19:44  [ТС] 16
Добавил еще статистику каналов
Код
Lam EQU 0.8; інтенсивність потоку замовлень 
Mu EQU 0.25 ; інтенсивність потоку обслуговувань 
Imo VARIABLE N$MIT2/N$MIT1 ; ймовірність обслуговування 
CHMOD EQU 8 ; час моделювання 
PORT STORAGE 6 ; 6 портов

GENERATE (Exponential(1,0,(1/Lam))) 
QUEUE OCHER; Занятие порту
ENTER PORT,1 ;Початок обслуговування 

MIT1 TEST L Q$PORT,OUT ; чи є вільне місце в черзі 

TRANSFER ALL,KAN1,KAN6,6; знайти вільний канал 

KAN1 SEIZE CAN1 ; чи вільний канал 1? 
ASSIGN 1,CAN1 ; записати номер каналу 
TRANSFER,VYH ; на вихід з черги 

SEIZE CAN2 ; чи вільний канал 2? 
ASSIGN 1,CAN2 ; записати номер каналу 
TRANSFER,VYH ; на вихід з черги 

 SEIZE CAN3 ; чи вільний канал 3? 
ASSIGN 1,CAN3 ; записати номер каналу 
TRANSFER,VYH ; на вихід з черги 

 SEIZE CAN4 ; чи вільний канал 4? 
ASSIGN 1,CAN4 ; записати номер каналу 
TRANSFER,VYH ; на вихід з черги 

SEIZE CAN5 ; чи вільний канал 5? 
ASSIGN 1,CAN5 ; записати номер каналу 
TRANSFER,VYH ; на вихід з черги 

KAN6 SEIZE CAN6 ; чи вільний канал 6? 
ASSIGN 1,CAN6 ; записати номер каналу 
TRANSFER,VYH;

VYH DEPART OCHER; вийти з черги 
ADVANCE (Exponential(1,0,(1/Mu))) ; обслуговування 
MIT2 RELEASE P1 ; покинути канал 
OUT TERMINATE ; вилучення замовлень 
GENERATE CHMOD ; реалізувати час моделювання 
SAVEVALUE Imo,V$Imo ; запис імовірності обслуговування 
TERMINATE 1
START 1;
Но какие-то траблы с блоком TRANSFER ALL ,вот не пойму ,должна же по идее последней стоять цифра 6,но при этой цифре показывает статистику только 1 3 5 канала,а когда 3 ,то показывает стату 1-4 каналов
0
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
18.11.2016, 19:52 17

Цитата Сообщение от imbaTapac Посмотреть сообщение
Lam EQU 0.8; інтенсивність потоку замовлень
1.Интенсивность поступления заявок λ = 0,6;
Добавлено через 59 секунд
Цитата Сообщение от imbaTapac Посмотреть сообщение
TRANSFER ALL,KAN1,KAN6,6; знайти вільний канал


Добавлено через 1 минуту
Цитата Сообщение от imbaTapac Посмотреть сообщение
DEPART OCHER; вийти з черги
логичнее заявке очередь покидать сразу после входа на обслуживание в ENTER

Добавлено через 1 минуту
Цитата Сообщение от imbaTapac Посмотреть сообщение
2.Среднее время разгрузки судна s = 4 суток;
Где это учитывается ?

Добавлено через 26 секунд
Время моделирования маленькое, пару заявок м.б. успеют обслужиться, и то врядли.

Добавлено через 1 минуту
Цитата Сообщение от imbaTapac Посмотреть сообщение
MIT1 TEST L Q$PORT,OUT ; чи є вільне місце в черзі
?
Q$PORT < OUT? что такое OUT

посмотрите значение OUT в результатах моделирования, явно не то что надо.
0
1 / 1 / 1
Регистрация: 20.04.2015
Сообщений: 52
18.11.2016, 19:53  [ТС] 18
Цитата Сообщение от Dukalys Посмотреть сообщение
Сообщение от imbaTapac
Lam EQU 0.8; інтенсивність потоку замовлень
1.Интенсивность поступления заявок λ = 0,6;
Пардон,не то значение написал =)
Цитата Сообщение от Dukalys Посмотреть сообщение
TRANSFER ALL,KAN1,KAN6,6; знайти вільний канал
Как я понял то он перескакивает от KAN1 к KAN6 где последнее число это сколько операторов он пропустит?
0
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
18.11.2016, 19:56 19
Цитата Сообщение от imbaTapac Посмотреть сообщение
Как я понял то он перескакивает от KAN1 к KAN6 где последнее число это сколько операторов он пропустит?
Ага, по другому - через сколько строчек кода будет прыгать.
логика такая - пробует перейти по KAN1 - там seize если занято то заявка не может туда пойти, пробует KAN1+ 6 а это - посмотрите по коду, это TRANSFER - он вам нужен? Смотрите отчёт, и вычисляйте этот инкремент.
0
1 / 1 / 1
Регистрация: 20.04.2015
Сообщений: 52
18.11.2016, 20:06  [ТС] 20
Цитата Сообщение от Dukalys Посмотреть сообщение
Сообщение от imbaTapac
2.Среднее время разгрузки судна s = 4 суток;
Где это учитывается ?
на сколько я знаю то u=1/s и это u идет в ADVANCE (1,0,u) не так?
0
18.11.2016, 20:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2016, 20:06
Помогаю со студенческими работами здесь

Одноканальная СМО с ограниченной очередью
Мне необходимо в GPSS провести полно-факторный эксперимент для заданных факторов и отклика, уровни...

Интересная задачка, Одноканальное СМО с очередью
Имеется компьютерная мастерская с одним мастером. В СМО приходят заявки с интенсивностью 0,7 заявок...

Многоканальная подсистема передачи информации
Задание В подсистеме передачи цифровой информации передается речь в цифровом виде. Речевые пакеты...

Многоканальная система массового обслуживания с приоритетами
Здравствуйте! Вообщем задание такое. Реализовать модель системы, представленной на рисунке:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru