4. Noy, N.F. Ontology development 101: A guide to creating your first ontology [Text] / N.F Noy, D.L. McGuinness.
5. Kuilboer, M.M. Knowledge Reuse: Temporal-Abstraction Mechanisms for the Assessment of Children's Growth [Text] / M M. Kuilboer, Y. Shahar, D.M. Wilson [et al.].
6. Сизов, А.С. Моделирование на основе онтоло-гий [Текст] / А.С. Сизов, В.П. Сергеев. -Новосибирск, 2010. -217с.
7. Борисов, А.В. Моделирование развития инфраструктуры [Текст] / А.В. Борисов [и др.]. -Пенза, 2011. -С. 101-108.
УДК 004.021
ОБНАРУЖЕНИЕ РАЗВИЛОК
В последнее десятилетие существенное развитие получила область информатики, именуемая в литературе анализом процессов (Process Mining) [6, с. 1]. В этой области объектом исследования выступают журналы событий (также называемые логами), порождаемые в процессе функционирования информационных систем управления бизнес-процессами, которые все чаще внедряются в различных организациях. В рамках анализа процессов вводится единая метамодель журналов событий, к которой может быть приведено большинство логов современных информационных систем предприятий. Предметом изучения дисциплины является нетривиальная информация о протекании процессов в организации, позволяющая лучше понять и оценить суть происходящего. При анализе процессов традиционно наибольшее внимание уделяется алгоритмам восстановления формальных
И.А. Ходырев, С.В. Попова В МОДЕЛЯХ ПРОЦЕССОВ
моделей, по которым протекали процессы. Эти алгоритмы обычно применяются для анализа реальных ситуаций протекания процессов на предприятиях [8].
Но существуют и другие направления исследований. Одно из таких направлений - автоматическое построение математических моделей бизнес-процессов организации, которые могут использоваться для прогнозирования различных аспектов ее деятельности [1, 2]. Обычно прогноз является ответом на некоторый заранее сформулированный вопрос, например: какова ожидаемая загрузка персонала в человеко-часах на следующей неделе; будет ли превышено потребление ресурса Х в следующем месяце и др. Основное преимущество предлагаемого в рамках анализа процессов подхода к моделированию бизнес-процессов организации, заключается в объективности полученных результатов,
Рис. 1. Подход к построению модели бизнес-процесса организации
поскольку все элементы модели строятся автоматически по журналам событий, без привлечения субъективных мнений и навыков эксперта. Схема на рис. 1, взятая из [3], иллюстрирует этот подход.
Как видно из рисунка, исходным артефактом для анализа является журнал событий. Вначале он используется для построения модели процесса с помощью некоторого алгоритма из области анализа процессов. Существует множество алгоритмов, позволяющих извлекать модель процесса по журналам событий, например, а-алгоритм, эвристический алгоритм, генетический алгоритм и др. [6]. Важно отметить, что все эти алгоритмы предназначены для извлечения моделей процессов в виде сетей Петри, которые относятся (или могут быть преобразованы) к классу т. н. Sound Workflow Nets. Эти сети являются безопасными, активными и включают еще несколько свойств, описанных в [4]. Для оценивания качества полученной модели наиболее часто используются критерии, описанные в [2]. Задаче выбора алгоритма для построения модели процесса посвящено множество работ, и эта тема выходит за рамки данной статьи, поэтому во всех последующих рассуждениях мы допускаем, что модель процесса уже построена с использованием некоторого алгоритма и что она принадлежит классу Sound Workflow Nets. Во всех рассматриваемых примерах сетей Петри мы предполагаем, что они принадлежат классу Sound Workflow Nets; при рассмотрении отдельных конструкций, предполагаем, что демонстрирующие их сети являются безопасными.
Журнал событий также используется для извлечения информации о ролях и сопоставлении их событиям информационной системы. После
того как модель процесса построена, она вместе с журналом событий используется для проведения «анализа точек принятия решений» и «анализа производительности». Первый предполагает выявление зависимостей выбора, осуществляемого в рамках бизнес-процесса, от дополнительных данных, присутствующих в бизнес-процессе. Так, например, в рамках бизнес-процесса медицинских учреждений первичный диагноз, с которым поступает пациент, может существенно влиять на выбор назначаемых медиками процедур. Если диагноз будет отражен в соответствующем журнале событий, то на основе статистических данных можно спрогнозировать следующие шаги, предстоящие пациенту. «Анализ производительности» предполагает создание математических моделей времени протекания событий и вероятности выбора того или иного варианта в ситуации выбора в том случае, если невозможно построить однозначной зависимости выбора от данных в рамках «анализа точек принятия решений». В результате выполнения всех этапов строится итоговая модель бизнес-процесса предприятия, которая в дальнейшем используется для проведения экспериментов по симуляции исполнения бизнес-процесса в целях получения доверительных интервалов для требуемых показателей. Подробная реализация всех этих этапов описана в [3].
Для успешного завершения этапов «анализ точек принятия решений» и «анализ производительности» требуется определить, какие события могут происходить независимо друг от друга, а какие друг друга исключают. Рассмотрим пример модели в нотации сети Петри на рис. 2.
Здесь переходы t2 и t3 исключают друг друга, поскольку выбор t2 не позволит сработать t3 и на-
Рис. 2. Сеть Петри со скрытыми переходами
оборот1. Это знание позволяет существенно улучшить модель бизнес-процесса. Предположим, из журнала событий нам известно, что переход t3 срабатывает в среднем в 10 раз чаще, чем переход t2. Тогда, зная, что переходы t2 и t3 взаимоисключающие, при построении модели бизнес-процесса можно ввести механизм, который позволил бы учитывать относительные2 вероятности срабатывания этих переходов при проведении экспериментов.
В работе [2] А. Розинат предложила алгоритм определения взаимоисключающих переходов для сетей Петри. Она использовала термин «точка принятия решения» для именования множества таких переходов. В данной статье мы будем придерживаться термина «развилка» в отношении них, поскольку не всегда существует субъект принятия решения, стоящий перед «выбором» в рамках бизнес-процесса. Листинг алгоритма можно посмотреть в [2, с. 242]. Алгоритм, предложенный Розинат, основывается на простой идее: если позиция сети Петри содержит больше одного выходного перехода, то тогда эти переходы должны исключать друг друга.
Нами уже была рассмотрена такая развилка на примере рис. 2. Действительно, позиция р2 имеет два выходных перехода t2 и t3, срабатывание одного из которых запрещает срабатывание другого. Однако возникает вопрос: как быть, если выходные переходы являются скрытыми? Скрытыми переходами называются такие переходы в итоговой модели процесса, которым в журнале событий не соответствует ни одно событие, но которые при этом участвуют в маршрутизации процесса. Простейшая конструкция со скрытыми переходами представлена на рис. 5 а. Здесь переход 1x1 является скрытым и его срабатывание означает, что ни один из переходов 11 и 12 не сработал, причем в журнале событий этот факт может быть никак не зафиксирован.
Итак, как быть с развилками, если в них должны попасть скрытые переходы, например в случае с позицией р1 с рис. 2? Алгоритм Розинат предполагает, что мы можем отождествить следующие за скрытыми группы явных переходов с
1 В соответствии с ранее сделанными замечаниями, предполагаем, что сеть принадлежит классу Sound Workflow Nets, следовательно является безопасной.
2 Вероятность относительно срабатывания взаимо-
исключающих переходов.
объектами из которых реально производился выбор, но только до того момента, пока при анализе последователей нам не встретится позиция с двумя или более входными элементами, называемая конструкцией объединения (join construct).
Поясним работу алгоритма Розинат со скрытыми переходами на примере определения развилок для позиции pi (см. рис. 2). P1 имеет четыре скрытых выходных перехода: txi tx2, tx3, tx4. В случае с переходами txi и tx3, при поиске последователей мы обнаружим группы переходов: (t2, t3) и (t4, t5) соответственно. Поскольку сеть является безопасной, то эти группы переходов мы можем отождествить с вариантами, между которыми происходит выбор, когда жетон находится в позиции pi. Что касается переходов tx2 и tx4, то сразу за ними следует конструкция объединения и алгоритм Розинат запрещает анализ последователей после него, поэтому переходы t7 и t8, следующие за ними, не включаются в развилку.
Алгоритм, предложенный Розинат, на наш взгляд имеет два существенных недостатка.
Первый связан с тем, что он полностью игнорирует структуры типа «конфликт» в сетях Петри. Типичная конструкция конфликта представлена на рис. 3.
При конфликте, как и при взаимоисключающих переходах, существует некоторое множество переходов, не все из которых смогут сработать. Отличие заключается в том, что конфликт предполагает синхронизацию нескольких ветвей, которые могли до этого выполняться независимо. Ситуации конфликта, как и взаимоисключающие переходы, могут играть важную роль при моделировании. Алгоритм Розинат, примененный к сети с рис. 3, выделит в ней две развилки (t3, t4) и (t4, t5). Это некорректно, поскольку в действительности имеет место единственная развилка (t3, t4, t5), возникающая, когда все три перехода являются разрешенными. Даже если мы будем обладать информацией о частоте срабатывания переходов в развилке, как ее понимает Розинат, этой информации будет недостаточно3 и потребуется учитывать состояния всех позиций, которые входят в конструкцию конфликта. Некоторые алгоритмы из области анализа процессов позволяют восстанавливать конструкции конфликта, и это необходимо учитывать при создании моделей
3 Поскольку в других позициях конструкции конфликта может не быть жетонов.
Рис. 3. Сеть Петри с конфликтом
процессов для прогнозирования по журналам событий.
Второй недостаток алгоритма Розинат связан с неполным учетом скрытых переходов. Как уже упоминалось выше, алгоритм Розинат анализирует скрытые переходы в последователях позиции только до встречи конструкции объединения. Это значит, что в приведенном на рис. 2 примере мы потеряем ситуации, когда жетон переходит из позиции р1 в р8 и р9.
Задача данной работы состоит в улучшении подхода Розинат по выявлению развилок процесса для сетей Петри, восстановленных из журналов событий, которое позволило бы избежать рассмотренных недостатков.
Используемые сокращения. ЭП - экземпляр процесса. Это структурная единица информации логов, содержащая в себе последовательность событий для конкретного исполнения процесса. Журнал событий или лог состоит из комплекта ЭП.
СП - сеть Петри. Основные использованные понятия теории сетей Петри взяты из работы Дж. Питерсона [5].
ПЗП - последовательность запуска переходов в СП. Важное отличие ПЗП от ЭП заключается в том, что ЭП содержит последовательность событий в реальном логе информационной системы, в то время как ПЗП - это последовательность срабатывания переходов для модели процесса. Стоит также отметить, что модель процесса может содержать скрытые переходы, в то время как в реальном логе соответствующие им события отсутствуют.
Идентификация развилок при наличии конструкций конфликта. На рис. 4 приведен пример конструкции, обобщающей рассматриваемую проблему. Применение алгоритма Розинат к сети с рис. 4 позволит обнаружить три развилки: (и, 12,13), (1:2,13, t4) и (13, t4, t5). В действительности выбор не осуществляется в соответствии с этими развилками, поскольку он должен учитывать, какие переходы разрешены в конкретный момент.
В данной статье для выявления развилок в сетях Петри с конфликтами предлагаем рассматри-
вать различные маркировки в рамках конфликта, когда разрешено более одного перехода. Это является обоснованным, поскольку каждая маркировка задает уникальную ситуацию, в рамках которой относительные вероятности срабатывания для переходов могут отличаться от вероятностей срабатывания тех же переходов в других ситуациях (при других маркировках).
В соответствии с этим множество развилок для конструкции с рис. 4 будут выглядеть следующим образом: ((р1, р2), (И, 12)), ((р2, р3), (14, 15)), ((р1, р3), (11, 15)), ((р1, р2, р3), (11, 12, 13, 14, 15)), причем они существуют не одновременно, а в зависимости от текущей маркировки. В подходе Розинат развилки определяются локально, в рамках одной позиции СП, в то время как более сложные ситуации, подобные рассмотренной выше, требуют учета суперпозиции состояний нескольких позиций, если они объединены конструкцией конфликта.
Рассмотрим матрицу D- для конструкции с рис. 4, где в столбцах будут расположены позиции сети Петри для конструкции конфликта, а в строках - соответствующие переходы.
Замечание 1. Переход 1 входит в развилку для некоторой маркировки М конструкции конфликта тогда и только тогда, когда в строке матрицы D-, соответствующей 1, в столбцах, соответствующих позициям, не входящим в М, находятся нули. При этом число переходов в развилке должно быть больше одного.
В соответствии с этими замечаниями, предложим схему алгоритма поиска развилок для СП, в
Рис. 4. Пример конструкции синхронизации-разделения
Таблица 1
Матрица D для конструкции с рис. 4
p1 p2 p3
t1 1 0 0
t2 1 1 0
t3 1 1 1
t4 0 1 1
t5 0 0 1
которых присутствуют конструкции конфликта.
1. Поиск конструкций конфликта в СП.
2. Для каждой конструкции, найденной в 1, построение матрицы D- для всех входящих в конструкцию переходов и позиций.
3. Для каждой матрицы D- из 2 построение множества всех возможных маркировок для позиций, входящих в нее, предполагая, что сеть Петри безопасная.
4. Для каждой маркировки из 3 и каждого перехода, входящего в D-, определение, принадлежит ли переход развилке в соответствии с замечанием 1.
5. Из множества всех полученных развилок удаление таких, в которых число переходов меньше двух.
Идентификация развилок со скрытыми переходами. В работе Розинат утверждается, что нельзя «заглядывать» (trace) за скрытые переходы в том случае, если за ними следует конструкция объединения. Для пояснения этого рассмотрим четыре ситуации на рис. 5 а-г.
В первом случае (5 а) проблем с определением сработавшего скрытого перехода не возникает, поскольку появление в логе записи о событии tf при отсутствии записей о t1 и t2 будет однозначно указывать на то, что сработал именно
скрытый переход 1x1. Вторая (5 б) и третья (5 г) конструкции сложнее и похожи друг на друга. Для них в рамках чтения только одного следующего элемента лога нельзя гарантированно определить, какой из скрытых переходов сработал. Однако последующее движение по логу позволяет это сделать. Например, если в логе встретится только запись о событии 1Г, то это будет указывать на то, что в качестве скрытого перехода был выбран 1x1. Для ситуации с рис. 5 г характерно то, что никакая информация из лога для конкретного ЭП не позволит однозначно определить, какой из скрытых переходов СП сработал. Это порождает неоднозначность, выражающуюся в наличии нескольких равноправных ПЗП в сети Петри для одного и того же экземпляра процесса из лога. Именно последнее наблюдение вынудило Розинат отказаться от анализа последователей скрытых переходов после конструкции объединения. Однако случаи, подобные изображенным на рис. 5 б и в, не порождают неоднозначности, т. е. в некоторых ситуациях можно определить сработавший скрытый переход даже если за ним идет конструкция объединения.
Предложим схему обработки скрытых переходов применительно к развилкам в СП. На первом этапе для каждого скрытого перехода 1, входящего хотя бы в одну развилку, необходимо построить множество Т явных переходов, которые могут непосредственно последовать в том случае, если на развилке будет выбран 1.. Назовем это множество множеством последователей. Наличие множества последователей для каждого скрытого перехода позволяет при построении ПЗП по логу в каждой ситуации, когда скрытый переход разрешен, производить оценку того, к чему приведет срабатывание скрытого перехода и как его
-tx3
Рис. 5. Конструкции со скрытыми переходами
срабатывание соотносится со следующим событием в логе. После построения множеств последователей для всех входящих в развилки скрытых переходов можно начинать построение ПЗП для конкретного ЭП по следующему алгоритму.
1. Задать начальную маркировку М0, задать пустую ПЗП ст.
2. Для текущей маркировки М0Х определить множество разрешенных переходов ТА.
3. Получить следующее событие е ЭП из лога. Если дошли до конца лога, то закончить и вернуть сообщение: «Конец лога».
4. Если в ТА есть скрытые переходы, перейти
к 6.
5. Если в ТА содержится переход ^ соответствующий событию е, то ст = ст и ^ М0Х = (М0Х \ и t •, прибавить к индексу читаемого символа в логе единицу и перейти к пункту 2, в противном случае закончить, вернуть сообщение об ошибке: «Лог не соответствует СП».
6. Построить комплект В(Т) по следующему правилу: элементами В(Т) становятся все явные переходы ТА и все элементы множества последователей Т для каждого скрытого перехода 1х
из ТА. "
7. Если существует такой переход ^ который соответствует событию из лога е и В^) = 1, то, если ^ е ТА является явным): ст = ст и 1, М0х = (М0х \ и t • , прибавить к индексу читаемого символа в логе единицу и перейти к пункту 2; если 1 £ ТА находится в множестве последователей скрытого перехода): для скрытого перехода 1х у которого 1 е Т : ст = ст и 1 х, М0х = (М0х \ ) и tx • , не прибавлять к индексу читаемого символа в логе единицу и перейти к пункту 2;
8. Если существует такой переход ^ который соответствует событию из лога е и В^) = 0, то закончить, выдать сообщение об ошибке: «Лог не
соответствует СП».
9. Если существует такой переход t, который соответствует событию из лога е и B(t) > 0, то построить множество Тц по следующей схеме: если t е TA (t является явным): Ти = Ти u t; если t £ TA (t находится в множестве последователей скрытого перехода), то для скрытого перехода tx у кото-р°г° t е те: tu=tU u tx.
10. Выполнить рассматриваемый алгоритм к =| Ти | раз. Выполнение каждого такого экземпляра алгоритма осуществляется независимо от других и от породившего их алгоритма по следующей схеме: для каждого t^ е Ти начать алгоритм с пункта 2; в качестве текущей маркировки задать маркировку M0X = (M0X \ •tU) u • ; если t^ явный, то прибавить к индексу читаемого символа в логе единицу, в противном случае не прибавлять; положить текущую ПЗП ст = ст u tx.
11. Число завершений с сообщением «Конец лога» обозначим Z, . Если Z, = 0, то вернуть
done done ' г j
сообщение об ошибке: «Лог не соответствует СП». Если Zdone = 1, то сделать ст равной ПЗП, выработанной экземпляром алгоритма, вернувшим сообщение «Конец лога», и вернуть сообщение «Конец лога». Если Zdone > 1, то выбрать наименьшую по длине ПЗП из созданных экземплярами алгоритма, вернувшими сообщение «Конец лога» и присвоить ее переменной ст, вернуть сообщение «Конец лога».
В результате работы алгоритма выданное им сообщение информирует о возможности или невозможности построить ПЗП для ЭП и в случае возможности в ст будет храниться искомая ПЗП. Если возникают ситуации, подобные изображенной на рис. 5 г, в текущем описании алгоритм выбирает наименьшую по длине ПЗП из получившихся и выдает ее в качестве искомой.
Ограничение на входные данные для описанных алгоритмов. Алгоритм обнаружения
Рис. 6. Сеть Петри с конструкциями конфликта и скрытыми переходами
Таблица 2
Сравнение результатов алгоритмов Process Fork и Розинат
Алгоритм Process fork Алгоритм Розинат
Развилки СП [p3]: t4,tx4 [p7, p6]: t6, t5, t8 [p1]: t2_1, t2, tx1, tx2 [p2]: t3, tx3 [p9, p8]: tx9, tx7 [p1] [p6] [p7] t2 1, t2 t6, t5 t8, t6
развилок в конструкциях конфликта может быть применен только к безопасным сетям Петри. Также описанный алгоритм может быть неприменим, когда число позиций в ситуации конфликта слишком велико, поскольку число различных маркировок, для которых производится поиск развилки, растет по степенному закону 2N, где N - число позиций в ситуации конфликта. Оба алгоритма применимы к сетям Петри, относящимся к классу Sound Workflow Nets [4]. Журнал событий, который требуется проиграть по получившейся модели, не должен содержать событий, для которых отсутствуют переходы в получившейся сети Петри.
Программная реализация алгоритмов. Предложенные в данной статье алгоритмы реализованы авторами в программном средстве Process Fork. Process Fork разработан на языке Java. Исполняемый модуль Process Fork можно найти в архиве [7]. В качестве вспомогательных использовались библиотеки из программного средства с открытым исходным кодом Prom 5. Process Fork позволяет загружать модель процесса в нотации сети Петри в формате PNML [9], строить множества развилок процесса как с помощью представленного в этой
статье алгоритма, так и с использованием алгоритма Розинат, а также строить ПЗП для логов, представленных в формате MXML [10], или для отдельных последовательностей событий, редактор которых присутствует в Process Fork. Общее руководство по эксплуатации и информация об ограничениях для входных данных находятся в архиве с программой в файле manual.doc [7].
Пример работы алгоритма. Для демонстрации работы алгоритма проанализирована СП, представленная на рис. 6.
В этой сети присутствуют как скрытые переходы (все переходы, выделенные серым фоном, с префиксом «tx»), так и конструкции конфликта ((p6, p7) и (p8, p9)). Результаты работы алгоритма Process Fork и алгоритма Розинат для сети с рис. 6 представлены в табл. 2.
Также для синтетического ЭП вида (t1, t8,
t5, t8, t5_1, t5, t7) с использованием алгоритма
Process Fork построена ПЗП, имеющая следующий вид: (t1, txl, t8, t5, tx9, tx2, tx4, tx6, t8, tx3, t5_1, t5, tx7, t7). Это является точным и однозначным отображением событий ЭП в структуре заданной СП.
СПИСОКЛ
1. Ходырев, И.А. Прогнозирование показателей организации с использованием журналов событий [Текст] / И.А. Ходырев, Ю.С. Татаринов // Известия СПБГЭТУ (ЛЭТИ). -2011. -№.5. -С. 53-58.
2. Rozinat, A.S. Process Mining Conformance and Extension [Text] / A. Rozinat // PhD Thesis. -The Netherlands, Eindhoven: Technische Universiteit Eindhoven, 2010.
3. Rozinat, A.S. Information Systems [Text] / A. Rozinat, R.S. Mans, M. Song [et al.] -2009. -Vol. 34. -P. 305-327.
4. van der Aalst, W.M.P. Workflow Mining: Which Processes can be Rediscovered? [Text] / W.M.P. van der Aalst, A.J.M.M. Weijters, L. Maruster // BETA Working Paper Series. -Eindhoven: Eindhoven University of Technology, 2002. -P. 74.
5. Питерсон, Дж. Теория сетей Петри и моделирование систем [Текст] / Дж. Питерсон. -М.: Мир, 1984.
6. de Medeiros, A.K.A. Genetic Process Mining [Text] / A.K.A. de Medeiros // PhD Thesis. -The Netherlands, Eindhoven: Technische Universiteit Eindhoven, 2006.
7. [Электронный ресурс] / Режим доступа: http:// dl.dropbox.eom/u/11080654/KIV_PUBLIC/PROCESS_ FORK_ARCHIVE.zip
8. van der Aalst, W.M.P. Business Process Mining: An Industrial Application [Text] / W.M.P. van der Aalst, H.A. Reijers, A.J.M.M. Weijters [et al.] // Information Systems. -Vol 32(1). -P. 713-732.
9. [Электронный ресурс] / Режим доступа: http:// pnml.org
10. [Электронный ресурс] / Режим доступа: http:// www.proeessmining.org/logs/mxml