Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Тема 4. Разработка алгоритма моделирования
4.1. Общие вопросы построения моделирующих алгоритмов
После проведения статистического исследования бизнес-процесса и описания используемых математических схем можно переходить к построению
моделирующего алгоритма. По сути, моделирующий алгоритм является ядром
имитационной модели, ее стержнем. Поэтому построение алгоритма моделирования является крайне важным и сложным этапом. Моделирующий алгоритм не
привязан к какой-либо среде программирования, он универсален, и может быть
реализован в любой из них.
Именно моделирующий алгоритм определяет и обеспечивает процесс моделирования. Благодаря алгоритму, в течение периода моделирования имитируется (воспроизводится) функционирование процесса подобно тому, как он
протекает в реальности.
Существует два основных типа моделирующих алгоритмов: с детерминированным шагом и со случайным шагом. Поскольку мы выбрали механизм
продвижения модельного времени случайным шагом, то и алгоритм получится
соответствующего типа. Но, независимо от типа, алгоритм раскладывает процесс моделирования на простейшие шаги, последовательность выполнения которых и формирует имитацию протекания бизнес-процесса.
Таким образом, моделирующий алгоритм должен быть прост и понятен,
логично выстроен и подробно описан. Вначале составляется обобщенный, укрупненный алгоритм моделирования, «раскладывающий» имитацию на несколько основных крупных блоков, логично следующих друг за другом. Далее
необходимые блоки укрупненного алгоритма детализируются, образуя подробный, детальный алгоритм.
4.2. Пример разработки и описания алгоритма
Рассмотрим пример построения моделирующего алгоритма бизнеспроцесса выполнения заказа клиента (лекция 2, раздел 2.3).
1
Рис. 1 – Укрупненный алгоритм моделирования
Построим обобщенный моделирующий алгоритм для бизнес-процесса
выполнения заказа клиента. Естественно, он связан с самим бизнес-процессом,
так как предназначен для его моделирования. Бизнес-процесс можно представить как СМО, то есть поступление и обслуживание заявок. Поступление заявок в систему – это приходящие клиенты, намеренные реализовать свои потребности в продукции или услугах предприятия. Их поток случаен (СВ1). Далее эти заявки (клиенты) обслуживаются и покидают систему: либо удовлетво2
рив свою потребность, либо нет (СВ3). Таким образом, укрупненно моделирование данного бизнес-процесса можно представить как два этапа:
1. Моделирование поступления заявок.
2. Моделирование обслуживания заявок.
При поступлении заявки будет срабатывать блок сравнения, где осуществляется проверка, закончен период моделирования (Т) или нет. Также необходимы следующие вспомогательные блоки (процедуры):
3. Блок ввода исходных данных.
4. Блок объявления и обнуления переменных.
5. Блок расчета итоговых показателей.
6. Блок вывода результатов пользователю.
Полученный укрупненный алгоритм приведен на рисунке 1.
Алгоритм начинается с ввода исходных данных пользователем – блок 1.
Здесь необходимо ввести значения параметров имитационной модели, с помощью которых пользователь может менять условия моделирования, а также параметры законов распределения случайных величин.
Блок 2 предназначен для объявления и обнуления переменных, используемых в модели. Эти переменные будут менять свои значения в процессе моделирования, а к моменту окончания будут содержать итоговые значения,
представляющие интерес для пользователя.
Далее следует блок 3, один из основных блоков. Он предназначен для
моделирования поступления заявок согласно закону распределения вероятностей и для учета этих заявок.
В блоке 4 происходит сравнение времени поступления очередной заявки
с периодом моделирования. Если время не выходит за пределы моделирования,
то заявка передается блоку 5 для последующей обработки. Если же время выходит за период, то осуществляется переход к блоку 6.
Блок 5 моделирует обслуживание заявки и передает управления блоку 3
для моделирования поступления новой.
3
Переход к блоку 6 означает окончание периода моделирования. Здесь
происходит расчет итоговых показателей, характеризующих функционирование процесса в течение заданного периода.
Заключительным шагом является выполнение блока 7, который отвечает
за вывод результатов пользователю.
Итак, основными функциональными блоками обобщенного алгоритма
являются:
- моделирование поступления заявок;
- моделирование обслуживания заявок.
Вспомогательные блоки детализации в нашем случае не подлежат и переносятся в детальный алгоритм «как есть», так как уточнения не требуют.
Моделирование поступления заявок состоит в генерации случайного времени между поступлением заявок (СВ1) и проверке каждого такого момента на
принадлежность заданному периоду моделирования Т. Если момент поступления очередной заявки не превышает границу периода, то будет осуществляться
переход к ее обслуживанию. Если же момент выходит за границу периода, значит период окончен, то есть следует выходить из цикла поступления и обслуживания заявок и переходить к расчету показателей и выводу их пользователю.
Моделирование обслуживания заявок можно разделить на этапы исходя
из схемы бизнес-процесса. В нашем случае обслуживание происходит в несколько этапов и допускает несколько вариантов (вследствие влияния случайных факторов). Первый этап – оформление заказа в отделе сбыта. Тут необходимо смоделировать СВ2, а также предусмотреть разветвление СВ3 (возможный отказ клиента) – в этом случае управление должно передаваться блоку моделирования поступления заявок для определения момента поступления новой
заявки.
Следующий этап процесса обслуживания – планирование производства
(генерация СВ4). Здесь возможно разветвление (СВ5), так как возможна ситуация с нехваткой запасов. Если их не хватает, то генерируется СВ7 и СВ8. Если
ресурсов хватает, то сразу начинается процесс выполнения заказа (СВ6).
4
В конце алгоритма также предусмотрены блоки расчета и вывода результатов.
Итоговый детализированный алгоритм представлен на рисунках 5 и 6. Он
начинается с ввода исходных данных (блок 1): периода моделирования T, вероятностей отказа клиента Pотк и нехватки ресурсов Pнехв, а также параметров
законов распределений СВ1 (время между поступающими заявками), СВ2 (длительность оформления заказа), СВ3 (возможный отказ клиента от заказа), СВ4
(длительность подготовки производственного плана), СВ5 (возможная нехватка
запасов), СВ6 (длительность выполнения заказа), СВ7 (длительность закупки
комплектующих), СВ8 (стоимость закупки комплектующих).
В блоке 2 происходит объявление и обнуление переменных модели, а
именно: текущее модельное время t, время поступления последней заявки tpost,
текущее количество поступивших заявок kpost, текущее количество обслуженных заявок kobsl, текущее количество отказов kotk, текущее количество закупок kzak и текущая общая стоимость закупок sumzak.
Блок 3 моделирует поступление очередной заявки. Для этого генерируется СВ1, и эта величина прибавляется к времени поступления последней заявки
tpost = tpost + СВ1.
Далее моделируется СВ2 (блок 6). Модельное время продвигается на соответствующую величину t = tpost + СВ2.
В блоке 4 время поступления последней заявки сравнивается с заданным
периодом моделирования. Если tpost <= T, то есть период ещё не истёк, то
управление передаётся в блок 5, где счётчик поступивших заявок kpost увеличивается на единицу. Если же tpost > T, то есть период завершился, то осуществляется переход к блоку 16.
После этого моделируется СВ3 (блок 7).
5
НАЧАЛО
1
2
Ввод исходных данных
-период моделирования Т;
-вероятность отказа клиента Ротк;
-вероятность нехватки ресурсов Рнехв;
-параметры ЗР СВ1-СВ8
Объявление и обнуление необходимых переменных
t = 0; tpost = 0; kpost = 0; kobsl = 0
kotk = 0; kzak = 0; sumzak = 0
3
Моделирование времени
между поступающими
заявками и изменение
времени поступления
последней заявки
tpost = tpost + СВ1
4
*
tpost <= T
да
5
6
Увеличение счётчика
поступивших заявок
kpost = kpost + 1
нет
Моделирование длительности
оформления заказа СВ2 и
продвижение модельного времени
t = tpost + СВ2
7
Моделирование возможного
отказа клиента от заказа СВ3
8
да
***
СВ3 <= Ротк
нет
* Сравнение времени поступления последней
заявки с окончанием периода моделирования
*** Сравнение смоделированной величины
возможного отказа клиента от заказа с исходно
заданным параметром
Рис. 2 – Детализированный алгоритм моделирования (начало)
6
9
10
Моделирование длительности
подготовки производственного
плана СВ4 и продвижение
модельного времени
t = t + СВ4
*****
СВ5 <= Рнехв
нет
13
Расчёт общего
количества отказов
клиентов за
моделируемый период
kotk = kpost - kobsl
18
Вывод результатов
пользователю
kpost; kobsl; kotk
kzak; sumzak
Моделирование возможной
нехватки запасов СВ5
11
12
17
да
14
Моделирование
длительности
выполнения заказа СВ6 и
продвижение модельного
времени
t = t + СВ6
Увеличение счётчика
количества
выполненных заказов
kobsl = kobsl + 1
15
Моделирование
длительности закупки
комплектующих СВ7 и
продвижение
модельного времени
t = t + СВ7
Увеличение счётчика
количества сделанных
закупок
kzak = kzak + 1
16 Моделирование
стоимости закупки
СВ8 и увеличение
общей суммы
сделанных закупок
sumzak = sumzak + СВ8
***** Сравнение смоделированной величины возможной
нехватки запасов с исходно заданным параметром
КОНЕЦ
Рис. 3 – Детализированный алгоритм моделирования (окончание)
В блоке 8 осуществляется сравнение смоделированного значения СВ3 с
исходно заданным параметром. Если СВ3 <= Pотк, что означает отказ клиента
от заказа, алгоритм передаёт управление блоку 3, где моделируется поступле7
ние новой заявки. Если же СВ3 > Pотк, то есть клиент согласен с оформленным заказом, осуществляется переход к блоку 9.
Следующим шагом (блок 9) является моделирование СВ4 и продвижение
текущего модельного времени на соответствующую величину t = t + СВ4.
Затем моделируется СВ5 (блок 10).
В блоке 11 осуществляется сравнение смоделированного значения СВ5 с
исходно заданным параметром. Если СВ5 > Pнехв, что означает ситуацию, когда запасов достаточно, алгоритм передаёт управление блоку 12. В противном
случае (СВ5 <= Pнехв – ситуация нехватки запасов) происходит переход к блоку 14.
Блок 12 моделирует СВ6 и обеспечивает продвижение текущего модельного времени t = t + СВ6.
В блоке 13 счётчик количества выполненных заказов kobsl увеличивает
своё значение на единицу, так как очередной заказ становится выполненным.
После этого управление передаётся блоку 3 для моделирования поступления
следующей заявки.
Моделирование СВ7 происходит в блоке 14. Также здесь продвигается
текущее модельное время на смоделированную величину t = t + СВ7.
После этого (блок 15) счётчик количества сделанных закупок kzak возрастает на единицу. В блоке 16 моделируется СВ8 и к текущей общей стоимости закупок прибавляется смоделированная стоимость последней закупки
sumzak = sumzak + СВ8.
Заканчивается алгоритм (блок 17) выводом пользователю результатов
моделирования – текущих значений kpost, kobsl, kotk, kzak и sumzak.
8