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

Tổng quan về ngôn ngữ chính quy

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 (443.7 KB, 24 trang )

LOGO
NGÔN NGỮ CHÍNH QUI
Regular Languages
CHƯƠNG 2
CÂU HỎI
L = {a, b, c} là ngôn ngữ trên 
2
 L
0
= ?
 L
1
= ?
 L
2
= ?
 L
3
= ?
 L
0
= {}
 L
1
= {a, b, c}
 L
2
= { aa, ab, ac,
ba, bb, bc,
ca, cb, cc}
 L


3
= { aaa, aab, aac,
aba, abb, abc,
aca, acb, acc, … }
Nội dung
1. Bao đóng Kleene và tổng Kleene
2. Ngôn ngữ chính qui (regular language)
3. Biểu thức chính qui (regular expression)
4. Đồ thị biểu diễn biểu thức chính qui
3
Nội dung
1. Bao đóng Kleene và tổng Kleene
2. Ngôn ngữ chính qui
3. Biểu thức chính qui (regular expression)
4. Đồ thị biểu diễn biểu thức chính qui
4
Bao đóng Kleene & tổng Kleene
Xét L là một ngôn ngữ trên bảng chữ cái 
 L
*
là bao đóng Kleene (Kleene closure)
 L
+
là tổng Kleene (Kleene plus)
5
* 0 1 2
0
12
1



n
n
n
n
L L L L L
L L L L





    
   


Bao đóng Kleene & tổng Kleene
Ví dụ: L = {a, b, c} là ngôn ngữ trên 
 L
*
= ?
 L
+
= ?
6
* 0 1 2
0
12
1



n
n
n
n
L L L L L
L L L L





    
   


L
+
? L
*
L
+

L
*
Bao đóng Kleene & tổng Kleene
Ví dụ: L =  là ngôn ngữ trên 
 L
*
= ?

 L
+
= ?
7
L
*
= {}
L
+
= 
*
= {} = 
Nội dung
1. Bao đóng Kleene và tổng Kleene
2. Ngôn ngữ chính qui (regular language)
3. Biểu thức chính qui (regular expression)
4. Đồ thị biểu diễn biểu thức chính qui
8
Ngôn ngữ chính qui
Một ngôn ngữ chính qui (NNCQ) L trên bảng
chữ cái  là một ngôn ngữ được định nghĩa
đệ qui:
 L =  là một NNCQ trên 
 a, L = { a } là một NNCQ trên 
 Nếu L, L
1
, L
2
là NNCQ trên  thì (L
1

 L
2
), L
1
L
2
,
L* cũng là NNCQ trên 
 Không có ngôn ngữ nào khác là NNCQ
9
Ngôn ngữ chính qui
Ví dụ
 L = {} ?
• NNCQ vì {} = 
*
 L = {001, 110} ?
• {001, 110} = ({0}{0}{1}  {1}{1}{0})
10
Mọi ngôn ngữ hữu hạn đều chính qui
Nội dung
1. Bao đóng Kleene và tổng Kleene
2. Ngôn ngữ chính qui (regular language)
3. Biểu thức chính qui (regular expression)
4. Đồ thị biểu diễn biểu thức chính qui
11
Biểu thức chính qui
Biểu diễn các NNCQ trên 
12
Biểu thức chính qui
Ngôn ngữ chính qui

r = 
L = 
r = 
L = {}
a, r = a
L = {a}
r
1
, r
2
là biểu thức chính qui của L
1
, L
2
r
1
+ r
2
L
1
+ L
2
r
1
r
2
L
1
L
2

r
1
*
L
1
*
 chỉ gồm các biểu thức chính qui thỏa đk trên
Biểu thức chính qui
Ví dụ
1. L = {0}
2. L = {001}
3. L = {0, 10}
4. L = {1, }{001}
5. L = {110}
*
{0, 1}
6. L = {1}
*
{10}
13
1. r = 0
2. r = 001
3. r = 0 + 10
4. r = (1+)001
5. r = (110)
*
(0+1)
6. r = (1)
*
10

Biểu thức chính qui
Lũy thừa và tổng Kleene
14
Biểu thức chính qui
Ngôn ngữ chính qui
r là biểu thức chính qui của L
r
n
L
n
r
+
= r
*
r
L
+
= L* L
Nội dung
1. Bao đóng Kleene và tổng Kleene
2. Ngôn ngữ chính qui (regular language)
3. Biểu thức chính qui (regular expression)
4. Đồ thị biểu diễn biểu thức chính qui
15
Đồ thị biểu diễn BTCQ
Các bước xây dựng đồ thị, G(r)
 Bước 1:
• Bắt đầu với đỉnh nội và đỉnh kết thúc
• Đỉnh nội được ký hiệu có mũi tên vào
• Đỉnh kết thúc được ký hiệu bởi vòng tròn đôi

• Vẽ cạnh nối từ đỉnh nội đến đỉnh kết thúc
• Gán nhãn của cạnh là r
16
r
Đồ thị biểu diễn BTCQ
Các bước xây dựng đồ thị
 Bước 2: lặp lại quá trình sau đến khi nào các
nhãn không chứa các phép toán +, . , * thì dừng
• Thay cạnh có nhãn f + g bởi hai cạnh với nhãn f và g
17
f + g
f
g
Đồ thị biểu diễn BTCQ
Các bước xây dựng đồ thị
 Bước 2(tt): lặp lại quá trình sau đến khi nào các
nhãn không chứa các phép toán +, . , * thì dừng
• Thay cạnh có nhãn f g bằng cách thêm một đỉnh và
hai cạnh với nhãn f và g như sau
18
f g
f
g
Đồ thị biểu diễn BTCQ
Các bước xây dựng đồ thị
 Bước 2(tt): lặp lại quá trình sau đến khi nào các
nhãn không chứa các phép toán +, . , * thì dừng
• Thay cạnh có nhãn f
*
bằng cách thêm một đỉnh và ba

cạnh với nhãn , f,

như sau
19
f
*


f
Đồ thị biểu diễn BTCQ
Ví dụ: r = (11 + 0)
*
(00+1)*
20
(11 + 0)
*
(00+1)*
(00+1)*(11+0)*
(00+1)

 

(11+0)
Đồ thị biểu diễn BTCQ
Ví dụ: r = (11 + 0)
*
(00+1)*
21
(00+1)


 

(11+0)
00

 

11
0
1
Đồ thị biểu diễn BTCQ
22
00

 

11
0
1
0

 

1
0
1
1 0
Đồ thị biểu diễn biểu thức chính quy
 Ví dụ: r = (1* + 110)*0
Vẽ đồ thị biểu diễn cho biểu thức r

23
NEXT
 Automat hữu hạn
 Ứng dụng
• Vending machines
• Video games: Pac-Man’s ghost
• Internet Protocol: TCP as a DFA
 Yêu cầu
• Slide
• Câu hỏi (10)
• Mỗi nhóm không báo cáo đặt 1 câu hỏi cho từng
ứng dụng
24

×