Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
МБС 4 курс Практическая работа №1 2 / 2
Контрольная работа № 1
Вариант №
Моделирование работы магазина
Постановка задачи
Промоделировать работу небольшого магазина, который имеет один кассовый аппарат и одного продавца. Известны следующие параметры функционирования магазина:
поток покупателей (требований), приходящих в магазин за покупками, равномерный;
интервал времени прибытия покупателей колеблется в пределах от 8,7 до 10,3 мин включительно, или 9,5±0,8 мин;
время пребывания покупателей у кассового аппарата составляет 2,3±0,7 мин. После этого покупатели подходят к продавцу для получения товара;
время, потраченное на обслуживание покупателей продавцом, составляет 10±1,4 мин.
Определить параметры функционирования магазина:
коэффициент загрузки кассира;
коэффициент загрузки продавца;
максимальное, среднее и текущее число покупателей в каждой очереди;
среднее время обслуживания в каждом канале обслуживания;
среднее время нахождения покупателя в каждой очереди и др.
Решение
Для этого выполнить следующие действия:
Выявление основных особенностей
Для моделирования работы магазина необходимо сформировать входной поток покупателей (требований) и временной интервал моделирования работы магазина. Но перед этим необходимо выбрать единицу измерения времени. Для моделирования работы магазина можно взять в качестве единицы измерения минуту
Создание имитационной модели процесса
Создание имитационной модели начнем с построения заголовка модели, который может быть представлен, например, в таком виде:
; GPSSW File MAGAZIN.GPS (комментарии в программе пишутся в одну строчку, после знака точки с запятой)
***************************
* Моделирование работы магазина *
******************************************
Моделирование потока покупателей будем выполнять с помощью оператора GENERATE (Генерировать). В нашем примере он будет выглядеть так:
GENERATE 9.5, 0.8
В поле операнда А указывается средний интервал времени между прибытием в магазин двух идущих один за другим покупателей (требований, транзактов). В нашем примере он составляет 9,5 мин.
В поле операнда В дано отклонение времени прихода покупателей от среднего. В нашем примере это отклонение составляет 0,8 мин.
Покупатель, пришедший в магазин, сначала встает в очередь к кассиру, если она есть. Это можно промоделировать оператором QUEUE (Очередь), который только в совокупности с соответствующим оператором DEPART (Выйти) собирает статистическую информацию о работе моделируемой очереди.
В нашем примере оператор QUEUE будет выглядеть так:
QUEUE Ocher_kassa
В поле операнда А дается символьное или числовое имя очереди. Таких очередей в сложных системах может быть очень много. В нашей задаче дадим очереди имя Ocher_kassa (Очередь в кассу). Желательно, чтобы присваиваемое имя отражало суть описываемого элемента системы.
Следуя логике, покупатель может выйти из очереди только тогда, когда освободится кассир (канал обслуживания). Для этого вводится оператор SEIZE, который определяет занятость канала обслуживания, и при его освобождении очередное требование выходит из очереди и идет в канал на обслуживание. Это может выглядеть так:
SEIZE Kassir
В поле операнда А дается символьное или числовое имя канала обслуживания. Таких каналов обслуживания в системе может быть очень много. В нашей задаче каналу дано имя Kassir (Кассир). Здесь также имя должно отражать суть описываемого элемента системы.
Выход покупателя из очереди в кассу фиксируется оператором DEPART с соответствующим названием очереди. В нашем примере это будет выглядеть так:
DEPART Ocher_kassa
Далее должно быть промоделировано время пребывания покупателя, непосредственно обслуживаемого кассиром. Это время в нашем примере составляет 2,3±0,7 мин. Для моделирования этого процесса используется оператор ADVANCE (Задержать), который в нашей задаче будет выглядеть так:
ADVANCE 2.3,0.7
После обслуживания кассиром покупатель отправляется к продавцу за получением оплаченного товара. Однако перед этим системе должно быть послано сообщение об освобождении канала обслуживания. Это делается с помощью оператора RELEASE, который в нашей задаче записывается так:
RELEASE Kassir
Следует особо подчеркнуть, что парные операторы QUEUE и DEPART для каждой очереди должны иметь одно и то же, но свое уникальное имя. Это же относится и к операторам SEIZE и RELEASE.
После обслуживания в кассе покупатель направляется к продавцу - следующему каналу обслуживания. Процесс моделирования этой цепи аналогичен только что описанному. И в нашем примере он может быть представлен, например, в таком виде:
QUEUE Ocher_prod
SEIZE Prodavec
DEPART Ocher_prod
ADVANCE 10,1.4
RELEASE Prodavec
После обслуживания продавцом (каналом обслуживания) покупатель (требование) покидает систему. Это действие может быть представлено оператором TERMINATE (Завершить):
TERMINATE 1
В поле операнда А стоит число 1. Это означает, что систему обслуживания -магазин - покупатели покидают по одному. Завершающим оператором в нашей задаче является управляющая команда START (Начать), позволяющая начать моделирование:
START 100
В поле операнда А стоит число 100, показывающее, с каким числом покупателей будет моделироваться система работы магазина.
3. Представление имитационной модели
Для представления имитационной модели выполните следующие действия:
щелкните по пункту File главного меню системы. Появится выпадающее меню;
щелкните по пункту New выпадающего меню. Появится диалоговое окно Новый документ;
выделите пункт Model и щелкните по кнопке ОК. Появится окно модели, в котором введите данную программу. Это будет выглядеть так, как показано на рис. 1.
Во введенной программе в самом начале добавлен оператор QTABLE с меткой t_prod для сбора информации и построения соответствующей гистограммы функционирования очереди под именем Ocher_prod.
Подготовка к моделированию системы
Перед началом моделирования можно установить вывод тех параметров моделирования, которые нужны пользователю. Для этого:
Рис. 1 - Окно имитационной модели «Магазин»
Для моего варианта задания это может выглядеть так, как представлено на рис. 2.
Рис. 2 Окно SETTINGS с установками для имитационной модели магазина
Наличие галочки в окошках говорит о том, что эта информация будет выведена в окне результатов моделирования. В нашем примере будет выведена информация для следующих объектов:
Blocks (Блоки);
Queues (Очереди);
Tables (Таблицы/гистограммы);
Facilities (Каналы обслуживания).
Моделирование системы
После создания имитационную (выполняемую) модель необходимо оттранслировать и запустить на выполнение. Для этого:
щелкните по пункту Command главного меню системы или нажмите комбинацию клавиш Alt+C. Появится выпадающее меню;
щелкните по пункту Create Simulation (Создать выполняемую модель) выпадающего меню.
Если управляющая команда START есть в модели, то исходная имитационная модель после трансляции, если в ней нет ошибок, начнет выполняться. Будет выполняться то число прогонов, которое указано в поле операнда А команды START Затем появится окно JOURNAL.
Если управляющей команды START в модели нет, то исходная имитационная модель будет транслироваться, и если в ней нет ошибок, то будет получена оттранслированная модель - в машинных кодах, готовая к выполнению моделирования, так называемая выполняемая модель.
Перед началом моделирования, а точнее после появления окна JOURNAL, можно настроить графики вывода некоторых параметров функционирования системы. Для этого:
щелкните по пункту Window главного меню системы или нажмите комбинацию клавиш Alt+W. Появится выпадающее меню;
щелкните по пункту Simulation Window выпадающего меню. Появится всплывающее меню;
щелкните по пункту Plot Window (Окно графика) всплывающего меню. Появится диалоговое окно Edit Plot Window (Окно редактирования графика), которое необходимо соответствующим образом заполнить.
Графическое представление результатов моделирования
Допустим, мы хотим на всем периоде моделирования видеть график того, как меняется длина очереди к продавцу. Для нашей задачи окно Edit Plot Window может быть заполнено так, как показано на рис. 3.
Рис.3. Диалоговое окно Edit Plot Window для имитационной модели магазина
После заполнения диалогового окна Edit Plot Window щелкните по кнопкам Plot (График), Memorize (Запомнить), а затем - по кнопке ОК. Появится заготовка графика (рис. 4).
Рис. 4. Заготовка графического представления длины очереди к продавцу для имитационной модели магазина
После этого:
щелкните по пункту Command главного меню системы или нажмите комбинацию клавиш Alt+C. Появится выпадающее меню;
щелкните по пункту START. Появится диалоговое окно Start Command;
введите в диалоговом окне Start Command число посетителей магазина, например 1000, и щелкните по кнопке ОК. Появится окно REPORT с результатами моделирования. На заднем плане будет размещаться график;
щелкните по графику, расположенному на заднем плане, - он выйдет на первый план;
используя горизонтальную и вертикальную полосы прокрутки, вы можете просмотреть построенный график.
Фрагмент графика для моего варианта представлен на рис. 5.
Рис. 3.5. Фрагмент изображения длины очереди к продавцу для имитационной модели магазина
При выводе графика на передний окно REPORT с результатами моделирования переместится на задний план. Для просмотра окна REPORT щелкните по нему мышью. Оно вновь перейдет на передний план и будет выглядеть так, как показано на рис. 6.
Рис. 6. Окно REPORT с фрагментом результатов моделирования для имитационной модели магазина
В верхней строке окна REPORT (Отчет) указываются:
START TIME (Начальное время) - 0.000;
END TIME (Время окончания) - 1016.324;
BLOCKS (Число блоков) - 12;
FACILITIES (Число каналов обслуживания) - 2;
STORAGES (Число накопителей) - 0.
Ниже перечисляются блоки модели и количество входов в них требований (покупателей). При этом каждый блок имеет свой числовой номер.
Еще ниже указываются результаты моделирования каналов обслуживания под назначенными нами именами KASSIR и PRODAVEC соответственно:
ENTRIES (Число входов) - 107, 101;
UTIL. (Коэффициент использования) - 0.244, 0.987;
AVE. TIME (Среднее время обслуживания) - 2.318, 9.929;
AVAIL. (Доступность) -1,1;
OWNER (Возможное число входов) - 0, 101;
PEND - 0, 0;
INTER - 0, 0;
RETRY (Повтор) - 0, 0;
DELAY (Отказано) - 0, 6.
Еще ниже указываются результаты моделирования каждой очереди под присвоенными нами именами OCHER_PROD и OCHER_KASSA соответственно:
МАХ (Максимальное содержание) - 7 и 1; CONT. (Текущее содержание) - 7 и 0; ENTRY (Число входов) - 107 и 107; ENTRY(O) (Число нулевых входов) - 2 и 107; AVE.CONT. (Среднее число входов) - 3.607 и 0>000; AVE.TIME (Среднее время) - 34.260 и 0.000; AVE.(-O)- 34.913 и 0.000; RETRY - 0 и 0.
Еще ниже указываются результаты моделирования для построения по табличным данным гистограммы T_PROD функционирования очереди под именем
OCHER_PROD:
MEAN (Средняя) - 34.338;
STD.DEV. (Среднее квадратическое отклонение) - 17.466;
RANGE (Область);
RETRY - 0;
FREQUENCY (Частота);
CUM.% (Суммарный процент).
Вывод гистограммы
При наличии оператора
t_prod QTABLE Ocher_prod,0, 2, 32
можно вывести соответствующую гистограмму. Для этого:
щелкните по пункту Window главного меню системы. Появится выпадающее меню;
щелкните по пункту Simulation Window (Окно моделирования) выпадающего меню. Появится всплывающее меню;
щелкните по пункту Table Window (Окно гистограммы) во всплывающем меню. Появится диалоговое окно Open Table Window (Открыть окно гистограммы). В раскрывающемся списке Table щелкните по нужной гистограмме. Для нашей задачи окно будет выглядеть так, как показано на рис. 7;
Рис. 7. Диалоговое окно Open Таblе Window для выбора нужной гистограммы
щелкните по кнопке ОК. Появится соответствующая гистограмма. Для нашей задачи она выглядит так, как показано на рис. 8.
Рис. 8. Окно гистограммы очереди к продавцу в модели «Магазин»
PAGE 2