1. Trang chủ
  2. » Công Nghệ Thông Tin

Ngôn ngữ hình thức và ôtômat chương 1

7 227 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 357,19 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngôn ng hình th c và ÔtômatFormal Language & Automata PGS.TS... Weyuker, Computability, Complexity and languages, Academic Press, 1983 J.. Ulman, Introduction to Automata Theory, Languag

Trang 1

Ngôn ng hình th c và Ôtômat

(Formal Language & Automata)

PGS.TS Phan Huy Khánh

khanhph@vnn.vn, phk@ud.edu.vn

2/38

Chào m i ng i !

Bonjour Tout le Monde ! Hello Everyone!

!

To Start…

“One picture is worth more than ten thousand words”

Chinese Proverb

“One picture is worth more than ten thousand words”

Chinese Proverb

4/38

(Hai l p tr ng quy t đ t đ nh) :

Chi u th Hai hàng tu n, t i A5-104, 13H30

Nh ng bu i đ i đ u :

Chi u th Hai 14/01 Sáng th B y, 26/01/2008, 7H00 Sau T t, t.29, 13H30, 25/02/08

M t và “chuy n nh ” b t đ t đ u môn h c

Th t c “chào h i”:

Vào l p mu n, hoc ra kh i lp, không c n xin phép

Khi Gi ng viên (GV) hi, cn :

Nói rõ vàto ging đng đ c l p cùng nghe đng nghe đ c

Khi tr l i, c n th c hin ngay :

T ch i, không bi t, hoc tr l i tr c tip vào câu h i

Chu n b h c :

L p s ch s (m i ngha), s n sàng cho bu i dy

Ng i t p trung gn tôi, không ng i kiu “gió đ a ao b đ a ao bè ”

Giúp GV chun b màn hình, đ đèn chiu, cm đim đi n

K t thúc môn h c :

Giúp GV d n dp màn hình, đ đèn chi u, cm đim đin

C nên ghi bài gi ng trên l p vào s , v h c trò ?

Hc b ng slide c n cóTLTK+ cách ghi h p lý

N u không s xy ra hi n t ng “TH A TAY”, “đ tay nhà”

Ghi bài gi ng trên l p vào gi y r i A4

Mi môn h c m t t p giy A4, cómàu đu đánh d u phân bi t Nguyên t c thao tác ti p th tri th c và ng d ng : Thu nh t, lit kê, vun x i

Phân loi, s p x p Khoanh vùng, gi i h n

Ch đ đnh, l a ch n, tìm ki m

Vn d ng, hoàn thi n, làm giàu tri th c Tìm ki m phm ph ng phng pháp h c t p hi u qu Phát huy các giác quan : m tn, tain, mi ngn, m in, tayn

Trang 2

có th “t c ký”

Dùng S d ng b ng vi t t t (BVT) :

t đ đnh ngha ch vi t t t c a riíng mình

Víd : ql = qu n lý

pp = phph ng phng phâ

pp+ = phđn ph i

= ng i

Luôn mang BVT theo mình, m i lúc m i n i

Ch ch n ghi câc ý chính, hay t khoâ

Không nh t thi t ghi c cđu

Tìm m i câch đch đ v , thay vìch vi t !

8/38

M c đ c đ ích môn h c

H c ph n cung c p c s toân h c c a câc phc ph ng phng phâp hình th c trong vi c xđy d ng câc ngôn ng l p trình Giúp sinh viín hi u đu đ c nh ng y u t c b n c a m t ngôn ng hình th c nh b ng ch , t v ng, cúphâp vă

ng ngha

H c ph n trình băy câc công c ch y u đu đ lăm vi c v i

c c ngôn ng hình th c lă v n ph m vẵtômat, phđn lo i ngôn ng c a Chomsky :

Ngôn ng chính quy Ngôn ng phi ng c nh Ngôn ng c m ng c nh Ngôn ng loi 0 (g n g i v i ngôn ng t nhiín)

9/38

Ki n th c yíu c u Môn h c yíu c u ki n th c tiín quy t : Toân cho Tin h c

Lý thuy t

T p h p

th

K thu t ch ng minh

Qui n p

Ph n ch ng

K thu t mô ph ng

Câc ki n th c c n thi t khâc :

C s L p trình

Môn hc đòi hc đòi h i m t s k n ng :

Kh n ng đ n ng đ c hiu v n đn đ

Trình băy din đn đ t vn đn đ (ngh thu t!)

Kh n ng th o lu n, lăm vi c theo nhóm

Georg Cantor (1845–1918)

Founder of Modern Set Theory

10/38

Yíu c u :

Hi u ni dung trình bă trínl p

Th c hin câ băit pv nhă

Kh n ng th c hănh Tinh th n thâi đi đ v n ng l c h c t p Nghe gi ng, ghi chĩp

Tr l i vă đ đ t cđu hi Tham kh o tăi li u, truy cp internet Tham gia hc nhóm, t p tho lun văthuy t trình

Ki m tra gi a k : Băi thi vi t 15-30 phút

Ki mtracu ik : Băi thivi t 60-75 phút

Ch ng

Ch ng 1 M đ đ u

Ch ng

Ch ng 2 Ôtômat h u h n (ôhh/ôh2/ô2h)

Ch ng

Ch ng 3 V n ph m chính qui (VPCQ)

Ch ng

Ch ng 4 Ôtômat đÔtômat đ y xu ng (ôđxôđx)

Ch ng

Ch ng 5 Mây Turing (MT)

Tăi li u tham kh o Giâo trình + Băi gi ng trín l p

Tăi li u Nguy n V n Ba, Ngôn ng hình th c, NXBKH&KT, 2002

SM D Davis, E J Weyuker, Computability, Complexity and languages, Academic Press, 1983

J E Hopcroft, J D Ulman, Introduction to Automata Theory, Languages and Computation, Addison -Wesley, 1979 Phan Huy Khânh Lý thuy t ngôn ng hình th cv ôtômât Tăi li u l u hănh n i b

H V n Quđn Giâo trình lý thuy t ôtômât văngôn ng hình

th c NXB HQG HCM, 2002

A Salomaa, Nh p môn tin h c, lý thuy t tính toâ v ôtômat

NXB Khoa h c K thu t, Hă i 1992 Internet: tìm ki m Google.com.vn, wikipedia

G p cô H ng, v n

th khoa CNTT (chúng mình ?)

G p cô H ng, v n

th khoa CNTT (chúng mình ?)

Trang 3

Vài dòng l ch s Cantor (1845-1918)

Lý thuy t t p h p

Hilbert (1862-1943)

Toán h c ch t ch

Gödel (1906-1978)

Lý thuy t v tính không đ y đ

Church, Kleene, Post, Markov, von Neumann, Turing

CM t đlý mô (Preuves de quels théorèmes)?

CM v i thtoán mô (Avec quels algorithmes)?

Turing (1912-1954)

Máy Turing

McCulloch, Pitts

M ng n -ron nhân t o

Chomsky

Mô hình toán h c mô t ngôn ng - hình th c hoá ngôn ng

“N u tôi có m t s thành công nh t đ nh trong toán h c thì đó là vì tôi luôn th y nó r t khó”

Hilbert

“N u tôi có m t s thành công nh t đ nh trong toán h c thì đó là vì tôi luôn th y nó r t khó”

Hilbert

“T m nhìn ta th t ng n

mà đã th y bao th đ làm”

Alan Turing

“T m nhìn ta th t ng n

mà đã th y bao th đ làm”

Alan Turing

14/38

M t s khái ni m

B ng ch (Σ) Câu (xâu) Ngôn ng

Mô t ngôn ng Các phép toán (θ) trên ngôn ng (ng2)

Bi u th c chính qui (BTCQ) Các ngôn ng phi chính qui

Vn đn đ bi u din ngôn ng

15/38

B ng ch (alphabet) :

làmt t p h u hn các ký t (characters), hay ký t ng/

ký hi u (symbol), ký hiu b i ch ci Hy lp Σ

Kích th c ca b ng ch là ph n t c a bng ch đ đó,

ký hi u |Σ|, hay Card(Σ) (Cardinality)

Víd m t s b ng ch Σ:

{ ♣, ♠, ♦, ♥} |Σ| = 4

{0, 1, 2, , 9} Ch s th p phân, |Σ| = 10

{I, V, X, L, C, D, M} Ch s La Mã

{aA, bB, cC, , zZ} Ch cái La tinh

{αΑ, βΒ, χΧ, , ζΖ} ch cái Hi L p

B ng mã ASCII

16/38

Cho tr c m t b ng ch Σnào đo đó

M t câu(phrase, word), hay xâu(string), trên Σ:

làm t dãy h u h n các phn t c a Σ,

ký hi u b i w(hay x, y, u, v )

d i c a m t câu làs ký t cóm t trong câu,

ký hi u là|w| hay length(w)

d i câu là u h n,

nh ng không h n ch làcóbao nhiêu ký t

M t câu cóth cót 0 đ n n ký t tu ý Câu có đ đ dài b ng 0 đ đ c g i làcâu r ng (empty word),

ký hi u ε, ho c e, ho c λho c ω

Víd

B ng ch Σ Câu trên Σ

{ 0, 1 } ε, 0, 1, 00, 01, 10, 11, 100

{ a z } a, ab, zt, computer

{ 0, , 7, ♠, ♣, ♦, ♥} 4♣3♦2♠, 1234, ♣♠

ASCII Mt cht ch ng trng trình C, Pascal, Java, VB

Cho m t câu w cócó |w|=n, ng i ta cóth trích ra t w

m t ký t nào đo đócóv tríx c đc đnh trong ph m vi 1 n

Víd câu w=aaabbaabbba có|w|=11,

cóth trích ra các ký t :

w(1) = a, , w(4) = b, , w(11) = a

Phép ghép ti p các câu Cho hai câu u vàv trên Σ

Phép ghép tip(Concatenation) c a u vàv làcâu w= uv Ngha làcâu wg m hai ph n :

u đgl l

u đgl là n t (prefix)

r i đi đ n v là u t (postfix) c a w

Tr ng h p câu w = xuy làghép ti p c a ba câu x, u, y,

u đgl

u đgl trung t (infix) c a w

Ng i ta còn g i câu r ng εlàcâu đ n v

vìcóεw = wε= w

v i w làm t câu b t k trên Σ

Returning

Trang 4

Các phép toán khác trên xâu

Cho các câu w trên Σ

Phép o ng c(Reversion) m t câu w, ký hi u wR:

L câu w đ đ c vit theo th t ng c l i

Rõ ràng εR= ε

wR= w đgl câu đw đgl câu đ i x ng : OMO, akitOMOtika

Phép L y th a(power) xâu

wn= ww…w (n l n)

w0= εv i m i w Quy (denotation)c ch đ nh m t câu

Quy c ch đ nh m t câu (denotation)

20/38

M t ngôn ng hình th c (nói g n ngôn ng ) :

làt p h p các câu

đ c xây d ng trên cùng m t bng ch đã cho đã cho Σ

Víd :

Σ*làngôn ng gm t p tt c cc xâu trên bng ch Σ

k c xâu rng

Σ+làngôn ng gm t p tt c cc xâu trên b ng ch Σ KHÔNG CÓxâu r ng

Σ + = Σ * - ε

∅ là ngôn ng tr ng (t p tr ng)

Víd L1 = {a, ab, abb, bba, bbb} là ngôn ng h u h n trên {a, b}

L2 = {(ab) n | n > 0} là ngôn ng vô h n trên {a, b}

Chú ý {ε}

Chú ý {ε}

21/38

Các phép toán trên ngôn ng

Ngôn ng làm t t p h p do đp do đócóth áp d ng các phép toán

trên t p h p :

i vi các phn t :

i vi ngôn ng :

Cho L1, L2 vàL làc c ngôn ng , các phép toán:

Phép h p

L1 ∪L2 = {w | w ∈L1 ho c w ∈L2}

Phép giao

L1 ∩L2 = {w | w ∈L1 vàw ∈L2}

Phép hiu

L1 –L2 = {w | w ∈L1 vàw ∉L2}

Phép bù

L’= {w | w ∉L} ho c L’= Σ* -L

∈∉

∩∪⊂⊆⊄⊃⊇

L2 L1

L

22/38

Các phép toán trên ngôn ng Phép ghép n i :

L1L2 = = {w | w = uv, u ∈L1 vàv ∈L2}

Phép nghch đch đ o :

LR= {w | wR∈L}

Phép l y th a :

Ln= LL…L (n l n)

Li= LLi-1 = Li-1L v i i>0

L0= {ε}

Víd : Cho L = { tic, tac, toe } khi đkhi đó:

L2= LL

= { tictic, tictac, tictoe, tactic, tactac, tactoe, toetic, toetac, toetoe }

Ghép n i L1 có m câu, và L2 có n câu,

đ c ngng có ??? câu

Ghép n i L1 có m câu, và L2 có n câu,

đ c ngng có ??? câum.n

Là b n s c a tích êCac (Cartesian Product)

Là b n s c a tích êCac (Cartesian Product)

Các phép toán trên ngôn ng

Phép bao đp bao đóng (closure) :

L*= L0∪L1∪…∪Ln ∪…=

Phép bao đp bao đóng dng d ng ng :

L+= L1∪L2∪…∪Ln ∪…=

Nh n xét :

L+= LL*= L*L

L*= L+∪{ ε}

Víd :

Cho L = { tic, tac, toe } khi đkhi đó:

L*= {ε,tic, tac, toe, tictic, tictac, tictoe, tactic, tactac, tactoe,

toetic, toetac, toetoe, tictictic, tictictac, }

U∞

=0 i i

L

U∞

=1 i i

L

ℜt p h p các ngôn ng chính quy(Regular Languages) trên Σ:

c đ

c đnh ngha d a trên các ngôn ng s c p

v các phép toán h i, ghép và đ đóng l p *

L t p h p nh nh t (ch a ít phn t nh t) các ngôn ng thõa mãn các đic đi u ki n sau:

1 ∅∈ℜ, {ε}∈ℜ

2 { a} ∈ℜv i ∀a∈Σ

3 N u A, B ∈ℜ, thìA∪B, A.B vàA* ∈ℜ

Rõ ràng ℜlàt p h p bénht do đt do đ c xây d ng t c c t p

s c p ∅, { ε} và{ a} b i các phép h i, ghép và bao đ bao đóng

Trang 5

(1)

Bi u th c chính quy (BTCQ)

Ng i ta s d ng các bi u th c chính quy (Regular

Expressions) đ đ bi u di n các ngôn ng chính qui trên Σ

Qui t c xây d ng BTCQ trên Σlàc c bi u th c đc đ c t o

thành theo các b c quy n p nh sau:

1.∅, εv a, vi m i ph n t ac a Σ

đ u lành ng BTCQ

2.N u αv βlàhai BTCQ ,

thì(α∪β), (αβ), (α)*c ng lành ng BTCQ

Chú ý 1 : Khi vi t m t BTCQ, có th b các d u ngo c đ n

theo m c u tiên gi m d n : ch ng h n vi t a* thay vì (a)*

Chú ý 2 : Có th vi t a+b thay vì vi t a∪b

Ví d , bi u th c ((0 (1*)) + 0) có th vi t 01*+ 0

Chú ý 1 : Khi vi t m t BTCQ, cóth b cc du ngoc đ nc đ n

theo m c u tiên gim dn : ch ng hn vi t a* thay vì(a)*

Chú ý 2 : C th vi t a+bthay vìvit a∪b

Víd , biu th c ((0 (1*)) + 0) cóth vi t 01*+ 0

26/38

(2)

Bi u di n ngôn ng b i bi u th c chính qui Ngôn ng L(ξ) đ c bi u di n (hay đhay đ c ch đ đnh)

b i BTCQξtheo các b c quy n p nh sau:

1 L(∅) = ∅, L(ε) = { ε}, L(a) = { a } cho ∀a ∈Σ

2 L((α∪β)) = L(α) ∪L(β)

3 L((αβ)) = L(α)L(β)

4 L((α)*) = L(α)*

T (1) và(2) ta cótính ch t sau :

M t ngôn ng là chính qui n u và ch n u ngôn ng đ đ ó đ đ c ch đ đ nh b i m t bi u th c chính qui

Nh n xét : Các BTCQ c ng to thành m t ngôn ng

vìchúng lành ng xâu ký t trên bng ch Σ

27/38

Bao đ

Bao đ óng c a b ng ch Σ

Cho b ng ch Σ, khi đhi đó, L = { a | ∀a ∈Σ} làm t NNCQ

Bao đ

Bao đóng c a L làL* = Σ* làm t NNCQ cóvô h n câu

C th li t kê h t (đ m đm đ c) t t c c c câu c a Σ*

aaa aab aba abb baa bab bba bbb

1

28/38

Cho b ng ch Σ= { a, b },

cóth xây d ng đng đ c m t s NNCQ trên Σ nh sau :

L1= {ε, a, aa, aab } L1có4 câu L2= {w ∈Σ*| |w| ≤8 } L2g m các câu có đ đ d i ≤8

L3= {w ∈Σ*| |w| làm t s l } L3g m các câu có đ đ d i l

L4= {w ∈Σ*| na(w) = nb(w) }

= {ε, ab, ba, aabb, abab, baab, } L4g m các câu cós ch a đ a đúng b ng s ch b L5= {w ∈Σ*| w = wR}

= {ε, aa, bb, aba, bab, abba, baab, }

L5g m các câu đc câu đ i x ng (palindrome)

Cho b ng ch Σ, a ∈Σ, w ∈Σ* vàL ⊆Σ*

Khi đ

Khi đó:

ak= aa a k ch a liên ti p

wk= ww w ghép liên tip k câu w

Σk = ΣΣ Σ= {w ∈Σ*| |w| = k }

Lk= LL L ngôn ng gm các câu làghép k câu tu ý c a L

Tr ng h p đp đ c bi t k = 0 :

a0= w0= ε

Σ0 = L0 = { ε}

Chúý { ε} ≠∅:

{ ε} cómt câu làε

còn ∅không cócâu nào !

M t s tính ch t

V i quy c L(α) là NNCQ đbdb BTCQ NNCQ đbdb BTCQ α Khi đ

Khi đó: L(α) = L(β) khi vàch khi α= β Ngha là:

Hai BTCQ b ng nhau cùng bi u din m t NNCQ

ch ng minh rng hai t p h p A và B đã cho l B đã cho làb ng nhau

A = B

c n ch ra A⊂B vàB⊂A Ngha làc n CM hai chiu “⊂”v “⊃”

Trang 6

Ch ng minh r ng :

L((a*b)*∪(b*a)*) = L((a ∪b)*) = Σ* v i Σ= { a, b }

Ngha làcác BTCQ :

(a*b)* ∪(b*a)* vàΣ*

cùng ch đ đnh m t ngôn ng chính qui

T nay v sau đ sau đ đ n gi đ n gi n, ta vi t w ∈αthay vìw ∈L(α)

L i gi i làCM hai chi u “⊂”v “⊃”:

“⊂” Rõ ràng (a*b)*∪(b*a)* ⊂Σ* vìΣ* là bao đ bao đóng

“⊃” : ch ng minh đing minh điu ng c l i, ta xét mt câu :

w = w1w2 wn∈Σ*

Cn ch ng minh w ∈(a*b)*∪(b*a)*

32/38

a*b (a*b)* a*b (a*b)*

Ch ng minh w ∈ (a*b)*∪(b*a)*

Gi s w = w1w2 wn∈Σ*

X y ra b n tr ng h p nh sau:

1.w = an, do đo đów ∈( εa )*⊂( b*a )* ⊂(a*b)*∪(b*a)*

2.w = bn, do đo đów ∈( εb )*⊂( a*b )* ⊂(a*b)*∪(b*a)*

3.w ch a a vàb, k t thúc b i b Ta có :

w = a ab b b a ab b b

Do đ

Do đó, w ∈(a*b)*∪(b*a)*

4.w ch a a vàb và t thúc b i a

T ng t

T ng t tr ng h p 3, ta c ng có:

w ∈L((a*b)*∪(b*a)*)

33/38

Nh n xét :

Các BTCQ làvô h n đn đ m đm đ c

Các BTCQ ch bi u din t p vô hn đn đ m đm đ c NNCQ,

nh ng không bi u din h t m i ngôn ng

T n t i nh ng ngôn ng phi chính qui

v không có đ đ các BTCQ đc BTCQ đ bi u din m i ngôn ng

M i ngôn ng không th làchinh qui:

T p h p các ngôn ng v t p h p các t p h p con c a m t

t p h p đp đ m đm đ c (tp h p các câu) là không đ không đ m đm đ c

T p h p các NNCQ là đ đ m đm đ c vìm i NNCQ đi NNCQ đ c bi u din

b i m t BTCQ vàt p h p các BTCQ là đ đ m đm đ c

S cónhi u ngôn ng khác v i NNCQ

34/38

Có vô h n không đ n không đ m đ m đ c ngôn ng

Σ = { a, b }

Σ= { a, b }

Σ* = { a, b }*

T p các NNCQ ℜ Các ngôn ng phi CQ

Có 2 n t p h p con c a m t t p h p A có n ph n t

N u A có vô h n đ m đ c ph n t thì 2 A có vô h n không đ m đ c ph n t

Có n t p h p con c a m t t p h p A có n ph n t

N u A có vô h n đ n đ m đ m đ c ph n t thì 2 A có vô h n không đ n không đ m đ m đ c ph n t

V n đ n đ bi u di n ngôn ng

M t ngôn ng trên b ng ch Σlàt p h p con c a Σ+

Cho L⊆Σ+, làm sao đm sao đ bi u di n h t m i câu w∈L ?

Khi L có u h n câu, ch vi c lit kê các câu

Khi L cóvô h n câu, không th li t kê h t các câu c a L,

màph i tìm cách bi u din h u hn :

Nu L gm các câu cómt s tính cht nht quán P nào đo đó,

dng tân t đ đ bi u dintính cht P đt P đó

L = { w∈Σ* | P(w) }

Nu L làNNCQ, s dng BTCQ αch đ đnh L :

L = L(α)

L tu ý, không phi làNNCQ : s dng ôtômat và v n phm

-Ôtômat đotômat đoán nhn câu c a mt ngôn ng

- v n phm s n sinh ra câu cho mt ngôn ng

Ngôn ng cóvô h n câu : L1= { ai⏐i làm t s nguyên t }, hay

= { a2, a3, a5, a7, …, a11, a13, …}

L2= { aibj⏐i ≥j ≥0 }, hay

= { ε, a, ab, aab, aabb, …}

làngôn ng gm các câu cómt dãy con a r i đi đ n m t dãy con b, trong đ

trong đós con a bên trái nhiu h n ho c b ng s con b bên ph i L3= (ab)*

= { ε, ab, abab, ababab, …}

làngôn ng gm các câu cócc cp ab tu ý (0 n c p)

Trang 7

Ví d s n sinh ra câu c a ngôn ng

Cho L làngôn ng trên { a, b } đ c đc đnh ngha nh sau:

1 ε∈L

2 Nu w ∈L thìawb ∈L

3 L không còn câu nào khác n a (ngoài 1 và2)

Qui lu t s n sinh các câu c a L nh sau :

T (1), L = { ε}

Coi εlàw, t (2), ta cócâu awb = aεb = ab, L = { ε, ab }

Li do (2), ta cóL = { ε, ab, aabb, aaabbb, }

C th , ta cóm i câu c a L có ng aibi⏐∀i ≥0

C th bi u di n L d i d ng :

L = { aibi⏐∀i ≥0 }

38/38

Gi s đ đnh ngha ngôn ng L g m các câu w∈Σ∗:

Cóth thu g n w v câu r ng ε: w ⇒ε Thu g n b ng cách thay th d n các xâu con ab c a w b i ε

Víd :

w = ab ∈L vì : ab ⇒ε

w = aabbab ∈L vì : aabbab ⇒abab ⇒ab ⇒ε Coi a, b l n l t làc p d u ngo c đ n c đ n ( và) :

L g m các c p d u ngoc đ n cân bc đ n cân b ng nhaukhông cài nhau thu đ

thu đ c t m t bi u th c toán h c nào đo đó

Víd , t bi u th c (3*(x −y)) /(x + 1), th c hi n b h t các

ký hi u toán t v toán h ng, ta nhn đn đ c câu ngoc đ n c đ n cân b ng (())(), làcâu aabbab

Ngày đăng: 04/12/2015, 00:34

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w