Назначение и возможности инструментальной среды AnyLogic введение имитационное моделирование



бет37/52
Дата07.02.2022
өлшемі1,01 Mb.
#89408
1   ...   33   34   35   36   37   38   39   40   ...   52
Байланысты:
Эни-Лоджик

Действие при входе: entity.startWaiting = time();
Действие при выходе:
waitTimeDistr.add(time() - entity.startWaiting);
3) блок queue – введите Customer в поле Класс заявки. Добавьте код в поля:


Действие при входе: entity.startWaiting = time();
Действие при выходе:
waitTimeDistr.add(time()-entity.startWaiting);
Данный код добавляет время, в течение которого клиент ожидал обслуживания, в объект сбора данных waitTimeDistr;
4) блок ATM (блок delay) – введите Customer в поле Класс заявки;
5) блок sink – введите Customer в поле Класс заявки. Напишите следующий код, чтобы сохранить в наборах данных данные о клиенте, поки- дающем банковское отделение (Действие при входе):
timeInSystemDistr.add(time()-entity.enteredSystem);
Данный код добавляет полное время пребывания клиента в банковском отделении в объект сбора данных гистограммы timeInSystemDistr.
Добавьте две гистограммы для отображения распределений времен ожи- дания клиента и пребывания клиента в системе.
Чтобы добавить гистограмму на диаграмму класса активного объекта, пе- ретащите элемент Гистограммаиз палитры Статистикав то место графиче- ского редактора, куда вы хотите ее поместить. Укажите, какой элемент сбора данных хранит данные, которые хотите отображать на гистограмме: щелкните мышью по кнопке Добавить данныеи введите в поле Данныеимя соответст- вующего элемента – waitTimeDistr.
Аналогичным образом добавьте еще одну гистограмму и расположите ее под ранее добавленной. В поле Данныевведите timeInSystemDistr.

Измените заголовки отображаемых данных.


Запустите модель. Включите режим виртуального времени и посмотрите, какой вид примет распределение времени ожидания и времени пребывания клиента в системе.
8. Оценка затрат операций.
Enterprise Library предоставляет инструменты для проведения оценки за- трат операций. Метод оценки затрат операций (activity-based costing, ABC- метод) оценивает процесс и эффективность операций, определяет стоимость обслуживания/производства и указывает возможности для усовершенствования продуктивности и эффективности процесса. С помощью этого метода произво- дится количественная оценка стоимости и производительности операций, эф- фективности использования ресурсов и стоимости объектов.
Проведем учет затрат операций в нашем примере, чтобы понять, во сколько в среднем обходится обслуживание одного клиента и какие накладные расходы связаны с обслуживанием клиентов, ожидающих своей очереди.
Сначала необходимо написать вспомогательную функцию для пересчета почасовой зарплаты в поминутную.
Создайте математическую функцию (перетащите элемент Функцияс па- литры Основныена диаграмму активного класса), назовите ее toMinute. На странице свойств задайте тип, аргументы и выражение функции. Тип возвра- щаемого значения должен быть double. Аргумент функции perHour типа double. Напишите выражение функции (тело функции) – returnperHour/60;. Функция должна быть статической, поскольку эта функция не использует зна- чения, специфичные для конкретного экземпляра класса Model. В противном случае нам пришлось бы вызывать ее со ссылкой на конкретный экземпляр класса Model.
Добавьте необходимые параметры в классе сообщений Customer:
serviceCost будет хранить информацию о том, во сколько компании обходится обслуживание этого клиента. Тип – double. Значение по умолчанию – 0;
waitCost – затраты на ожидание клиента в очереди. Тип – double. Значение по умолчанию – 0. Заметим, что банк несет издержки, связанные с обслуживанием клиентов, ожидающих своей очереди;
existenceCostPerHour задает, во сколько обходится компании пре- бывание клиента в банке. Тип – double. Значение по умолчанию – Main.toMinute(1.5).
Теперь необходимо добавить код в свойства блоков:
1) блок tellerLines (блок Service) – добавьте код в Действие при выходе:
waitTimeDistr.add(time() - entity.startWaiting); Costwait.add(entity.existenceCostPerHour*(time() - entity.startWaiting));
Costservice.add ((time()-entity.enteredSystem)* (entity.existenceCostPerHour + Model.busyCostRate));
2) блок queue добавьте код в Действие при выходе:
waitTimeDistr.add(time() - entity.startWaiting); Costwait.add(entity.existenceCostPerHour*(time()- entity.startWaiting));
Costservice.add((time()-entity.enteredSystem)* (entity.existenceCostPerHour + Model.busyCostRate));
Добавьте в модель вспомогательные элементы, собирающие статистику затрат компании, для чего необходимо создать:
1) переменные, задающие заработную плату кассиров. Для этого перета- щите элемент Простая переменнаяс палитры Основныена диаграмму актив- ного класса:
busyCostRate, тип – double, значение по умолчанию –
toMinute(6.5), глобальный;
idleCostRate, тип – double, значение по умолчанию –
toMinute(4.0), глобальный.
Мы платим кассиру 6.5 дол. в час, если он был занят обслуживанием кли- ентов и 4.0 дол., если он был свободен;
2) простую переменную, задающую расходы, которые связаны с работой банкомата:



Достарыңызбен бөлісу:
1   ...   33   34   35   36   37   38   39   40   ...   52




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет