Имитационное моделирование деятельности банка

Рассмотрим пример создания простой имитационной модели деятельности банка, осуществляющего выдачу кредитов, с использованием методов дискретно-событийного моделирования. Данная модель относится к классу систем массового обслуживания (СМО).

Напомним, что СМО — система, которая производит обслуживание поступающих в нее требований (в данном случае заявок на получение кредита).

Для разработки подобной модели можно использовать систему Any Logic. В частности, в ней имеется возможность создания моделей с использованием шаблонов типа «дискретно-событийное моделирование» (рис. 3.6).

Создание дискретно-событийной модели в системе Any Logic

Рис. 3.6. Создание дискретно-событийной модели в системе Any Logic

В основе дискретно-событийной модели лежит диаграмма процесса — последовательность соединенных между собой, задающих последовательность операций, которые будут производиться над проходящими по диаграмме процесса заявками (рис. 3.7).

Диаграмма процесса в системе Any Logic

Рис. 3.7. Диаграмма процесса в системе Any Logic

Под заявками здесь понимаются некие дискретные сущности, характеризуемые такими параметрами, как интенсивность прибытия, концентрация заявок (количество заявок, прибывающих за один раз) и др. Например, в качестве заявок можно рассматривать заявки на получение кредита со стороны потенциальных заемщиков. При этом можно создавать дискретно-событийную модель, использующую ресурсы — resourcePool, в качестве которых можно рассматривать андеррайтеров, т.е. лиц, оценивающих риски заемщика и принимающих решение о выдаче кредита. Пул ресурсов также имеет определенные характеристики, например их количество, действия при получении заявки и завершении ее обслуживания и т.д.

Объектом source осуществляется формирование (генерация) заявок, для которых можно задать, в частности, интенсивность прибытия, прибытие по расписанию и др. Обслуживание (оценка рисков) заявок осуществляется в точке сервиса, связанной с пулом ресурсов и характеризуемой собственным временем задержки, вместимостью очереди и др. При этом объект queue имитирует очередь заявок, a delay — задержку в оказании сервиса. Все обслуженные за моделируемый период заявки собираются на выходе процесса в объекте sink (см. рис. 3.7).

Следует отметить, что по умолчанию в рассматриваемом модельном шаблоне заявки либо обслуживаются в точке сервиса, либо используют ресурсы заданного типа с вероятностью 0,5. Для того чтобы реализовать требуемую нам логику модели, в рамках которой, обслуживание заявок осуществляется только при наличии свободных ресурсов, необходимо для объекта selectOutput (см. рис. 3.7) задать условие проверки наличия свободных ресурсов с помощью функции idle(): !(resourcePool.idle()>0).

В этом случае если есть хотя бы один свободный ресурс, то заявка будет обслужена андеррайтером, иначе заявка будет помещена в очередь.

Далее следует реализовать механизм извлечения заявок из очереди и направления их на повторное рассмотрение по истечении некоторой временной задержки. При этом на вход системы должны поступать и абсолютно новые заявки (рис. 3.8).

Простая модель массового обслуживания кредитных заявок

Рис. 3.8. Простая модель массового обслуживания кредитных заявок

В рассматриваемой модели можно задать значение количества ресурсов, требуемых для обслуживания одной заявки (параметр «Количество ресурсов» объекта sendee).

Несложно показать, что в условиях дефицита ресурсов (режим по умолчанию) значительная часть заявок скапливается в очереди (рис. 3.9).

Статистика созданных и обработанных заявок может быть легко получена с помощью функции count() для объектов source и sink соответственно.

Для устранения дефицита ресурсов и выравнивания динамики поступивших и обработанных заявок можно использовать свойство capacity объекта resourcePool для установки значения требуемого количества ресурсов.

Динамика обработки заявок

Рис. 3.9. Динамика обработки заявок

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >