МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Практическая работа № 6. Имитационная модель СМО с одним каналом обслуживания и с очередью Задания практической работы рассчитаны на 1 час аудиторных занятий и 1 час самостоятельной работы. Практическая работа опирается на материал лекций 6, 7. Цель работы Отладка модели путем пошагового просмотра; моделирование очереди в СМО; проверка условия существования ограниченной очереди; обнуление матричной переменной перед началом эксперимента в модели, реализующей конечный процесс. Оглавление. Часть 1. Отладка модели с помощью пошагового просмотра ..............................................1 Задание 6.1. Пошаговый просмотр модели .........................................................................1 Часть 2. Моделирование очереди в СМО ...............................................................................2 Задание 6.2. Моделирование бесконечного процесса функционирования СМО с очередью .................................................................................................................................2 Задание 6.3. Компьютерный эксперимент ..........................................................................6 Задание 6.4. Моделирование конечного процесса для СМО с одним каналом и очередью .................................................................................................................................6 Перед началом работы Создайте на своем сетевом диске в папке ИМЭП/Практика папку Занятие6. Создайте в папке Занятие6 папку с именем СМО_1к_очередь. В ней будет сохранен новый проект СМО_1к_очередь. Часть 1. Отладка модели с помощью пошагового просмотра Задание 6.1. Пошаговый просмотр модели Выполнить пошаговый просмотр модели на примере проекта СМО_1к_отказ. Технология работы 1. В папке проекта откройте СМО_1к_отказ последний созданный на практической работе № 5 файл СМО_1к_отказ4, в котором построена модель бесконечного процесса функционирования СМО с 1-м каналом и отказами. 2. Скомпилируйте модель. МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE В окне прогона модели выполните команду Сервис/Условия останова. В открывшемся диалоговом окне включите флажок Любой переход. Нажать на кнопку Принять. Для отслеживания переходов между классами и состояниями откройте для каждого класса окна Поведение и Переменные. 7. Расставьте окна на экране монитора для удобного просмотра. 8. Запустите модель. 3. 4. 5. 6. Во время работы модели в окнах Поведение узлы и переходы, готовые к срабатыванию, полностью закрашены темным (черным) цветом. Активный переход обозначается в модели синей мигающей стрелкой. После запуска модели окно пошагового просмотра будет открываться, когда сработает один из переходов в модели. В момент останова модели вы можете проследить, какие значения принимают в данный момент переменные классов, какой переход готов к срабатыванию и соответствует ли это логике функционирования процесса. Кроме того, в поле Текущее время можно отслеживать время срабатывания перехода. Часть 2. Моделирование очереди в СМО Постановка задачи В рассмотренную на практической работе № 5 модель системы массового обслуживания с 1-м каналом и отказами добавить очередь. Разработать две модели СМО с очередью: модель, реализующую бесконечный процесс; модель, реализующую конечный во времени процесс. Цели моделирования Вычислить: 1. Общее количество заявок, поступивших в систему – К. 2. Количество обслуженных заявок (вероятность удовлетворения заявки) – Кобслуж, Робслуж. 3. Проверить на имитационной модели условие существования ограниченной очереди. 4. Количество отказов (вероятность отказа заявки) – Котк, Ротк. 5. Исследовать, как изменяются искомые величины при разных исходных данных. 6. Проверить совпадение расчетов имитационной модели с аналитическими результатами. Задание 6.2. Моделирование бесконечного процесса функционирования СМО с очередью МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Создать модель СМО с одним каналом и очередью, реализующую бесконечный процесс функционирования системы. Технология работы 1. Создайте в папке Занятие6 папку нового проекта СМО_1к_очередь. 2. Откройте файл СМО_1к_отказ4 с моделью бесконечного процесса функционирования СМО с 1-м каналом и отказами, созданный на практической работе № 5. Сохраните этот файл в папке Занятие6 с именем СМО_1к_очередь. 3. В окне Структура класса Model удалите связи между диспетчером и узлом обслуживания. 4. Создайте в классе Диспетчер новые входы и выходы е ь Названи од Вход/Вых Тип данных В_очеред Выход Сигнал НетМест Вход Логический 5. Измените карту поведения Диспетчера (рис. 1). Рис. 1. Карта поведения класса Диспетчер 6. Удалите из класса Диспетчер переход по сигналу Свободен. 7. Удалите из класса Диспетчер неиспользуемые переменные: Название Вид переменной Свободен Вход МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Обслужить Выход Занят Внутренняя переменная Примечание. Нельзя удалять выходы, если они используются изменении класса надо сначала которых используются ненужные описания класса. параметры, внутренние переменные, входы и при описании поведения класса. Поэтому при удалить с карты поведения все операторы, в характеристики, а затем только удалить их из 8. Создайте новый класс Очередь. Установите для класса: собственное поведение – Гибридное; тип структуры – Элементарный объект; тип компонента – Открытая система. 9. Поместите класс Очередь в окно Структура класса Model. 10. Опишите характеристики класса (рис. 2). Рис. 2. Описание переменных класса Очередь 11. Опишите поведение класса Очередь (рис. 3). Объясните смысл условий перехода и действий на переходе. МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Рис. 3. Карта поведения класса Очередь Примечание. При описании переменных Очередной и Первый им присвоено значение 0. Затем в состоянии Начало этим переменным присваивается значение 1, потому что первая строка матрицы в среде MVS нумеруется с 1. Можно было задать значение 1 для переменных непосредственно в описании класса. Но это будет неудобно при модификации модели от бесконечного процесса к конечному. В качестве индикатора занятости очереди используется логическая переменная НетМест, а не сигнал. Попробуйте заменить булевскую переменную сигналом и посмотреть, как будет работать модель. 12. На виртуальном стенде свяжите входы и выходы классов (рис. 4). МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Рис. 4 13. Скомпилируйте модель. 14. Откройте окна Переменные и Поведение для всех классов. 15. Для наблюдения за накапливанием заявок в очереди правой кнопкой щелкните по переменной УчетЗаявок в узле Очередь и выберите команду Показать полностью. 16. Создайте диаграмму, отображающую количество заявок в очереди. 17. Запустите модель. Наблюдайте изменения в окнах Переменные и Поведение, а также накопление заявок в матрице УчетЗаявок. 18. Остановите модель. Проследите, что контрольные значения переменных в связанных классах совпадают. 19. Закройте визуальную модель. Сохраните сделанные изменения в проекте. 20. Включите в отчет описание изменений в классе Диспетчер и описание нового класса Очередь, визуальную модель с диаграммой. Задание 6.3. Компьютерный эксперимент Исследовать модель и ответить результатами экспериментов. на вопросы. Выводы сопровождайте 1. Является ли очередь ограниченной или бесконечно возрастает, если λ = μ= 1; λ<μ; λ>μ ? 2. Для некоторого набора исходных данных λ, μ выясните максимальное количество заявок в очереди. Имейте в виду, что это возможно не для всех значений. Какую для данного набора λ, μ надо задать длину очереди, чтобы можно было ее считать бесконечной? 3. Для некоторого набора исходных данных λ, μ задайте небольшую длину очереди (например, равную 5). Найдите вероятность обслуженных заявок с учетом тех, которые стоят в очереди, и вероятность отказа в обслуживании. Сравните результаты с теоретическими. 4. По итогам моделирования создайте отчет. Включите в отчет результаты исследования модели. Ответьте на вопросы, поставленные в задаче. 5. Как реализовать на данной модели СМО с одним каналом и отказами? Проведите эксперимент. Вычислите вероятности отказа и обслуживания. Сравните с аналитическими результатами. Задание 6.4. Моделирование конечного процесса для СМО с одним каналом и очередью Измените модель СМО_1к_отказ6, созданную в практической работе № 5, для моделирования конечного процесса функционирования СМО с очередью. Сохраните новую модель с именем СМО_1к_очередь_конеч. Рекомендации по выполнению задания 1. В модели СМО_1к_отказ6 создайте класс Очередь аналогично предыдущим заданиям и сделайте аналогичные изменения во всех классах модели. МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE 2. Для инициализации нового эксперимента в классе Очередь потребуется обнулить матрицу УчетЗаявок. Для этого используется специальная функция zeros: УчетЗаявок:= zeros[200,2]