3.2.2.1. Định nghĩa vùng
Định nghĩa 3.4 [1] (vùng trạng thái) Gọi TS = (S, A, T) là một hệ thống chuyển và R ⊆ S là một tập con gồm các trạng thái. R là một vùng nếu với mỗi hoạt động a ∈ A, một trong các điều kiện sau được thỏa mãn:
1) Tất cả các bước chuyển (s1, a, s2) ∈ T đều đi vào R, nghĩa là s1∉ R và s2∈R. 2) Tất cả các bước chuyển (s1, a, s2) ∈ T đều đi ra khỏi R, nghĩa là S1 ∈ R và s2
∉ R.
3) Tất cả các bước chuyển (s1 ,a, s2) ∈ T đều không cắt R, nghĩa là s1,s2∈ R hoặc s1,s2 ∉ R.
Giả sử R là một vùng. Trong trường hợp này tất cả các hoạt động đều có thể được phân vào một trong ba nhóm: đi vào vùng R, đi ra khỏi vùng R và không cắt vùng R. Hoạt động không thể đi vào vùng ở một phần nào đó của hệ thống chuyển và ra khỏi vùng ở một phần nào đó khác.
Hình 3.5 : Vùng R tương ứng với vị trí pR [1]
Hình 3.5 minh hoạ cho khái niệm này. Trong đó, hình chữ nhật vẽ bằng nét đứt mô tả vùng R, là một tập các trạng thái trong hệ thống chuyển. Tất cả các hoạt động cần phải có một vị trí tương đối với vùng này. Tất cả các bước chuyển
có nhãn a đều đi vào vùng R. Nếu có một bước chuyển nào đó với nhãn a mà không kết nối một trạng thái ở bên ngoài vùng với một trạng thái bên trong vùng, thì R sẽ không phải là một vùng. Tất cả các bước chuyển gán nhãn b đều đi vào vùng, tất cả các bước chuyển gán nhãn c và d đều đi ra khỏi vùng. Tất cả các bước chuyển có nhãn e và f đều không cắt vùng R, nghĩa là chúng luôn kết nối hai trạng thái ở bên ngoài vùng R hoặc 2 trạng thái ở bên trong vùng.
Theo định nghĩa trên, hợp của hai vùng sẽ là một vùng. Do đó, chúng ta chỉ cần quan tâm tới các vùng nhỏ nhất. Ý tưởng cốt lõi ở đây là mỗi vùng nhỏ nhất R tương ứng với một vị trí pR trong lưới Petri như biểu diễn trên Hình 3.5.
Các hoạt động đi vào vùng trở thành các bước chuyển trong lưới Petri với pR là
vị trí ra, các hoạt động đi ra khỏi vùng trở thành các vị trí ra của pR, và các hoạt động không cắt vùng tương ứng với các bước chuyển không nối với pR trong
lưới Petri. Do đó, từ các vùng nhỏ nhất hoàn toàn có thể xây dựng được lưới Petri.
Tóm lại một vùng là một tập các trạng thái, sao cho:
1) Nếu một bước chuyển đi ra khỏi vùng thì tất cả các bước chuyển nhãn tương
đương cũng đi ra khỏi vùng.
2) Nếu một bước chuyển đi vào trong vùng thì tất cả các bước chuyển nhãn tương đương cũng đi vào trong vùng.
3) Tất cả các bước chuyển không đi vào trong hoặc không đi ra khỏi vùng thì
không cắt ngang vùng. Ví dụ[2]: Một vùng a đi vào b đi ra c không cắt ngang d không cắt ngang e không cắt ngang
Không phải là một vùng
a đi vào
b không cắt ngang và đi ra c không cắt ngang và đi ra d không cắt ngang và đi ra e không cắt ngang
Bảng 3.2: Bảng ví dụ về vùng và không phải là vùng [2]
3.2.2.2. Lựa chọn vùng
Chúng ta chỉ đưa vào tính toán các vùng không tầm thường (Non-trivial) và tối thiểu (Minimal).
Non-trivial
- Tập rỗng và tập tất cả các trạng thái là các vùng theo định nghĩa.
- Những vùng tầm thường này không mang thông tin và không nên đưa vào.
Minimal
- Một vùng là tối thiểu nếu nó không thể được chia thành các vùng (không tầm thường) nhỏ hơn.
- Những vùng không tối thiểu là được bao hàm bởi các vùng nhỏ hơn và không nên đưa vào.
3.2.2.3. Xây dựng lưới Petri sử dụng vùng
Việc xây dựng lưới Petri từ hệ thống chuyển dựa trên vùng được thực hiện qua các bước sau [2]:
1) Với mỗi một nhãn bước chuyển trong hệ thống chuyển ta thêm một transition vào lưới Petri.
3) Với mỗi vùng tối thiểu-không tầm thường trong hệ thống chuyển ta thêm một vị trí vào lưới Petri.
4) Các cung (arcs) tương ứng được sinh ra.
5) Một token được thêm vào mỗi vị trí tương ứng trong vùng chứa trạng thái khởi tạo.
6) Kết quả lưới Petri được gọi là một lưới tối thiểu bão hòa (minimal saturated net).
Hình 3.6 : Chuyển đổi “hệ thống chuyển” thành “lưới Petri”[1]
Bằng cách áp dụng định nghĩa về vùng, chúng ta tìm được 6 vùng nhỏ nhất. Xem xét ví dụ với vùng R1 = {[a], [a, c]}. Tất cả các bước chuyển có nhãn a trong hệ thống chuyển đều đi vào R1 (ở đây chỉ có một bước chuyển), tất cả các bước chuyển gán nhãn b đều đi ra khỏi R1 (có hai bước chuyển như vậy), tất cả các bước chuyển có nhãn là e cũng đều đi ra khỏi R1 (chỉ có một bước
chuyển), và tất cả các bước chuyển khác trong hệ thống chuyển đều không giao cắt vùng R1. Do đó, R1 là một vùng tương ứng với vị trí p1 với bước chuyển đầu vào là a, bước chuyển đầu ra là b và e. R2 = {[a], [a, b]} là một vùng khác: a đi vào R2, c và e đi ra khỏi R2, và tất cả các bước chuyển khác trong hệ thống chuyển đều không giao cắt R2. R2 là vùng tương ứng với vị trí p2 trong hình 3.6. Trong lưới Petri xây dựng được dựa trên 6 vùng nhỏ nhất này, b và c là hai bước chuyển đồng thời.
Hình 3.6 cho thấy một quá trình nhỏ với rất ít đồng thời. Do đó, hệ thống chuyển và lưới Petri có kích cỡ tương đương nhau. Tuy nhiên, với các quá trình lớn hơn với nhiều đồng thời, kích cỡ của lưới Petri sẽ có thể giảm đáng kể so với kích cỡ hệ thống chuyển. Hệ thống chuyển mô hình hóa 10 hoạt động song song sẽ có 210 = 1024 trạng thái và 10 × 210-1 = 5120 bước chuyển, khi chuyển sang lưới Petri sẽ có thể giảm xuống chỉ còn 20 vị trí với 10 bước chuyển.
Hình 3.6 chỉ truyền tải ý tưởng cơ bản về các vùng. Việc tổng hợp mô hình dạng lưới Petri dựa vào các vùng trạng thái thực sự liên quan nhiều hơn và có thể tùy chỉnh phù hợp hơn cho các mô hình quá trình cụ thể. Bất kì hệ thống chuyển hữu hạn nào cũng đều có thể chuyển đổi thành một mô hình lưới Petri tương đương, nghĩa là, các thuộc tính của hệ thống chuyển và lưới Petri là giống nhau. Tuy nhiên, với một vài mô hình lưới Petri, có thể sẽ cần phải thực hiện phân tách nhãn (label splitting). Kết quả là, lưới Petri có thể có nhiều bước chuyển tương ứng với cùng một hoạt động. Hơn nữa, cũng cần phải thi hành mô hình lưới Petri thu được để có các tùy chọn cụ thể.
Các vùng trạng thái cổ điển nhằm cung cấp mô hình lưới Petri tương đương với hệ thống chuyển. Điều này có nghĩa là khi xây dựng lưới Petri, các hành vi sẽ không được khái quát hóa. Do đó, việc chọn hàm biểu diễn trạng thái rất quan trọng khi xây dựng hệ thống chuyển. Với các quá trình lớn hơn, hàm biểu diễn trạng thái như 𝑙1𝑠𝑡𝑎𝑡𝑒() chắc chắn sẽ cho một mô hình quá chi tiết, chỉ có thể biểu diễn lại nhật ký sự kiện mà không có một dạng khái quát hóa nào cả.
Nhiều hàm biểu diễn trạng thái có thể cân bằng giữa sự quá chi tiết và quá khái quát.
Chú ý: Có thể chuyển đổi từ lưới Petri sang một ngôn ngữ mô hình khác như PBMN, UML, Workflow net nếu muốn.
3.3. Nhận xét đánh giá
3.3.1. Ưu nhược điểm của phương pháp
Ưu điểm:
- Kỹ thuật dựa trên vùng có thể được sử dụng để phát hiện các mẫu quá trình phức tạp.
- Cung cấp cái nhìn thấu đáo vào bản chất bên trong của phát hiện quá trình.
Nhược điểm:
- Không có khả năng phát hiện việc xây dựng quá trình đặc thù (có thể cải tiến bằng việc mở rộng thuật toán cơ bản).
- Không có khả năng cân bằng 4 đặc tính chất lượng (phù hợp, chính xác, tổng quát, đơn giản) tốt.
Sức mạnh của cách tiếp cận này chính là việc cho phép đa dạng các chiến lược biểu diễn trạng thái. Một trạng thái có thể biểu diễn rất chi tiết hoặc trừu tượng hơn. Việc lựa chọn đúng đắn cách biểu diễn trạng thái sẽ giúp cân bằng giữa “overfitting” và “underfitting” theo một cách có kiểm soát. Các cách tiếp cận hiện tại không cho phép người phân tích điều khiển độ đo này mà nó đã cố định theo phương pháp.
Chính tính đa dạng trong việc lựa chọn chiến lược biểu diễn trạng thái giúp người dùng có thể lực chọn các chiến lược phù hợp với đặc điểm của nhật ký sự kiện cũng như của kết quả mong đợi cuối cùng.
3.3.2. Giới thiệu một số đề xuất mô hình cải tiến
Bất chấp những lợi thế được đề cập bởi lý thuyết vùng, có 2 lý do chính cản trở việc ứng dụng rộng rãi phương pháp vào thực tế. Một là do tính nhạy
cảm với nhiễu, hai là độ phức tạp của thuật toán liên quan mà hiệu suất của nó phụ thuộc nhiều vào kích thước đầu vào.
Theo [5], Marc Sole´ và Josep Carmona đã có một cách tiếp cận để khắc phục vấn đề thứ 2. Trong nhật ký sự kiện nếu tồn tại hành động lặp thì hệ thống chuyển không tuần hoàn hay không có chu kỳ tương ứng sẽ phải chứa hoạt động mở (unfolded) bằng các mẫu (pattern) lặp. Điều này ý nói rằng cỡ của hệ thống chuyển kiểu này là lớn.
Hình 3.7 Sử dụng Foldings trong phát hiện quá trình dựa trên vùng [5]
Trong hình 3.7 tác giả đã đề xuất một bước trung gian là Folding (gấp lại). Bước Folding này được thực hiện ở giữa bước chuyển từ hệ thống chuyển sang lưới Petri. Bước này sẽ tìm ra các chu trình từ đó làm giảm kích thước của hệ thống chuyển. Chiến lược Folding cho phép giảm số lượng trạng thái và tăng tốc việc phát hiện quá trình.
Ngoài ra theo [6] van der Aalst, W.M.P cũng đã đề xuất cách tiếp cận chia để trị (divide-and-conquer) để giải quyết bài toán với đầu vào là nhật ký sự kiện lớn. Chia để trị dưa trên một phân mảnh hợp lệ các hoạt động. Các tập hoạt động nên gối lên nhau nếu nó có một sự phụ thuộc trực tiếp. Có hai nhiệm vụ khai phá quá trình chính trong các tiếp cận này:
Một là cho việc kiểm tra sự phù hợp, chúng ta phân chia mô hình quá trình thành các mô hình con thành phần nhỏ hơn gối đầu lên nhau sử dụng phép chiếu. Nhật ký sự kiện được phân chia thành các nhật ký con cũng sử dụng phép chiếu. Bất kỳ vết nào phù hợp với mô hình toàn thể cũng phù hợp với tất cả các mô hình con. Điều ngược lại chỉ đúng nếu việc phân chia là hợp lý. Độ đo tỷ lệ các trường hợp phù hợp có thể được tính bằng việc kiểm tra độ phù hợp của các mô hình con.
Hình 3.8 : Tổng quan mô hình phân chia trong kiểm tra độ phù hợp[6]
Hai là phân chia trong phát hiện quá trình, đầu tiên chúng ta tạo một phân mảnh hoạt động. Ví dụ chúng ta chia tập các hoạt động thành một bộ các tập hoạt động thành phần gối đầu nhau. Với mỗi tập hoạt động con chúng ta chiếu nhật ký lên trên một nhật ký con và phát hiện mô hình con cho nó. Các mô hình con khác nhau có thể được gộp thành mô hình tổng thể. Hơn nữa, việc phân chia này đảm bảo rằng toàn bộ các vết trong nhật ký mà phù hợp với mô hình tổng thể thì cũng phù hợp với các mô hình con và ngược lại.
Hình 3.9 : Tổng quan mô hình phân chtia trong phát hiện quá trình [6]
Như vậy nhìn chung cả hai bài toán kiểm tra độ phù hợp và phát hiện quá trình đều có thế được phân chia thành các bài toán nhỏ hơn, có thể được phân tán trên nhiều máy tính. Hơn nữa với hầu hết các kỹ thuật khai phá quá trình thì thời gian cần thiết để giải quyết “nhiều bài toán nhỏ hơn” là ít hơn thời gian cần để giải quyết “một bài toán lớn”. Vì vậy việc phân chia này là hữu ích nếu nhiệm vụ nhỏ hơn được hoàn thành trên một máy tính đơn. Ngoài ra việc phân chia bài toán khai phá quá trình không chỉ liên quan đến khía cạnh hiệu năng mà nó cũng được sử dụng để định vị chính xác hầu hết các phần mơ hồ của quá trình và cung cấp chuẩn đoán đã được giới hạn vào một nơi.
3.4. Tóm tắt chương 3
Chương 3 của luận văn đã giới thiệu phương pháp phát hiện quá trình dựa trên vùng trạng thái một cách chi tiết từ cách tiếp cận, các khái niệm, định nghĩa liên quan cho đến tường bước thực hiện để tạo hệ thống chuyển từ nhật ký sự kiện và sau đó là chuyển đổi hệ thống chuyển sang lưới Petri. Chương này cũng đã chỉ ra các ưu nhược điểm chính của phương pháp đồng thời giới thiệu một số đề xuất mô hình cải tiến để có thể áp dụng tốt hơn phương pháp trong các bài toán thực tế.
Trong chương tiếp theo của luận văn, chúng ta sẽ tiến hành thực nghiệm để đánh giá được hiệu quả của phương pháp phát hiện quá trình dựa trên vùng trạng thái.
Chương 4. THỰC NGHIỆM VÀ ĐÁNH GIÁ 4.1. Mô tả thực nghiệm
Để đánh giá mức độ hiệu quả của phương pháp vùng trạng thái, ta sẽ so sánh phương pháp này với thuật toán α, một thuật toán cơ bản nhất trong phát hiện quá trình. Như vậy với cùng một nhật ký sự kiện đầu vào ta sẽ đi xây dựng mô hình quá trình theo 2 phương pháp khác nhau từ đó đánh giá mô hình kết quả để so sánh tính hiệu quả của 2 phương pháp.
4.1.1. Công cụ:
Bộ công cụ sử dụng là ProM 6.4.1, phiên bản mới nhất.
4.1.2. Dữ liệu thực nghiệm:
- Nhật ký sự kiện ví dụ trong [1] có thể download tại:
http://www.processmining.org/_media/processminingbook/event-logs- process-mining-book.zip
- Dự liệu thật của trung tâm dữ liệu 3TU Datacentrum tại địa chỉ: http://data.3tu.nl/repository/collection:event_logs_real
4.1.3. Các bước thực hiện:
- Bước 1: Dùng Plugin “Mine for a Petri Net using Alpha-algorithm” để sinh mô hình quá trình từ nhật ký sự kiện dựa trên thuật toán Alpha
- Bước 2: Dùng Plugin “Mine Transition System” để sinh ra hệ thống chuyển từ nhật ký sự kiện. Có thể thay đổi các tham số tùy chọn cho hàm trạng thái theo các cách biểu diễn khác nhau như dãy, tập hợp hay tập bội. - Bước 3: Dùng Plugin “Convert to Petri Net using Regions” để sinh ra
mô hình quá trình từ hệ thống chuyển. - Bước 4: So sánh, đánh giá kết quả. 4.1.4. Tiến hành thực nghiệm:
Đầu tiên là tiến hành thực nghiệm với một vài ví dụ nhỏ:
Ví dụ 1:
Dễ thấy L6 bao gồm: 1 quá trình, 11 trường hợp, 7 lớp sự kiện (a, b, c, d, e, f, g), 44 sự kiện.
Trong đó 2 lớp sự kiện bắt đầu (start events) là a và b. Lớp sự kiện kết thúc (end events) là g.
Hình 4.1: Thông tin nhật ký sự kiện L6
Hình 4.2: Mô hình quá trình của L6 dựa trên thuật toán Alpha
- Kết quả bước 2 với việc lựa chọn mức trừu tượng trạng thái là kiểu dãy và không giới hạn từng phần:
- Kết quả bước 3:
Hình 4.4: Mô hình quá trình của L6 dựa trên vùng trạng thái
Nhận xét: kết quả tương đương. Chú ý là kết quả vẫn cho ra mô hình có 2
vị trí dư thừa giống trong thuật toán Alpha.
Ví dụ 2:
L9 = [〈a, c, d〉45, 〈b, c, e〉42]
L9 bao gồm: 1 quá trình, 87 trường hợp, 5 lớp sự kiện (a, b, c, d, e), 261 sự kiện. Trong đó 2 lớp sự kiện bắt đầu (start events) là a và b. 2 lớp sự kiện kết thúc (end events) là d và e.
Hình 4.5: Thông tin nhật ký sự kiện L9
- Kết quả bước 1:
- Kết quả bước 2 với việc lựa chọn mức trừu tượng trạng thái là kiểu dãy và