Форум программистов, компьютерный форум, киберфорум
GPSS
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 2
1

Билетная касса железнодорожного вокзала. Моделирование СМО

13.05.2015, 21:44. Показов 2814. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите разобраться с логикой.
Условие задачи: "На железнодорожном вокзале имеется 3 кассы: 2 обычные и 1 для военных. Пассажиры появляются через каждые A±B минут. Время обслуживания в кассах зависит от обстоятельств и составляет Ck±Dk минут, где k — номер кассы. 10% пассажиров — военные, которые идут обслуживаться в военную кассу. Гражданские пассажиры обслуживаются в двух других кассах, но если военная касса пуста, то они могут обслуживаться в ней в порядке очереди. Если появляется военный, то он обслуживается вне очереди, но только в военной кассе. Проанализировать работу касс в течение 8 часов."
Код
GENERATE 5,2	; Генерация потока людей
	TRANSFER .10,ludi,vetera	; Распределение людей на простых людей
			; и военных
			
 ludi     ASSIGN type,1	; Присвоение 1 типа для простых людей
	QUEUE  ludihPRIHOD	; Постановка в очередь простых людей
	DEPART ludihPRIHOD	; Освобождение очереди простых людей
         	TRANSFER ,pri	; Отправка простых людей к метке pri

 vetera   ASSIGN type,2	; Присвоение 2 типа для военных
         	QUEUE  veterahPRIHOD	; Постановка в очередь военных
	DEPART veterahPRIHOD	; Освобождение очереди военных
         	TRANSFER ,t02	; Отправка военных к метке t02

*----------------------------------------------------------------------------
* Метка распределения потока гражданских пассажиров
*----------------------------------------------------------------------------
 pri      TRANSFER ALL,t01,t02,6	; Выбор незанятой кассы
*----------------------------------------------------------------------------
* Обслуживающие устройства
*----------------------------------------------------------------------------
* Касса 1 
*----------------------------------------------------------------------------
 t01      SEIZE       cassa1	; Занять кассу 1
        	ADVANCE     16,4	; Обслуживание в кассе 1
        	QUEUE       ludiCassa1	; Постановка в очередь 
         	DEPART      ludiCassa1	; Освобождение очереди 
       	RELEASE     cassa1	; Освобождение кассы 1
       	TRANSFER    ,fin	; Отправка к метке fin
*----------------------------------------------------------------------------
* Касса 2 
*----------------------------------------------------------------------------
        	SEIZE       cassa2	; Занять кассу 2
        	ADVANCE     14,3	; Обслуживание в кассе 2
        	QUEUE       ludiCassa2	; Постановка в очередь 
        	DEPART      ludiCassa2	; Освобождение очереди 
        	RELEASE     cassa2	; Освобождение кассы 2
        	TRANSFER    ,fin	; Отправка к метке fin
*----------------------------------------------------------------------------
* Касса 3 
*----------------------------------------------------------------------------
 t02      SEIZE       cassaveteran	; Занять кассу 3
         	TEST E P$type,2,neveter	; Проверка типа
         	TRANSFER    ,veter	; Если тип не соответствует условию то 
			; отправить к метке neveter
 neveter  PRIORITY    1	; Установление приоритета иному типу
         	QUEUE       ludiCassa3	; Постановка в очередь 
         	DEPART      ludiCassa3	; Освобождение очереди 
         	TRANSFER    ,adva	; Отправка к метке adva
 veter    PRIORITY    2	; Установление приоритета 2-ому типу
         	QUEUE       veterans	; Постановка в очередь
         	DEPART      veterans	; Освобождение очереди 
 adva     ADVANCE     20,4	; Обслуживание в кассе 3
         	RELEASE     cassaveteran	; Освобождение кассы 3
         	TRANSFER    ,fin	; Отправка к метке fin
*----------------------------------------------------------------------------
* Генерация 8-ми часового рабочего дня
*----------------------------------------------------------------------------
 fin      TERMINATE 0	; Удаление транзакта

         	GENERATE  480	; Генерация времени (8 часов) 
         	TERMINATE 1	; Удаление транзакта
          START     1	; Начать с 1
второй вариант реализации модели
Код
	GENERATE 5,2	; Генерация потока людей
	TRANSFER .10,ludi,vetera	; Распределение людей на простых людей
			; и военных
			
 ludi     ASSIGN type,1	; Присвоение 1 типа для простых людей
	QUEUE  ludihPRIHOD	; Постановка в очередь простых людей
	DEPART ludihPRIHOD	; Освобождение очереди простых людей
         	TRANSFER ,pri	; Отправка простых людей к метке pri

 vetera   ASSIGN type,2	; Присвоение 2 типа для военных
         	QUEUE  veterahPRIHOD	; Постановка в очередь военных
	DEPART veterahPRIHOD	; Освобождение очереди военных
         	TRANSFER ,t02	; Отправка военных к метке t02

*----------------------------------------------------------------------------
* Метка pri
*----------------------------------------------------------------------------
 pri      TRANSFER ALL,t01,t02,6	; Выбор незанятой кассы
*----------------------------------------------------------------------------
 t01      SEIZE       cassa1	; Занять кассу 1
        	ADVANCE     16,4	; Обслуживание в кассе 1
        	QUEUE       ludiCassa1	; Постановка в очередь 
         	DEPART      ludiCassa1	; Освобождение очереди 
       	RELEASE     cassa1	; Освобождение кассы 1
       	TRANSFER    ,fin	; Отправка к метке fin
*----------------------------------------------------------------------------
        	SEIZE       cassa2	; Занять кассу 2
        	ADVANCE     14,3	; Обслуживание в кассе 2
        	QUEUE       ludiCassa2	; Постановка в очередь 
        	DEPART      ludiCassa2	; Освобождение очереди 
        	RELEASE     cassa2	; Освобождение кассы 2
        	TRANSFER    ,fin	; Отправка к метке fin
*----------------------------------------------------------------------------
 t02      TEST E P$type,2,neveter	; Проверка типа
         	TRANSFER    ,veter	; Если тип не соответсвует условию то 
			; отправить к метке neveter
 neveter  PRIORITY    1	; Установление приоритета иному типу
         	QUEUE       ludiCassa3	; Постановка в очередь 
         	DEPART      ludiCassa3	; Освобождение очереди 
         	TRANSFER    ,adva	; Отправка к метке adva
 veter    PRIORITY    2	; Установление приоритета 2-ому типу
         	QUEUE       veterans	; Постановка в очередь
         	DEPART      veterans	; Освобождение очереди 
 adva     QUEUE       ochered3
	SEIZE       cassaveteran	; Занять кассу 3
	DEPART      ochered3
	ADVANCE     20,4	; Обслуживание в кассе 3
         	RELEASE     cassaveteran	; Освобождение кассы 3
         	TRANSFER    ,fin	; Отправка к метке fin
*----------------------------------------------------------------------------

 fin      TERMINATE 0	; Удаление транзакта

         	GENERATE  480	; 
         	TERMINATE 1	;
         	START     1	;
Отличие кода в работе 3 кассы. По моему мнению, в работе 3 кассы не учитывается приоритет (по 1 варианту кода).
Возникает вопрос, а правильно ли начинает работать блок "pri TRANSFER ALL,t01,t02,6 ; Выбор незанятой кассы"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2015, 21:44
Ответы с готовыми решениями:

Система массового обслуживания - билетная касса с тремя окошками
Проблема такая. Написал код на GPSS. Вроде бы всё правильно но в отчете получается ср. длина...

Билетная касса
Помогите с простенькой с задачей.Мне нужно,чтобы значение переменных film и cinema выводилось в...

Реализовать автоматизированную информационную систему железнодорожного вокзала (динамические структуры данных)
Задание работы: Автоматизированная информационная система на железнодорожном вокзале содержит...

Составить схему (сначала только схему) информационной системы железнодорожного вокзала
Доброго времени суток!!! :) суть вот в чем: мне нужно составить схему(сначала только схему)...

2
1816 / 1030 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
14.05.2015, 08:04 2
Два подвоха, которые я здесь вижу
1.
Гражданские пассажиры обслуживаются в двух других кассах, но если военная касса пуста, то они могут обслуживаться в ней в порядке очереди.
Это скорее всего означает, что если в очереди 1 есть 1 чел, в очереди2 есть 1 чел (например), а тут БАЦ и касса ветеранов обслужилась !!! Первый чел, который ждёт в очереди к кассе 1 или 2, он идёт на обслуживание в военную.

2.
Если появляется военный, то он обслуживается вне очереди, но только в военной кассе.
Вне очереди, то есть у военного не относительный приоритет? а Абсолютный? раз он без очереди. значит нужны прерывания по приоритету PREEMPT - RETURN (вместо SEIZE RELEASE).

Добавлено через 2 минуты
Хотя возможно это заведомое усложнение модели.

Цитата Сообщение от asheulov_t Посмотреть сообщение
"pri TRANSFER ALL,t01,t02,6 ; Выбор незанятой кассы"
Нормально работает.
0
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 2
14.05.2015, 17:23  [ТС] 3
Да, вчера еще разобрался. Обе модели не учитывают прибытие военных (не учитывается не приоритет, и ветераны не идут без очереди а ожидают (в TRANSFER)).
Вот адекватная модель (по-моему мнению конечно ):
P.S. Ну и подсчет статистики ведется по-человечески а не через QUEUE-DEPART
Код
	GENERATE 5,2	; Генерация потока людей
	SAVEVALUE Passajiri+,1	; Подсчет пассажиров
	TRANSFER .10,ludi,voennie 	; Распределение людей на гражданских
			; и военных
			
 ludi     ASSIGN type,1	; Присвоение 1 типа для простых людей
	SAVEVALUE Grajdanskie+,1	; Подсчет гражданских пассажиров
	PRIORITY 1	; Установка приоритета
         	TRANSFER ,pri	; Отправка простых людей к метке pri

 voennie  ASSIGN type,2	; Присвоение 2 типа для военных
          SAVEVALUE Voennie+,1	; Подсчет военных пассажиров
	PRIORITY 2	; Установка приоритета
         	TRANSFER ,t02	; Отправка военных к метке t02

*----------------------------------------------------------------------------
* Метка распределения потока гражданских пассажиров
*----------------------------------------------------------------------------
 pri      TRANSFER ALL,t01,t02,5	; Выбор незанятой кассы
*----------------------------------------------------------------------------
* Обслуживающие устройства
*----------------------------------------------------------------------------
* Касса 1 
*----------------------------------------------------------------------------
t01       SEIZE       cassa1	; Занять кассу 1
        	ADVANCE     16,4	; Обслуживание в кассе 1
        	SAVEVALUE   Cassa1+,1	; Подсчет обслуженных пассажиров в кассе 1
       	RELEASE     cassa1	; Освобождение кассы 1
       	TRANSFER    ,fin	; Отправка к метке fin
*----------------------------------------------------------------------------
* Касса 2 
*----------------------------------------------------------------------------
        	SEIZE       cassa2	; Занять кассу 2
        	ADVANCE     14,3	; Обслуживание в кассе 2
          SAVEVALUE   Cassa2+,1	; Подсчет обслуженных пассажиров в кассе 2
        	RELEASE     cassa2	; Освобождение кассы 2
        	TRANSFER    ,fin	; Отправка к метке fin
*----------------------------------------------------------------------------
* Касса 3 
*----------------------------------------------------------------------------
t02       TEST E P$type,2,nevoennie	; Проверка типа
	
	PREEMPT 	  cassavoennie	; Захват кассы 3
	ADVANCE     20,4	; Обслуживание в кассе 3
	RETURN  	  cassavoennie	; Восстановить работу кассы 3
	SAVEVALUE   Cassa3Voenie+,1; Подсчет обслуженных гражданских в кассе 3
 	TRANSFER    ,fin	; Отправка к метке fin         	

nevoennie SEIZE       cassavoennie	; Занять кассу 3
	SAVEVALUE   Cassa3Grajd+,1	; Подсчет обслуженных военных в кассе 3
         	ADVANCE     20,4	; Обслуживание в кассе 3
         	RELEASE     cassavoennie	; Освобождение кассы 3
         	TRANSFER    ,fin	; Отправка к метке fin
*----------------------------------------------------------------------------
* Генерация 8-ми часового рабочего дня
*----------------------------------------------------------------------------
 fin      TERMINATE 0	; Удаление транзакта

         	GENERATE  480	; Генерация времени (8 часов) 
         	TERMINATE 1	; Удаление транзакта
          START     1	; Начать с 1
0
14.05.2015, 17:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2015, 17:23
Помогаю со студенческими работами здесь

Моделирование СМО
Доброго времени суток,я в ступоре...есть условие казалось бы легкое...4 генератора создают заявки с...

Моделирование СМО
#include<stdio.h> // Функции потокового ввода - вывода #include<conio.h> ...

Моделирование СМО
Смотрел другие форумы НО ни че не получается((( У меня( Помогите! Заявки поступают в систему...

Моделирование СМО
Моделирую такую систему(смотри вложение). Но при симуляции на каждом этапе there are no...

Моделирование работы СМО
Друзья! Помогите, пожалуйста, с задачей со следующими условиями: 1. Система массового...

Имитационное моделирование СМО
Добрый день! Подскажите , пожалуйста, как смоделировать систему массового обслуживания на с++? ...


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

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