algoritmo alpha - ufprsilvana.detro... · silvana pereira detro. descoberta de processo = play‐in...
TRANSCRIPT
Algoritmo Alpha
Silvana Pereira Detro
Descoberta de Processo = Play‐In
event log process model
Play-In
event logprocess model
Play-Out
event logprocess model
Replay
•Modelo estendido mostrando tempos, frequências, etc.• Diagnósticos• Previsões• Recomendações
software system
(process) model
event logs
models analyzes
discovery
records events, e.g., messages,
transactions, etc.
specifies configures implements
analyzes
supports/ controls
enhancement
conformance
“world”
people machinescomponents
organizations
business processes
Simplificando Logs de Eventos ao Focar no Fluxo de Controle
[(Registrar_pedido, Checar_estoque, Enviar_pedido, Verificar_pagamento), (Registrar_pedido, Checar_estoque, Cancelar_pedido), (Registrar_pedido, Checar_estoque),…]
Logs de Eventos Simples
• Um log de eventos é um multiconjunto de traces (o mesmo trace pode aparecer várias vezes).
• Um trace é uma sequência de atividades (abstraímos de todos os outros atributos, mas os eventos são ordenados).
Objetivo do Algoritmo Alpha
Logs de eventos contém todos ostraces possíveis do modelo e vice versa
Objetivo do Algoritmo Alpha
Generalização: o log de eventos contém apenas um subconjunto de todos ospossíveis traces do modelo.
a
b
c
df
p2
end
p4
p3p1
start
e
p5
Notação é menos relevante (e.g. BPMN)
Notação é menos relevante (e.g. BPMN)
Quatro Forças Concorrentes
resistênciaConfiança
fitness(habilidade de explicar o
comportamento observado)
simplicidade("Occam's razor")
gravidade
precisão(evitar underfitting)
generalização(evitar overfitting)
lift
Relações >,→,||,#
• Sucessão direta: 𝑥 𝑦 se x é diretamente seguido por y
abcdacbdaed
Relações >,→,||,#
• Sucessão direta: 𝑥 𝑦 se x é diretamente seguido por y
a>ba>ca>eb>cb>dc>bc>de>d
abcdacbdaed
Relações >,→,||,#
• Sucessão direta: 𝑥 𝑦 se x é diretamente seguido por y
• Causalidade: 𝑥 → 𝑦 se 𝑥 𝑦 e não 𝑦 𝑥
a>ba>ca>eb>cb>dc>bc>de>d
a→ba→ca→eb→dc→de→d
abcdacbdaed
Relações >,→,||,#
• Sucessão direta: 𝑥 𝑦 se x é diretamente seguido por y
• Causalidade: 𝑥 → 𝑦 se 𝑥 𝑦 e não 𝑦 𝑥
• Paralelo: 𝑥||𝑦 se 𝑥 𝑦 e 𝑦 𝑥
a>ba>ca>eb>cb>dc>bc>de>d
a→ba→ca→eb→dc→de→d
b||c c||b
abcdacbdaed
Relações >,→,||,#
• Sucessão direta: 𝑥 𝑦 se x é diretamente seguido por y
• Causalidade: 𝑥 → 𝑦 se 𝑥 𝑦 e não 𝑦 𝑥
• Paralelo: 𝑥||𝑦 se 𝑥 𝑦 e 𝑦 𝑥
• Escolha: x#y se não 𝑥 𝑦 e não 𝑦 𝑥
a>ba>ca>eb>cb>dc>bc>de>d
a→ba→ca→eb→dc→de→d
b||c c||b
abcdacbdaed
b#ee#bc#ea#d…
Ideia Básica Utilizada pelo Algoritmo Alpha (2)
a b
(a) Padrão de sequência: a→b
Ideia Básica Utilizada pelo Algoritmo Alpha (2)
(b) Padrão XOR-split: a→b,a→c, e b#c
a
b
c
b
c
d
(c) Padrão XOR-join: b→d,c→d, e b#c
Ideia Básica Utilizada pelo Algoritmo Alpha (2)
a
b
c
(d) Padrão AND-split: a→b,a→c, e b||c
(e) Padrão AND-join: b→d,c→d, e b||c
b
c
d
Exemplo:
Resultado produzidopelo algoritmo Alpha
a>ba>ca>eb>cb>dc>bc>de>d
a→ba→ca→eb→dc→de→d
b||c c||b
b#ee#bc#ea#d…
a
b
c
de
p2
end
p4
p3p1
start
Footprint de L1
Modelo descoberto tem a mesma footprint
a
b
c
de
p2
end
p4
p3p1
start
Log e modelo de processo possuem a mesma matriz
Footprint de L2
Log e modelo de processo possuem a mesma matriz
Resumo: Padrões simples de processos podem ser descobertos de logs de eventos
(b) Padrão XOR-split:a→b, a→c, e b#c
(c) Padrão XOR-join:b→d, c→d, e b#c
(a) Padrão de sequência: a→b
(d) Padrão AND-split:a→b, a→c, e b||c
(e) Padrão AND-join:b→d, c→d, e b||c
Seja L um log de eventos sobre T. Então, α (L) é definido como segue: 1. TL = { t ∈ T | ∃σ ∈ L t ∈σ},2. TI = { t ∈ T | ∃σ ∈ L t = first(σ) },3. TO = { t ∈ T | ∃σ ∈ L t = last(σ) },4. XL = { (A,B) | A ⊆ TL ∧A ≠ ø ∧B ⊆ TL ∧B ≠ ø ∧
∀a ∈ A∀b ∈ B a →L b ∧ ∀a1,a2 ∈ A a1#L a2 ∧ ∀b1,b2 ∈ B b1#L b2 },5. YL = { (A,B) ∈ XL | ∀(A′,B′) ∈ XL A ⊆ A′ ∧B ⊆ B′⇒ (A,B) = (A′,B′) },6. PL = { p(A,B) | (A,B) ∈ YL } ∪{iL,oL},7. FL = { (a,p(A,B)) | (A,B) ∈ YL ∧a ∈ A } ∪ { (p(A,B),b) | (A,B) ∈
YL ∧b ∈ B } ∪{ (iL,t) | t ∈ TI} ∪{ (t,oL) | t ∈ TO}, and8. α(L) = (PL,TL,FL).
α‐algoritmo
• Seja L um log de eventos sobre T. Então, α (L) é definido como segue: 1. TL = { t ∈ T | ∃σ ∈ L t ∈ σ},• Cada atividade em L corresponde a uma transição em α(L).
2. TI = { t ∈ T | ∃σ ∈ L t = first(σ) }• Corrija o conjunto de atividades iniciais - isto é, os primeiros
elementos de cada trace: ⟨t1, …, tn⟩, …, ⟨t’1, …, t’m⟩3. TO = { t ∈ T | ∃σ ∈ L t = last(σ) }• Corrija o conjunto de atividades finais – isto é, elementos que
aparecem por último no trace: ⟨t1, …, tn⟩, …, ⟨t’1, …, t’m⟩
α‐algoritmo
• TL = {a, b, c, d, e}• TI = {a}• TF = {d}
α‐algoritmo
• Passo 4: Calcular pares (A, B)• Passo 5: Excluir pares não-máximos (A,B)• Passo 6: Determinar lugares 𝑝 , 𝑑𝑒 𝑝𝑎𝑟𝑒𝑠 𝐴, 𝐵
α‐algoritmo (cont.)
Encontre pares (A, B) de conjuntos de atividades de modo que todos os elementos a∈A e todos os elementos b∈B estejam causalmente relacionados (isto é, a → 𝐿 ), todos os elementos em A sejam independentes (𝑎 # La2) e todos elementos em B são independentes (b1#Lb2).
4. XL = { (A,B) | A ⊆ TL ∧A ≠ ø ∧B ⊆ TL ∧B ≠ ø∧∀a ∈ A∀b ∈ B a →L b
∧ ∀a1,a2 ∈ A a1#L a2∧ ∀b1,b2 ∈ B b1#L b2 },
Lugares como Footprints
ssion & acknowledgements)
α‐algoritmo
• TL = {a, b, c, d, e}• TI = {a}• TF = {d}• XL = ({a}, {b}), ({a}, {c}), ({a}, {e}), ({a}, {b, e}), ({a}, {c, e}), ({b}, {d}),({c}, {d}), ({e}, {d}), ({b, e}, {d}), ({c, e}, {d})
α‐algoritmo (cont.)5. YL = { (A,B) ∈ XL |
∀(A′,B′) ∈ XL A ⊆ A′ ∧B ⊆ B′⇒ (A,B) = (A′,B′) }
• Exclua do conjunto 𝑋todos os pares (A, B) que não são máximos!
α‐algoritmo
• TL = {a, b, c, d, e}• TI = {a}• TF = {d}• XL = ({a}, {b}), ({a}, {c}), ({a}, {e}), ({a}, {b, e}), ({a}, {c, e}), ({b}, {d}),({c}, {d}), ({e}, {d}), ({b, e}, {d}), ({c, e}, {d})
α‐algoritmo
• TL = {a, b, c, d, e}• TI = {a}• TF = {d}• XL = ({a}, {b}), ({a}, {c}), ({a}, {e}), ({a}, {b, e}), ({a}, {c, e}), ({b}, {d}),({c}, {d}), ({e}, {d}), ({b, e}, {d}), ({c, e}, {d})• YL = ({a}, {b, e}), ({a}, {c, e}), ({b, e}, {d}), ({c, e}, {d})
x x x xx x
α‐algoritmo (cont.)
• Determine o conjunto de lugares: cada elemento (A,B) de 𝑌 é um lugar. Para assegurar a estrutura do workflow, adicionar um lugar de origem 𝑖 e um local de destino 𝑜
6. PL = {p(A,B) | (A,B) ∈ YL } ∪ {iL,oL},
α‐algoritmo
• TL = {a, b, c, d, e}• TI = {a}• TF = {d}• XL = ({a}, {b}), ({a}, {c}), ({a}, {e}), ({a}, {b, e}), ({a}, {c, e}), ({b}, {d}),({c}, {d}), ({e}, {d}), ({b, e}, {d}), ({c, e}, {d})• YL = ({a}, {b, e}), ({a}, {c, e}), ({b, e}, {d}), ({c, e}, {d})• PL = ({a}, {b, e}), ({a}, {c, e}), ({b, e}, {d}), ({c, e}, {d}), ,
α‐algoritmo (cont.)
• Determine a relação de fluxo: conectar cada lugar 𝑝 , com cada elemento a de seu conjunto A das transições de origem e com cada elemento de seu conjunto B das transições de destino. Em adição, desenhe um arco do lugar de origem 𝑖 para cada transição inicial t ∈ 𝑇 a Tnd um arco de cada transição final t ∈ 𝑇 para o lugar de origem 𝑂
7. FL = { (a,p(A,B)) | (A,B) ∈ YL ∧a ∈ A }∪ { (p(A,B),b) | (A,B) ∈ YL ∧b ∈ B }∪{ (iL,t) | t ∈ TI} ∪ { (t,oL) | t ∈ TO}
8. α(L) = (PL, TL, FL)
α‐algoritmo
• TL = {a, b, c, d, e}• TI = {a}• TF = {d}• XL = ({a}, {b}), ({a}, {c}), ({a}, {e}), ({a}, {b, e}), ({a}, {c, e}), ({b}, {d}),({c}, {d}), ({e}, {d}), ({b, e}, {d}), ({c, e}, {d})• YL = ({a}, {b, e}), ({a}, {c, e}), ({b, e}, {d}), ({c, e}, {d})• PL = 𝑃({a}, {b, e}), 𝑃({a}, {c, e}), 𝑃({b, e}, {d}), 𝑃({c, e}, {d}), 𝐼 , 𝑂• FL = {a, 𝑃 , , ), 𝑃 , , , b), 𝑃 , , , e), a, 𝑃({a}, {c, e}) , 𝑃({a}, {c, e}), 𝑐 ,
𝑃({a}, {c, e}), e , (𝑏, 𝑃({b, e}, {d}) 𝑃({b, e}, {d}), 𝑑 , (𝑒, 𝑃({b, e}, {d}) 𝑃({b, e}, {d}), 𝑑 ,
(𝑐, 𝑃({c, e}, {d}) 𝑃({c, e}, {d}), 𝑑 , 𝑖 , 𝑎), 𝑓, 𝑂 )
• α(L) = (𝑃 , 𝑇 , 𝐹 )
a
b
cp2 p4
p1 e p3 d
start end
Resultado: Log de Evento L1
Questão: Matriz para log de evento L3
Questão: Matriz para log de evento L3
Aplicar 8 Passos do Algoritmo Alpha
Modelo para L3 descoberto pelo Algoritmo Alpha
Resultado no PROM para Log de Evento L3
Conclusões
• O algoritmo Alpha fornece uma abordagem básica de descoberta de processos;
• Tem muitas limitações. Estes serão discutidos mais tarde;
• No entanto, ilustra bem os principais ingredientes da descoberta de processos.
Engenharia de Produção 45
Referências
• Camilo, C.O. e Silva, J.C. 2009. Mineração de Dados: Conceitos, Tarefas, Métodos e Ferramentas. Instituto de Informática. Universidade Federal de Goiás.
• Han, J., Pei, J. and Kamber, M., 2011. Data mining: concepts and techniques. Elsevier.
• Hand, D., Mannila, H. and Smyth. P. Principles of Data Mining. MIT Press, Cambridge, MA, 2001.
• Online Coursera Course. 2014. Process Mining: Data science in Action.• Van der Aalst, W.M.P. 2011. Process Mining Discovery, Conformance and Enhancement of Business Processes. Springer Heidelberg Dordrecht London New York.
• Van der Aalst, W.M.P. 2012. Process mining. Discovering, Conformance and Enhancement of Business Processes. Springer.
• Witten, I.H., Frank, E., Hall, M.A., Pal, C.J. 2016. Data Mining: PracticalMachine Learning Tools and Techniques. Morgan Kauffman.