CHƢƠNG 3
AUTOMAT HỮU HẠN
Finite Automata
LOGO
Nội dung
1. Automat hữu hạn (finite automata)
2. Automat hữu hạn đơn định
(deterministic finite automata)
3. Automat
hữu
hạn
không
đơn
định
(nondeterministic finite automata)
4. Automat hữu hạn và ngơn ngữ chính quy
2
Nội dung
1. Automat hữu hạn (finite automata)
2. Automat hữu hạn đơn định
(deterministic finite automata)
3. Automat
hữu
hạn
không
đơn
định
(nondeterministic finite automata)
4. Automat hữu hạn và ngơn ngữ chính quy
3
Automat hữu hạn
Một mơ hình trừu tượng của máy tính thực
hiện một cơng việc nào đó một cách tự
động bao gồm các thành phần:
4
Automat hữu hạn
Thiết bị đầu vào (Input file)
Nơi mà các chuỗi nhập (input string) được ghi
lên, được automat đọc nhưng khơng thay đổi
nội dung của nó.
5
Automat hữu hạn
Đầu đọc/ Cơ cấu nhập
Bộ phận đọc input file từ trái qua phải.
Đọc mỗi ký tự tại một thời điểm
6
Automat hữu hạn
Đơn vị điều khiển (control unit)
Mỗi automat có một đơn vị điều khiển.
Từ một trạng thái bất kỳ chuyển sang một
trạng thái mới
7
Automat hữu hạn
Hoạt động trong khung thời gian rời rạc
Tại 1 thời điểm, đơn vị điều khiển đang ở
trong một trạng thái nội (internal state)
nào đó, và đầu đọc đang quét một ký tự
nào đó trên input file
Tại thời điểm kế tiếp, đơn vị điều khiển ở
trong trạng thái kế tiếp (next state). Việc
xác định trạng thái kế tiếp là nhờ vào hàm
chuyển trạng thái (transition function)
8
Nội dung
1. Automat hữu hạn (finite automata)
2. Automat hữu hạn đơn định
(deterministic finite automata)
3. Automat
hữu
hạn
không
đơn
định
(nondeterministic finite automata)
4. Automat hữu hạn và ngơn ngữ chính quy
9
Automat hữu hạn đơn định
Định nghĩa
Hoạt động
Đồ thị chuyển trạng thái (transition graph)
Ngôn ngữ được chấp nhận bởi DFA
10
Automat hữu hạn đơn định –
Định nghĩa
Một Automat hữu hạn đơn định (DFA) là một
bộ năm M = (Q, , , q0, F):
Q là tập hữu hạn các trạng thái (states)
là bảng chữ cái nhập (input alphabet)
: Q Q là hàm chuyển trạng thái
(transition function)
q0 Q là trạng thái đầu (start state)
F Q là tập các trạng thái kết thúc (final states)
11
Automat hữu hạn đơn định –
Hoạt động
Một DFA hoạt động theo nguyên tắc:
Tại thời điểm khởi đầu, nó được giả thiết đang ở
trạng thái q0 với đầu đọc đang ở ký hiệu đầu bên
trái của chuỗi nhập
Mỗi lần di chuyển, đầu đọc tiến về phía phải 1 ký
hiệu. Khi gặp ký hiệu kết thúc chuỗi thì chuỗi
được chấp nhận nếu DFA đang ở vào một trong
các trạng thái kết thúc, ngược lại thì chuỗi bị từ
chối.
12
Automat hữu hạn đơn định –
Đồ thị chuyển trạng thái
Một DFA được biểu diễn bằng đồ thị:
Đỉnh = trạng thái
Cạnh = phép chuyển trạng thái
Nhãn trên cạnh = giá trị hiện tại của ký tự nhập
Trạng thái khởi đầu được nhận biết bằng dấu
mũi tên vào không mang nhãn
Trạng thái kết thúc được vẽ bằng một vịng trịn
đơi
13
Automat hữu hạn đơn định –
Đồ thị chuyển trạng thái
Ví dụ: Cho M = (Q, , , q0, F) là một DFA
với Q = {q0, q1, q2}, = {0, 1}, F = {q1} và
được xác định bởi:
q0 ,0 q0 q1 ,0 q0 q2 ,0 q2
q0 ,1 q1 q1 ,1 q2 q2 ,1 q1
Đồ thị chuyển trạng thái của DFA ?
14
Automat hữu hạn đơn định –
Đồ thị chuyển trạng thái
Ví dụ: Cho M = (Q, , , q0, F) là một DFA
với Q = {q0, q1, q2}, = {0, 1}, F = {q1} và
được xác định bởi:
q0 ,0 q0 q1 ,0 q0 q2 ,0 q2
q0 ,1 q1 q1 ,1 q2 q2 ,1 q1
0
1
q0
1
q1
0
0
q2
15
1
Automat hữu hạn đơn định –
Đồ thị chuyển trạng thái
0
1
1
0
0
1
1
1
q0
q1
0
q2
1
16
0
Automat hữu hạn đơn định –
Đồ thị chuyển trạng thái
0
1
1
0
0
1
1
1
q0
q1
0
q2
1
17
0
Automat hữu hạn đơn định –
Đồ thị chuyển trạng thái
0
1
1
0
0
1
1
1
q0
q1
0
q2
1
18
0
Automat hữu hạn đơn định –
Đồ thị chuyển trạng thái
0
1
1
0
0
1
1
1
q0
q1
0
q2
1
19
0
Automat hữu hạn đơn định –
Đồ thị chuyển trạng thái
0
1
1
0
0
1
1
1
q0
q1
0
q2
1
20
0
Automat hữu hạn đơn định –
Đồ thị chuyển trạng thái
0
1
1
0
0
1
Chuỗi được chấp nhận
1
1
q0
q1
0
q2
1
21
0
Automat hữu hạn đơn định –
Đồ thị chuyển trạng thái
Ví dụ: Cho M = (Q, , , q0, F) là một DFA với Q =
{q0, q1, q2, q3}, = {0, 1}, F = {q0} và được xác
định bởi:
- Đồ thị chuyển trạng thái của DFA ?
- Xét chuỗi 1010100 ?
22
Automat hữu hạn đơn định –
Ngôn ngữ được chấp nhận bở DFA
Hàm chuyển trạng thái mở rộng
Cho DFA M = (Q, , , q0, F). Mở rộng * của
là một ánh xạ từ Q * Q được xác định:
q, q, q Q
*
* q, wa * q, w , a , a , w * , q Q
23
Automat hữu hạn đơn định –
Ngôn ngữ được chấp nhận bở DFA
Hàm chuyển trạng thái mở rộng
a, qQ, xét: *(q, a) = ?
* q, a q, a
24
Automat hữu hạn đơn định –
Ngôn ngữ được chấp nhận bở DFA
Hàm chuyển trạng thái mở rộng
Ví dụ: Xét DFA M như sau:
0
1
1
q0
q1
0
q2
1
*(q0, 1101) = ?
25
0