algoritmo alpha - ufprsilvana.detro... · silvana pereira detro. descoberta de processo = play‐in...

46
Algoritmo Alpha Silvana Pereira Detro

Upload: others

Post on 25-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Algoritmo Alpha

Silvana Pereira Detro

Page 2: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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

Page 3: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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

Page 4: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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),…]

Page 5: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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).

Page 6: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Objetivo do Algoritmo Alpha

Logs de eventos contém todos ostraces possíveis do modelo e vice versa

Page 7: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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

Page 8: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Notação é menos relevante (e.g. BPMN)

Page 9: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Notação é menos relevante (e.g. BPMN)

Page 10: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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

Page 11: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Relações >,→,||,#

• Sucessão direta: 𝑥 𝑦 se x é diretamente seguido por y

abcdacbdaed

Page 12: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Relações >,→,||,#

• Sucessão direta: 𝑥 𝑦 se x é diretamente seguido por y

a>ba>ca>eb>cb>dc>bc>de>d

abcdacbdaed

Page 13: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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

Page 14: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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

Page 15: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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…

Page 16: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Ideia Básica Utilizada pelo Algoritmo Alpha (2)

a b

(a) Padrão de sequência: a→b

Page 17: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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

Page 18: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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

Page 19: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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

Page 20: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Footprint de L1

Page 21: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Modelo descoberto tem a mesma footprint

a

b

c

de

p2

end

p4

p3p1

start

Log e modelo de processo possuem a mesma matriz

Page 22: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Footprint de L2

Log e modelo de processo possuem a mesma matriz

Page 23: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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

Page 24: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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).

Page 25: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

α‐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⟩

Page 26: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

α‐algoritmo

• TL = {a, b, c, d, e}• TI =  {a}• TF = {d}

Page 27: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

α‐algoritmo

• Passo 4: Calcular pares (A, B)• Passo 5: Excluir pares não-máximos (A,B)• Passo 6: Determinar lugares 𝑝 , 𝑑𝑒 𝑝𝑎𝑟𝑒𝑠 𝐴, 𝐵

Page 28: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

α‐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 },

Page 29: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Lugares como Footprints

ssion & acknowledgements)

Page 30: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

α‐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})

Page 31: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

α‐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!

Page 32: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

α‐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})

Page 33: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

α‐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

Page 34: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

α‐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},

Page 35: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

α‐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}),  , 

Page 36: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

α‐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)

Page 37: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

α‐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) = (𝑃 , 𝑇 , 𝐹 )

Page 38: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

a

b

cp2 p4

p1 e p3 d

start end

Page 39: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Resultado: Log de Evento L1

Page 40: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Questão: Matriz para log de evento L3

Page 41: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Questão: Matriz para log de evento L3

Page 42: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Aplicar 8 Passos do Algoritmo Alpha

Page 43: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Modelo para L3 descoberto pelo Algoritmo Alpha

Page 44: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

Resultado no PROM para Log de Evento L3

Page 45: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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

Page 46: Algoritmo Alpha - UFPRsilvana.detro... · Silvana Pereira Detro. Descoberta de Processo = Play‐In eventlog processmodel Play-In eventlog processmodel Play-Out eventlog ... 5. YL

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.