Опубликован: 07.11.2014 | Доступ: свободный | Студентов: 442 / 37 | Длительность: 15:17:00
ISBN: 978-5-9556-0161-8
Тема: САПР
Лекция 10:

Модель обработки документов в организации

Решение задачи в AnyLogic

Создайте модель Обработка_документов.

  1. Выполните команду Файл/Создать/Модель на панели инструментов. Откроется диалоговое окно Новая модель.
  2. В поле Имя модели диалогового окна Новая модель введите Обработка_документов. Выберите каталог, в котором будут сохранены файлы модели. Щёлкните Готово.
  3. Объекты и элементы модели Обработка_документов показаны на Рис. 10.1. Перетащите их на агента Main, разместите, соедините и установите значения свойств согласно Табл. 10.1.

Для ввода исходных данных используйте элемент Параметр, тип первых двух double, а третьего - int:

  • срИнтПост - средний интервал поступления документов, по умолчанию - 4;
  • срВрОбр - среднее время обработки документа, по умолчанию - 12;
  • колСотруд - количество сотрудников, по умолчанию - 3.
Объекты и элементы модели ОбрДокументов

увеличить изображение
Рис. 10.1. Объекты и элементы модели ОбрДокументов
Таблица 10.1.
Свойство Значения
Имя source
Тип заявки Entity
Прибывают согласно Времени между прибытиями
Время между прибытиями exponential(1/срИнтПост)
Действия При выходе: постДокум++;
Имя selectOutput
Выход true выбирается При выполнении условия
Условие delay.size()<колСотруд
Имя delay
Тип Определённое время
Время задержки exponential(1/срВрОбр)
Вместимость колСотруд
Включить сбор статистики Установить флажок
Имя sink
Действие При входе: обрДокум++;
верОбр=обрДокум/постДокум;
верОтказа=1-верОбр;

Для вывода результатов моделирования используются элементы Переменная, тип которых double:

  • постДокум - количество поступивших документов;
  • обрДокум - количество обработанных документов;
  • верОбр - вероятность обработки документов;
  • верОтказа - вероятность не обработки документов.

AnyLogic-модель построена.

Выделите в окне Проекты Simulation:Main.

На странице Модельное время, выберите из списка Остановить: В заданное время. Введите Конечное время: 600000 (модельное время увеличено в 10000). Режим выполнения: Виртуальное время (максимальная скорость)

На странице Случайность установите Фиксированное начальное число (воспроизводимые прогоны) и Начальное число: 1055.

Запустите модель. Вы должны получить результаты, приведенные на Рис. 10.2.

Результаты решения задачи в AnyLogic7

Рис. 10.2. Результаты решения задачи в AnyLogic7

Вероятность не обработки всех документов верОтказа=0,342 (0,345 в AnyLogic6), то есть отличается от полученного аналитическим путём решения на 0,004 (0,001). Хотя это отличие можно отнести на счёт округления до трёх знаков после запятой.

Теперь измените количество сотрудников с трёх на шесть. Для этого выделите элемент Параметр с именем колСотруд и установите по умолчанию 6. Всё остальные данные оставьте без изменения. Запустите модель. Вероятность не обработки документов верОтказа=0,052 (0,051), то есть отличается от полученного аналитическим путём решения на 0,002 (0,001).

Сравнительную оценку можно было бы провести и при проведении расчётов с большим числом знаков после запятой, то есть с большей точностью.

Игорь Маникин
Игорь Маникин

Коллеги, спасибо за очень информативный и полезный курс. Прошёл три лекции. Столкнулся с проблемой, что обе модели не могут закончить расчёт по причине ограничения бесплатной версии "создано максимально допустимое число динамически создаваемых агентов (50000)". По скриншотам Лекции 2 видно, что да, модель создает гораздо больше 50000 агентов. В принципе, мне то и диплом не особо нужен. Но хотелось бы выполнить практические работы. Нет ли возможности откорректировать эту проблему? Или может я чего не так делаю?

Еще раз спасибо за прекрасный курс!

Артём Нагайцев
Артём Нагайцев

Выдает ошибку "entity cannot be resolved to a variable" при попытке запуска. В чем может быть причина? Ошибка в строках

entity.time_vxod=time(); 

time_obrabotki.add(time()-entity.time_vxod);