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

LT3 ch1 modau

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 (2.25 MB, 10 trang )

Chà
Chào m i ng

i!

Lý thuy t tí
ính toá
án
ttính
to
toán
Hello Everyone!

(Theory of Computation)
PGS.TS. Phan Huy Khá
Khánh

Bonjour Tout le Monde !



!

Ch ng 1
M đ u

K

!

2/56


2/
56

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

Ki n th c yêu c u

Môn h c Lý thuy t tí
tính toá
toán (Theory of Computation)
Computation)
cung c p nh ng ki n th c c b n v :


 Môn h c yêu c u m t s ki n th c tiên quy t :
 Tin h c đ i c
ng
 Toá
Toán r i r c
 C u trú
trúc d li u và
và gi i thu t

Các mô hì
hình tí
tính toá
toán lý thuy t :



Các má
máy truy c p ng u nhiên



Các ôtômat h u h n tr ng thá
thái



Ngôn ng hình th c và
và v n ph m



Lý thuy t đ ph c t p tí
tính toá
toán



Máy Turing và
và khá
khái ni m tí
tính đ



Các hà
hàm đ quy




Các khá
khái ni m v bài toá
toán, thu t toá
toán, tí
tính gi i đ
tính quy t đ nh...

 Sinh viên n m đ c :
 Các mô hì
hình tí
tính toá
toán t ng quá
quát
 Các khá
khái ni m c b n v đ ph c t p tí
tính toá
toán,
ph ng phá
pháp ch ng minh hì
hình th c
 Có kh n ng minh ho ho t đ ng c a cá
các mô hì
hình đó
đó
b ng thu t toá
toán, ch ng trì
trình


c
c,

3/56
3/
56

4/56
4/
56

Tài li u tham kh o

ánh giá
giá k t qu h c t p
 Yêu c u :

 Giá
Giáo trì
trình PPT “Lý thuy t Tí
Tính toá
toán”
 http://www />


 www.cs.berkeley.edu/~vandam/CS172/





Hi u n i dung trì
trình bà
bày trên l p
Th c hi n cá
các bài t p v nhà
nhà
Kh n ng th c hà
hành

 Tinh th n thá
thái đ và n ng l c h c t p



 Keywords to findout on internet (Google):


Computation | Computing Theory




Computability | Decidability
Formal Language | Automata Theory



Set | Graph Theory






Nghe gi ng, ghi ché
chép
Tr l i và
và đ t câu h i
Tham kh o tà
tài li u, truy c p internet
Tham gia h c nhó
nhóm, t p th o lu n và
và thuy t trì
trình


 Ki m tra cu i k :

5/56
5/
56

Thi vi t (60 phú
phút)
6/56
6/
56

1



âu là
là gi i h n c a Tin h c ?

N i dung môn h c
Ch

ng 1 M đ u : c s c a môn h c

Ch

ng 2 Ôtômat h u h n

Ch

ng 3 V n ph m và
và ôtômat đ y xu ng

Ch

ng 4 Máy Turing

Ch

ng 5 Hàm đ quy

Ch

ng 6 Máy RAM


Ch

 Nghiên c u v bài toá
toán (problem) :


L p cá
các bà
bài toá
toán gi i đ



L i gi i, hay thu t toá
toán , đ gi i bà
bà i toá
toán



L p cá
các bà
bài toá
toán không gi i đ

c (resolvability)
c

(và s không bao gi gi i đ c,
dù v i s ti n b c a công ngh thông tin trong t


ng lai)
lai)

 Nghiên c u lý thuy t cá
cách gi i cá
các bà
bài toá
toán


Mô hì
hình tí
tính toá
toán ?
ph c t p tí
tính toá
toán ?




ng 7 Lý thuy t đ ph c t p tí
tính toá
toán

Tính quy t đ nh

7/56
7/

56

8/56
8/
56

âu là
là gi i h n c a Tin h c ?
 Gi i h n c a V
 Không t n t
Mâu thu n v

Nh ng ch đ chí
chính c a Tin h c lý thuy t
 Nghiên c u cá
các mô hì
hình tí
tính toá
toán :

t lý :
i chuy n đ ng v nh c u v ì :
i cá
các đ nh lu t v nhi t đ ng l c h c

 C ác

ngôn ng

 C ác


ôtômat h u h n (Finite Automaton)

 Má y
 C ác

hình th c (Formal Languages)

Turing (Turing Machine)


hàm đ quy (Recursive Functions)

 Má y

RAM (Random Access Memory Machine)



ph c t p tí
tính toá
toán (Computational Complexity)

M

t mã h c (Cryptology)

 Và

các h


ng nghiên c u m i trong lý thuy t tí
tính toá
toán

 M i quan h gi a các mô hì
hình tí
tính toá
toán khá
khác nhau
Chuy n đ ng v nh c u ( Perpetual Motion) là
là chuy n đ ng
không ng ng, không c n tiêu t n n ng l ng

 C s đ thi t k MT T (ph n c ng)
và thu t toá
toán (ph n m m) trong hi n t i và
và t

ng lai…
lai…

9/56
9/
56

Ch

10/56
10/

56

M t s ki n th c Toá
Toán h c c

ng m đ u : c s c a môn h c

 M t s ki n th c Toá
Toán h c c s

 Lôgí
Lôgích h c

 B ng ch và câu

 T p h p, quan h

 Khá
Khái ni m ngôn ng

 Ánh x và hàm

 Máy tr u t

 Tính đ m đ

ng

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




s

c c a cá
các t p h p vô h n

th và cây

 Phé
Phép ch ng minh quy n p
 Các c u trú
trúc r i r c

11/56
11/
56

12/56
12/
56

2


B ng ch

Câu trên b ng ch

và câu


 B ng ch (alphabet) :

 Cho tr

là m t t p h u h n cá
các ký t (characters),
(characters), hay ký t ng/
ký hi u (symbol), ký hi u b i ch cái Hy l p 
Kích th c c a b ng ch là s ph n t c a b ng ch đó
đó,
ký hi u |
||, hay Card(
Card() (Cardinality)




c m t b ng ch  nào đó
đó

 M t câu (phrase, word), hay xâu (string), trên  :
 là m t dãy h u h n cá
các ph n t c a ,
ký hi u b i w (hay x, y, u, v...)

 Ví d m t s b ng ch  :
{#}
{ 0, 1 }
{ ,  , ,  }

{0, 1, 2, ... , 9}
{I, V, X, L, C, D, M}
{aA, bB, cC, ... , zZ}
{, , , ... , }
B ng mã ASCII
Các nét vi t ch Hán



|=1
| | = 2
| | = 4
Ch s th p phân, || = 10
Ch s La Mã
Ch cái La tinh
ch cái Hi L p



dài c a m t câu là
là s ký t có m t trong câu,
ký hi u là
là |w| hay length(w
length(w)



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




M t câu có
có th có t 0 đ n n ký t tu ý

 Câu có
có đ dài b ng 0 đ

c g i là
là câu r ng (empty word),
ký hi u , ho c e, ho c  ho c 

13/56
13/
56

Ví d v câu trên b ng ch

14/56
14/
56



Phé
Phép ghé
ghép ti p cá
các câu
 Cho hai câu u và

và v trên 

 Ví d
B ng ch 

Câu trên 
, 0, 1, 00, 01, 10, 11, 100...

{ 0, 1 }



Phé
Phép ghé
ghép ti p (Concatenation) c a u và
và v là
là câu w = uv



Ngh a là
là câu w g m hai ph n :

{ a....z }

a, ab,
ab, zt, computer

u


đgl là
là ti n t (prefix)

{ 0, ..., 7,  , ,  ,  }

43 2 , 1234, 

r

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

ASCII

M t ch

ng trì
trình C, Pascal, Java, VB...



Tr ng h p câu w = xuy là
là ghé
ghép ti p c a ba câu x, u,
u, y,
y,
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 = w
v i w là
là m t câu b t k trên 

 Cho m t câu w có
có có |w|=n,
|w|=n, ng

i ta có
có th trí
trích ra t w
m t ký t nào đó
đó có v trí
trí xác đ nh trong ph m vi 1..n


Ví d câu w=aaabbaabbba có
có |w|=11,
có th trí
trích ra cá
các ký t :



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

Returning
15/56

15/
56

16/56
16/
56

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

Khá
Khái ni m ngôn ng
 M t ngôn ng hình th c (nó
(nói g n ngôn ng ) :

 Cho cá
các câu w trên 
 Phé
o ng c (Reversion) m t câu w, ký hi u
Phép
 Là câu w đ c vi t theo th t ng c l i
 Rõ rà
ràng R = 


wR




:



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

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


wn = ww…
ww…w (n l n)
w0 =  v i m i w

* là ngôn ng g m t p t t c các xâu trên b ng ch 
k c xâu r ng
+ là ngôn ng g m t p t t c các xâu trên b ng ch 
KHÔNG CÓ
CÓ xâu r ng


Quy
Quy

p h p cá
các câu
c xây d ng trên cù
cùng m t b ng ch đã cho 


 Ví d :





là t
đ

cc ch
ch đ
đ nh
nh m
m tt câu
câu
(denotation)
(denotation)





Chú ý {}  

Ví d



17/56

17/
56

+ = * - 
 là ngôn ng tr ng (t p tr ng)

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

Chú
ú ýý ::
Ch
Chú
Ng
ùng phé
ép ““hình
hình th
” (Fomal)
Fomal) đđ đđ ii ll pp vv ii ““tt nhiên
ddùng
ph
((Fomal)
Ng ii ta
ta dù
phép
th cc”
nhiên (Natural)
(Natural)


18/56
18/
56

3


Máy tr u t

Ch c n ng đoá
đoán nh n câu

ng (machine)

D li u vào

Máy đoá
đoán nh n câu :

D li u ra

Máy
 Mô hì
hình IPO :



Gi s d li u và
vào w*,

k t qu ra r{0, 1}, hay {False, True }



T p h p câu và
vào w đgl ngôn ng (language)



nh n d li u và
vào (data) và
và cho k t qu ra (result)
 Hai cá
cách nhì
nhìn :

Có ba kh n ng cho k t qu :
1.

True ho c False
M t k t qu khá
khác
Không cho k t qu nào



Cách nhì
nhìn ch c n ng (functional look)

2.




Cách nhì
nhìn c u trú
trúc (structural look)

3.

 Phân bi t cá
các ki u má
máy tr u t



ng (machine type)
theo b n ch t c a k t qu tính toá
toán

Hai t p h p câu và
vào ng v i hai kh n ng đ u là
là bù nhau
n u má
máy cho k t qu cho m i d li u và
vào

19/56
19/
56


20/56
20/
56

Ch c n ng tính toá
toán

Cách nhì
nhìn c u trú
trúc (structural look)
 Máy đ

Máy tí
tính toá
toán (computation machine)


Gi s d li u và
vào w*,
k t qu ra là m t câu r trên m t b ng ch  nào đó
đó



Khi đó
đó, má
máy th c hi n tí
tính hà
hàm f t * và
vào * :


c xá
xác đ nh b i m t t p h u h n cá
các phé
phép toá
toán

 M i phé
phép toá
toán mô t m t ph n c u trú
trúc c a má
máy
 Phé
Phép toá
toán s c p (elementary operation) là
là phé
phép toá
toán nh

nh t (không chia c t nh h n)
n)

f :  *  *

 Máy th c hi n (execution) m i phé
phép toá
toán trong m t kho ng

Ngh a là
là w   *, f (w )  *


th i gian h u h n và
và xác đ nh



Hàm f đ c g i là
là hàm toà
toàn ph n (partial function)
n u v i m i câu và
vào w *, má
máy đ u cho k t qu f (w)*



Ng i ta c ng nó
nói ki u má
máy đoá
đoán nh n ch là tr
bi t c a ki u má
máy tí
tính

ng h p đ c

 Ch

ng trình (program) là
là t p h p cá
các phé

phép toá
toán s c p đ
gi i m t bà
bài toá
toán nà
nào đó
đó
 M t t ính toá
toán (computation) là
là vi c th c hi n l n l t cá
các
phé
phép toá
toán s c p theo m t th t xác đ nh tr c

21/56
21/
56

22/56
22/
56

Mô hì
hình tí
tính toá
toán


M t s thu t ng


nh ngh a cá
các l p má
máy có
có cùng nguyên lý ho t đ ng
ng trì
trình đ gi i bà
bài toá
toán trên cù
cùng m t má
máy mà
mà không
thay đ i má
máy gi i

 Làm sao đ có th bi t :

 Thay đ i ch



 Mô hì
hình tí
tính toá
toán (computation model), ký hi u T là
là s mô t :






t t c các phé
phép toá
toán s c p



nh ng đ i t



cách th c hi n ch

 M t tr



ng nà
nào có
có th tác đ ng phé
phép toá
toán
ng trì
trình trên má
máy

Mô hì
hình + Ch

L p cá

các hà
hàm t ính đ
hay Tt ính đ c ?

c (recognized),

c (computable)

L p cá
các ngôn ng li t kê đ
hay Tli t kê đ c ?

c (enumerable)

 So sá
sánh hai mô hì
hình : T1 m nh h n T2 khi :
N u T2 nh n bi t đ c (tí
(tính đ c, li t kê đ c)
thì
thì T1 c ng nh n bi t đ c (tí
(tính đ c, li t kê đ c)

ng h p riêng (instance) c a mô hì
hình là
là máy c th

 Mô hì
hình tí
tính toá

toán T đ

L p ngôn ng đoán nh n đ
hay Tnh n bi t đ c ?

ng trì
trình = Má
Máy

 T1 và
và T2 t

c g i là
là m t T
Tmáy

ng đ

ng (equivalent) n u T1 m nh h n T2 và
và ng c l i
c n u không t n t i mô

 T1 và
và T2 là
là không th so sá
sánh v i nhau đ
hình nà
nào ít ra đ m nh h n mô hì
hình kia


23/56
23/
56

24/56
24/
56

4


Khá
Khái ni m bà
bài toá
toán (problem)

M t s ví d bài toá
toán (1)
Bài toá
toá n 1 :
 D li u:
M t s nguyên vi t trong h 10
 Câu h i : S nguyên đã cho có
có là s nguyên t hay không ?
Bài toá
toá n 2 :
 D li u : M t s nguyên vi t trong h 10
 Câu h i : S nguyên nà
nà y đ c vi t d i d ng t ng c a 4 s bình ph ng ?
Bài toá

toá n 3 :
 D li u : M t s nguyên vi t d i d ng tí
tích c a cá
các s h ng trong h 10
 Câu h i : S nguyên đã cho có
có là s nguyên t hay không ?
Bài toá
toá n 4 :
 D li u : M t đ th h u h n G đ c bi u di n b i m t danh sá
sách cá
các đ nh
và các cung, m i đ nh đ c bi u di n b i m t s nguyên trong h 10
 Câu h i : Có t n t i đ ng đi Hamilton (đi qua h t t t c các đ nh c a
đ th , m i đ nh đi qua đú
đúng m t l n) trong đ th đã cho không ?

 M t bài toá
toán là :


Mô t cách bi u di n (h u h n) cá
các ph n t
c a m t t p h p h u h n hay vô h n đ m đ



M t phá
phát bi u liên quan đ n cá
các ph n t c a t p h p nà
này




K t qu có th đúng,
ng, ho c sai, tùy vi c ch n ph n t

 Bài toá
toán trong Tin h c lý thuy t :
 Khá
Khác v i khá
khái ni m bà
bài toá
toán thông th


c

ng trong Toá
Toán h c

Khá
Khác v i bà
bài toá
toán hi u theo ngh a thông d ng

25/56
25/
56

26/56

26/
56

Bài toá
toán t

M t s ví d bài toá
toán (2)
Bài toá
toán 5 :
D li u : M t bi u th c chí
chính quy (regular
(regular expression) đ c xây
d ng trên m t b ng ch  (là
(là m t bi u th c nh n đ c t các câu
w* b i cá
á
c
phé
é
p
ho
c,
phé
é
p
ghé
é
p
c ph

ph gh ti p, phé
phép * và
và l y bù
bù)
 Câu h i : Có ph i bi u th c đã cho ch đ nh ngôn ng tr ng (empty
language) ?


Bài toá
toán 3n+1 (bà
(bài toá
toán d ng) : ch a có
có câu tr l i v tính d ng

ng ng Post

(Post’
(Post’s correspondence problem)
 D li u : M t dãy h u h n cá
các c p câu (u1, v1), (u2, v2)..., (uk, vk)
 Câu h i : T n t i hay không m t dãy ch s i1 , i2 ,...in sao cho

tho mãn ui1 ui2... uin = vi1 vi2... vin ?
Ví d : cho * = {a,
{a, b, c }
Và dãy cá
các c p câu :
{(ab,
{(ab, aba),
aba), (ab

(ab,, ba), (bab
(bab,, ba),
ba), (ab
(ab,, bab)
bab) }

function threen(n: integer): integer;{
integer;{ recursive }
begin
if (n = 1) then 1
else
if odd(n
odd(n then threen(3*n+1)
else threen(n div 2);
end;

Cho câu : babababab

T n t i dãy ch s {3 , 2, 2, 4} sao cho tho mãn :
bab.ab.ab.ab = ba.ba.ba.bab

27/56
27/
56

M t s khá
khái ni m khá
khác

Các phé

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

 K t h p bà
bài toá
toán P v i ngôn ng đ c tr ng (characteristic language) LP*
Ngôn ng LP = { w  D * |  l i gi i f(w) = true }

 Ngôn ng là m t t p h p do đó
đó có th áp d ng cá
các phé
phép toá
toán
trên t p h p :


i v i cá
các ph n t :


i v i ngôn ng :
 Cho L1, L2 và
và L là
là các ngôn ng , cá
các phé
phép toá
toán:
 Phé
Phép h p
 L1  L2 = {w | w  L1 ho c w  L2}

 Phé
Phép giao
L1
L2
 L1  L2 = {w | w  L1 và
và w  L2}
 Phé
Phép hi u
 L1 – L2 = {w | w  L1 và
và w  L2}
L
 Phé
Phép bù

 L’ = {w | w  L} ho c L’
L’ = * - L

 Bài toá
toán ng c C P nh n đ c t P b ng cá
cách :
LP
 gi nguyên cá
cách bi u di n cá
các d li u
*
 đ t ng
c l i câu h i
Ngôn ng LCP = { w  D * | Không  l i gi i, hay f(w) = false }
Ví d : Bà
Bài toá

toán 1’
1’ :
 D li u :
Cho m t s nguyên vi t trong h 10
 Câu h i : S nguyên nà
này không ph i là
là m t s nguyên t ?
 Máy gi i (solve) bà
bài toá
toán P n u và
và ch n u :

 w  *, má
máy cho phé
phép xá
xác đ nh, trong m t kho ng th i gian h u h n,
n u w LP hay w LCP
 Phân l p cá
các bà
bài toá
toán tù
tù y theo đ ph c t p (complexity)
 M t bà
bài toá
toán là
là t m th

28/56
28/
56


ng (trivial) n u LP =  ho c n u LCP = 

29/56
29/
56

30/56
30/
56

5


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

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

 Phé
Phép ghé
ghép n i :
 L1L2 = = {w | w = uv, u  L1 và
và v  L2}

 Phé
Phép bao đó

đóng (closure) :
 L* = L0  L1  …  Ln  … =

 Phé
Phép ngh ch đ o :
 LR = {w | wR  L}

 Phé
Phép bao đó
đóng d ng :
 L+ = L1  L2  …  Ln  … =

 Phé
Phép l y th a :
 Ln = LL…
LL…L (n l n)
 Li = LLi-1 = Li-1L v i i>0
 L0 = {
{}
 Ví d :



Ghép n i L1 có m
câu, và L2 có n câu,
đ c ngng có m.n
??? câu

Là b
b n

n ss cc aa tích
tích êCac
êCac
(Cartesian
(Cartesian Product)
Product)

Cho L = { tic,
tic, tac,
tac, toe
toe } khi đó
đó :
L2 = LL
= { tictic, tictac, tictoe, tactic, tactac, tactoe, toetic, toetac,
toetac, toetoe }



L
i 0



L
i 1

 Nh n xé
xét :
 L+ = LL* = L*L
 L* = L+  {  }

 Ví d :



i

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

i

Khái
Khái ni
ni m
m hh uu hh n,
n, vô
vô hh nn
đđ cc hi
hi uu nh
nh th
th nào
nào ??
•Liên
•Liên quan
quan đđ nn các
các ph
ph nn tt

cc aa m
m tt tt pp hh pp :: khái
khái ni
ni m
m
đđ m
m (li
(li tt kê)
kê) đđ cc
•Ng
•Ng ii ta
ta đđ tt song
song ánh
ánh các
các
ph
ph nn tt vv ii ss tt nhiên
nhiên 

•h
•h uu hh nn ?? tt pp hh pp có
có nn ph
ph nn
tt ,, nK<,
nK<, bb ch
ch nn trên
trên
•vô
•vô hh nn ?? tt pp hh pp có
có nn ph

ph nn tt
tu
tu ý,
ý, không
không bb ch
ch nn trên
trên

L* = { , tic, tac, toe, tictic, tictac, tictoe, tactic, tactac, tactoe,
toetic, toetac, toetoe, tictictic, tictictac, ... }

31/56
31/
56

32/56
32/
56

Ví d khá
khác v ngôn ng

Các ngôn ng chí
chính quy (NNCQ)

 Cho  = {0..9}  { ., +, - }, xay d ng cá
các l p s :

  t p h p cá
các ngôn ng chí

chính quy (Regular Languages)

trên  :



M i câu trên l
là ghé
ghép tu ý cá
các ch s 0..9, ., +, tuy nhiên ch ghi nh n (xé
(xét) nh ng câu là
là s có ngh a



S t nhiên  = {0, 1, 2, ..., i, i+1, ... } i0, 
 



S nguyên  = { ..., -3, -2, -1, 0, 1, 2, ... } |i|
|i|0, 
 



S h ut
 = { ..., -2/2, -2/3, -1/2, 0, 1/2, 2/2, ... } |m/n|
|m/n|0, 






S vô t
 = { ..., ..., ... } = 
 
 
 { ..., ..., ... }



c đ nh ngh a d a trên cá
các ngôn ng s c p
và các phé
phép toá
toán h i (
( : “nh t ra”
ra”), ghé
ghép và
và đó
đóng l p *



Là t p h p nh nh t (ch a ít ph n t nh t) cá
các ngôn ng
thõa mãn cá
các đi u ki n sau :
1.   , {

{}
2. { a }   v i a  
3. N u A, B  , thì
thì A B, A.B và
và A*  

 Rõ rà
ràng  là t p h p bé
bé nh t do đ

c xây d ng t các t p
s c p , {  } và
và { a } b i cá
các phé
phép h i, ghé
ghép và
và bao đó
đóng

33/56
33/
56

34/56
34/
56

Ví d xây d ng t p NNCQ 

Bi u th c chí

chính quy (BTCQ)
 Ng

 Cho ={
={}, nh ng ph n t -ngôn ng có ngay (t có) :


 Nh ng ngôn ng L đ

c xây d ng ki u quy n p (đ quy) :



Lu t : N u A, B  , thì
thì AB, A.B và
và A*  



A={
A={},
B= {},
AB={
B={, },
A.B={
A.B={}={
}={},
B* = {
{, , ,
, ,

, ... n, ... }, n b t k n>0





i ta s d ng cá
các bi u th c chí
chính quy (Regular
(Regular
Expressions) đ bi u di n cá
các ngôn ng chí
chính qui trên 

  , {},
, {
{} 

 Qui t c xây d ng BTCQ trên  là các bi u th c đ

thà
thành theo cá
các b

c quy n p nh sau :

ct o

1. ,  và a, v i m i ph n t a c a 
đ u là

là nh ng BTCQ
2. N u  và  là hai BTCQ ,
thì
), (
thì (),
), (
(),
()* c ng là
là nh ng BTCQ

V y sau b c nà
này ta có
có :
, {}, {}, {
}, ..., {
{},
{, , ,
, ,
, ... n , ... }

(1)

Chú
ú ýý 11 :: Khi
ó th
ác dd uu ngo
Ch
ccó
Chú
Khi vi

vi tt m
m tt BTCQ,, có
th bb ccác
ngo cc đđ nn
theo
* thay
a)*
vvìì ((a)*
theo m
m cc uu tiên
tiên gi
gi m
m dd nn :: ch
ch ng
ng hh nn vi
vi tt aa*
thay vì
Chú
ú ýý 22 :: CCó
ó th
+b thay
b
Ch
vvìì vi
Chú
th vi
vi tt aa+b
thay vì
vi tt aab
VVíí dd ,, bi

ó th
ccó
bi uu th
th cc ((0
((0 (1*))
(1*)) +
+ 0)
0) có
th vi
vi tt 01*+
01*+ 00

Và c th ti p t c xây d ng 
35/56
35/
56

36/56
36/
56

6


Bao đó
đóng c a b ng ch 

Bi u di n ngôn ng b i bi u th c chí
chính qui
c pxi


c bi u di n (hay
(hay đ c ch đ nh)
b i BTCQ  theo cá
các b c quy n p nh sau :

 Cho b ng ch , khi
khi đó
đó, L = { a | a   } là
là m t NNCQ

1. L(
L( ) =  , L(
L() = {  }, L(a) = { a } cho a 

 Có th li t kê h t (đ m đ

 Ngôn ng L() đ

2. L((
L((   )) = L(
L()  L(
L( )

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



(2)

3. L((
)) = L(
L(())
L()L(
)L()
4. L((
L(()*) = L(
L()*

22

 T (1) và
và (2) ta có
có tính ch t sau :
M t ngôn ng là chí
chính qui n u và
và ch n u (n u, kh )
ngôn ng đó
đó đ c ch đ nh b i m t bi u th c chí
chính qui

44

 Nh n xé
xét :



aa

37/56
37/
56

 Cho b ng ch  = { a, b },

66

ba

77

L1 có 4 câu

L2 = { w  * | |w|  8 }

L2 g m cá
các câu có
có đ dài  8

L3 = { w  * | |w| là
là m t s l } L3 g m cá
các câu có
có đ dài l

...

...


38/56
38/
56

Ngh
Ngh ch
ch đđ oo câu
câu xong
xong thì
thì
cc ng
ng chính
chính nó
nó !!
cc xuôi,
xuôi, đđ cc ng
ng cc nh
nh
nhau
nhau
ng
ng bên
bên tê,
tê, ngó
ngó bên
bên ni,
ni,
cc ng
ng rr aa

ng
ng bên
bên ni,
ni, ngó
ngó bên
bên tê,
tê,
cc ng
ng rr aa
ii qua,
qua, đi
đi lai,
lai, yy chang
chang !!
Hai
Hai ký
ký tt cách
cách đđ uu đđ uu và

cu
cu ii câu
câu yy chang
chang !!

if l>0 then
while OK and i<=l and w(i)=w(l) do i++; l-l-Return OK

w1 w2

...


l--

39/56
39/
56

40/56
40/
56

M t s tính ch t

 Cho b ng ch , a  , w  * và
và L  *

 V i quy

 Khi đó
đó :
 ak = aa ... a

 Khi đó
đó :
 L(
L() = L(
L( ) khi và
và ch khi  = 
Ngh a là
là :


k ch a liên ti p



k =  ...  = { w  * | |w| = k }



Lk = LL ... L

 Tr

a0 = w0 = 



0 = L0 = {  }

c L(
L() là
là NNCQ đbdb BTCQ 

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

ngôn ng g m cá
các câu là
là ghé
ghép k câu tu ý c a L


ng h p đ c bi t k = 0 :



wl-1 wl

i++

M t s ví d _ 2

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


 Cho
Cho hai
hai câu
câu w
w11,, w
w22
khi
ów
đ
khi đó
đó
w11 đđ ng
ng tr
tr cc
w

| w
w22 kh
kh |w
|w11|||
w22||

OK = true;
true; i=1, l=len(w)

L1 = {
{, a, aa, aab }



bb

Func PalinCheck(w: string):
string): bool

c m t s NNCQ trên  nh sau :


Có th
th có
có thêm
thêm các
các nh
nh nn xét
xét gì
gì vv

các
các câu
câu đđ ii xúng
xúng ??

ab

Ví d v m t thu t toá
toán ki m tra câu đ i x ng

M t s ví d _ 1

L5 = { w  * | w = wR }
= {
{, aa,
aa, bb, aba, bab, abba, baab
aab, ... }
L5 g m cá
các câu đ i x ng (palindrome)

55

b

aaa aab aba abb baa bab bba bbb

Các BTCQ c ng t o thà
thành m t ngôn ng
vì chú
chúng là

là nh ng xâu ký t trên b ng ch 

L4 = { w  * | na(w) = nb(w) }
= {
{, ab,
ab, ba, aabb, abab, baab, ... }
L4 g m cá
các câu có
có s ch a
đúng b ng s ch b

33

a


th
 Cho
Cho  =
= {a,
{a, b}
b} thì
thìì ta
ta
đã
óm
ccó
đã có
m tt th
th tt titi nn

đđ nh
nh aa đđ ng
ng tr
tr cc bb

...
...

88

có th xây d ng đ

c) t t c các câu c a *

Ví d * = (a + b)*
11 



c n ch ra A
AB và
và BA

 Chú
Chú ý {  }   :


{  } có
có m t câu là
là 




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

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

Ngh a là c n CM hai chi u “” và “”

41/56
41/
56

42/56
42/
56

7


Ch ng minh w  (a*b)*(b*a)*

M t s ví d _ 3
 Ch ng minh r ng :



Các BTCQ :

 Gi s w = w1w2...wn  *

(a*b)*  (b*a)* và
và *

X y ra b n tr

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


B ng cá
cách “cùng L hai BTCQ”
BTCQ” :

2. w = bn, do
do đó
đó w  ( b )*  ( a*b )*  (a*b)*(b*a) *

L1 = L((a*b)*  (b*a)*) và
và L2 = L((a  b)*) = L(
L(*) v i  = { a, b }

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

w = a . . . ab b . . . b a . . . ab
ab b . . . b

C n CM r ng L1 = L2?
 T nay v sau đ đ n gi n, ta vi t w
w thay vì
vì w L(
L()

a*b

a*b

(a*b)*

Do đó
đó, w  (a b) (b a)

4. w ch a a và
và b và
và k t thú
thúc b i a.
T ng t tr ng h p 3, ta c ng có
có :
w  L((a*b) *(b*a)*) 

“” : Rõ rà
ràng L1 = (a*b)*
(a*b)*(b*a)*  L2 = *, vì
vì * là

là bao đó
đóng
ch ng minh đi u ng
w = w1w2...w n  *

(a*b)*

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

 L i gi i là
là CM hai chi u “ ” và “” :

“” :

ng h p nh sau :

1. w = an, do
do đó
đó w  ( a )*  ( b*a )*  (a*b) *(b*a)*

c l i, ta xé
xét m t câu :

C n ch ng minh w  (a*b)*
(a*b)*(b*a)*
43/56
43/
56

44/56

44/
56

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

Các ngôn ng phi chí
chính qui

c ngôn ng

 = { a, b }

 Nh n xé
xét :


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



Các BTCQ ch bi u di n t p vô h n đ m đ
nh ng không bi u di n h t m i ngôn ng



T n t i nh ng ngôn ng phi chí
chính qui
và không có
có đ các BTCQ đ bi u di n m i ngôn ng


c

Các ngôn ng phi CQ

c NNCQ,

T p cá
các NNCQ 

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


T p h p cá
các ngôn ng và t p h p cá
các t p h p con c a m t
t p h p đ m đ c (t p h p cá
các câu) là
là không đ m đ c



T p h p cá
các NNCQ là
là đ m đ c vì
vì m i NNCQ đ c bi u di n
b i m t BTCQ và
và t p h p cá
các BTCQ là
là đ m đ c




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

* = { a, b }*


ó 22nn tt
C


N
N

pp hh pp con
ó nn ph
ccó
con cc aa m
m tt tt pp hh pp AA có
ph nn tt
uu AA có
ó vô
ó vô
ccó
th
vô hh nn đđ m
m đđ cc ph
ph nn tt thì

thìì 22AA ccó
vô hh nn không
không đđ m
m đđ

cc ph
ph nn tt

45/56
45/
56

46/56
46/
56

V n đ bi u di n ngôn ng

Ví d t p con

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

 Cho A = { c c, c , c ng)
H i có
có bao nhiêu t p h p con c a A ?



 Cho L
L+, là

làm sao đ bi u di n h t m i câu w
wL ?
Chi r a ?
 Khi L có
có h u h n câu, ch vi c li t kê cá
các câu

Tr l i : có
có 2|A| =23 = 8 t p h p con c a A
ó là các t p h p con :

 Khi

L có
có vô h n câu, không th li t kê h t cá
các câu c a L,
mà ph i tì
tìm cá
cách bi u di n h u h n :

{ r ng, {c
{c c} , {c } , {c ng},
{c c , c }, {c
{c c , c ng } , {c ,c ng}, {c c, c , c ng} }
 Lý thuy t s


,  ,  vô h n đ m đ




vô
vô h n không đ m đ


-



c

L = { w
* | P(w) }
w*

c (l p đ y tr c s )
2

D ng b ng compacompa-êke s

0

1

N u L g m cá
các câu có
có m t s tính ch t nh t quá
quán P nà
nào đó
đó,

dùng tân t đ bi u di n tính ch t P đó
đó



N u L là
là NNCQ, s d ng BTCQ  ch đ nh L :
L = L(
L()

2

...



+

L tu ý, không ph i là
là NNCQ : s d ng ôtômat và
và v n ph m
- Ôtômat đoá
đoán nh n câu c a m t ngôn ng

2

- V n ph m s n sinh ra câu cho m t ngôn ng
47/56
47/
56


48/56
48/
56

8


Ví d bi u di n ngôn ng

Ví d s n sinh ra câu c a ngôn ng
 Cho L là
là ngôn ng trên { a,
a, b } đ

 Ngôn ng có vô h n câu :


L1 = { ai  i là
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 g m cá
các câu có
có m t dãy con a r i đ n m t dãy con b,


2. N u w  L thì
thì awb  L

trong đó
đó s con a bên trá
trái nhi u h n ho c b ng s con b bên ph i


c đ nh ngh a nh sau :

1.   L

L3 = (ab)*
= { , ab, abab, ababab, … }
là ngôn ng g m cá
các câu có
có các c p ab tu ý (0..n c p)

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

 Qui lu t s n sinh cá
các câu c a L nh sau :
 T (1), L = {  }
Coi  là w, t (2), ta có
có câu awb = a
ab = ab, L = { , ab }



L i do (2), ta có
có L = { , ab, aabb, aaabbb, ... }



C th , ta có
có m i câu c a L có
có d ng aibi  i  0

 Có th bi u di n L d i d ng :
 L = { aibi  i  0 }
49/56
49/
56

50/56
50/
56

Ví d đoá
đoán nh n m t câu c a ngôn ng

B ài t p 1

 Gi s đ nh ngh a ngôn ng L g m cá
các câu w
w :



Có th thu g n w v câu r ng  : w  



Thu g n b ng cá
cách thay th d n cá
các xâu con ab c a w b i 

 Ví d :


w = ab  L vì




w = aabbab  L vì
bab  abab
vì : aab
aabbab
abab  ab  

 Coi a, b l n l

: ab  

Cho các bi u th c chí
chính qui r, s, t,
trong đó

đó n u r = s thì
thì có ngh a L(r) = L(s)
Ch ng minh cá
các tinh ch t sau (d u + ~ d u ):
1. r + s = s + r

8. (r*)* = r*

2. r + (s + t) = (r + s) + t

9. r + r = r

3. r (s + t) = rs + rt

10. r(st ) = (rs)t

4. r = r = r

t là
là c p d u ngo c đ n ( và
và ) :



L g m cá
các c p d u ngo c đ n cân b ng nhau không cà
cài nhau
thu đ c t m t bi u th c toá
toán h c nà
nào đó

đó



Ví d , t bi u th c (3*(x  y))  (x + 1),
1), th c hi n b h t cá
các
ký hi u toá
toán t và toá
toán h ng, ta nh n đ c câu ngo c đ n
cân b ng (())(),
(())(), là
là câu aabbab

5. r +  = r
6. (
( + r)* = r*
7. r = r
r = 

11. * = 
12. (r*s*)* = (r + s)*
13. r + r* = r*
14. (r + s)t = rt + st

51/56
51/
56

52/56

52/
56

Bài t p_2

Phé
Phép ch ng minh

2. Tì
Tìm cá
các BTCQ ch đ nh ph n bù
bù c a cá
các ngôn ng sau :


(a
(ab)*b



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

H
H qu
qu

3. Cho ngôn ng L trên b ng ch { a, b }
đ c đ nh ngh a nh sau :

Phép
Phép CM
CM quy
quy n
n


L



N u w  L thì
thì awb  L



N u w  L thì
thì bwa  L



N u w1, w2  L thì
thì w1w2  L

p
p (induction)
(induction) ::
•• C
C n
n CM

CM P(n),
P(n), n
n
 ?
?
•• Th
tr
ng
h
p
P(0),
Th tr ng h p P(0), P(1)
P(1)
•• Gi
s
P(n)
đúng
Gi s P(n) đúng
C
C n
n CM
CM rr ng
ng P(n+1)
P(n+1) đúng
đúng

nh
nh lý



B đ

M
M nh
nh đ
đ
Pitagore:
Pitagore: a
a22+b
+b22=c
=c22

Tiên đ // nh
nh đ
đ
(công
(công nh
nh n)
n)

Ch ng minh b ng quy n p r ng :
ngôn ng L theo cá
cách đ nh ngh a trên kh L g m m i câu có

s ch a đú
đúng b ng s ch b (vi t g n na(w) = nb(w) ?
53/56
53/
56


Tr i sinh ra th !
54/56
54/
56

9


CM r + s = s + r

CM (r*s*)* = (r + s)*
 S d ng đ nh ngh a ngôn ng L* đ CM :

 “L” hai v , c n CM r ng L(r + s) = L(s + r) :


Th t v y, bi n đ i v trá
trái :



L(r
L(r + s)
s) = (theo
(theo đn)
đn) = L(r)  L(s)
= {w  * | w  L(r)  w  L(s) }
= {w  * | w  L(s)  w  L(r) } (không tin, l p b ng chân lý)
= L(s


+ r)
r)

(đpcm)
đpcm)
(Qed(Qed-Quote Erat Demonstandum)






t L1= (r*s*)*, L2 = (r + s)*,
CM L1= L2 b ng cá
cách CM L1
L1 L2 và
và L2  L1
L1
L1 L2 là
là hi n nhiên vì
vì L2 là
là m t bao đó
đóng ch á m i
câu t các BTCQ r và
và s
L2  L1
L1 ?
Theo đn L1={w|
k: wkr*s*, w= w0w1 ... wk}
L1={w|

Cho w
w L, CM w
wL1

55/56
55/
56

w

= r* = r* (
()  r* s*

w

= s* = (
() s*  r* s*

w

= r*s*  r* s*
s** = L1

r, s

56/56
56/
56

10




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

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