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

Lý thuyết Automat hữu hạn

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 (747.93 KB, 63 trang )

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, qQ, 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


×