Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Порядок выполнения работы. Допустим, нам надо промоделировать работу небольшого магазина, который имеет один кассовый аппарат и одного продавца
Постановка задачи Допустим, нам надо промоделировать работу небольшого магазина, который имеет один кассовый аппарат и одного продавца. Известны следующие параметры функционирования магазина: • поток покупателей (требований), приходящих в магазин за покупками, равномерный; • интервал времени прибытия покупателей колеблется в пределах от 8, 7 до 10, 3 мин включительно, или 9, 5±0, 8 мин; • время пребывания покупателей у кассового аппарата составляет 2, 3±0, 7 мин. После этого покупатели подходят к продавцу для получения товара; • время, потраченное на обслуживание покупателей продавцом, составляет 10±1, 4 мин. Требуется определить параметры функционирования магазина: • коэффициент загрузки кассира; • коэффициент загрузки продавца; • максимальное, среднее и текущее число покупателей в каждой очереди; • среднее время обслуживания в каждом канале обслуживания; • среднее время нахождения покупателя в каждой очереди и др.
Выявление основных особенностей Для моделирования работы магазина необходимо сформировать входной поток покупателей (требований) и временной интервал моделирования работы магазина. Но перед этим необходимо выбрать единицу измерения времени. Для моделирования работы магазина можно взять в качестве единицы измерения минуту.
Создание имитационной модели процесса Создание имитационной модели начнем с построения заголовка модели, который может быть представлен, например, в таком виде: ; GPSSW File MAGAZIN.GPS **************************************** * Моделирование работы магазина * **************************************** Моделирование потока покупателей будем выполнять с помощью оператора GENERATE (Генерировать). В нашем примере он будет выглядеть так: t_prod QTABLE Ocher_prod, 0, 2, 32 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, показывающее, с каким числом покупателей будет моделироваться система работы магазина.
Представление имитационной модели Для представления имитационной модели выполните следующие действия: • щелкните по пункту File главного меню системы. Появится выпадающее меню; • щелкните по пункту New выпадающего меню. Появится диалоговое окно Новый документ; • выделите пункт Model и щелкните по кнопке ОК. Появится окно модели, в котором введите данную программу. Это будет выглядеть так, как показано на рис. 3.1. Во введенной программе в самом начале добавлен оператор QTABLE с меткой t_prod для сбора информации и построения соответствующей гистограммы функционирования очереди под именем Ocher_prod. Чтобы вызвать окно для представления имитационной модели в системе GPSSW, можно также нажать комбинацию клавиш Ctrl+Alt+S.
Подготовка к моделированию системы Перед началом моделирования можно установить вывод тех параметров моделирования, которые нужны пользователю. Для этого: щелкните по пункту Edit (Правка) главного меню системы или нажмите комбинацию клавиш Alt+E. Появится выпадающее меню; • щелкните по пункту Settings (Установки) выпадающего меню. Появится диалоговое окно SETTINGS для данной модели, в котором можно установить нужные выходные данные, которые отмечаются флажком (галочкой). Для нашего примера это может выглядеть так, как представлено на рис. 3.2. Наличие галочки в окошках говорит о том, что эта информация будет выведена в окне результатов моделирования. В нашем примере будет выведена информация для следующих объектов: • 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 щелкните по кнопкам Plot (График), Memorize (Запомнить), а затем – по кнопке OK. Появится заготовка графика (рис. 3.4). После этого: • щелкните по пункту Command главного меню системы или нажмите комбинацию клавиш Alt+C. Появится выпадающее меню; • щелкните по пункту START. Появится диалоговое окно Start Command; • введите в диалоговом окне Start Command число посетителей магазина, например 1000, и щелкните по кнопке OK. Появится окно REPORT с результатами моделирования. На заднем плане будет размещаться график; щелкните по графику, расположенному на заднем плане, – он выйдет на первый план; • используя горизонтальную и вертикальную полосы прокрутки, вы можете просмотреть построенный график. Фрагмент графика для нашего примера представлен на рис. 3.5. При выводе графика на передний окно REPORT с результатами моделирования переместится на задний план. Для просмотра окна REPORT щелкните по нему мышью. Оно вновь перейдет на передний план и будет выглядеть так, как показано на рис. 3.6. В верхней строке окна 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 соответственно: • MAX (Максимальное содержание) – 7 и 1; • CONT. (Текущее содержание) – 7 и 0; • ENTRY (Число входов) – 107 и 107; • ENTRY(0) (Число нулевых входов) – 2 и 107; • AVE.CONT. (Среднее число входов) – 3.607 и 0.000; • AVE.TIME (Среднее время) – 34.260 и 0.000; • AVE.(–0) – 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 щелкните по нужной гистограмме. Для нашей задачи окно будет выглядеть так, как показано на рис. 3.7; • щелкните по кнопке ОК. Появится соответствующая гистограмма. Для нашей задачи она выглядит так, как показано на рис. 3.8. Визуализация процесса функционирования системы После трансляции модели система GPSSW обеспечивает возможность визуального наблюдения перемещения покупателей (активных требований) в процессе моделирования. Если в модели есть команда управления START, она должна быть заблокирована, то есть переведена в комментарии. Для этого в позиции 1 поставьте звездочку. Для включения режима визуального наблюдения перемещения покупателей в процессе моделирования выполните следующие действия: • щелкните по пункту Window главного меню системы или нажмите комбинацию клавиш Alt+W. Появится выпадающее меню; • щелкните по пункту Simulation Window выпадающего меню. Появится всплывающее меню; • щелкните по пункту Block Entities (Блочные элементы) всплывающего меню. Появится диалоговое окно BLOCK ENTITIES (рис. 3.9) Для визуализации перемещения активных требований (транзактов) в процессе моделирования: • щелкните по пункту Command главного меню системы или нажмите комбинацию клавиш Alt+C. Появится выпадающее меню; • щелкните по пункту START. Появится диалоговое окно Start Command (рис. 3.10); • введите число покупателей, которые собираются посетить магазин, например 100; • щелкните по кнопке OK. Начнется процесс поступления и перемещения активных требований (покупателей) в магазине. Каждое перемещение требования по блокам системы фиксируется в правой части окна BLOCK ENTITIES; щелкните по кнопке Halt (Остановить), расположенной на панели кнопок управления в верхней правой части окна BLOCK ENTITIES. Одно из состояний моделирования системы магазина представлено на рис. 3.11; щелкните по кнопке Continue (Продолжить) для продолжения моделирования или по кнопке Step (Шагнуть), чтобы промоделировать и просмотреть изменения в системе в течение одного шага. По кнопке Step можно щелкать многократно для подробного просмотра последовательных шагов моделирования системы. Можно визуально наблюдать перемещения активных требований (транзактов) в процессе моделирования в том же окне BLOCK ENTITIES, но только без излишних деталей. Для этого: • щелкните по пункту View (Вид) главного меню системы или нажмите комбинацию клавиш Alt+V. Появится выпадающее меню; • щелкните по пункту Entity Details (Детальное представление) выпадающего меню. По умолчанию перед пунктом Entity Details стоит галочка, что означает установленный режим детального представления моделируемой системы. После щелчка по этому пункту мышью лишняя информация исчезнет, и окно BLOCK ENTITIES будет для нашей задачи выглядеть так, как показано на рис. 3.12. Каждое требование (покупатель) связано с набором параметров, которые характеризуют его в любой момент времени моделирования системы. Эти параметры имеют либо числовое, либо символьное обозначение. Их можно просмотреть в любом из возможных состояний. Для этого: • щелкните по пункту Window главного меню системы или нажмите комбинацию клавиш Alt+W. Появится выпадающее меню; • щелкните по пункту Simulation Window выпадающего меню. Появится всплывающее меню; • щелкните по пункту Block Entities всплывающего меню. Появится диалоговое окно BLOCK ENTITIES (рис. 3.13). Следует помнить, что включение окна просмотра BLOCK ENTITIES значительно замедляет процесс моделирования, так как тратится время на визуализацию процесса моделирования. Для ускорения процесса моделирования и быстрого получения конечного результата целесообразно закрыть окно просмотра BLOCK ENTITIES. Это можно сделать несколькими способами: • щелкнуть по кнопке с крестиком, расположенной в правом верхнем углу окна; • щелкнуть по пиктограмме блока, расположенной в левом верхнем углу окна. Появится всплывающее меню, в котором щелкните по пункту Close; • нажать комбинацию клавиш Ctrl+F4; • дважды щелкнуть по пиктограмме блока, расположенной в левом верхнем углу окна.
Просмотр отдельных результатов моделирования Можно просматривать искомые результаты моделирования без использования окна REPORT. Для этого предварительно в управляющем операторе START в поле операнда B после запятой ставятся символы NP (Not Print – Не печатать), например, так: START 100, NP Затем: • щелкните по пункту Command главного меню. Появится выпадающее меню; • щелкните по пункту Create Simulation (Создать выполняемую модель) выпадающего меню. Появится окно JOURNAL, показанное на рис. 3.14 Можно в этом же окне просмотреть некоторые результаты моделирования с использованием команды SHOW. Для этого выполните следующие действия: • щелкните по пункту Command главного меню. Появится выпадающее меню; • щелкните по пункту SHOW (Показать) выпадающего меню. Появится диалоговое окно Show Command (рис. 3.15) введите в строке диалогового окна Show Command стандартный числовой атрибут C1 (Время моделирования системы) и щелкните по кнопке OK. В окне JOURNAL появится результат работы команды SHOW– значение введенного стандартного числового атрибута (рис. 3.16). Эта команда обеспечивает вывод относительного времени моделирования системы как в строке состояния, так и в окне JOURNAL. Можно выводить и другие значения стандартных числовых атрибутов. Например, для нашей задачи мы хотели бы знать максимальную длину очереди. Для этого: • щелкните по пункту Command главного меню. Появится выпадающее меню; • щелкните по пункту SHOW выпадающего меню. Появится диалоговое окно Show Command; • введите в строке диалогового окна Show Command, например, QM$Ocher_prod и щелкните по кнопке OK. Будет показано максимальное содержимое указанной очереди – ее максимальная длина. Окно JOURNAL будет выглядеть примерно так, как показано на рис. 3.17. Система GPSS обеспечивает возможность просмотра в динамике изменения одного или нескольких числовых значений тех или иных элементов системы в процессе моделирования. Для этого следует использовать окно Edit Expression Window (Окно редактирования выражения), которое может содержать список нужных выражений, или FACILITY ENTITIES (Элементы канала обслуживания). Рассмотрим сначала изменения значений выражений в окне Edit Expression Window. Наиболее простыми выражениями являются переменные или стандартные числовые атрибуты. Оттранслируйте созданную модель и сделайте один шаг в моделировании. Допустим, вам надо промоделировать работу магазина при посещении его 100 покупателями. Но вы сначала промоделируете работу магазина с одним покупателем то есть управляющая команда START в поле операнда B будет иметь значение 1. После этого: • щелкните по пункту Window главного меню или нажмите комбинацию клавиш Alt+W. Появится выпадающее меню; • щелкните по пункту Simulation Window выпадающего меню или нажмите на клавишу W. Появится всплывающее меню; • щелкните по пункту Expressions Window (Окно выражений) во всплывающем меню или нажмите на клавишу E. Появится диалоговое окно Edit Expression Window; • введите в текстовом поле Label (Метка) диалогового окна Edit Expression Window исходное название просматриваемого элемента системы, например: Ê î ý ô ô è ö è å í ò è ñ ï î ë ü ç î â à í è ÿ ê à ñ ñ è ð à • введите в следующем текстовом поле Expression (Выражение) имя рассматриваемого выражения – переменной, стандартного числового атрибута и т.д. Например, стандартный числовой атрибут FR$kassir – это коэффициент использования канала обслуживания по имени kassir; • щелкните по кнопкам Memorize (Запомнить) и/или View (Просмотреть). Кнопка View позволит вам видеть выражение для этого прогона, в то время как кнопка Memorize обеспечивает его запоминание для использования в будущем. После того как информация для какоголибо одного элемента системы введена в оба текстовых поля и выполнены щелчки по кнопкам View и Memorize, можно снова вводить аналогичную информацию в те же текстовые поля. На рис. 3.18 показан возможный вариант ввода исходных выражений в диалоговом окне Edit Expression Window. После ввода очередных искомых параметров в диалоговом окне Edit Expression Window щелкните по кнопкам View и Memorize, а затем – по кнопке OK. Появится окно EXPRESSIONS (рис. 3.19). После этого: • щелкните по пункту Command главного меню. Появится выпадающее меню; • щелкните по пункту START выпадающего меню. Появится диалоговое окно Start Command (см. рис. 3.10); • введите в строке диалогового окна Start Command после команды START значение 100 и щелкните по кнопке OK. Теперь вы можете наблюдать динамику изменения значений, введенных в окне EXPRESSIONS. Можно в любой момент остановить процесс моделирования, щелкнув по кнопке Halt, расположенной в правой верхней части окна. Одно из таких промежуточных состояний окна EXPRESSIONS показано на рис. 3.20. Следует заметить, что для вычисления истинного значения коэффициента использования канала обслуживания необходимо полученные результаты разделить на 1000. Стандартный числовой атрибут FR$< ñ è ì â î ë ü í î å è ì ÿ > выдает значение от 0 до 999. После прерывания моделирование может быть продолжено, если щелкнуть по кнопке Continue. Моделирование можно выполнять и по одному шагу, если использовать кнопку Step. Рассмотрим теперь изменения значений показателей (параметров) функционирования каналов обслуживания. Это мы будем делать с помощью окна FACILITY ENTITIES (Показатели канала обслуживания). Сначала, как и ранее, оттранслируйте созданную модель и сделайте один шаг в моделировании. Допустим, вам надо промоделировать работу магазина при посещении его 100 покупателями. Но вы сначала промоделируете работу магазина с одним покупателем, то есть управляющая команда START в поле операнда B будет иметь значение 1. После этого: • щелкните по пункту Window главного меню или нажмите комбинацию клавиш Alt+W. Появится выпадающее меню; • щелкните по пункту Simulation Window (Окно моделирования) выпадающего меню или нажмите на клавишу W. Появится всплывающее меню; • щелкните по пункту Facilities Window (Окно каналов обслуживания) во всплывающем меню или нажмите на клавишу F. Появится окно показателей функционирования каналов обслуживания FACILITY ENTITIES. На рис. 3.21 показан возможный вариант значений показателей работы каналов обслуживания в нашей задаче в окне FACILITY ENTITIES. После этого: • щелкните по пункту Command главного меню. Появится выпадающее меню; • щелкните по пункту START выпадающего меню. Появится диалоговое окно Start Command; • введите в строке диалогового окна Start Command после команды START значение 150 и щелкните по кнопке OK. Теперь вы можете наблюдать динамику изменения значений в окне FACILITY ENTITIES. Можно в любой момент времени остановить процесс моделирования, щелкнув по кнопке Halt (Остановить), расположенной в правой верхней части окна. Следует заметить, что в окне FACILITY ENTITIES значения коэффициента использования каналов обслуживания даются в реальном представлении. После прерывания моделирование может быть продолжено, если щелкнуть по кнопке Continue (Продолжить). Моделирование можно выполнять и по одному шагу, если использовать кнопку Step (Шаг).
|