Ôtômát đơn định

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động (Trang 43 - 46)

3) Tối tiểu hóa (Thuật toán 3.8)

Xây dựng ôtômát tối tiểu tương đương với ôtômát có đồ thị chuyển trạng thái như trên hình 3.7–b.

Theo thuật toán 3.8 chúng ta xây dựng được phân hoạch 0 = {Q10, Q20} trong đó Q10 = {q1, q5}, Q20 = { q0, q2, q3, q4} q0 q2 q3 q4 a c b c a a b q5 q1 b

Chúng ta xét tiếp các quan hệ 1–tương đương để tính 1. Ta dễ dàng kiểm tra được q1 và q5 không phải là 1–tương đương nên Q1

1

= {q1 }, Q2 1

= { q5}. Tương tự ta xây dựng được Q3

1 = {q0, q3}, Q4 1 = {q2}, Q5 1 = {q4}.

Tiếp theo chúng ta xét các quan hệ 2–tương đương để tính 2. Trước tiên ta có Q1

2

= {q1 }, Q2 2

= { q5}. Các trạng thái q0 và q3 không phải là quan hệ 2–tương đương nên Q3

2 = {q0}, Q4 2 = { q3} và Q5 2 = {q2 }, Q6 2 = { q4}. Như vậy mỗi một lớp tương đương trong phân hoạch 2 đều chỉ chứa một trạng thái qi Q nên phân hoạch kế tiếp 3 không thay đổi so với phân hoạch 2 và số lớp tương đương của phân hoạch 2 đúng bằng số trạng thái của ôtômát có đồ thị chuyển như trên hình 3.7–b. Vậy ôtômát trên là tối tiểu.

3.2.4 Độ phức tạp tính toán

Tập D được xây dựng như trên D = { Σ *

|| | maxLength} Ta có: size(D) = n1 + n2 + .. + nmaxLength = n.(nmaxLength – 1)/(n - 1) Trong đó, n là số phần tử của bảng chữ cái Σ

Độ phức tạp của giải thuật isTraceOfC( , T) là O(maxLength)

Do đó độ phức tạp của giải thuật makeTraceSet(C, maxLength) là O(maxLength)*O(nmaxLength) = O(maxLength*nmaxLength)

Ta lại có size(L) size(D) nên độ phức tạp của thuật toán makeDFA(L) nhỏ hơn độ phức tạp của giải thuật sinh tập dẫn xuất makeTraceSet(C, maxLength). Vậy độ phức tạp của toàn bộ quá trình xây dựng mô hình thành phần phần mềm C là O(maxLength*nmaxLength).

Chương 4: Thực nghiệm

4.1 Công cụ xây dựng mô hình thành phần phần mềm

Chương 3 đã đề xuất hai phương pháp cho việc xây dựng mô hình mô tả chính xác hành vi của thành phần phần mềm. Phương pháp thứ nhất là xây dựng mô hình sử dụng thuật toán học L* cho việc học lặp đi lặp lại xây dựng và cập nhật các mô hình ứng viên để thu được mô hình tương thích với thành phần phần mềm cần mô hình hóa. Phương pháp thứ hai là xây dựng mô hình sử dụng thuật toán Thompson xây dựng ôtômát hữu hạn như một mô hình chính xác mô tả hành vi của thành phần phần mềm từ biểu thức chính quy biểu diễn ngôn ngữ L gồm tập các dẫn xuất thực hiện được trên thành phần phần mềm đó.

Trong phương pháp thứ nhất, việc học mô hình ứng viên được thực hiện thông qua tương tác với đối tượng Teacher để kiểm tra tính tương thích giữa mô hình ứng viên với thành phần phần mềm. Việc cài đặt giải thuật học thông qua tương tác với đối tượng Teacher là khó khăn. Hơn nữa, với mỗi mô hình ứng viên đưa ra đều phải thực hiện kiểm tra tính tương thích với thành phần phần mềm thông qua giải thuật Vasilevskii – Chow nên độ phức tạp rất lớn.

Trong luận văn, chúng tôi đã cài đặt công cụ xây dựng mô hình thành phần phần mềm sử dụng thuật toán Thompson (gọi là GenModelTool). Hình 4.1 chỉ ra kiến trúc của GenModelTool. Đầu vào của công cụ này là một bảng chữ cái gồm tập tất cả các hành động quan sát được trên thành phần phần mềm và tập các dẫn xuất là chuỗi các hành động có thể thực hiện được trên thành phần đó. GenModelTool sẽ trả về một ôtômát hữu hạn đoán nhận tập dẫn xuất trên.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động (Trang 43 - 46)