CHƯƠNG 2 MỘT SỐ THUẬT TỐN KHAI PHÁ QUY TRÌNH
2.2. Thuật toán khai phá quy trình Heuristic (HM)
2.2.1. Đầu vào và đầu ra của thuật toán
Cũng giống như thuật toán Alpha đầu vào của HM là một bản ghi sự kiện và đầu ra của nó là mợt mơ hình quy trình được biểu diễn dưới dạng mạng Causal thay vì
a b
c
d a d
b
biểu diễn dưới dạng mạng Petri như thuật toán Alpha. HM quan tâm đến tần suất xuất hiện của một vết sự kiện trong bản ghi sự kiện, do đó bản ghi sự kiện được [2] định nghĩa lại như sau:
Định nghĩa 2.2: Cho T là tập các hoạt đợng và P(T*) là tập hợp các tập con có
thể có của T được gọi là mợt powerset của T. σ ∈ T* là một vết sự kiện và W ⊆ T∗ là một bản ghi sự kiện, tức là một multiset của các vết sự kiện.
Lưu ý rằng vì W là mợt multiset nên mỗi vết sự kiện có thể xuất hiện nhiều lần trong mợt bản ghi sự kiện. Nếu chúng ta sử dụng định nghĩa này để mô tả bản ghi sự kiện như trong bảng 1.2 thì W = [ABCD, ABCD, ACBD, ACBD, AED].
Bên cạnh việc định nghĩa lại bản ghi sự kiện, để tìm hiểu HM chúng ta cần tìm hiểu mợt số khái niệm khác như:
Định nghĩa 2.3: (Mạng quan hệ nhân quả C-net) Một C-net là một bộ ba (T, I,
O), trong đó:
- T là tập hữu hạn các hoạt động, - I: T ⟶ ((T)) là đầu vào hàm sơ đồ, - O: T ⟶ ((T)) là đầu ra hàm sơ đồ.
Nếu e ∊ T thì •e = ∪I(e) biểu thị các hoạt đợng đầu vào của e và e• = ∪O(e)
biểu thị các hoạt động đầu ra của e.
Định nghĩa 2.4: (Đồ thị phụ thuộc DG) Nếu C-net = (T, I, O) là một mạng quan
hệ nhân quả thì đồ thì phụ tḥc tương g ứng là một mối quan hệ trên T (DG ⊆ T x T),
với: DG = *(a, b)| (a ∊ T∧ b ∊ a•) ∨ (b∊ T ∧ a ∊ •b)}.
Hình 2.7: Mơ hình mạng Petri được sử dụng để tạo ra một bản ghi sự kiện, trong đó các hoạt động D1, D2 và D3 không được ghi lại trong bản ghi sự kiện
B A D C I J K F E G L D1 Exception Exception D2 H D3
Ví dụ, chúng ta dễ dàng biểu diễn mạng Petri như hình 2.7 thành mợt C- net như bảng 2.2. Mạng Petri trong hình 2.7 có 12 hoạt đợng (A, B,..., L), vì vậy tập hoạt động tương ứng T = {A, B,., L}.
Bảng 2.2: Chuyển đổi một mạng Petri trong hình 2.8 thành một C-net
I Hoạt động (T) O {} A {{B, C}} {{A}} B {{E}, {D}} {{A}, {L}} C {{I}} {{B}, {F}, {G}} D {{F}, {K}} {{B}, {F}, {G}} E {{G}} {{D}} F {{D}, {E}, {H}} {{E}} G {{D}, {E}, {H}} {{F}, {G}} H {{K}} {{C}, {I}} I {{I}, {J}} {{I}} J {{K}, {L}} {{J, H}, {J, D}} K {} {{J}} L {{C}}
2.2.2. Thuật tốn khai phá quy trình Heuristic
Để xây dựng mợt mơ hình quy trình cơ bản của mợt bản ghi sự kiện, bản ghi sẽ được phân tích phụ tḥc vào quan hệ nhân quả, ví dụ nếu mợt hoạt đợng ln được theo sau bởi một hoạt động khác thì có khả năng tồn tại mợt mối quan hệ phụ tḥc giữa hai hoạt đợng. Để phân tích các mối quan hệ này, trước hết chúng ta xây dựng một đồ thị phụ thuộc (DG). Đồ thị phụ thuộc được xây dựng dựa trên các mối quan hệ cơ bản sau [1]:
Định nghĩa 2.5 (Các mối quan hệ cơ bản). Cho T là tập các hoạt động,
𝜎 ∊ T* là mợt vết quy trình, W: T* → 𝒩là một bản ghi sự kiện và A, B ∊ T:
1. A> W B nếu và chỉ nếu có mợt vết sự kiện 𝜎 = t1t2t3..tn và i ∈{1,…,n-1} tức
là σ ∈ W, ti = a và ti+1 = b,
2. A >> WB nếu và chỉ nếu có mợt vết σ = t1t2t3…tn và i ∈{1,…,n-2} sao cho σ ∈ W và ti = ti+2 = a và ti+1 = b,
3. A >>> WB nếu và chỉ nếu có mợt vết σ = t1t2t3…tn và i < j và i, j ∈ {1,…,n} sao cho σ ∈ W và ti = a và tj = b.
Việc đầu tiên của HM là xây dựng đồ thị phụ thuộc. Một tần suất dựa trên số đo được sử dụng để chỉ ra làm thế nào chúng ta chắc chắn có mợt mối quan hệ phụ thuộc đúng đắn giữa hai sự kiện A và B (Ký hiệu: A⟹W B). Tính tốn các giá trị ⟹W giữa các hoạt động của bản ghi sự kiện được sử dụng trong HM để tìm kiếm các mối quan hệ phụ tḥc chính xác.
Định nghĩa 2.6 (Đo độ phụ thuộc). Cho W là một bản ghi sự kiện trên T; a, b ∊
T, |a > Wb| là số lần a > Wb xuất hiện trong W và |a >> Wb| là số lần a >>W b xuất hiện trong W.
a w b =
nếu ( a≠b ) a w a =
nếu ( a≠b )
a 2 w b =
Chúng ta có thể sử dụng các phương pháp đo lường sự phụ thuộc trong định nghĩa 2.6 theo hai cách khác nhau:
(i) Trực tiếp, không sử dụng điều kiện All - tasks - connected (tất cả các hoạt đợng đều được kết nối): ta tính tốn đợ đo phụ tḥc giữa các hoạt động và so sánh với 3 ngưỡng tham số được sử dụng trong HM là: ngưỡng phụ tḥc, ngưỡng vịng lặp có đợ dài 1, ngưỡng vịng lặp có đợ dài 2. Ta chỉ chấp nhận các quan hệ phụ thuộc giữa các hoạt đợng có đợ đo phụ tḥc lớn hơn giá trị của các ngưỡng phụ thuộc. Kết quả trong mơ hình luồng điều khiển chỉ có những hoạt đợng và vết sự kiện xuất hiện thường xuyên nhất. Tuy nhiên, giá trị của các tham số được sử dụng trong HM có thể thay đổi, từ đó chúng ta có thể tác đợng đến mơ hình điều khiển luồng cuối cùng.
(ii) Kết hợp với điều kiện All - tasks - connected: ưu điểm của việc kết hợp này là tất cả các mối quan hệ phụ thuộc đều được lưu vết mà không chịu sự tác động của bất kỳ một tham số điều chỉnh nào. Kết quả là có mợt mơ hình điều khiển luồng tương đối đầy đủ và dễ hiểu ngay cả khi có mợt số dữ liệu lỗi trong bản ghi. Một tham số mở rợng có giá trị trong việc kết hợp với điều kiện All tasks connected được gọi là relative to best threshold (so với ngưỡng tốt nhất). Với ngưỡng này chúng ta có thể chấp nhận mối quan hệ phụ tḥc giữa các hoạt đợng có (i) đợ phụ tḥc cao hơn giá trị ngưỡng phụ tḥc và (ii) giá trị đó “gần” với giá trị phụ tḥc đã được chấp nhận trước đó (tức là sự khác biệt với độ phụ thuộc “tốt nhất” là thấp hơn giá trị so với ngưỡng tốt nhất). Tuy nhiên, nếu chúng ta sử dụng Heuristic này trong phạm vi của quy trình có cấu trúc
thấp thì kết quả tạo ra mợt mơ hình phức tạp với tất cả các hoạt đợng với số lượng kết nối lớn.
Vì các lý do thực tế cần thêm hai hoạt động giả để xác định duy nhất sự bắt đầu và kết thúc của quy trình. Đặc biệt nếu thực tế khơng có hoạt đợng bắt đầu và kết thúc rõ ràng (ví dụ nếu có sự kiện lỗi trong bản ghi sự kiện)
Định nghĩa 2.7 (Mở rộng bắt đầu/kết thúc). Cho W là một bản ghi sự kiện trên T. Khi đó W+ là mợt bản ghi mở rợng thêm hai hoạt động bắt đầu/kết thúc (giả tạo) trên T+ với:
1.T+ = T ∪ {start, end}
2.W+ = {start σ end| σ ∊ W}
Định nghĩa 2.8: (Thuật toán đồ thị phụ thuộc). Cho W là một bản ghi sự kiện
trên T, W+ là một bản ghi sự kiện trên T+, σa (giá trị tuyệt đối) ngưỡng phụ thuộc (mặt định 0.9), σL1L ngưỡng vịng lặp đợ dài 1 (mặc định 0.9), σL2L ngưỡng các vịng lặp có đợ dài 2 (mặt định 0.9) và so với ngưỡng tốt nhất (mặt định 0.05). DG(W+) được định nghĩa như dưới đây [1]:
1. T = {t | ∃σ∊W+ [t ∊ σ]} (tập các hoạt động xuất hiện trong bản ghi),
2. C1 = {(a, a) ∊ T x T | a ⟹ Wa ≥ σL1L} (các vịng lặp đợ dài 1), 3. C2 = {(a, b) ∊ T x T| (a, a) ∉ C1 ∧ (b, b) ∉ C1 ∧ a ⟹2 wb ≥ σL2L}
4. Cout = {{(a, b) ∊ T x T | b ≠ End ∧ a ≠ b ∧ ∀y∊T [a ⟹ Wb ≥ a ⟹ Wy]} (các hoạt động theo sau mạnh nhất),
5. Cin = {{(a,b) ∊ T x T | a ≠ Start ∧ a ≠ b ∧ ∀x∊T [a ⟹ Wb ≥ x ⟹ Wb]} (các hoạt động là nguyên nhân mạnh nhất),
6. C’out = {(a, x) ∊ Cout | (a ⟹ Wx) < σa ∧ ∃(b,y)∊Cout [(a, b) ∊ C2 ∧ ((b ⟹
Wy) - (a ⟹ Wx)) > σr]} (các kết nối đi ra yếu cho vịng lặp có đợ dài 2), 7. Cout = Cout – C’out (loại bỏ những kết nối ra yếu),
8. C’in = {( x, a) ∊ Cin | (x ⟹ Wa) < σa ∧ ∃( y, b) ∊ Cin [(a, b) ∊ C2 ∧ ((y ⟹
Wb) - (x ⟹ Wa)) > σr]} (các kết nối đi vào yếu cho vịng lặp có đợ dài 2), 9. Cin = Cin – C’in (loại bỏ những kết nối vào yếu),
10. C’’out = {(a, b) ∊ T x T | a ⟹ Wb ≥ σa ∨ | ∃(a, c)∊Cout [((a ⟹ Wc) -(a ⟹ b))< σr]}, 11.C’’in = {(b, a) ∊ T x T | b ⟹ Wa ≥ σa ∨ | ∃(b, c)∊ Cin [((b ⟹ Wc) -(b ⟹ Wa)) < σr]}, 12. DG = C1 ∪ C2 ∪ C’’out ∪ C’’in
Để minh họa ta áp dụng thuật toán DG vào bản ghi sự kiện được tạo thành với mơ hình quy trình được đưa ra trong hình 2.7. Các thông tin cơ bản sẽ sử dụng được cho trong các bảng 2.3: đếm các phần tử trực tiếp theo sau (tức là a > wb), bảng 2.4: đếm các vịng lặp có đợ dài 2 và bảng 2.5 cho biết độ phụ thuộc giữa các hoạt động.
Bảng 2.3. Đếm tần suất xuất hiện của các mối quan hệ nhân quả giữa các hoạt động
Start A B C D E F G H I J K L End Start 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 A 0 0 520 480 0 0 0 0 0 0 0 0 0 0 B 0 0 0 360 182 198 0 0 0 233 27 0 0 0 C 0 0 338 0 125 128 40 48 8 349 0 0 0 0 D 0 0 0 63 0 0 586 0 0 193 68 5 6 0 E 0 0 0 73 0 0 0 619 0 236 67 0 3 0 F 0 0 0 16 124 134 0 0 327 212 88 0 7 0 G 0 0 0 16 143 145 0 0 359 220 105 0 10 0 H 0 0 0 11 0 0 0 0 0 252 105 614 5 0 I 0 0 119 0 209 236 179 210 166 315 576 0 0 0 J 0 0 23 0 135 155 102 117 118 0 0 381 5 0 K 0 0 0 0 0 0 0 0 0 0 0 0 0 100 L 0 0 0 17 3 2 1 4 9 0 0 0 0 0 End 0 0 0 0 0 0 0 0 0 0 0 0 0 0 # 1000 1000 1000 1036 921 998 908 998 987 2010 1036 1000 36 1000 Bảng 2.4: Đếm số vịng lặp có độ dài 2 (tức là đếm a >>w b).
Giá trị 89 tại vị trí D,F cho biết có 89 mẫu DF trong bản ghi sự kiện
Start A B C D E F G H I J K L End Start 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 B 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D 0 0 0 0 0 0 89 0 0 0 0 0 0 0 E 0 0 0 0 0 0 0 104 0 0 0 0 0 0 F 0 0 0 0 110 0 0 0 0 0 0 0 0 0 G 0 0 0 0 0 133 0 0 0 0 0 0 0 0 H 0 0 0 0 0 0 0 0 0 0 0 0 0 0 I 0 0 19 0 40 63 59 97 116 0 0 0 0 0 J 0 0 0 0 0 0 0 0 0 0 0 0 0 0 K 0 0 0 0 0 0 0 0 0 0 0 0 0 0 L 0 0 0 0 0 0 0 0 0 0 0 0 0 0 End 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1. Bước đầu tiên của thuật toán là xây dựng tập A (tập của tất cả các hoạt động xuất hiện trong bản ghi sự kiện),
2. Nhìn vào đường chéo trong bảng 2.3 chỉ có mợt ứng cử viên cho C1: hoạt đợng I được theo sau bởi chính nó 315 lần. Giá trị của I ⟹W I = 315/(315+1) = 0.997 ≥
σL1L. Kết quả trong C1 = {(I, I)},
3. Đối với bước này của thuật toán chúng ta sử dụng giá trị trong bảng 2.4. Bảng này chỉ ra rằng mẫu DFD xuất hiện 89 lần trong bản ghi và mẫu FDF xuất hiện 110 lần. Do đó, D ⟹2 WF = (89 + 110)/ (89 + 110 + 1) = 0.995. Bởi vì F ∉ C1 và D ∉ C1 và 0.995 ≥ 𝜎L2L, cả (F, D) ∊ C2 và (D, F) ∊ C2.. Lập luận tương tự các tính tốn cho mẫu EG ta có
kết quả trong C2 = {(F, D), (D, F), (E, G), (G, E)},
4. Dựa vào bảng 2.5 kiểm tra mỗi hàng ngoại trừ hàng kết thúc cho giá trị cao nhất (hoạt động theo sau mạnh nhất). Cho ví dụ, hoạt đợng C có giá trị cao nhất (chỗ in đậm) là 0.997 do đó (C, I) nằm trong tập Cout,
5. Dựa vào bảng 2.5 kiểm tra mỗi cột ngoại trừ cột đầu tiên cho giá trị cao nhất (nguyên nhân mạnh nhất). Ví dụ, vì hoạt đợng K có giá trị cao nhất (chỗ in đậm) là 0.998, do đó (H, K) nằm trong tập Cin,
6,7. Để minh họa, chúng ta lấy 2 hoạt động D và F. Chúng nằm trong mợt vịng lặp trực tiếp (tức là (D, F) ∊ C2). Kết nối đầu ra mạnh nhất của D bên cạnh F là K (0,833) và từ F là H (0.997). Vì lý do đó (D, K) ∊ C’out (khơng thực sự cần thiết) và sẽ bị loại bỏ khỏi Cout (trong bước 7). Trong bảng 2.5 các kết nối bị loại bỏ được đánh dấu bằng dấu gạch dưới 8, 9. Tương tự như bước 6 và 7, nhưng thực hiện cho các kết nối đến 10, 11. Phụ thuộc vào giá trị của các tham số thiết lập, các kết nối mở rộng được chấp nhận nếu ngưỡng phụ thuộc tuyệt đối σa (mặc định 0.9) hoặc so với ngưỡng tốt nhất σr (mặc định 0.05) được đáp ứng. Lưu ý rằng các tham số mặc định thiết lập mối quan hệ phụ thuộc giữa D và K là khơng được chấp nhận bởi vì D ⟹ WK = 0.833 < 0.9 (bảng
2.5). Tuy nhiên, kết nối từ J đến L được chấp nhận bởi vì kết hợp với điều kiện All tasks connected. Trong bảng 2.5 các giá trị phụ thuộc được bổ sung thêm nhờ All tasks connected hiển thị bằng chữ in nghiêng đậm,12. Cuối cùng chúng ta có thể kết hợp thông tin trong các bảng khác để thực hiện bước cuối cùng của thuật toán.
Bảng 2.5: Hiển thị độ phụ thuộc giữa các hoạt động.
Start A B C D E F G H I J K L End Start 0 .999 0 0 0 0 0 0 0 0 0 0 0 0 A 0 0 .998 .998 0 0 0 0 0 0 0 0 0 0 B 0 0 0 .031 .995 .995 0 0 0 .323 .084 0 0 0 C 0 0 0 0 .328 .272 .421 .492 0 .997 0 0 0 0 D 0 0 0 0 0 0 .650 0 0 0 0 .833 .300 0 E 0 0 0 0 0 0 0 .620 0 0 0 0 .167 0 F 0 0 0 0 0 .993 0 0 .997 .0842 0 0 .667 0
A start 1000 G 0 0 0 0 .993 0 0 0 .997 .0232 0 0 .400 0 H 0 0 0 .15 0 0 0 0 0 .205 0 .998 0 0 I 0 0 0 0 .040 0 0 0 0 0 .998 0 0 0 J 0 0 0 0 .328 .395 .073 .054 .058 0 0 .997 .833 0 K 0 0 0 0 0 0 0 0 0 0 0 0 0 .999 L 0 0 0 .944 0 0 0 0 .267 0 0 0 0 0 End 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Bảng 2.6: Đồ thị phụ thuộc kết quả được suy ra từ bảng 2.5.
•X Hoạt đợng X• {} A {B, C} {A} B {D, E} {A, L} C {I} {B, F, G} D {F} {B, F, G} E {G} {D} F {D, E, H} {E} G {D, E, H} {F, G} H {K} {C, I} I {I, J} {I} J {K, L} {J, H} K {} {J} L {C}
Nếu chúng ta so sánh bảng 2.6 với kết quả của việc áp dụng định nghĩa 2.4 trên C-net được đưa ra trong bảng 2.2 chỉ khác nhau là mất kết nối tần suất thấp từ D đến K. Đồ thị biểu diễn kết quả trên được đưa ra trong hình 2.8 để dễ hình dung hơn, đồ thị này được tăng cường thêm các thông tin bổ sung như: số trong các hộp hoạt động chỉ tần suất xuất hiện của các hoạt động; số trên các cung chỉ độ tin cậy của mối quan hệ phụ tḥc.
Hình 2.8: Đồ thị phụ thuộc kết quả khi sử dụng các tham số mặc định (Kết nối tần suất thấp giữa hoạt động D và K khơng có trong mơ hình).
B start 1000 E start 998 G start 998 D start 921 F start 921 H start 987 K start 1000 C start 1000 I start 1000 J start 1000 L start 36
A start 1000
Như đã nói ở trên, kết nối tần suất thấp từ D đến K bị mất trong đồ thị phụ thuộc DG. Tuy nhiên, nếu sử dụng tham số thiết lập σa = 0.8 và σr = 0.2 thì kết nối tần suất thấp từ D đến K cũng được chấp nhận. Đồ thị kết quả đầy đủ, có kết hợp với tần suất thông tin cho các cung ngưỡng đưa ra trong h ì n h 2 . 9 l ưu ý rằng nếu chúng ta sử dụng điều kiện All task connected, thì tất cả các hoạt động (kể cả các hoạt động tần
suất thấp như hoạt động L) sẽ là mợt phần của mơ hình được khai phá. Nếu chúng ta khơng muốn có các hoạt đợng có tần suất thấp trong mơ hình của chúng ta thì có thể sử dụng thuật tốn HM mà khơng dùng all tasks connected hoặc sử dụng một bộ lọc của ProM để loại bỏ các hoạt đợng có tần suất thấp ra khỏi bản ghi sự kiện.
Hình 2.9: Đồ thị phụ thuộc kết quả khi thiết lập tham số σa = 0.80 và σr = 0.2 (Kết nối tần suất thấp giữa hoạt động D và K cũng được chấp nhận).
Như vậy, đồ thị phụ thuộc DG đã cung cấp cho chúng ta thông tin về sự phụ thuộc giữa các hoạt động, nhưng các loại tách/nhập chưa khai phá được. Vấn đề này sẽ được khai phá trong bước 2 của thuật toán.
Bước 2: Khai phá của điểm tách/nhập
Bước tiếp theo trong HM là xác định các mối quan hệ tách/nhập tại các nút (tương ứng với tập các hoạt động) của DG. Giả sử ta xét hoạt động A của DG trong bảng 2.6, tập đầu ra của A là {B, C}. Tuy nhiên, điều chúng ta cần biết là hoạt động A luôn được nối tiếp theo sau bởi hoạt động B và C (tức là AND-split) hay chỉ bởi B hoặc C (XOR-split) hoặc hầu hết thời gian với B hoặc C và thỉnh thoảng bởi cả hai (OR-split). Chúng ta sẽ sử dụng một mở rộng đơn giản của C-net (trong định nghĩa 2.3) để mô tả trạng thái của tách và nhập. C-net được mở rộng là một C-net chứa các