3.1.1. Определение расходов на обслуживание телефонных вызовов
Требуется определить такое количество каналов связи N, что бы при заданной интенсивности поступления звонков и интенсивности их обслуживания прибыль от использования системы была бы максимальной.
Для вычисления прибыли введем формулу:
(3.1)
Здесь: t – текущее время, Incomе – стоимость обслуженных звонков, Penalties – начисленный штраф за не обслуженный вызов, equipmentPrice – функция, которая определяет стоимость облуживания задействованных каналов.
Введем в модель системы еще два параметра:
minPrice=0.12 у.е. (стоимость обслуживания звонка клиента)
penaltyPerCall=1 у.е. (стоимость штрафа, за не обслуженный вызов)
Используя палитру «Основная» введите в модель функцию callPrice с помощью инструмента «Функция». Эта функция позволит вычислить стоимость обслуженного звонка.
Аргумент функции t текущее время. Тип аргумента double.
Функция возвращает результат так же типа double.
Код функции:
return t<=1 ? minPrice : t*minPrice;
Если текущее время меньше 1 модельного времени, то значение функции – минимальная стоимость обслуживания вызова, в противном случае стоимость звонка равна произведению минимальной стоимости обслуживания на текущее время разговора.
Для получения стоимости обслуживания каналов связи нужно в модель ввести табличную функцию, с помощью элемента палитры «Основная». Это функция equipmentPrice. Для ее создания нужно задать ее свойства в соответствии с рисунком 3.6.
Рис.3.6. Функция вычисления стоимости каналов
Для использования функции callPrice нужно знать время, затраченное на обслуживание заявки в процессоре service. Что бы вычислить это время введите в модель класс заявки Call, спецификация класса показана на рисунке 3.7.
Рис.3.7. Класс Call
Класс содержит два атрибута с доступом public. Первый атрибут tStart используется для фиксирования времени начала обслуживания вызова в процессоре service, а второй атрибут tFinish используется для фиксирования момента времени завершения обслуживания заявки в процессоре.
Настройте модель таким образом, что бы она учитывала прохождение по каналам системы заявки класса Call. Определите, используя атрибуты классы, время начала обслуживания вызова и время завершения обслуживания вызова в процессоре service.
При уничтожении заявки в элементе sink должен выполняться оператор, для подсчета стоимости обслуженного вызова:
Income+=callPrice(entity.tFinish-entity.tStart);
При уничтожении заявки отклоненного вызова должен выполняться код, для подсчета стоимости штрафов:
Penalties+=penaltyPerCall;
Создайте динамическую переменную для вычисления прибыли по формуле 3.1.
В результате модель примет вид, показанный на рисунке 3.8.
Рис. 3.8. Модель обслуживания вызовов
Измените эксперимент модели. Создайте интерфейс для изменения значения числа каналов N с помощью «бегунка». Диапазон значений от 1 до 100 каналов.
Проведите несколько экспериментов с разными значениями N. Проследите, как меняется прибыль от эксплуатации системы с разным числом каналов. При уменьшении N начинается увеличиваться число отклоненных вызовов. Увеличение каналов приводит к отрицательному доходу, так неоправданно возрастают расходы на их обслуживание.
- Практикум «Моделирование систем в среде AnyLogic 6.4.1»
- 1. Моделирование динамических систем
- 1.1. Исследование динамической модели Лоренца
- Построение модели
- Параметры модели
- Начальные значения накопителей
- 1.2. Изучение чувствительности модели Лоренца
- 1.3. Типовые звенья
- 1.3.1. Моделирование работы интегрирующего звена
- 1.3.2. Исследование апериодического и колебательного звена Апериодическое звено
- Колебательное звено
- 1.4. Модель следящего гидропривода
- 2. Построение моделей систем массового обслуживания
- 2.1. Моделирование системы обслуживания клиентов
- Построение модели
- Источник заявок
- Очередь
- Узел обслуживания
- 2.2. Анимация модели
- 2.3. Размещения графиков
- 2.4. Моделирование двухканальной смо
- Элемент SelectOutput
- Элемент Service
- Элемент ResourcePool
- Анимация второго канала
- Настройка анимации очередей
- Анимация рабочих мест клиентов
- 2.5. Определение параметров смо
- Создание класса заявки
- Сбор параметров системы
- Самостоятельные задания
- 3. Исследование систем массового обслуживания
- 3.1. Задача Эрланга
- Постановка задачи
- Настройки элементов модели
- 3.1.1. Определение расходов на обслуживание телефонных вызовов
- 3.1.2 Определение оптимального числа каналов
- 3.2. Система массового обслуживания с отказами
- 3.3. Задания для самостоятельной работы
- 3.3.1. Разработка двухканальной смо
- 3.3.2. Модель трехканальной смо
- Методические указания
- Методические указания
- 3.3.3. Модель трехканальной смо без очередей
- Методические указания
- 4. Моделирование сетей
- 4.1. Модель приемного отделения медицинского центра Создание рабочего поля сети
- Создание сети
- Первый элемент
- Второй элемент
- Третий элемент
- Создание канала обслуживания
- Моделирование обслуживания пациентов
- Задания для самостоятельной работы
- 4.2. Модель вестибюль метро
- Разметка вестибюля
- Разметка турникетов
- Построение канала смо
- Моделирование покупки билетов
- Самостоятельное задание
- Приложение №1. Элементы библиотеки Enterprise Library Source
- Service
- ResourcePool
- SelectOutput
- NetworkResourcePool
- NetworkEnter
- Networksize
- NetworkSendTo
- NetworkAttach
- NetworkMoveTo
- NetworkDetach
- NetworkRelease
- NetworkExit
- Приложение №2. Элементы библиотеки Pedestrian Library PedSource
- PedService
- PedGoTo
- PedSelectOutput
- PedSink
- PedConfiguration
- PedGround
- PedServices
- Приложение №3. Сбор статистики
- Список литературы