Các hệ thống thông tin này thường hỗ trợ khả năng ghi chép, tức là lưu lại những gì đã được thực hiện trong quá trình hoạt động của tổ chức.. Phát hiện quá trình là một trong ba bài toán
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
LƯU VĂN BA
THUẬT TOÁN PHÁT HIỆN QUÁ TRÌNH NÂNG CAO DỰA TRÊN KHÁI NIỆM VÙNG TRẠNG THÁI
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60480104
LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS HÀ QUANG THỤY
Hà Nội – 2015
Trang 3Lời cảm ơn
Lời đầu tiên, tôi xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới PGS.TS Hà Quang Thụy đã tận tình hướng dẫn và chỉ bảo tôi trong suốt quá trình nghiên cứu khoa học và thực hiện luận văn này
Tôi xin chân thành cảm ơn các thầy, cô đã tận tình dạy bảo, hướng dẫn nghiên cứu và tạo mọi điều kiện thuận lợi cho tôi trong suốt quá trình học tập và nghiên cứu tại trường
Tôi cũng xin gửi lời cảm ơn đến các anh chị, các bạn trong phòng thí nghiệm công nghệ tri thức KT-Lab của trường đại học Công Nghệ - Đại học quốc gia Hà Nội đã chia sẻ cho tôi rất nhiều về kiến thức chuyên môn trong quá trình tôi tham gia sinh hoạt tại đây Luận văn thực hiện trong khuôn khổ đề tài QG.15.22 “Phát triển các kỹ thuât tiến tiến khai phá mẫu từ nhật ký sự kiện, xây dựng phần mềm và khung ứng dụng thử nghiệm tại doanh nghiệp Việt Nam”
Cuối cùng, tôi xin được gửi lời cám ơn vô hạn tới gia đình và bạn bè, những người đã luôn bên cạnh, giúp đỡ và động viên tôi trong quá trình học tập cũng như trong suốt quá trình thực hiện luận văn này
Tôi xin chân thành cảm ơn!
Hà Nội, ngày 20 tháng 05 năm 2015
Học viên
Lưu Văn Ba
Trang 4Lời cam đoan
Tôi xin cam đoan nội dung được trình bày trong luận văn này là do tôi thực hiện dưới sự hướng dẫn của PGS.TS Hà Quang Thụy
Tất cả các tài liệu tham khảo và các nghiên cứu liên quan đều có nguồn gốc rõ ràng trong danh mục tài liệu tham khảo của luận văn Trong luận văn, không có việc sao chép tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ về tài liệu tham khảo
Hà Nội, ngày 20 tháng 05 năm 2015 Học viên
Lưu Văn Ba
Trang 5MỤC LỤC
Danh mục các bảng 1
Danh mục các hình vẽ, đồ thị 2
Mở đầu 4
Chương 1 GIỚI THIỆU VỀ KHAI PHÁ QUÁ TRÌNH 6
1.1 Tổng quan về khai phá quá trình 6
1.1.1 Khai phá quá trình là gì 6
1.1.2 Vị trí của khai phá quá trình trong KHDL và Big data 6
1.1.3 Mối liên hệ với khai phá dữ liệu 7
1.2 Các bài toán trong khai phá quá trình 8
1.2.1 Phát hiện quá trình 9
1.2.2 Kiểm tra độ phù hợp 9
1.2.3 Tăng cường mô hình 9
1.3 Mô hình hóa quá trình 10
1.3.1 Nhật ký sự kiện (Event Logs) 10
1.3.2 Các loại mô hình hóa quá trình 12
1.3.2.1 Lưới Petri (Petri Nets) 12
1.3.2.2 Hệ thống chuyển (Transition systems) 15
1.4 Tóm tắt chương 1 17
Chương 2 PHÁT HIỆN QUÁ TRÌNH VÀ NHỮNG THÁCH THỨC 18
2.1 Bài toán phát hiện quá trình 18
2.1.1 Phát biểu bài toán 18
2.1.2 Giới thiệu thuật toán Alpha 19
2.2 Chất lượng mô hình kết quả 25
2.3 Các thách thức trong phát hiện quá trình 26
2.4 Tóm tắt chương 2 27
Chương 3 PHÁT HIỆN QUÁ TRÌNH DỰA TRÊN VÙNG TRẠNG THÁI 28
3.1 Giới thiệu phương pháp 28
3.2 Các bước thực hiện 29
3.2.1 Tạo hệ thống chuyển từ nhật ký sự kiện 29
Trang 63.2.1.1 Biểu diễn trạng thái 29
3.2.1.2 Xây dựng hệ thống chuyển 32
3.2.2 Chuyển đổi từ hệ thống chuyển sang lưới Petri 34
3.2.2.1 Định nghĩa vùng 34
3.2.2.2 Lựa chọn vùng 36
3.2.2.3 Xây dựng lưới Petri sử dụng vùng 36
3.3 Nhận xét đánh giá 39
3.3.1 Ưu nhược điểm của phương pháp 39
3.3.2 Giới thiệu một số đề xuất mô hình cải tiến 39
3.4 Tóm tắt chương 3 42
Chương 4 THỰC NGHIỆM VÀ ĐÁNH GIÁ 44
4.1 Mô tả thực nghiệm 44
4.1.1 Công cụ: 44
4.1.2 Dữ liệu thực nghiệm: 44
4.1.3 Các bước thực hiện: 44
4.1.4 Tiến hành thực nghiệm: 44
4.2 Đánh giá và kết luận 51
KẾT LUẬN VÀ ĐỊNH HƯỚNG NGHIÊN CỨU TIẾP 52
TÀI LIỆU THAM KHẢO 53
Trang 7Danh mục các bảng
Bảng 1.1: Một phân đoạn của nhật ký sự kiện cho yêu cầu bồi thường [1] 10
Bảng 2.1: Bảng ví dụ về song kết nối cực đại và không cực đại [2] 20
Bảng 3.1: Ví dụ về các cách biểu diễn trạng thái cho một nhật ký sự kiện [1] 33
Bảng 3.2: Bảng ví dụ về vùng và không phải là vùng [2] 36
Trang 8Danh mục các hình vẽ, đồ thị
Hình 1.1: Vị trí của khai phá quá trình trong khoa học dữ liệu [2] 6
Hình 1.2: Vai trò cầu nối của khai phá quá trình [6] 7
Hình 1.3: Các bài toán trong khai phá quá trình [2] 8
Hình 1.4: Lưới Petri và các thành phần [1] 12
Hình 1.5: Ví dụ về marking của một lưới Petri cho hệ thống đèn giao thông [2] 13
Hình 1.6: Bước chuyển được kích hoạt và có thể cháy [2] 14
Hình 1.7: Một hệ thống chuyển có một trạng thái khởi đầu 15
và một trạng thái kết thúc[1] 15
Hình 2.1: Bài toán phát hiện quá trình [1] 18
Hình 2.2: Ví dụ cặp tập song kết nối (A,B) [2] 20
Hình 2.3: Vị trí p(A,B) kết nối các bước chuyển trong tập A và B [2] 21
Hình 2.4: Kết quả thuật toán α cho L5 [1] 22
Hình 2.5: Ví dụ hạn chế dư thừa của thuật toán α [2] 23
Hình 2.6: Ví dụ hạn chế chu trình bằng 1 của thuật toán α [2] 23
Hình 2.7: Ví dụ hạn chế chu trình bằng 2 của thuật toán α [2] 24
Hình 2.8: Ví dụ hạn chế phụ thuộc không địa phương của thuật toán α [2] 24
Hình 2.9: 4 tiêu chí chất lượng cho mô hình kết quả [1] 25
Hình 2.10: Ví dụ 4 mô hình khác nhau cho cùng một nhật ký sự kiện [1] 26
Hình 3.1: Mô hình phát hiện quá trình dựa trên vùng trạng thái [2] 28
Hình 3.2: Ví dụ trạng thái của một vết [2] 29
Hình 3.3: Trạng thái của một vết thể hiện qua các thành phần past, future [2] 29
Hình 3.4: Các cách biểu diễn trạng thái của vết theo các mức độ trừu tượng [4] 31
Hình 3.5 : Vùng R tương ứng với vị trí pR [1] 34
Hình 3.6 : Chuyển đổi “hệ thống chuyển” thành “lưới Petri”[1] 37
Hình 3.7 Sử dụng Foldings trong phát hiện quá trình dựa trên vùng [5] 40
Hình 3.8 : Tổng quan mô hình phân chia trong kiểm tra độ phù hợp[6] 41
Hình 3.9 : Tổng quan mô hình phân chia trong phát hiện quá trình [6] 42
Hình 4.1: Thông tin nhật ký sự kiện L6 45
Trang 9Hình 4.2: Mô hình quá trình của L6 dựa trên thuật toán Alpha 46
Hình 4.3: Hệ thống chuyển trạng thái của L6 46
Hình 4.4: Mô hình quá trình của L6 dựa trên vùng trạng thái 47
Hình 4.5: Thông tin nhật ký sự kiện L9 48
Hình 4.6: Mô hình quá trình của L9 dựa trên thuật toán Alpha 48
Hình 4.7: Hệ thống chuyển trạng thái của L9 49
Hình 4.8: Mô hình quá trình của L9 dựa trên vùng trạng thái 49
Hình 4.9: Thông tin nhật ký sự kiện Hospital log 50
Trang 10Mở đầu
Ngày nay cùng với việc phát triển của khoa học công nghệ, đặc biệt là lĩnh vực công nghệ thông tin dữ liệu sinh ra từ các hệ thống thông tin, thiết bị công nghệ, máy móc, Internet,…ngày càng bùng nổ về số lượng cũng như tốc độ thay đổi, tính đa dạng từ các nguồn khác nhau dẫn đến những thách thức không nhỏ trong ngành khoa học dữ liệu Các kỹ thuật khai phá dữ liệu (data mining) đã, đang và sẽ đóng vai trò vô cùng quan trọng trong việc trích xuất tri thức từ dữ liệu đã có từ đó có thể tạo lợi thế canh tranh lớn trong kinh doanh Tuy nhiên các
kỹ thuật này mới chỉ tập trung chủ yếu vào đặc tính của dữ liệu mà đã bỏ qua một yếu tố vô cùng quan trọng là quá trình thay đổi dữ liệu đã diễn ra như thế nào? Để làm rõ vai trò quan trọng của yếu tố quá trình (process) này chúng ta cùng xem xét một ví dụ điển hình đó là các hệ thống thông tin trong các tổ chức kinh doanh nghiệp vụ Các hệ thống thông tin này thường hỗ trợ khả năng ghi chép, tức là lưu lại những gì đã được thực hiện trong quá trình hoạt động của tổ chức Loại dữ liệu sự kiện này ngày càng nhiều và có mặt ở khắp nơi Trong khi
đó, các tổ chức, doanh nghiệp vẫn chỉ lên kế hoạch hoạt động bằng các mô hình quá trình xây dựng thủ công với nhiều hạn chế, hay xác định các vấn đề trong quá trình hoạt động qua những nhận định và nắm bắt chủ quan, nhiều khi sai lệch thực tế
Thông tin trong dữ liệu sự kiện là chi tiết, chân thực và khách quan về chính những gì tổ chức đang cố gắng quan sát và nắm bắt Nếu tổ chức tận dụng được những thông tin này thì điều đó có thể hỗ trợ rất nhiều cho các quá trình kinh doanh Từ những yếu tố trên, khai phá quá trình đã ra đời và trở thành đề tài nóng được nhiều nhà khoa học quan tâm nghiên cứu
Phát hiện quá trình là một trong ba bài toán chính của khai phá quá trình với mục tiêu xây dựng mô hình chỉ từ nhật ký sự kiện mà không sử dụng bất kì một
mô hình hay thông tin tiền nghiệm nào khác Có rất nhiều thuật toán, phương pháp phát hiện quá trình khác nhau Ví dụ: thuật toán α, α+, α++, khai phá kinh nghiệm, khai phá di truyền, khai phá dựa trên vùng… Mỗi loại đều có những điểm mạnh điểm yếu riêng Luận văn sẽ tập trung giới thiệu phương pháp phát hiện quá trình nâng cao dựa trên vùng trạng thái Nâng cao ở đây được hiểu với
ý nghĩa đây là một thuật toán ra đời sau, có nhiều ưu điểm hơn các thuật toán kinh điển ban đầu như thuật toán α
Trang 11Luận văn được chia thành bốn chương với các nội dung:
Chương 1: Giới thiệu tổng quan về khai phá quá trình, các bài toán trong
khai phá quá trình và các khái niệm liên quan
Chương 2: Đi vào cụ thể bài toán phát hiện quá trình và các thách thức Chương 3: Trình bày phương pháp phát hiện quá trình dựa vào vùng
trạng thái và đánh giá ưu nhược điểm của phương pháp
Chương 4: Trình bày thực nghiệm phương pháp đã trình bày ở chương 3
với một vài bộ dữ liệu và đánh giá thực nghiệm
Kết luận và định hướng phát triển tiếp theo: Tóm lược kết quả đã đạt
được của luận văn, chỉ ra những khuyết điểm cần khắc phục và đưa ra định hướng nghiên cứu tiếp theo
Trang 12Chương 1 GIỚI THIỆU VỀ KHAI PHÁ QUÁ TRÌNH
1.1 Tổng quan về khai phá quá trình
1.1.1 Khai phá quá trình là gì
Khai phá quá trình (process mining) là một chuyên ngành nghiên cứu mới
Theo Wil M.P van der Aalst [1], khai phá quá trình là chuyên ngành nghiên cứu
về những phương thức phát hiện, phân tích và cải tiến các quá trình dựa vào thông tin trích xuất được từ dữ liệu sự kiện
1.1.2 Vị trí của khai phá quá trình trong KHDL và Big data
Ngày nay trong KHDL (khoa học dữ liệu) người ta không chỉ chú ý tới việc lưu trữ và phân tích dữ liệu mà người ta còn quan tâm đến mối liên hệ giữa dữ liệu với các quá trình liên quan Khai phá quá trình chính là cầu nối giữa quản lý quá trình kinh doanh truyền thống với các kỹ thuật phân tích dữ liệu làm trung tâm như: khai phá dữ liệu và học máy
Hình 1.1: Vị trí của khai phá quá trình trong khoa học dữ liệu [2]
Trang 13Hình 1.2: Vai trò cầu nối của khai phá quá trình [6]
Khai phá quá trình là phương tiên giao tiếp giữa phân tích mô hình quá trình (process model analysis) với phân tích định hướng dữ liệu (data-oriented analysis) Nó được dùng để trả lời các câu hỏi khác nhau liên quan đến hiệu năng và tính tuân thủ
1.1.3 Mối liên hệ với khai phá dữ liệu
Theo Van der Aalst [2], khai phá quá trình liên quan mật thiết đến khai phá
dữ liệu Trong khi các kĩ thuật khai phá dữ liệu truyền thống chủ yếu tập trung
vào dữ liệu (data-centric) thì khai phá quá trình tập trung vào quá trình (process-centric)
Khai phá quá trình được sử dụng để trả lời cho các câu hỏi:
- Quá trình nào con người thực sự làm theo?
- Đâu là những trở ngại trong quá trình của tôi?
- Đâu là chỗ mà con người hay máy móc thực hiện khác với lại quá trình mong đợi hay quá trình lý tưởng ban đầu?
- Đâu là “lối mòn” trong quá trình của tôi?
- Những tác nhân nào đang gây trở ngại?
- Liệu tôi có thể tiên đoán các vấn đề có thể gặp phải (độ trễ, độ sai lệch, rủi ro,…) trong các trường hợp đang chạy?
- Làm thế nào để thiết kế lại quá trình, tổ chức, máy móc cho hiệu quả?
Trang 14Mặc dù cả hai đều bắt đầu từ dữ liệu nhưng các kỹ thuật khai phá dữ liệu thường không tập trung đến quá trình, không tập trung vào dữ liệu sự kiện Những chủ đề như phát hiện quá trình, kiểm tra độ phù hợp, phân tích các trở ngại trong quá trình kinh doanh là không được đề cập trong các kỹ thuật khai phá dữ liệu truyền thống Khai phá dữ liệu và khai phá quá trình cần được kết hợp với nhau để trả lời các câu hỏi nâng cao hơn
1.2 Các bài toán trong khai phá quá trình
Trong khai phá quá trình có 3 loại bài toán chính: bài toán phát hiện quá
trình (process discovery), kiểm tra sự phù hợp (conformance checking), tăng cường quá trình (process enhancement)
Có 3 thao tác chính thể hiện mối quan hệ giữa mô hình và nhật ký sự kiện
là: : Play-out, Play-in và Replay Trong đó Play-out là từ mô hình sinh ra hoạt
động, Play-in là tự động hình thành mô hình từ nhật ký sự kiện, Replay là chạy lại mô hình đồng thời so sánh với dữ liệu sự kiện để kiểm tra tính đúng đắn cũng như là cải tiến mô hình
Hình 1.3: Các bài toán trong khai phá quá trình [2]
Trang 15Mô hình xây dựng được có thể trả lời các câu hỏi phổ biến trong quá trình sản xuất kinh doanh như:
- Hoạt động nào nằm trước hoạt động nào?
- Có nhóm hoạt động nào được thực hiện đồng thời không?
- Trong quá trình có hoạt động nào bị lặp không?
- Các nhân viên tương tác như thế nào?
- Những ai làm cùng nhiệm vụ với nhau?
- Có bao nhiêu vị trí tham gia trong một trường hợp?
1.2.2 Kiểm tra độ phù hợp
Bài toán này sử dụng đầu vào gồm một mô hình có sẵn và nhật ký sự kiện
Mô hình sẽ được sử dụng để kiểm tra xem các sự kiện thực tiễn được lưu trong nhật ký sự kiện có phù hợp với mô hình không, và ngược lại
Có thể mô hình đang sử dụng không bao hàm được tất cả các trường hợp
vì thế có những trường hợp các hoạt động không tuân theo mô hình Cũng có trường hợp chỉ tồn tại trên mô hình mà thực tế không bao giờ xảy ra Do vậy, sẽ luôn hữu ích khi có một công cụ cung cấp phản hồi về những vấn đề này Bài toán kiểm tra sự phù hợp của mô hình nhằm cung cấp những công cụ phản hồi như vậy
1.2.3 Tăng cường mô hình
Sau có được kết quả của bước kiểm tra độ phù hợp thì bài toán tiếp theo được đặt ra là tăng cường mô hình Bài toán hướng tới việc mở rộng hoặc cải tiến mô hình có sẵn, nhờ rút ra kinh nghiệm từ thông tin về quá trình thực tế đã thu thập được trong các nhật ký sự kiện Tăng cường ở đây có 2 loại, một là
“sửa” mô hình để phản ánh đúng hơn với thực tế, hai là “mở rộng” mô hình để thêm vào các khía cạnh bổ sung
Tăng cường mô hình giúp tăng hiệu suất làm việc, giải quyết những điểm mâu thuẫn hoặc bế tắc, loại bỏ các thành phần không cần thiết
Trang 161.3 Mô hình hóa quá trình
Các phương pháp mô hình hóa quá trình thương mại chính thường sử dụng các dạng kí hiệu mô hình như BPMN, UML, EPC, các loại lưới Petri, hệ thống chuyển, luồng điều khiển,
1.3.1 Nhật ký sự kiện (Event Logs)
Điểm khởi đầu cho khai phá quá trình là nhật ký sự kiện (event logs) Mỗi
sự kiện trong nhật ký sự kiện tương ứng với một hoạt động và một trường hợp
cụ thể Trong mỗi trường hợp, các sự kiện này được sắp xếp theo một thứ tự nào
đó tùy thuộc vào thực tế diễn ra trong quá trình Ngoài các sự kiện, nhật ký sự kiện còn có thể lưu trữ một số thông tin khác liên quan đến sự kiện mà một số
kỹ thuật khai phá quá trình cũng có thể tận dụng như nguồn lực thi hành sự kiện, thời gian bắt đầu thi hành, thời gian kết thúc, v.v
Bảng 1.1: Một phân đoạn của nhật ký sự kiện cho yêu cầu bồi thường [1]
- Mỗi quá trình (process) bao gồm các trường hợp (cases)
- Mỗi trường hợp bao gồm các sự kiện (event) sao cho mỗi sự kiện chỉ liên kết với đúng một trường hợp
Trang 17- Trong mỗi trường hợp, các sự kiện diễn ra theo thứ tự
- Các sự kiện có thể có thuộc tính (attribute) như hoạt động, thời gian, chi phí, nguồn lực,
Không phải tất cả các sự kiện đều phải có tập thuộc tính như nhau, song thông thường, các sự kiện liên quan đến cùng hoạt động thì sẽ có chung tập thuộc tính
Loại dữ liệu trong nhật ký sự kiện xác định phương diện thông tin nào có thể được khai phá Theo Van der Aalst [1], có 4 phương diện khai phá chính:
1) Phương diện luồng điều khiển (control-flow perspective) tập trung vào luồng
điều khiển, tức là thứ tự của các hoạt động Mục đích của khai phá phương diện luồng điều khiển là tìm được các đặc tính tốt nhất có thể cho tất cả các luồng điều khiển Phương diện luồng điều khiển có thể được khai phá qua nhật ký sự kiện khi nhật ký sự kiện cung cấp các nhiệm vụ đã được xử lý trong quá trình (chẳng hạn qua các trường tên công việc, thời gian) và ta có thể suy luận được thứ tự xử lý và liên kết các nhiệm vụ này vào các trường hợp (mẫu) riêng biệt
2) Phương diện tổ chức (organizational perspective) tập trung vào các thông tin
về nguồn lực ẩn trong nhật ký sự kiện, ví dụ như những đối tượng nào (người,
hệ thống, vai trò, bộ phận) tham gia vào hoạt động và các đối tượng liên quan đến nhau như thế nào Khai phá phương diện tổ chức ứng dụng cho cơ cấu tổ chức qua việc phân loại nguồn lực vào các vai trò và đơn vị trổ chức hoặc qua các thông tin thu được từ mô hình mạng xã hội
3) Phương diện trường hợp (case perspective) tập trung vào các thuộc tính, đặc
điểm riêng của mỗi trường hợp Rõ ràng, mỗi trường hợp đều có thể được mô
tả bằng đường đi của nó trong luồng quá trình Tuy nhiên, ta cũng có thể mô
tả các trường hợp bằng giá trị của các phần tử dữ liệu tương ứng Ví dụ, nếu một trường hợp biểu diễn các đơn hàng bổ sung, thì qua đó ta có thể muốn biết nhà cung cấp hoặc số lượng sản phẩm đã được đặt mua
4) Phương diện thời gian (time perspective) quan tâm tới thời gian và mức độ
thường xuyên của các sự kiện Khi các sự kiện được ghi lại cùng với thời gian, ta có thể phát hiện các điểm thắt cổ chai, đo lường sức phục vụ, giám sát việc sử dụng tài nguyên, và dự đoán thời gian xử lý còn lại của các trường hợp đang chạy
Các phương diện này không tách biệt độc lập mà chồng chéo một phần nào
đó lên nhau, và không đầy đủ Tuy nhiên, chúng mô tả tốt những đặc điểm mà khai phá quá trình muốn phân tích
Trang 181.3.2 Các loại mô hình hóa quá trình
Có rất nhiều bộ ký hiệu cho mô hình hóa quá trình, tuy nhiên trong luận văn sẽ chỉ giới thiệu về hai loại mô hình hóa mà sẽ được sử dụng ở các phần sau
là Lưới Petri (Petri net) và Hệ thống chuyển (Transition system) Chúng ta có thể dễ dàng chuyển đổi sang các ngôn ngữ mô hình hóa khác như BPMN, BPEL hay biểu đồ hoạt động UML,
1.3.2.1 Lưới Petri (Petri Nets)
Lưới Petri (petri net) là ngôn ngữ mô hình hóa quá trình lâu đời nhất và tốt nhất trong các ngôn ngữ đã được khảo sát Lưới Petri cho phép biểu diễn các
mô hình chứa thành phần đồng thời Mặc dù kí hiệu đồ họa rất trực quan và đơn giản, lưới Petri vẫn có khả năng biểu diễn rất tốt và người ta có thể sử dụng nhiều kĩ thuật để phân tích các mô hình biểu diễn dưới dạng lưới Petri Hình 1.4
là một ví dụ về lưới Petri
Hình 1.4: Lưới Petri và các thành phần [1]
Lưới Petri là đồ thị hai chiều bao gồm các vị trí (place) và các bước chuyển (transition) Lưới Petri có cấu trúc tĩnh, nhưng các thẻ (token) có thể lưu thông trong mạng lưới này nhờ sự điều khiển của luật cháy (firing rule)
Trang 19Trạng thái của lưới Petri được xác định bởi sự phân bố của các thẻ ở các
vị trí và được gọi là dấu (marking) của vị trí đó
Hình 1.5: Ví dụ về marking của một lưới Petri cho hệ thống đèn giao thông [2]
Trong dấu khởi tạo thể hiện ở hình 1.4 chỉ có một thẻ, và start là vị trí duy nhất được đánh dấu
Định nghĩa 1.1[1] Lưới Petri là một bộ ba N = (P, T, F) trong đó P là
một tập hữu hạn các vị trí (vị trí), T là một tập hữu hạn các bước chuyển (transition) sao cho P ∩ T = Ø, và F ⊆ (P × T) ∪ (T × P) là tập các cạnh có hướng, gọi là luồng quan hệ (flow relation) Lưới Petri được đánh dấu là một
cặp (N, M), trong đó N = (P, T, F) là một lưới Petri và M ∈ 𝔹(P) là một tập bội (multi-set) trên P biểu thị dấu (marking) của lưới Tập tất cả các lưới Petri được đánh dấu được biểu thị bằng kí hiệu 𝒩
Theo định nghĩa, lưới Petri trong hình 1.4 có thể chuẩn hóa lại với bộ ba
N = (P, T, F) như sau:
P = {start, cl,c2, c3, c4, c5, end},
T = {a, b, c, d, e, f, g, h}, và
F = {(start, a), (a, cl), (a, c2), (cl, b), (cl, c), (c2, d), (b, c3), (c, c3), (d, c4),
(c3, e), (c4, e), (e, c5), (c5, f ), (f, cl), (f, c2), (c5, g), (c5, h), (g, end), (h, end)}
Vị trí được đánh dấu trong hình 1.4 là [start], nghĩa là tập bội biểu thị dấu
ở đây chỉ chứa 1 thẻ Các hành vi động của một lưới Petri được đánh dấu được
xác định bởi luật cháy (firing rule)
Trang 20- Một bước chuyển sẽ được kích hoạt nếu mỗi vị trí đầu vào của nó chứa một thẻ
- Một bước chuyển đang kích hoạt sẽ có thể đốt cháy, qua đó tiêu thụ một thẻ từ mỗi vị trí đầu vào và cung cấp một thẻ cho mỗi vị trí đầu ra
Hình 1.6: Bước chuyển được kích hoạt và có thể cháy [2]
Trong hình 1.4, bước chuyển a được kích hoạt nhờ dấu [start] Việc đốt cháy a sẽ cho dấu [c1, c2] Lưu ý rằng ở bước này, một thẻ bị tiêu thụ và hai thẻ mới được sinh ra Tại dấu [cl, c2], bước chuyển a sẽ không còn được kích hoạt nữa Tuy nhiên, các bước chuyển b, c, và d bây giờ đã được kích hoạt Từ dấu [cl, c2], việc đốt cháy b sẽ cho dấu [c2, c3] Đến đây, d vẫn được kích hoạt, nhưng b và c thì không Bởi vì trong lưới Petri này có cấu trúc vòng lặp liên quan đến f nên sẽ có vô hạn các chuỗi cháy bắt đầu ở [start] và kết thúc tại [end]
Giả sử bây giờ dấu khởi tạo là [start5] Đốt cháy bước chuyển a bây giờ sẽ cho kết quả là dấu [start4, cl, c2] Ở dấu này, a vẫn được kích hoạt Đốt cháy a lần nữa ta được [start3, cl2, c22] Bước chuyển a có thể cháy 5 lần trong liên tiếp
và cho kết quả là [cl5, c25] Lưu ý rằng sau khi đốt cháy a lần đầu tiên, cả b, c và
d đều được kích hoạt và có thể đốt cháy cùng lúc
Tính bị chặn (Boundedness):
- Một vị trí p là k-bounded nếu không có một dấu có thể đạt được với nhiều
hơn k thẻ trong p
- Một lưới Petri là k-bounded nếu tất cả các vị trí là k-bounded
- Một vị trí/lưới Petri là bị chặn nếu tồn tại một số k như vậy
- Một lưới Petri là k-bounded nếu không có vị trí nào có nhiều hơn k thẻ
Tính an toàn (safeness)
Trang 21Một lưới Petri được đánh dấu là an toàn (safe) nếu và chỉ nếu nó là
1-bounded
Deadlock
- Một dấu là chết (dead) Nếu không có bước chuyển nào được kích hoạt
- Một lưới Petri có một deadlock tiềm ẩn nếu có thể đạt được một dấu chết
- Một lưới Petri là deadlock-free nếu mỗi dấu có thể đạt được kích hoạt ít nhất một bước chuyển
Tính sống sót (liveness)
- Một bước chuyển t là sống (live) nếu từ bất kỳ dấu có thể đạt được đều có thể đạt tới một dấu mà ở đó t được kích hoạt
- Một lưới Petri là sống nếu tất cả các bước chuyển là sống
- Một lưới Petri là sống thì deadlock-free Tuy nhiên một lưới Petri là deadlock-free thì không chắc là sống
1.3.2.2 Hệ thống chuyển (Transition systems)
Hình 1.7: Một hệ thống chuyển có một trạng thái khởi đầu
và một trạng thái kết thúc[1]
Hệ thống chuyển là loại kí hiệu mô hình quá trình cơ bản nhất Hệ thống
chuyển bao gồm các trạng thái (state) và các bước chuyển (transition) Hình 1.7
mô tả một hệ thống chuyển với 7 trạng thái Các trạng thái được biểu diễn bằng hình tròn màu đen Có một trạng thái khởi tạo được gán nhãn sl và trạng thái kết thúc được gán nhãn s7 Mỗi trạng thái có một nhãn riêng biệt, nhãn này chỉ đơn giản là định danh cho trạng thái và không có ý nghĩa gì cả Các bước chuyển
Trang 22được biểu diễn bằng các cạnh Mỗi bước chuyển kết nối hai trạng thái và được gán nhãn bởi tên của một hoạt động Nhiều cạnh có thể có cùng nhãn, ví dụ trong hình này nhãn "check ticket” xuất hiện 2 lần
Định nghĩa hệ thống chuyển như sau:
Định nghĩa 1.2[1] Hệ thống chuyển là một bộ ba TS = (S, A, T) trong đó
S là tập các trạng thái (state), A ⊆ 𝒜 là tập các hoạt động (activity), và T ⊆ S ×
A × S là tập các bước chuyển (transition) Sstart ⊆ S là tập các trạng thái ban đầu (trạng thái bắt đầu), và Send ⊆ S là tâp các trạng thái cuối cùng (trạng thái kết thúc)
Các tập hợp Sstart và Send được xác định ngầm Về nguyên tắc, tập S có thể vô hạn Tuy nhiên, trong hầu hết các ứng dụng trên thực tế, không gian trạng thái là hữu hạn Trong trường hợp này, hệ thống chuyển cũng được coi là một máy hữu hạn trạng thái (Finite-State Machine - FSM) hay ôtômát hữu hạn (finite-state automaton)
Theo định nghĩa nêu trên, hệ thống chuyển trong hình 1.7 có thể được chuẩn hóa như dưới đây:
S = {s1,s2, s3, s4, s5, s6, s7},
Sstart = {s1},
Send = {s7},
A = {register request, examine thoroughly, examine casually, check ticker,
decide, reinitiate request, reject request, pay compensation},
T = {(si, register request, s2), (s2, examine casually, s3), (s2, examine
thoroughly, s3), (s2, check ticket, s4), (s3, check ticket, s5), (s4, examine casually, s5), (s4, examine thoroughly, s5), (s5, decide, s6), (s6, reinitiate request, s2), (s6, pay compensation, s7), (s6, reject request, s7)}
Ta có thể tìm hiểu về các hành vi của một hệ thống chuyển cho trước Một bước chuyển bắt đầu với một trong những trạng thái ban đầu Mỗi đường dẫn trong đồ thị bắt đầu tại một trạng thái tương ứng với một trình tự thực hiện có
thể Ví dụ, đường dẫn register request, examine casually, check ticket trong hình 1.7 là một ví dụ về trình tự thực hiện, bắt đầu ở trạng thái s1 và kết thúc tại trạng thái s5 Có vô số trình tự trạng thái trong hệ thống chuyển này Một đường dẫn kết thúc thành công (terminate successfully) nếu nó kết thúc tại một trong những trạng thái cuối cùng Một đường dẫn gọi là bế tắc(deadlocks) nếu nó gặp một
Trang 23trạng thái không kết thúc nhưng lại không có bước chuyển ra nào Lưu ý rằng dù không có kết thúc cũng không đảm bảo được rằng đường dẫn sẽ kết thúc thành công Hệ thống chuyển có thể không bế tắc, các bước chuyển có thể vẫn được kích hoạt nhưng không thể dẫn tới trạng thái cuối cùng (livelock)
Bất cứ mô hình quá trình nào mà về mặt ngữ nghĩa được coi là thi hành được thì sẽ có thể ánh xạ sang hệ thống chuyển Do đó, có nhiều khái niệm đã được định nghĩa giúp hệ thống chuyển có thể dễ dàng dịch sang các ngôn ngữ
mô hình hóa bậc cao như lưới Petri, BPMN, UML
Các hệ thống chuyển khá đơn giản nhưng lại gặp vấn đề trong biểu diễn các đồng thời một cách ngắn gọn Giả sử khi ta có n hoạt động song song, nghĩa
là n hoạt động cần thi hành nhưng theo thứ tự nào cũng được Ta sẽ có thể có n! trình tự hoạt động Hệ thống chuyển sẽ yêu cầu 2n trạng thái và n × 2n-1 bước chuyển Đây là một ví dụ về vấn đề "bùng nổ trạng thái” (state explosion) Xem xét ví dụ 10 hoạt động song song, số trình tự thi hành có thể có là 10! = 3628800,
số trạng thái có thể đạt tới là 210 = 1024, và số bước chuyển là 10 × 210-1 = 5120 Lưới Petri tương ứng sẽ gọn hơn rất nhiều và chỉ cần 10 bước chuyển, 10 vị trí
để mô hình hóa 10 hoạt động song song Để giải quyết vấn đề đồng thời trong các quá trình thương mại, ta cần sử dụng các mô hình ý nghĩa hơn như lưới Petri
để thể hiện được đầy đủ kết quả khai phá quá trình
1.4 Tóm tắt chương 1
Chương 1 của luận văn đã giới thiệu tổng quan về khai phá quá trình, vị trí, vai trò và các nhóm bài toán chính trong khai phá quá trình Các khái niệm, đặc điểm chính của nhật ký sự kiện, các phương diện khai phá đã được đề cập Tiếp theo, các khái niệm cơ bản và các đặc tính chính của hai loại mô hình hóa được sử dụng trong luận văn là lưới Petri, và hệ thống chuyển đã được giới thiệu khá chi tiết
Trong chương tiếp theo của luận văn, sẽ đi chi tiết hơn vào một trong ba bài toán chính trong khai phá quá trình là bài toán phát hiện quá trình
Trang 24Chương 2 PHÁT HIỆN QUÁ TRÌNH VÀ NHỮNG THÁCH THỨC
2.1 Bài toán phát hiện quá trình
2.1.1 Phát biểu bài toán
Theo Van der Aalst [1], bài toán phát hiện quá trình được định nghĩa như sau:
Định nghĩa 2.1[1]: (Bài toán phát hiện quá trình tổng quát) Cho nhật ký sự
kiện L, thuật toán phát hiện quá trình là hàm ánh xạ L sang một mô hình quá trình sao cho mô hình đó có khả năng đại diện (representative) cho các hành vi thấy được trong nhật ký sự kiện Thách thức ở đây là tìm một thuật toán như vậy
Các thuật toán phát hiện quá trình theo định nghĩa trên có thể sinh một loại
mô hình quá trình nào đó, chẳng hạn như BPMN, EPC, YAWL, hay mô hình dạng lưới Petri Ngoài ra, nhật ký sự kiện làm đầu vào cũng có thể có nhiều thuộc tính Yêu cầu duy nhất là mô hình thu được phải có khả năng đại diện cho các hành vi thấy được trong nhật ký sự kiện Với định nghĩa này, ta có thể thấy phát hiện quá trình là một bài toán khá rộng và đa dạng, trong đó tất cả các phương diện của quá trình đều có thể được khai phá Luận văn sẽ tập trung vào
phát hiện quá trình trên khía cạnh luồng điều khiển, gọi tắt là phát hiện luồng
điều khiển
Hình 2.1: Bài toán phát hiện quá trình [1]
Mô hình đầu ra của bài toán phát hiện luồng điều khiển nói chung có thể biểu diễn dưới nhiều dạng kí hiệu khác nhau: dạng BPMN, EPC, YAWL, lưới Petri Để có thể hình dung rõ ràng hơn, mà không làm mất đặc trưng của bài toán, ta chọn lưới Petri làm dạng kí hiệu cho mô hình đầu ra của bài toán Vậy
ta phát biểu bài toán phát hiện luồng điều khiển như sau [4]:
Trang 25Định nghĩa 2.2[1]: Gọi L ∈ 𝔹(𝒜*) là một nhật ký sự kiện Phát hiện luồng điều khiển là bài toán xác định công thức hay thuật toán γ ánh xạ nhật ký sự kiện L sang một mô hình luồng điều khiển dạng lưới Petri γ(L) = (N, M) sao cho
N là một lưới WF (workflow-net, WF-net) phù hợp và tất cả các vết trong L tương ứng với trình tự cháy thích hợp của (N,M)
2.1.2 Giới thiệu thuật toán Alpha
Thuật toán α được WMP van der Aalst và cộng sự nghiên cứu và đề xuất năm 2004 [12] Đây là một thuật toán khá đơn giản, ứng dụng đặc điểm của lưới
WF, rằng trong nhiều lưới WF, hai hoạt động có sự kết nối với nhau nếu xác định được quan hệ nhân quả của chúng trong nhật kí sự kiện
Đầu vào: Nhật kí sự kiện L với tập các hoạt động T
Đầu ra: Lưới Petri α(L) mô hình hóa L với hai vị trí đầu, cuối được định nghĩa
như dưới đây:
Giải thích thuật toán:
Bước 1: Mọi bước chuyển của lưới đầu ra TL : mỗi hoạt động trong L tương ứng với một bước chuyển trong α(L)
Bước 2: Mọi bước chuyển được nối từ vị trí vào i (start): TI đó là các phần tử
đầu tiên ở mỗi vết 〈t1, …, tn〉, …, 〈t’1, …, t’m〉
Bước 3: Mọi bước chuyển nối tới vị trí ra o (end): TO đó là các phần tử xuất hiện ở cuối mỗi vết 〈t1, …, tn〉, …, 〈t’1, …, t’m〉
Bước 4: Xác định mọi cặp tập song kết nối (A, B) mọi phần tử a∈A và mọi phần tử b∈B là quan hệ nhân quả (ví dụ a →L b), tất cả các phần tử trong A
là độc lập với nhau (a1#La2), và tất cả các phần tử trong B là độc lập với nhau (b1#Lb2)
Trang 26Hình 2.2: Ví dụ cặp tập song kết nối (A,B) [2]
Bước 5: Xác định mọi cặp tập song kết nối cực đại (A, B)
Song kết nối
không cực đại
Song kết nối cực
đại
Bảng 2.1: Bảng ví dụ về song kết nối cực đại và không cực đại [2]
Bước 6: Xác định tập các vị trí từ các cặp song kết nối cực đại, vị trí vào, vị trí ra
Trang 27Hình 2.3: Vị trí p (A,B) kết nối các bước chuyển trong tập A và B [2]
Bước 7: Nối các cung
Bước 8: Kết quả
Ví dụ:
Kết quả các bước theo thuật toán α
Trang 28Lưới Petri thu được:
Hình 2.4: Kết quả thuật toán α cho L5 [1]
Về cơ bản, thuật toán α quét qua nhật kí sự kiện để kiếm các mẫu cụ thể
Ví dụ, nếu hoạt động b được thi hành liền sau hoạt động a nhưng hoạt động a không bao giờ được thi hành liền sau b, thì ta xem là có một sự phụ thuộc nhân quả giữa a và b Để phản ánh mối quan hệ phụ thuộc này, lưới Petri tương ứng
sẽ có một vị trí nối a với b
Trang 29Hạn chế của thuật toán α
Thuật toán khai phá lớp nhật ký sự kiện lớn với giả định nhật ký sự kiện liên quan hoàn toàn với quan hệ thứ tự Thuật toán có hạn chế ngay cả khi “liên quan hoàn toàn” Sau đây là một vài hạn chế điển hình của thuật toán α
1) Dư thừa:
Rất nhiều lưới WF khác nhau lại có hành vi như nhau
Hình 2.5: Ví dụ hạn chế dư thừa của thuật toán α [2]
Hai vị trí p1, p2 là thừa được gọi là “ẩn” , bị gỡ đi không ảnh hướng hành vi 2) Chu trình ngắn
Thuật toán phát hiện chu trình độ dài 3 trở lên, có vấn đề với chu trình ngắn (độ dài 1 hoặc 2)
Hình 2.6: Ví dụ hạn chế chu trình bằng 1 của thuật toán α [2]
Mô hình phát hiện
Bằng thuật toán α
Mô hình mong đợi
Trang 30Hình 2.7: Ví dụ hạn chế chu trình bằng 2 của thuật toán α [2]
3) Phụ thuộc không địa phương
Thuật toán chỉ xét quan hệ đi trước trực tiếp >L và cảm sinh trực tiếp
Ví dụ:
Hình 2.8: Ví dụ hạn chế phụ thuộc không địa phương của thuật toán α [2]
Mô hình thực sự: không phát hiện hai vị trí p1, p2
Tóm lại thuật toán Alpha cung cấp một cách tiếp cận cơ bản cho bài toán phát hiện quá trình Mặc dù còn nhiều hạn chế tuy nhiên là các tiếp cận tốt để minh họa những thành phần chính trong phát hiện quá trình Ngày nay có nhiều thuật toán phát hiện quá trình tốt hơn, có thể khắc phục được nhiều hạn chế của thuật toán α Ví dụ các biến thể α+, α++ hoặc những thuật toán có cách tiếp cận hoàn toàn khác như khai phá di truyền, khai phá dựa trên vùng,…
Mô hình phát hiện
Bằng thuật toán α
Mô hình mong đợi