Một số khái niệm liên quan

Một phần của tài liệu Phương pháp sinh mô hình tự động cho phần mềm dựa trên thành phần (Trang 42 - 45)

Phần 4.1 này trình bày một số khái niệm nhằm phục vụ cho việc biểu diễn biểu thức chính quy và ôtômát tương ứng của nó sau này.

Định nghĩa 4.1: Độ dài của biểu thức chính quy R, kí hiệu là |R|, là số lần xuất hiện của các kí tự bao gồm , kí tự trong bảng chữ cái, dấu ngoặc đơn, dấu sao và phép toán thay thế (|).

Ví dụ 4.1: Cho biểu thức chính quy (ab*|(cd)), ta thấy rằng theo định nghĩa 4.1, độ dài của biểu thức chính quy đã cho là 10.

Định nghĩa 4.2: Khối cơ bản là một biểu thức chính quy con của R mà chứa tối thiểu một lần xuất hiện của các kí tự trong bảng chữ cái.

Các khối không cơ bản là các thành phần của biểu thức chính quy được chia tách bởi các khối cơ bản.

Mỗi một khối cơ bản có thêm hai thuộc tính gọi là nullstar. Thuộc tính null

trong khối cơ bản bằng {} khi và chỉ khi khối cơ bản đó chấp nhận chuỗi rỗng, ngược lại thuộc tính này bằng . Thuộc tính star để chỉ có hay không có một kí tự “*” trên biểu thức chính quy gắn với khối này.

Ví dụ 4.2: Khối cơ bản và khối không cơ bản của biểu thức chính quy.

Hình 4.3: Khối cơ bản và khối không cơ bản của biểu thức chính quy.

Hình 4.3 cho thấy quá trình phân tích biểu thức chính quy thành các khối cơ bản và không cơ bản đan xen lẫn nhau. Mỗi khối cơ bản B1, B2 chứa một biểu thức chính quy con tương đương là r1 và r2. Các khối không cơ bản b1, b2 được ngăn cách bởi các khối cơ bản B1 và B2.

Định nghĩa 4.3: NNFA (normal NFA) là một NFA mà tất cả các cạnh dẫn đến cùng một trạng thái có cùng nhãn. Ta sẽ đánh nhãn cho trạng thái thay vì cho cạnh.

NNFA = (, Q, δ, I, F, A), trong đó:

 : Bảng chữ cái,

 Q: Tập trạng thái,

 δ  QxQ: Tập các cạnh chưa đánh nhãn,

 I  Q: Tập trạng thái bắt đầu,

 F  Q: Tập trạng thái kết thúc, và

 A: Q  : Ánh xạ cho các trạng thái q  Q thành một nhãn thuộc .

Chú ý 4.1: Một McNaughton/Yamada NNFA (viết tắt là MYNNFA) là một NNFA với một trạng thái bắt đầu với bậc vào là 0.

Định nghĩa 4.4: Ôtômát đuôi của một MYNNFA M= (, Q, δ, I={q0}, F, A) là một NNFA MT = (T

, QT, δT, IT, FT, AT). Trong đó: T

= , QT = Q – {q0}, δT = {[x,y]

 δ | x ≠ q0}, IT = {y : [q0,y]  δ}, FT = F – {q0}, AT = A.

Ví dụ 4.3: Hình 4.4 và 4.5 minh họa một ví dụ về một ôtômát đuôi của MYNNFA.

Hình 4.4: MYNNFA tương đương của biểu thức chính quy abb(a|b)*.

Hình 4.5: Ôtômát đuôi của MYNNFA tương đương với biểu thức chính quy abb(a|b)*.

Định nghĩa 4.5: Cho hai tập hợp G và H, cặp của G và H được định nghĩa như sau:

pair(G,H) = {[G,H]}, nếu cả G và H đều khác rỗng; ngược lại, pair(G,H) = .

Chú ý 4.2: Đặt nredM = FMTIMT - MT, ta gọi biểu diễn trễ của nó là lazynred. Tương tự, chúng ta cũng có biểu diễn trễ của δ được gọi là lazyδ. Cả lazynredlazyδ đều là một danh sách các cặp của hai tập hợp. Chúng ta không tính toán ngay biểu thức FMTIMT

trong suốt quá trình duyệt biểu thức chính quy mà chúng ta duy trì một cặp của hai tập hợp [FMT, IMT] cho đến khi chúng ta có biểu diễn cuối cùng của ôtômát đuôi tương đương với biểu thức chính quy đã cho.

Định nghĩa 4.6: CNNFA.

Biểu diễn CNNFA của một ôtômát đuôi của ôtômát MYNNFA MT = (M𝑇, QM𝑇,

δM𝑇, IM𝑇, FM𝑇, A𝑇M) là một biểu diễn nén được định nghĩa là bộ 7 thành phần như sau: PT = (P𝑇, QP𝑇, lazynredP𝑇, lazyδP𝑇, IP𝑇, FP𝑇, A𝑇P), trong đó:

 Q𝑇P = QM𝑇,

 lazynredP𝑇 là biểu diễn trễ của nredM = FMTIMT - MT,

 lazyδP𝑇 là biểu diễn trễ của δM𝑇,

 IP𝑇 = IM𝑇,

 FP𝑇 = FM𝑇, và

 A𝑇P = A𝑇M.

Từ một ôtômát đuôi của MYNNFA MT = (T, QT, δT, IT, FT, AT) và nullMta có thể xây dựng lại MYNNFA ban đầu M như sau:

  = T,  Q = QT{q0},  δ = δT {[q0,y] | y  IT},  I = {q0},  F = FT {q0}nullM, và  A=AT.

Trong đó, {q0}nullM = {q0} nếu nullM = {}, ngược lại {q0}nullM = .

(4.1)

Chú ý 4.3: Đôi khi, ta không viết  trong biểu diễn của NNFA, MYNNFA, ôtômát đuôi của MYNNFA và CNNFA khi nó đã quá rõ ràng. Đôi khi ta cho phép tập các nhãn A là không xác định với các trạng thái mà bậc vào là 0. Ví dụ trong trường hợp trạng thái bắt đầu của một MYNNFA.

Trong CNNFA, chúng ta biểu diễn các tập hợp FI bằng việc sử dụng cấu trúc dữ liệu gọi là F-ForestI-Forest như mô tả sau đây:

 Một tập được biểu diễn bằng một cây nhị phân.

 Các lá của cây được nối với nhau bằng danh sách liên kết đôi.

 Gốc của cây chứa con trỏ đến danh sách lá của cây.

 Hợp của hai tập hợp là một cây mới với gốc mới, hai tập đó trở thành cây con trái và cây con phải của cây mới. Phép hợp này có thể thực hiện được trong thời gian đơn vị đối với hai tập không giao nhau.

Một phần của tài liệu Phương pháp sinh mô hình tự động cho phần mềm dựa trên thành phần (Trang 42 - 45)

Tải bản đầy đủ (PDF)

(78 trang)