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

Lý thuyết automata và ngôn ngữ hình thức - Bài 3 potx

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.49 MB, 68 trang )

GIẢ NG V I Ê N : T S . H À C H Í T R U N G
B Ộ M Ô N : K H M T
K H O A C N T T , H V K T Q S
Đ T : 0 1 6 8 . 5 5 8 . 2 1 . 0 2
E M A I L : H C T 2 0 0 9 @ Y A H O O . C O M

Lý thuyết automata và
ngôn ngữ hình thức
© PhD. C.T.Ha, Le Quy Don Technical University
Languague
Grammar
Automata
2
Bài 3. Ngôn ngữ và automata hữu hạn
(Formal Languagues and
Finite Automata)
MỤC ĐÍCH:
 Trang bị những khái niệm về automata hữu hạn (FA);
 Phân loại FA;
 các phép biến đổi tương đương giữa các loại FA;
 Biểu thức chính qui (RE) và sự tương đương với FA;
YÊU CẦU:
 Sinh viên nắm vững các khái niệm, các thuật toán biến đổi
và làm các dạng bài tập.
© PhD. C.T.Ha, Le Quy Don Technical University
Bài 3. Ngôn ngữ và automata hữu hạn
3.1. Các khái niệm sơ lược
3.2. Automata hữu hạn đơn định (DFA)
3.3. Automata hữu hạn đa định (NFA)
3.4. Automata với dịch chuyển ε (NFAε)
3.5. Sự tương đương giữa DFA và NFA


3.6. Sự tương đương giữa NFAε và DFA
3.7. Biểu thức chính quy
3.7.1. khái niệm về biểu thức chính quy
3.7.2. Sự tương đương giữa FA và RE
3.7.3. Sự tương đương giữa DFA và RE
3
28/03/2012
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
Bài 3. Ngôn ngữ và automata hữu hạn
3.1. Các khái niệm sơ lược
3.2. Automata hữu hạn đơn định (DFA)
3.3. Automata hữu hạn đa định (NFA)
3.4. Automata với dịch chuyển ε (NFAε)
3.5. Sự tương đương giữa DFA và NFA
3.6. Sự tương đương giữa NFAε và DFA
3.7. Biểu thức chính quy
3.7.1. khái niệm về biểu thức chính quy
3.7.2. Sự tương đương giữa FA và RE
3.7.3. Sự tương đương giữa DFA và RE
4
28/03/2012
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
3.1. Các khái niệm sơ lược
28/03/2012
5
 Automata là một máy trừu tượng (mô hình tính toán) có
cơ cấu và hoạt động đơn giản nhưng có khả năng đoán
nhận ngôn ngữ.
 Finite automata (FA) - mô hình tính toán hữu hạn: có
khởi đầu và kết thúc, mọi thành phần đều có kích thước hữu

hạn cố định và không thể mở rộng trong suốt quá trình tính
toán;
 Hoạt động theo theo từng bước rời rạc (steps);
 Nói chung, thông tin ra sản sinh bởi một FA phụ thuộc vào cả thông
tin vào hiện tại và trước đó. Nếu sử dụng bộ nhớ (memory), giả sử
rằng nó có ít nhất một bộ nhớ vô hạn;
 Sự phân biệt giữa các loại automata khác nhau chủ yếu dựa
trên việc thông tin có thể được đưa vào memory hay không;

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
3.1. Các khái niệm sơ lược
28/03/2012
6
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
DFA (Deterministic
Finite Automata)
NFA
(Nondeterministic
Finite Automata)
RE (Regular
Expression)
RG (Regular
Grammar) or RL
FA (Finite
Automata)
3.1. Các khái niệm sơ lược
28/03/2012
7
 Đoán nhận ngôn ngữ: đoán nhận các từ của ngôn ngữ đó.
 Hoạt động của automata bắt đầu từ một trạng thái đặc biệt,

trang thái đầu tiên (start state);
 Giả sử rằng tại mỗi thời điểm (step, time step), automata
đang ở một trạng thái nào đó (current state), đầu vào
của automata đón nhận một ký tự của chuỗi cần xử lý, dưới
tác động của ký tự đó automata chuyển sang một trạng thái
kế tiếp (next state);
 Chuỗi được đoán nhận nếu trạng thái cuối cùng của
automata rơi vào một trong các trạng thái kết thúc (finish
states).

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
Bài 3. Ngôn ngữ và automata hữu hạn
3.1. Các khái niệm sơ lược
3.2. Automata hữu hạn đơn định (DFA)
3.3. Automata hữu hạn đa định (NFA)
3.4. Automata với dịch chuyển ε (NFAε)
3.5. Sự tương đương giữa DFA và NFA
3.6. Sự tương đương giữa NFAε và DFA
3.7. Biểu thức chính quy
3.7.1. khái niệm về biểu thức chính quy
3.7.2. Sự tương đương giữa FA và RE
3.7.3. Sự tương đương giữa DFA và RE
8
28/03/2012
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
3.2. Automata hữu hạn đơn định (DFA)
28/03/2012
9
 Định nghĩa 3.1: một DFA là một bộ năm:
A=(Q, Σ, δ, q

0
, F),
trong đó:
Q : tập khác rỗng, tập hữu hạn các trạng thái (p, q…);
Σ : bộ chữ cái nhập vào (a, b, c …);
δ : D→ Q, hàm chuyển (hay ánh xạ), D  Q × Σ, có
nghĩa là δ(p, a) =q hoặc δ(p, a) = Ø, trong đó p, q  Q ,
a  Σ;
q
0
 Q : trạng thái bắt đầu (start state);
F  Q : tập các trạng thái kết thúc (finish states).
Trong trường hợp D = Q × Σ ta nói A là một DFA đầy đủ.

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
3.2. Automata hữu hạn đơn định (DFA)
28/03/2012
10
 Biểu diễn automata: Cho một automata thực chất là cho
hàm chuyển trạng thái của nó, có thể cho dưới dạng bảng
chuyển trạng thái hoặc cho dưới dạng đồ thị chuyển.
 Định nghĩa 3.2: Đồ thị chuyển là một đa đồ thị có hướng
(có thể có khuyên) G: Tập đỉnh của G được gán nhãn bởi các
phần tử thuộc Q, các cung được gán nhãn bởi các phần tử
thuộc Σ, nếu a  Σ, p,q  Q và δ(q, a) = p thì sẽ có một cung
từ đỉnh q tới đỉnh p được gán nhãn a. Đỉnh vào của đồ thị
chuyển ứng với trạng thái ban đầu q
0
.
 Định nghĩa 3.3: Bảng chuyển – bảng có kích cỡ |Q|×|Σ|,

trong đó dòng i cột j của bảng là 

 

 hoặc bỏ trống.

Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
3.2. Automata hữu hạn đơn định (DFA)
28/03/2012
11
Bảng chuyển Đồ thị chuyển
0
, , , ,A Q q F

  
 
01
, , ,
m
Q q q q
 
12
, , ,
n
a a a
Trạng thái bắt đầu
Trạng thái kết thúc
x
Phép chuyển trên nhãn x
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

0
1
q
0
q
1
q
3
q
2
0 0 0
1
1
1
0
0,1
0
0
1
1
1
0111
111
11
1

Automata đoán nhận chuỗi khi đọc hết xâu và rơi vào
trạng thái kết thúc
Thứ tự đọc từ trái qua phải
3.2. Automata hữu hạn đơn định (DFA)

12
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
28/03/2012
3.2. Automata hữu hạn đơn định (DFA)
28/03/2012
13
 Ví dụ 3.1: Cho automata A = ({q
0
; q
1
; q
2
}; {0, 1}, , q
0
, {q
1
})
với hàm chuyển được cho dưới dạng bảng chuyển và đồ thị
chuyển như sau:

Ngôn ngữ được đoán nhận bởi automat A:
L = {1*0*01x : x  {0, 1}*}
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
28/03/2012
14
 Ví dụ 3.2: Automat sau nhận dạng ngôn ngữ gồm chẵn các
số 1 và chẵn các số 0.

3.2. Automata hữu hạn đơn định (DFA)
 Quá trình đoán nhận các xâu: 001011, 101010, 10010


Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
3.2. Automata hữu hạn đơn định (DFA)
28/03/2012
15
 Định nghĩa 3.4: Mở rộng của một ánh xạ δ là δ’ biến đổi
(trạng thái, chuỗi) sang trạng thái. Có nghĩa là:
1. δ’(q, ) = q;
2. δ’(q, wa) = δ’(δ’(q,w), a) với  w, a.
 Chuỗi ω = a
1
a
2
a
n
được đoán nhận bởi DFA A (có nghĩa là
) nếu tồn tại một đường đi bắt đầu từ trạng thái
đầu q
0
và kết thúc ở trạng thái kết với dãy nhãn của đường đi
là a
1
a
2
a
n
.
 Ngôn ngữ được chấp nhận bởi một automata A:
L(A) = { x | δ’( q
0

, x )  F }
 Các ngôn ngữ chấp nhận bởi automata hữu hạn đơn định
được gọi là ngôn ngữ chính quy.
 
0
',qF


Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
3.2. Automata hữu hạn đơn định (DFA)
28/03/2012
16
 Thuật toán đoán nhận chuỗi:
q:= q
0
;
c:= ký hiệu tiếp theo của chuỗi;
while (C < > ε) do {
q:= δ(q, c);
c:= ký hiệu tiếp theo của chuỗi;
};
if (q in F) return (true);
else return (false);
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
Bài 3. Ngôn ngữ và automata hữu hạn
3.1. Các khái niệm sơ lược
3.2. Automata hữu hạn đơn định (DFA)
3.3. Automata hữu hạn đa định (NFA)
3.4. Automata với dịch chuyển ε (NFAε)
3.5. Sự tương đương giữa DFA và NFA

3.6. Sự tương đương giữa NFAε và DFA
3.7. Biểu thức chính quy
3.7.1. khái niệm về biểu thức chính quy
3.7.2. Sự tương đương giữa FA và RE
3.7.3. Sự tương đương giữa DFA và RE
3.7.4. Sự tương đương giữa NFAε và RE
17
28/03/2012
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
3.3. Automata hữu hạn đa định (NFA)
28/03/2012
18
 DFA tại một thời điểm với một trạng thái và một ký tự nhập
vào thì máy chỉ có thể chuyển đến không nhiều hơn một
trạng thái.
 NFA là automata mà ứng với một trạng thái và một ký tự
nhập, có thể có không, một hoặc nhiều phép chuyển trạng
thái.
 Ví dụ 3.3: automata đa định sau nhận dạng các xâu kết
thúc bằng 01
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
28/03/2012
19
3.3. Automata hữu hạn đa định (NFA)
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
 Xét quá trình automata A nhận dạng xâu 00101:

28/03/2012
20
 Định nghĩa 3.5: Automat hữu hạn đa định được định

nghĩa bởi bộ 5:
A = (Q, , , q
0
, F)
trong đó:
Q - tập hữu hạn các trạng thái.
 - là tập hữu hạn các chữ cái.
 - là ánh xạ chuyển trạng thái. : Q   2
Q
q
0
 Q là trạng thái khởi đầu.
F  Q là tập trạng thái kết;
 Ánh xạ δ là một hàm đa trị (hàm không đơn định), vì vậy A
được gọi là không đơn định;

3.3. Automata hữu hạn đa định (NFA)
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
28/03/2012
21
 Chú ý: khái niệm δ(q, a) là tập hợp tất cả các trạng thái p
sao cho có phép chuyển từ trạng thái q trên nhãn a.
 ĐN 3.6: Hàm chuyển trạng thái mở rộng (của NFA):
1. δ(q, ) = {q}
2. δ(q, wa) = { p | r trong δ(q, w) mà pδ(r, a) }
= δ( δ(q,w), a)
3. δ(P, w) = 
qP
δ(q, w) với P  Q
 Ngôn ngữ L(A), với A là NFA (Q, Σ, δ, q

0
, F) là tập hợp :
L(A) = {w | δ(q
0
, w) có chứa một trạng thái trong F}
3.3. Automata hữu hạn đa định (NFA)
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
28/03/2012
22
 Ví dụ 3.4: cho automata (hình vẽ) và xét chuỗi nhập 01001
0
0
1 0 0 1 0
1
0 0
1
1
q
0
q
0
q
0
q
0
q
0
q
0
q

3
q
1
q
3
q
3
q
1
q
4
q
4
3.3. Automata hữu hạn đa định (NFA)
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
 Ngôn ngữ được đoán nhận bởi automata cho ở trên???
28/03/2012
23
Ví dụ 3.5: xét chuỗi nhập w=01001 và NFA đã cho ở trên
A = ( {q
0
, q
1
, q
2
, q
3
, q
4
}, {0, 1}, δ, q

0
, {q
2
, q
4
})
Bảng chuyển Hàm chuyển mở rộng
{q
4
} {q
4
} q
4
Ø {q
4
} q
3
{q
2
} {q
2
} q
2
{q
2
} Ø q
1
{q
0
,q

1
} {q
0
,q
3
} q
0
1 0 Trạng thái
Input δ
• δ(q
0
, 0) = {q
0
,q
3
}
• δ(q
0
, 01) = δ( δ(q
0
, 0), 1)
= δ({q
0
, q
3
},1) = δ(q
0
, 1)
 δ(q
3

, 1) = {q
0
, q
1
}
• δ(q
0
, 010) = {q
0
, q
3
}
• δ(q
0
, 0100) = {q
0
, q
3
, q
4
}
• δ(q
0
, 01001) = {q
0
, q
1
, q
4
}

Do q
4
 F nên w=01001  L(A)
3.3. Automata hữu hạn đa định (NFA)
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
3.3. Automata hữu hạn đa định (NFA)
28/03/2012
24
 Ví dụ 3.6:
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University
3.3. Automata hữu hạn đa định (NFA)
28/03/2012
25
 Ví dụ 3.7:
Automata và ngôn ngữ hình thức - © PhD. C.T.Ha, Le Quy Don Technical University

×