Tải bản đầy đủ (.ppt) (32 trang)

Automat va NNHT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (195.65 KB, 32 trang )

<span class='text_page_counter'>(1)</span>Chương 3. AUTOMAT HỮU HẠN. 1.

<span class='text_page_counter'>(2)</span> Nội dung 1. 2. 3. 4. 5. 6.. Định nghĩa ô tô mát hữu hạn Biểu diễn ô tô mát hữu hạn Hàm chuyển của xâu đầu vào. Ngôn ngữ được đoán nhận bởi ô tô mát hữu hạn Ô tô mát không đơn định Sự tương đương ôtômát đơn định và ôtômát không đơn định 7. Quan hệ giữa NNCQ, ô tô mát và VPCQ 8. Một số ví dụ.. 2.

<span class='text_page_counter'>(3)</span> 1. Định nghĩa ôtômát hữu hạn Một ôtômát hữu hạn M={Q, I, f, q0, F}: 1. tập hữu hạn Q các trạng thái, 2. một bộ các đầu vào I, 3. một hàm chuyển f : (trạng thái - đầu vào) trạng thái tiếp theo 4. trạng thái xuất phát q0, và 5. tập con F của Q, bao gồm các trạng thái kết thúc. Biểu diễn ôtômát hữu hạn: bằng bảng trạng thái hoặc đồ thị chuyển trạng thái. Ví dụ 1. • Dựng đồ thị chuyển trạng thái của ôtômát hữu hạn M={Q,I,f, q0, F} với Q={q0, q1, q2, q3}, I={0,1}, F={q0, q3} còn hàm chuyển f được cho trong Bảng 1. 3.

<span class='text_page_counter'>(4)</span> 2. Biểu diễn ôtômat hữu hạn Bảng 1 Xuất phát. Trạng thái. q1. 1. 1 0 1. q0 0. q3 0. 0,1 q2. H.chuyển f 0. 1. q0. q0. q1. q1. q0. q2. q2. q0. q0. q3. q2. q1. q0,q3 – trạng thái kết thúc Hai cách biểu diễn ôtômát 4.

<span class='text_page_counter'>(5)</span> 3. Hàm chuyển của xâu đầu vào Định nghĩa hàm chuyển đối với một cặp trạng thái, xâu đầu vào f(q,x): •Giả sử x= x1x2..xk là một xâu trong I. •Khi đó f(q1, x) là một trạng thái nhận được bằng cách dùng tuần tự các ký hiệu của x từ trái sang phải làm đầu vào, bắt đầu với trạng thái q1. •Từ q1  q2 =f(q1, x1) q3=f(q2, x2).. và qk+1= f(qk, xk). Vậy f(q1, x)=qk+1. •Xâu x gọi là được đoán nhận bởi máy M={Q,I,f, q0, F } nếu nó đưa trạng thái xuất phát tới một trạng thái kết thúc, tức là f(q0, x)  F. 5.

<span class='text_page_counter'>(6)</span> 4. Ngôn ngữ đoán nhận bởi ôtômát • Một ngôn ngữ được máy M đoán nhận, ký hiệu L(M) là tập tất cả các xâu được đoán nhận bởi M. • Hai ôtômát hữu hạn là tương đương nếu đoán nhận cùng một ngôn ngữ. Ví dụ 2. Xác định ngôn ngữ đoán nhận bởi các ôtômát M1, M2, M3 trên Hình 2. 1 Xuất phát q0. 0,1 0. q1. • L(M1)= {1n | n=0,1,2,.. }. 6.

<span class='text_page_counter'>(7)</span> 4. Ngôn ngữ đoán nhận bởi ôtômát Còn M2 0. Xuất phát. q0. 0. q1. 1. 0,1. q2. q3. L(M2) = {1, 01}. 1. và M3. 0 0. 0,1. q0. 1. q1. 1. q3. q2 0,1. L(M3) = {0n, 0n10x | n=0,1,2,.., và x là xâu bất kỳ} 7.

<span class='text_page_counter'>(8)</span> 4. Ngôn ngữ đoán nhận bởi ôtômát • Ví dụ 3. Cho Ôtô mát đơn định M={Q, I, f, q0, F} với Q= {q0, q1, q2, q3}, I= {0,1 }, q0 trạng thái ban đầu, F= {q3 } trạng thái kết thúc, hàm chuyển f được cho như sau: Trạng thái. q0 q1 q2 q3. Ký hiệu vào 0 1. q1 q3 q0 q3. q2 q0 q3 q3. Xét các xâu 1 = 10110; 2=110, 3=10011. Ô tô mát M có đoán nhận các xâu này không? a)Dãy trạng thái khi cho 1vào là: 1 = 1 0 1 1 0 $       q0 q2 q0 q2q3 q3 F. Vậy M đoán nhận xâu 1 = 10110 b) Với 2=110 8.

<span class='text_page_counter'>(9)</span> 4. Ngôn ngữ đoán nhận bởi ôtômát dãy trạng thái của M là: 2 = 1 1 0 $     q0  q2  q3q3F; M đoán nhận xâu 2 = 110 c) Với xâu 3=10011 dãy trạng thái của M là: 3 = 1. 0. 0. 1. 1. $.       q0 q2  q0 q1 q0q2 F nên máy M không đoán nhận xâu này. • Quá trình đoán nhận một xâu đối với ôtômát đơn định là qt biến đổi từ trạng thái ban đầu đến trạng thái cuối cùng có phải là trạng thái kết thúc không. 9.

<span class='text_page_counter'>(10)</span> 5. Ôtômát không đơn định • Định nghĩa: Một ôtômát hữu hạn không đơn định M={Q, I, f, q0, F} gồm: một tập hữu hạn Q các trạng thái, một bộ các đầu vào I, một hàm chuyển f gán cho mỗi cặp trạng thái- đầu vào, một tập các trạng thái, trạng thái xuất phát q0, và tập con F của Q, gồm các trạng thái kết thúc. Biểu diễn ôtômát hữu hạn không đơn định bằng bảng trạng thái hoặc đồ thị chuyển trạng thái.. 10.

<span class='text_page_counter'>(11)</span> 5. Ôtômát không đơn định Bảng trạng thái. Ví dụ 4. Tìm đồ thị chuyển trạng thái cho ôtômát hữu hạn không đơn định với bảng trạng thái ở bên, các trạng thái kết thúc là q2 và q3.. Trạng thái. Hàm chuyển Đầu vào 0. q0 q1 q2. {q0, q1} q0. q3. {q0, q1, q2}. 1 q3 {q1, q3} {q0, q2} q1. 11.

<span class='text_page_counter'>(12)</span> 5. Ôtômát không đơn định Ôtômat hữu hạn không đơn định. 1. 12.

<span class='text_page_counter'>(13)</span> 5. Ôtômát không đơn định Ngôn ngữ được đoán nhận bởi ôtômát không đơn định Ví dụ 5. Cho ôtômát không đơn định M=<Q,I,q0,F,f> với I= {0, 1 }, Q= {q0, q1, q2, q3, q4}; q0 trạng thái ban đầu; F= { q2, q4 }- tập trạng thái kết thúc. Hàm chuyển như bên cạnh. • Với ô tô mát không đơn định hàm chuyển f (q,a)  Q nên sẽ có rẽ nhánh. • Lập dãy trạng thái của máy ứng với xâu đầu vào dưới dạng một cây gốc q0.. Trạng thái q0 q1 q2 q3 q4. Ký hiệu vào 0. 1. {q0, q3}  q2. {q0, q1}. q4 q4. q2 q2  q4. 13.

<span class='text_page_counter'>(14)</span> 5. Ôtômát không đơn định • Trong cây này nếu có một đường đi từ gốc q0 tới một lá chứa trạng thái kết thúc, thì M đoán nhận xâu vào đang xét. • Nếu không có một lá nào như vậy thì M không đoán nhận xâu này. • Chẳng hạn với xâu vào 1=01001 đối với máy M trên cây đoán nhận xâu này;. q0 0. 0. q0. q3 1. 1. q1. q0 0. q0. • Xâu 2=010 không được đoán nhận. . . q3 0. 0. q0 1. 0. 0. q0 0. 1. 1 q1. q3. q4. 1. 1. . q4 14.

<span class='text_page_counter'>(15)</span> 6.Sự tương đương của Ô đơn định và không đơn định • Theo định nghĩa ô tô mát đơn định và ô tô mát không đơn định thì lớp ngôn ngữ đoán nhận bởi ô tô mát đơn định(M) nằm trong lớp ngôn ngữ đoán nhận bởi ô tô mát không đơn định (N). • Và người ta cũng chứng minh điều ngược lại: lớp ngôn ngữ đoán nhận bởi ô tô mát không đơn định nằm trong lớp ngôn ngữ đoán nhận bởi ô tô mát đơn định. Hay: • Định lý 1 . Lớp ngôn ngữ đoán nhận bởi ô tô mát đơn định trùng với lớp ngôn ngữ đoán nhận bởi ô tô mát không đơn định trên bảng ký tự I hay L(M)=L(N). 15.

<span class='text_page_counter'>(16)</span> 6.Sự tương đương của Ô đơn định… • Xây dựng ô tô mat đơn định tương đương theo cách sau: • Cho ô tô mat không đơn định M=< Q,I,F,q0,f>. Xây dựng ô tô mat đơn định M’=< S,I’, F’,s0,f’> sao cho:  I’=I của M;  Tập trạng thái:. S {s 0 , s1 ,...s2|Q|  1 | si  Q (i 0,1,..,2|Q|  1)} =tập tất cả các tập con của Q, và s0 = {q0 }  F’= {s | s  S và s  F   }  f’ :S x I* S; xác định với mọi s S và mọi x  I* có:. f ' ( s, x)  f (q, x) qs. Khi đó M’ là ô tô mat đơn định và M’  M. 16.

<span class='text_page_counter'>(17)</span> 6.Sự tương đương của Ô đơn định… Ví dụ 6. Cho ô tô mát không đơn định M={Q, I, f, q0, F} Hãy tìm L(M)=? Xây dựng ô tô mát đơn định M’ tương đương M? Bài giải. Q q0 q1 q2. 0 {q1,q2} q1 . 1  q2 q2. 0. X. phát q0. q1. 0. 1. q2. 0 1. • L(M)= {0n, 0m1k , 01l | n≥1, m≥1,k≥1, l≥0 • Xây dựng M’ đơn định và tương đương với M 17.

<span class='text_page_counter'>(18)</span> 6.Sự tương đương của Ô đơn định… b) Xây dựng ô tô mát đơn định tương đương như sau: • M’=< S, I’, f’, s0, F’ >; I’= I = {0,1 } • S= {s0, s1, s2, s3, s4, s5, s6, s7} trong đó • s0=q0, s1=q1, s2=q2, s3= {q0, q1}, s4= {q0, q2}, s5= {q1, q2}, s6= {q0, q1,q2}, s7=  • Hàm chuyển f’ như sau: Q. 0. 1. Q. 0. 1. s0. s5. s7. s4. s5. s2. s1. s1. s2. s5. s1. s2. s2. s7. s2. s6. s5. s2. s3. s5. s2. s7. s7. s7. • s0=q0 là trạng thái ban đầu, • F’= {s1, s2 ,s3, s4, s5,s6 }- tập trạng thái kết thúc.. 18.

<span class='text_page_counter'>(19)</span> 6.Sự tương đương của Ô đơn định… Ví dụ 7. Cho ô tô mat không đơn định M=<Q,I,F, q0,f>: Q. I= { 0. 1. }. q0. {q0, q1}. {q3}. q1. {q0}. {q1, q3}. q2. . {q0, q2}. q3. {q0, q1,q2}. {q1}. q0 trạng thái ban đầu; F={q2, q3} - tập trạng thái kết thúc. Bài giải: a) Đồ thi chuyển của M:. a) Đưa M về dạng đồ thị chuyển b) Xây dựng ô tô mat đơn định M’=<S,I,F’,s0,f’>M 1 0. q1. 0 0. 1 0,1 q3. 1. q0 0. 0. 1 q2. 1 19.

<span class='text_page_counter'>(20)</span> 6.Sự tương đương của Ô đơn định… • M’=< S, I, f’, s0, F’ >; • I= {0,1 } S={s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15} trong đó: s0=q0, s1=q1, s2=q2, s3=q3; s4= {q0, q1}, s5= {q0, q2 }, s6= {q0, q3}, s7= {q1, q2}, s8= {q1, q3}, s9= {q2, q3}; s10= {q0, q1,q2}, s11= {q0, q1,q3}, s12={q0, q2,q3}; s13={q1,q2,q3}, s14= {q0, q1,q2, q3}; s15 =  ; s0 = {q0} - trạng thái ban đầu. • F’= { s2 ,s3, s5, s6,s7 ,s8, s9 ,s10, s11, s12,s13, s14}; • Hàm chuyển f’ như sau: 20.

<span class='text_page_counter'>(21)</span> 6.Sự tương đương của Ô đơn định… • Hàm chuyển như bảng sau: S. 0. 1. S. 0. 1. s0. s4. s3. s8. s10. s8. s1. s0. s8. s9. s10. s10. s2. s15. s5. s10. s4. s14. s3. s10. s1. s11. s10. s8. s4. s4. s8. s12. s10. s14. s5. s4. s12. s13. s10. s14. s6. s10. s8. s14. s10. s7. s0. s14. s15. s15. s14 s15. 21.

<span class='text_page_counter'>(22)</span> 7.Quan hệ giữa NNCQ, ô tô mát và VPCQ Định lý 2 (Định lý Kleene). Tập A là NNCQ trên bảng I khi và chỉ khi nó được đoán nhận bởi ô tô mát M={S, I, f, s0, F} sao cho L(M)=A. Định lý 3 . Đối với VPCQ suy rộng bất kỳ G=(T,N,s0,P) bao giờ cũng xây dựng được ô tô mát hữu hạn M={S, I, f, q0, F} sao cho L(M)=L(G). Và ngược lại: Đối với ô tô mát hữu hạn bất kỳ M={S, I, f, q 0, F} bao giờ cũng xây dựng được VPCQ suy rộng G=(T,N,s0,P) sao cho L(G)=L(M).. 22.

<span class='text_page_counter'>(23)</span> 7.Quan hệ giữa NNCQ, ô tô mát và VPCQ BTCQ (suy rộng) Biểu diễn. NNCQ (suy rộng) Sinh ra. xây dựng Đoán nhận. VPCQ (suy rộng). xây dựng. ÔT Ô M ÁT HỮU HẠN 23.

<span class='text_page_counter'>(24)</span> 8. Một số ví dụ Ví dụ 1. Cho ô tô mát M=<S, I, f,s0, F> a) M đơn định hay không? Đưa về dạng bảng chuyển. b) Tìm L(M)=? c) Tìm BTCQ của L(M) d) Xây dựng VPCQ G sao cho L(G)=L(M). a. X.phát. a. s0. b. s1. a. b. s2. b. s3. Bài giải. a) M không đơn định vì f(s0,a)={s0, s1}. Bảng 1. là bảng chuyển. 24.

<span class='text_page_counter'>(25)</span> 8. Một số ví dụ • S={s0, s1, s2, s3}; • I= {a,b }; s0trạng thaí ban đầu, • F= {s0, s3 }. S. a. b. s0 s1 s2 s3. {s0, s1} s3  . s3 s2 s1 . b)L(M)= {,an,anb,am a(bb)ka| n,m,k≥0 }, Chỉ ra các xâu được M đoán nhận; s -trạng thái ban đầu; F= {s , s , } • f(s0, )=s0, • f(s0, aa)=f(s0, a)  f(s1, a)= {s0, s1}  {s3 }={s0, s1, s3}; 0. 0. 3. Do f(s0, aa)  F  nên aa được đoán nhận. • f(s0, b)=s3 mà s3 F nên xâu b được đoán nhận. Tương tự cho các trường hợp còn lại.. 25.

<span class='text_page_counter'>(26)</span> 8. Một số ví dụ c) BTCQ là a*a*b aa*(bb)*a d) Xây dựng VPCQ G=<T,N,S,P>, T={a,b}, N={S, A,B} P={S,SaS, Sb, SaA, AaA, AbB, BbA, Aa} CM: L(G)= {,an,anb, am(bb)ka| n,k≥0 , m1} Vậy L(G)=L(M) Ví dụ 2 Cho L={ab(cdcd)nba,xmaba, b(xy)kxb| n,k≥0,m≥1} a) Xây dựng ô tô mat đơn định sao cho L(M)=L; b) Xây dựng VPCQ suy rộng sao cho L(G)=L c) Chỉ ra BTCQ của L. Bài giải. 26.

<span class='text_page_counter'>(27)</span> 8. Một số ví dụ a) Sơ đồ của M: c X.phát. s0. a. s1. b. x. b. a. s9. x. s10. d. s2 b. s8. s3. b. s4 d. s5. c. s6 a. x y s11. b. s7. Dễ thấy L(M)={ab(cdcd)nba,xmaba, b(xy)kxb| n,k≥0,m≥1} • Chứng minh? Nên L(M)=L 27.

<span class='text_page_counter'>(28)</span> 8. Một số ví dụ b)VPCQ G=<T,N,S,P> T= {a,b,c,d,x,y}, N= {S, … } P= {SaA, AbB, BcC,CdD, DcE, EdB, BbF, Fa, SxH, HxH, HaK, KbF, SbL, LxR, RyL,Rb};. VP này sinh Ngôn ngữ L(G): CM L(G) ={ab(cdcd)nba,xmaba, b(xy)kxb| n,k≥0,m≥1} D(abba)=D(S,aA, abB, abbF, abba) D(xaba)=D(S,xH,xaK, xabF,xaba) D(bxb)=D(S,bL,bxR, bxb) … c) BTCQ biểu diễn NNCQ L là; BTCQ= ab(cdcd)*ba  xx*aba b(xy)*xb 28.

<span class='text_page_counter'>(29)</span> 8. Một số ví dụ Ví dụ 3.Cho BTCQ: 0(11)*000*1010* a) Tìm L là NNCQ biểu diễn bởi BTCQ trên . b) Xây dựng VPCQ suy rộng G sao cho L(G)=L c) Xây dựng ô tô mat M sao cho L(M)=L(G). Bài giải. a) L={0(11)n0, 00m10, 10k, | n,m,k≥0} b) G=<T,N,S,P>; T={1,0}, N={…} P={S , S0A, A1B, B1A, A0, S0C, C0C,C1D, D0, S1E, E0E, E }; VPCQ suy rộng này sinh L tức là L(G)=L thật vậy:. 29.

<span class='text_page_counter'>(30)</span> 8. Một số ví dụ • • • •. D()=D(S,) D(0(11)n0)=D(S,0A,01B,011A,..,0(11)nA, 0(11)n0) D(00m10)=D(S,0C,0(0)m1D,0(0)m10) D(10k)=(S,1E,10E,…,10kE, 10k); Là các dẫn xuất đầy đủ trong L(G). c) Ô tô mát M mà L(M)=L(G)=L: 0 1. q0. q6 q1. 0 0. 0. 1 1. q2. 0. q4. 1. q5. 0. q3 30.

<span class='text_page_counter'>(31)</span> 8. Một số ví dụ • Ta thấy: f(s0,0(11)n0)=f(s4,(11)n0) f(s1,(11)n0)=f(s2, 1(11)n-10) = f(s1,(11)n-10)=…=f(s1,0)=s3F; f(s0,00m10)=f(s4,0m10) f(s1,0m10)=f(s4, 0m-110) = f(s4,10)=f(s5,0)=s3F; f(s0,10k)=f(s6,0k)= f(s6,0k-1)=…= f(s6,0)=s6 F; f(s0,)=q0 F;. 31.

<span class='text_page_counter'>(32)</span> Bài tập về nhà. 32.

<span class='text_page_counter'>(33)</span>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×