3.4 Phép đơn định hoá một Otomat

Một phần của tài liệu Bài giảng ngôn ngữ hình thức và ôtômat (Trang 27 - 30)

Giả sử A = (S, , S0, , F) là một Otomat chưa đơn định hoặc chưa đầy đủ. Cần xây dựng otomat M đơn định và đầy đủ tương đương với A(đoán nhận cùng ngôn ngữ do A đoán nhận).

Thuật toán đơn định hoá:

Giả sử A=(S, , S0,, F) là một Otomat hữu hạn không lối ra tùy ý. Để xây dựng otomat M hữu hạn đơn định, dầy đủ và tương đương với A ta thực hiện một số bước sau:

1) Xác định hàm hai biến : T: 2s   2s

bằng các quan hệ sau:

  s  S,  a , T(s, a)={s’  S | s (s,a) }

  B  S,  a  , T(B,a)= sB T(s,a)

2) Khi đó otomat M là một bộ năm:

M = (Q, , Q0, f, P )

trong đó: Q  2s, Q0 = {S0}, P = {q  Q| q  F  }

Và hàm chuyển trạng thái f được xác định bằng quan hệ sau:

 q  Q,  a   (f(q, a) = T(q, a))

Với cách xác định như trên ta có T(M) = T(A). Ví dụ 1.3.5. Cho Otomat đơn định

A1 = ({s0, s1, s2, s3}, {a, b, c}, s0, 1, {s2, s3})

với hàm chuyển  được xác định bằng bảng chuyển sau :

1 s0 s1 s2 s3

a s1 s2 s1

b s2 s2 s3

c s3 s3 s2

24

Vì A đã đơn định nhưng chưa đầy đủ nên ta chỉ cần thêm vào một trạng thái mới (s4) để cho hàm chuyển xác định khắp nơi, ta được otomat M1tương đương với A1

M1 = ({s0, s1, s2, s3, s4}, {a, b, c}, s0, 1, {s2, s3})

Trong đó hàm chuyển được xác định bằng bảng sau:

1 s0 s1 s2 s3 s4 a s1 s2 s1 s4 s4 b s2 s2 s4 s3 s4 c s3 s4 s3 s2 s4 Ví dụ 1.3.6 : Cho Otomat A A= ( { s0, s1, s2}, {0,1}, {s0}, , {s2}) trong đó  xác định bằng bảng sau :  s0 s1 s2 0 {s0, s1} s1 1 s2 s0

A chưa đơn định và đầy đủ, tiến hành đơn định hoá Otomat ta được Otomat đơn định, đầy đủ như sau : T(s0, 0) = {s0, s1} = q1 T(s0, 1) =  = q2 T(s1, 0) =  = q2 T(s1, 1) = {s2} =q3 T(s2, 0) = {s1}= q4 T(s2, 1) = {s0} = q0 T(q1, 0)= T( {s0, s1}, 0)= T(s0, 0)  T(s1, 0) = {s0, s1}   = {s0, s1} = q1 T(q1, 1) = T({s0, s1}, 1) = T(s0, 1)  T(s1, 1) = {s2} = q3 T(q3, 0) = T(s2, 0) ={s1}= q4 T(q3, 1) = T(s2, 1) ={s0} = q0 T(q4, 0) = T(s1, 0) =  = q2

25 T(q4, 1) = T(s1, 1) = {s2} =q3

Ta xác định được Otomat đơn định đầy đủ A1với Otomat A như sau :

A1= ({q0, q1, q2, q3, q4}, {0, 1}, {q0}, 1, {q3)

và hàm chuyển 1được cho bằng bảng sau :

1 q0 q1 q2 q3 q4

0 q1 q1 q2 q4 q2

26

2. 4. Sự tƣơng đƣơng của nguồn và Otomat hữu hạn không lối ra

Định nghĩa: Nguồn I và Otomat hữu hạn không lối ra A được gọi là tương đương nếu chúng

sinh ra cùng một ngôn ngữ, nghĩa là N(I)=N(A).

Vấn đề đặt ra là: Khi có nguồn I cần xây dựng Otomat A tương đương với nó, và ngược lại, khi cho một otomat hữu hạn không lối ra cần xây dựng nguồn I tương đương với otomat này.

2.4.1. Xây dựng otomat tƣơng đƣơng với nguồn

2.4.1.1. Xây dựng Otomat có thể không đơn định tương đương với nguồn

Thuật toán:

Giả sử có nguồn I trên bảng chữ cái  .Để xây dựng otomat A có thể không đơn định đầy đủ tương đương với nguồn I ta thực hiện một số bước sau:

1) Xây dựng hàm hai biến T:

Một phần của tài liệu Bài giảng ngôn ngữ hình thức và ôtômat (Trang 27 - 30)