Giải thuật xây dựng các mẫu có cấu trúc đầy đủ

Một phần của tài liệu Khung Cộng Tác Đa Dụng Trong Môi Trường Tính Toán Lưới (Trang 93)

B. Giải thuật phát hiện các mẫu có cấu trúc đầy đủ

3.2.4 Giải thuật xây dựng các mẫu có cấu trúc đầy đủ

Như chúng ta thấy, giải thuật phát hiện các mẫu chỉ tìm kiếm biên của mẫu (cụ thể hơn là chỉ tìm hai đỉnh của biên). Nhưng để ánh xạ được mẫu, ta cần phải có đầy đủ thông tin về tất cả các thành phần trong mẫu: cả biên và cả các thành phần ở trong biên. Do đó, sau khi áp dụng Giải thuật 3-1 để tìm tất cả các biên của các mẫu, giải thuật của luận án sẽ tìm các thành phần và bổ sung chúng vào trong vùng thích hợp. Kết quả cuối cùng của giải thuật sẽ là một vùng mà có thể chứa tất cả các vùng khác.

Giải thuật 3-2:

Đầu vào: tập hợp L gồm tất cả các đỉnh của đồ thị luồng G. Đồ thị này biểu diễn một tiến trình

BPMN, là kết quả trả về từ giải thuật 3-1. Giả sử rằng mỗi đỉnh v của đồ thị có ba hàm:

- number(): trả về số thứ tự của v, là số thứ tự của nút trong phép tìm kiếm theo chiều sâu của đồ thị.

- idom() và ipdom(): tương ứng trả về đỉnh chế ngự liền kề và đỉnh chế ngự sau liền kề v.

Đầu ra: một vùng R biểu diễn mẫu tổng thể (overall pattern) của tiến trình BPMN. Vùng này có

thể chứa các vùng con khác, biểu diễn cho các mẫu nhỏ hơn.

Xử lý: giải thuật gồm các bước sau:

1. Xác định các vùng trong tập L (sử dụng giải thuật của Lengauer và Tarjan [57] để tìm các vùng bất chu trình và dùng giải thuật của Johnson để tìm các vùng chu trình [48] như đã được đề cập trong phần 3.3.2). Ở giai đoạn này, mỗi vùng mới chỉ chứa hai đỉnh: một vào và một ra.

2. Thay thế tất cả các đỉnh mà biểu diễn cho các thành phần tasks và events (ngoại trừ start

events và end events) bằng các vùng tầm thường (trivial regions). Sau bước này, ngoại trừ

hai đỉnh start và end, trong L chỉ còn chứa các vùng, mà không còn đỉnh nào nữa.

3. Xây dựng các vùng Sequence biểu diễn cho các mẫu Sequence: chừng nào trong L còn tồn tại danh sách vùng R1, R2,…, Rk khả tuần tự (sequenceable) (xem Định nghĩa 3-9), tiến hành thay thế danh sách trên bằng vùng Sequence Rseq(R1, R2,…, Rk).

4. Xây dựng các vùng không phải kiểu Sequence (như Switch, While, Pick, Flow): chừng nào trong L còn tồn tại hai vùng R1 và R2 sao cho R1 nằm trong R2, thì bổ sung R1 vào trong R2, rồi loại bỏ R1 khỏi L.

5. Lặp lại các bước 3 và 4 cho đến khi L chỉ còn chứa một vùng R. Trả về R và giải thuật kết thúc.

Ví dụ 3-1: Ví dụ này nhằm minh họa hoạt động của Giải thuật 3-2.

Tiến trình BPMN được minh họa trong Hình 3-12. Các kết quả cho từng bước thực thi của giải thuật được minh họa trong các hình kế tiếp (xem các hình từ Hình 3-13 đến Hình 3- 16).

Hình 3-46: Đồ thị biểu diễn tiến trình BPMN và kết quả của phép duyệt theo chiều sâu

(DFS). Ở bước 1, DFS được sử dụng để phát hiện các vùng chu trình và vùng bất chu trình.

Hình 3-47: Các vùng đã phát hiện được sau bước 1. Ở đây phát hiện được ba vùng: R2

Hình 3-48: Các vùng đã phát hiện được sau bước 2 (một số nhãn cho các nút từ các

hình trước đã cố tình được bỏ bớt từ hình này trở đi nhằm làm cho các hình vẽ đỡ rắc rối hơn)

Hình 3-49: Vùng cuối cùng được trả về R sau các bước cuối 3, 4 và 5

Định lý 3-8: Giải thuật 3-2 là đúng đắn và đầy đủ.

Chứng minh:

Ta cần chứng minh tính đúng đắn và chứng minh tính đầy đủ.

Tính đúng đắn: Chúng ta sẽ chỉ ra rằng giải thuật trên sẽ phát hiện đúng bất kỳ mẫu có

cấu trúc đầy đủ nào và nó trả về đúng vùng cần phát hiện.

Để tìm kiếm các vùng (cả chu trình và bất chu trình), giải thuật dựa trên hai giải thuật nổi tiếng, nên tính đúng đắn của chúng được xem là hệ quả trực tiếp.

Từ mô tả giải thuật, chúng ta có thể thấy rằng sau bước 2 và trước bước 3, ngoại trừ hai nút start và end, thì tất cả các nút còn lại đều nằm trong các vùng (bao gồm vùng chu trình, bất chu trình và vùng tầm thường). Hơn nữa, mỗi nút chỉ nằm trong đúng một vùng. Theo Định lý 3-5, với mọi cặp vùng R1 và R2, một trong hai trường hợp sau có thể xảy ra:

1. Nếu R1 nằm trong R2 hoặc ngược lại: thì bước 4 sẽ được áp dụng, và một trong hai vùng sẽ được di chuyển vào trong vùng kia.

2. Nếu R1 và R2 không có nút chung: thì một trong ba tình huống sau có thể xảy ra: a. Nếu R1 và R2 nằm trong danh sách các nút khả tuần tự thì bước 3 sẽ được áp

dụng.

b. Nếu R1 và R2 cùng nằm trong một vùng khác: thì bước 4 sẽ được áp dụng. c. Nếu R1 và R2 thuộc hai vùng khác nhau: thì bước 4 sẽ được áp dụng.

Do đó, sau bước 2, hoặc bước 3 hoặc bước 4 sẽ được thay nhau áp dụng lặp lại nhiều lần. Do số lượng vùng sau bước 2 là cố định và sau bước 3 hoặc bước 4, số vùng luôn giảm, nên giải thuật phải kết thúc và trả về một vùng cuối cùng. Tính đúng đắn của giải thuật đã được chứng minh.

Tính đầy đủ (Completeness): Chúng ta sẽ chỉ ra rằng giải thuật có thể xác định được

toàn bộ các mẫu có cấu trúc đầy đủ trong tiến trình BPMN.

Như đã được chỉ ra trong phần chứng minh tính đúng đắn của giải thuật, ngoại trừ hai nút start và end, sau bước 2 không có nút nào khác nằm ngoài các vùng. Do đó, hiển nhiên là không thể có mẫu nào bị bỏ sót sau quá trình thực hiện giải thuật. Tính đầy đủ của giải thuật đã được chứng minh.

Định lý 3-9: Độ phức tạp của Giải thuật 3-2 áp dụng cho một đồ thị G (với số lượng các đỉnh, các cạnh và các vùng lần lượt là n, e và r) là O((n + e).(rc + 1) + e.logn + 2r2); trong đó rc là số lượng các vùng chu trình (circle regions).

Chứng minh:

Gọi C là độ phức tạp của giải thuật, và Ci là độ phức tạp của giải thuật tính được sau bước thứ i. Điều này có nghĩa là C=C5. Do có hai loại vùng là vùng chu trình và vùng bất

chu trình, nên nếu giả sử chúng ta gọi số lượng các vùng chu trình và bất chu trình tương

ứng là rc và rn, thì ta sẽ có r=rc + rn.

Sau bước 1, ta có độ phức tạp của giải thuật (sử dụng các công thức tính độ phức tạp trong [57] [48]):

C1 = O((n + e).(rc + 1)) + O(e.logn);

Độ phức tạp của giải thuật ở bước 2 là: O(nt + ne); trong đó nt và ne tương ứng là số lượng các task và event. Do đó sau bước 2 ta có:

C2 = C1 + O(nt + ne);

Để xây dựng các vùng Sequence trong bước 3, ta nên sắp xếp các vùng tìm thấy trong các bước trước. Độ phức tạp của thao tác sắp xếp này là O(r2), với r là số lượng vùng. Do đó, sau bước 3 ta có:

C3 = C2 + O(r2) = O((n + e).(rc + 1) + e.logn + r2);

Độ phức tạp của bước 4 cũng tương tự như của bước 3, bởi vì việc kiểm tra quan hệ bao hàm cũng tương tự như kiểm tra thứ tự tuần tự. Do đó sau bước 4 ta có:

C4 = C3 + O(r2) = O((n + e).(rc + 1) + e.logn + 2r2); Cuối cùng, ta có:

C5 = C4 = O((n + e).(rc + 1) + e.logn + 2r2) □

3.2.5 Các nghiên cứu liên quan

Trong [3], các tác giả trình bày và cài đặt một công cụ dịch từ BPMN sang BPEL, được gọi là BPMN2BPEL. Tuy nhiên, như đã nói ở trên, chi tiết kỹ thuật của việc cài đặt không được đề cập. Do đó, nghiên cứu của luận án sẽ giúp làm rõ hơn kỹ thuật cài đặt này.

Trong [28], việc dịch từ BPMN sang BPEL lại áp dụng một cách tiếp cận khác so với đa số cách tiếp cận trước đó, sử dụng một ngôn ngữ chuyển đổi khái quát và khai báo, được gọi là AtlanMod Transformation Language (ATL). Ngôn ngữ này được dùng để chuyển đổi từ mô hình nguồn sang mô hình đích bằng cách định nghĩa các quy tắc chuyển đổi (transformation rules).

Tuy nhiên, khả năng mô hình hóa các mẫu và định nghĩa các quy tắc chuyển đổi vẫn chưa được đề cập đến. Hơn nữa, phần chuyển từ ngữ nghĩa dịch sang các quy tắc chuyển đổi cũng không rõ ràng, nên không dễ áp dụng trong thực tế.

KẾT LUẬN CHƯƠNG

Chương này giới thiệu tóm tắt và khái quát các kỹ thuật hiện nay dùng để làm mịn kế hoạch, với hai phương pháp: chi tiết hóa và chuyển đổi ngôn ngữ biểu diễn hoạt động. Cả hai phương pháp đều giúp làm tăng cường tính khả thi của kế hoạch, nhưng lại đi theo các cách tiếp cận khác nhau. Trong khi chi tiết hóa giúp xác định thêm các hoạt động mới nhằm làm rõ hơn các phần còn trừu tượng trong các hoạt động cũ, chuyển đổi ngôn ngữ biểu diễn

hoạt động không bổ sung thêm hoạt động mới, thay đổi cách biểu diễn hoạt động, từ ngôn

ngữ trừu tượng chưa thực thi được (BPMN), sang ngôn ngữ thực thi được (BPEL). Kế thừa các kỹ thuật chuyển đổi ngôn ngữ luồng liên quan đến các kỹ thuật dịch ngôn ngữ hướng đồ thị (như BPMN) sang ngôn ngữ có cấu trúc (hay hướng khối cấu trúc, như BPEL) trước đây, luận án bổ sung thêm một giải thuật nhằm khắc phục một số vấn đề còn tồn tại trong việc phát hiện và xây dựng các mẫu có cấu trúc đầy đủ.

Các biện pháp được trình bày trong chương này giúp hoàn thiện hơn các yêu cầu của khung lưới cộng tác đa dụng, giúp chuẩn bị sẵn sàng cho các bước thiết kế và cài đặt sẽ được trình bày trong Chương 4.

Một phần của tài liệu Khung Cộng Tác Đa Dụng Trong Môi Trường Tính Toán Lưới (Trang 93)