Tải bản đầy đủ (.pdf) (316 trang)

Bài giảng môn học lí thuyết automat & 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 (1.49 MB, 316 trang )

BÀI GING MÔN HC
LÝ THUYT ÔTÔMÁT & NNHT
Ging Viên: H Vn Quân
E-mail:

Web site: />Trng i hc Bách khoa
Khoa Công Ngh Thông Tin
Trang 2
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
NI DUNG MÔN HC
̈ Chng 1 Gii thiu v lý thuyt tính toán
̈ Chng 2 Ôtômát hu hn
̈ Chng 3 Ngôn ng chính qui và vn phm chính qui
̈ Chng 4 Các tính cht ca ngôn ng chính qui
̈ Chng 5 Ngôn ng phi ng cnh
̈ Chng 6 n gin hóa vn phm phi ng cnh và các
dng chun
̈ Chng 7 Ôtômát đy xung
̈ Chng 8 Các tính cht ca ngôn ng phi ng cnh
̈ Chng 9 Máy Turing
Trang 3
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
TÀI LIU THAM KHO
1. Bài ging lý thuyt Ngôn ng Hình thc và Automat -
H Vn Quân [2002].
2. An Introduction to Formal Languages and Automata -
Peter Linz [1990].
Trang 4
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
HÌNH THC ÁNH GIÁ
̈ S có thông báo c th cho tng khóa hc. Tuy nhiên,


thng là nh đc cho bên di.
̈ Thi trc nghim
̈ Thi gian: 120 phút
̈ S lng: 50 câu
̈ c phép xem tài liu trong 4 t giy A4
̈ Làm bài tp ln cng đim (không bt buc)
̈ Np bài tp ln và báo cáo vào cui hc k
̈ Cng ti đa 2 đim
Trang 5
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
CÁC MÔN LIÊN QUAN
̈ Ngôn ng lp trình
̈ Trình biên dch (*)
̈ Toán tin hc
Trang 6
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Chng 1 Gii thiu v lý thuyt tính toán
1.1 Gii thiu
1.2 Yêu cu v kin thc nn
1.3 Ba khái nim c bn
̈ Ngôn ng (languages)
̈ Vn phm (grammar)
̈ Ôtômát (máy t đng)
1.4 Mt vài ng dng
Trang 7
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Gii thiu
̈ Ôtômát
̈ Các mô hình tính toán t đng
̈ Ngôn ng hình thc (formal languages):

̈ nh ngha
̈ Phân loi ngôn ng
̈ Quan h vi ôtômát
̈ ng dng vào vic xây dng các ngôn ng lp trình
̈
Trang 8
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Yêu cu v kin thc nn
̈ 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
Trang 9
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Ba khái nim c bn
̈ Ngôn ng (languages)
̈ Vn phm (grammar)
̈ Ôtômát (automata)
Trang 10
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Ngôn ng
̈ Ngôn ng là gì?
̈ Các t đin đnh ngha ngôn ng mt cách không chính xác là
mt h thng thích hp cho vic biu th các ý ngh, các s kin,
hay các khái nim, bao gm mt tp các kí hiu và các qui tc
đ vn dng chúng.
̈ nh ngha trên cha đ chính xác đ nghiên cu v

NNHT
̈ Chúng ta cn xây dng mt đnh ngha toán hc cho khái
nim ngôn ng
Trang 11
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Các khái nim
̈ Bng ch cái (alphabet), Σ
̈ Là tp hp Σ hu hn không trng các kí hiu (symbol).
̈ Ví d
̈ {A, B, C, , Z}: Bng ch cái La tinh.
̈ {α, β, γ, , ϕ}: Bng ch cái Hi Lp.
̈ {0, 1, 2, , 9}: Bng ch s thp phân.
̈ {I, V, X, L, C, D, M}: Bng ch s La Mã.
Trang 12
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Các khái nim (tt)
̈ Chui (string), w
̈ Là mt dãy hu hn các kí hiu t bng ch cái.
̈ Ví d
̈ Vi Σ = {a, b}, thì abab và aaabbba là các chui trên Σ.
̈ Qui c
̈ Vi mt vài ngoi l, chúng ta s s dng các ch cái thng a,
b, c, . . . cho các phn t ca Σ còn các ch cái u, v, w, . . . cho
các tên chui.
Trang 13
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Các phép toán trên chui
̈ Kt ni (concatenation), wv
̈ w = a
1

a
2
a
n
và v = b
1
b
2
b
m
là chui:
wv = a
1
a
2
a
n
b
1
b
2
b
m
̈ Ðo (reverse), w
R
̈ Ðo ca chui w = a
1
a
2
a

n
là chui:
w
R
= a
n
a
2
a
1
Trang 14
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Các khái nim (tt)
Cho chui w = uv
̈ Tip đu ng (prefix)
̈ u đc gi là tip đu ng ca w
̈ Tip v ng (suffix)
̈ v đc gi lá tip v ng ca w
̈ Chiu dài ca chui w
̈ Là s kí hiu trong chui, và đc kí hiu là |w|
̈ Chui trng (empty string)
̈ Là chui không có kí hiu nào, thng đc kí hiu là λ
Trang 15
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Các khái nim (tt)
̈ Nhn xét
1 . Các quan h sau đây đúng vi mi w:
|λ| = 0; λw = wλ = w
2 . Nu u, v là các chui thì :
|uv| = |u| + |v|

̈ Ly tha (power), w
n
̈ w là mt chui thì w
n
là mt chui nhn đc bng cách kt ni
chui w vi chính nó n ln.
̈ w
0
= λ
321
L
laàn n
n
www =
Trang 16
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Các khái nim (tt)
̈ Σ*, Σ
+
(bao đóng sao và bao đóng dng)
̈ Σ* là tp tt c các chui trên Σ k c chui trng.
̈ Σ
+
là tp tt c các chui trên Σ ngoi tr chui trng.
̈ Σ* = Σ
+
∪ {λ} ; Σ
+
= Σ* - {λ}
̈ Σ thì hu hn còn Σ

+
và Σ* là vô hn đm đc
Trang 17
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
nh ngha ngôn ng
̈ Ngôn ng
̈ Là mt tp con ca Σ*, hay nói cách khác là mt tp bt k các
câu trên b ch cái.
̈ Ví d
̈ Cho Σ = {a, b}
Σ* = {λ, a, b, aa, ab, ba, bb, aaa, aab, }
̈ Tp {a, aa, aab} là mt ngôn ng trên Σ. Nó là mt ngôn ng
hu hn.
̈ Tp L = {a
n
b
n
: n ≥ 0} cng là mt ngôn ng trên Σ. Nó là mt
ngôn ng vô hn.
Trang 18
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Các phép toán trên ngôn ng
̈ Bù (complement),
̈ Bù ca ngôn ng L trên bng ch cái Σ, đc kí hiu là:
= Σ* - L
̈ Kt ni, L
1
L
2
̈ Cho 2 ngôn ng L

1
, L
2
. Kt ni ca 2 ngôn ng L
1
, L
2
là:
L
1
L
2
= { xy : x ∈ L
1
, y ∈ L
2
}
̈ Ly tha, L
n
̈ Ly tha bc n ca L, kí hiu là L
n
, là vic kt ni L vi chính
nó n ln
̈ L
0
= {λ}
L
L
321
L

laàn n
n
LLL =
Trang 19
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Các phép toán trên ngôn ng (tt)
̈ Ví d
̈ Cho L = {a
n
b
n
: n ≥ 0}, thì
L
2
= {a
n
b
n
a
m
b
m
: n ≥ 0 , m ≥ 0}
̈ Bao đóng-sao (star-closure) ca L
̈ Kí hiu là L* và đc đnh ngha là
L* = L
0
∪ L
1
∪ L

2

̈ Bao đóng dng (positive closure) ca L
̈ Kí hiu là L
+
L
+
= L
1
∪ L
2
∪ L
3

Trang 20
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Vn phm
̈ Vn phm là gì?
̈ Các t đin đnh ngha vn phm mt cách không chính xác là
mt tp các qui tc v cu to t và các qui tc v cách liên kt
các t li thành câu.
̈ Ví d
̈ Cho đon vn phm ting Anh sau
<sentence> → <noun phrase><predicate>,
<noun phrase>→ <article><noun>,
<predicate> → <verb>,
<article> → a | the,
<noun> → boy | dog,
<verb> → runs | walks,
Trang 21

Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
nh ngha vn phm
̈ Các câu “a boy runs”và“the dog walks”làcó"dng
đúng“, tc là đc sinh ra t các lut ca vn phm.
̈ nh ngha 1.1
̈ Vn phm G đc đnh ngha nh là mt b bn
G = (V, T, S, P)
̈ V: tp các kí hiu không kt thúc (nonterminal symbol), còn
đc gi là các bin (variable),
̈ T: tp các kí hiu kt thúc (terminal symbol),
̈ S ∈ V: đc gi là bin khi đu (start variable), đôi khi còn
đc gi là kí hiu mc tiêu,
̈ P: tp hu hn các lut sinh (production),
Trang 22
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
nh ngha vn phm (tt)
̈ Các lut sinh có dng x → y trong đó x ∈ (V ∪ T)
+
và có cha
ít nht mt bin, y ∈ (V ∪ T)*.
̈ Các lut sinh (production) đôi khi còn đc gi là các qui tc
(rule) hay lut vit li (written rule) .
̈ Ví d
̈ Cho vn phm sau:
G = ({S, A, B}, {a, b}, S, P), vi P:
S → aAS | bBS | λ,
A → aaA | b,
B → bbB | a,
Trang 23
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin

Vn phm (tt)
̈ Qui c:
̈ Các kí t ch hoa A, B, C, D, E và S biu th các bin; S là kí
hiu khi đu tr phi đc phát biu khác đi.
̈ Các kí t ch thng a, b, c, d, e, các kí s, các chui in đm
biu th các kí hiu kt thúc (terminal).
̈ Các kí t ch hoa X, Y, Z biu th các kí hiu có th là terminal
hoc bin.
̈ Các kí t ch thng u, v, w, x, y, z biu th chui các terminal.
̈ Các kí t ch thng Hi Lp α, β, γ biu th chui các bin và
các terminal.
Trang 24
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Các khái nim
̈ Dn xut trc tip (directly derive), ⇒
̈ Cho lut sinh x → y và chui w = uxv .
̈ Lut sinh trên có th áp dng ti chui w. Khi áp dng ta s
nhn đc chui mi
z = uyv
̈ w dn xut ra z hay ngc li z đc dn xut ra t w và kí
hiu là:
uxv ⇒ uyv
Trang 25
Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin
Ngôn ng đc sinh ra bi vn phm
̈ Dn xut gián tip ,
̈ Nu w
1
⇒ w
2

⇒ ⇒ w
n
thì ta nói w
1
dn xut ra w
n
và vit
w
1
w
n
̈ Nu có ít nht mt lut sinh phi đc áp dng chúng ta vit:
w
1
w
n
̈ nh ngha 1.2
̈ Cho G = (V, T, S, P) là mt vn phm, thì tp:
L(G) = {w ∈ T* : Sw}
đc gi là ngôn ng đc sinh ra bi G.
*

*

+

+

*


×