Hành vi của mọi máy tuần tự các thao tác thực hiện tuần tự đều có thể biểu diễn được bằng một ôtômát Sau đây chúng ta xét định nghĩa hình thức về ôtômát hữu hạn trạng thái gọi tắt là ôt
Trang 1MỤC LỤC
CHƯƠNG 1 6
LÝ THUYẾT MÃ 6
1.1 Nửa nhóm và vị nhóm 6
1.2 Từ và ngôn ngữ 7
1.3 Mã của các từ hữu hạn 10
1.4 Mã prefix 12
1.4.1 Định nghĩa 12
1.4.2 Biểu diễn hình học (cấu trúc cây) của mã prefix 15
1.5 Tiêu chuẩn kiểm định mã 18
1.6 Độ trễ giải mã 18
CHƯƠNG 2 20
LÝ THUYẾT ÔTÔMÁT 20
2.1 Ôtômát hữu hạn 20
2.1.1 Các tính chất của hàm chuyển trạng thái 23
2.1.2 Các phương pháp biểu diễn ôtômát 24
2.1.3 Ngôn ngữ đoán nhận được của ôtômát 26
2.2 Ôtômát hữu hạn không đơn định 27
2.3 Sự tương đương của ôtômát đơn định và không đơn định 31
2.4 Cực tiểu hoá ôtômát hữu hạn 36
2.5 Ôtômát của mã Prefix 41
2.6 Các phép toán trên mã Prefix 45
CHƯƠNG 3 48
MỘT SỐ ỨNG DỤNG CỦA ÔTÔMÁT TRONG MÃ HÓA BẢO MẬT 48
3.1 Tính chất không nhập nhằng của ngôn ngữ 48
3.1.1 Tích không nhập nhằng và mã 48
3.1.2 Xác định độ không nhập nhằng kiểu 1 51
3.1.3 Xác định độ không nhập nhằng kiểu 2 57
3.2 Phân bậc ngôn ngữ theo tính không nhập nhằng 68
3.2.1 Phân bậc kiểu 1 68
3.2.2 Phân bậc kiểu 2 70
Độ trễ giải mã 71
Trang 23.3.1 Độ trễ giải mã và độ không nhập nhằng 71
3.3.2 Xác định độ trễ giải mã 71
3.3.3 Thuật toán xác định độ trễ giải mã của-mã 83
KẾT LUẬN 85
TÀI LIỆU THAM KHẢO 87
Trang 3DANH MỤC HÌNH VẼ
Trang
Hình 1.1 Một overlap của hai từ liên hợp x và y 9
Hình 1.2 Một X-phân tích của từ w 9
Hình 1.3 Khởi đầu một phân tích kép của từ w 11
Hình 1.4 Biểu diễn của A = {a, b} và A = {a, b, c} 16
Hình 1.5 Biểu diễn của X = {a, ba, baa} 16
Hình 1.6 Biểu diễn của X = {aa, ab, bb, baa} 16
Hình 1.7 Biểu diễn của X = {a, b, ca, cbba, cbcc } 16
Hình 1.8 Biểu diễn của X = a*b 17
Hình 1.9 Biểu diễn của X có 26 phần tử 17
Hình 2.1 Mô hình của ôtômát rời rạc 20
Hình 2.2 Thanh ghi dịch chuyển 4 bit sử dụng D-flip flaps 21
Hình 2.3 Máy hữu hạn trạng thái thực hiện thanh ghi dịch chuyển 4 bit 21
Hình 2.4 Sơ đồ khối của ôtômát hữu hạn 22
Hình 2.5 Biểu diễn đồ thị của ôtômát 26
Hình 2.6 Biểu diễn đồ thị của ôtômát hữu hạn M cho trước 27
Hình 2.7 Hệ biến đổi biểu diễn ôtômát hữu hạn không đơn định 28
Hình 2.8 Ôtômát không đơn định M 29
Hình 2.9 Đồ thị chuyển trạng thái của ví dụ 2.9 38
Hình 2.10 Ôtômát cực tiểu của ôtômát ở Hình 2.9 40
Hình 2.11 Biểu diễn chữ của X 42
Hình 2.12 Biểu diễn otomat của X 42
Hình 2.13 Biểu diễn otomat chữ của X 42
Trang 4Hình 2.14 Biểu diễn otomat tối thiểu của X 42 Hình 2.15 Biểu diễn otomat chữ của X 43 Hình 2.16 Biểu diễn otomat tối thiểu của X 43 Hình 3.1 Minh họa một trường hợp tính toán các tập Ui , Vi+1 theo công thức (3.1) 51
Trang 5DANH MỤC BẢNG
Trang
Bảng 2.1 Bảng chuyển trạng thái của M 25
Bảng 2.2 Bảng các trạng thái của M 33
Bảng 2.3 Bảng các trạng thái của M' 34
Bảng 2.4 Bảng các trạng thái của M' 34
Bảng 2.5 Bảng các trạng thái của M 35
Bảng 2.6 Bảng các trạng thái của M ' 36
Bảng 2.7 Bảng các trạng thái của M 39
Bảng 2.8 Bảng các trạng thái của ôtômát cực tiểu 40
Trang 6Ví dụ 1.1 M = {0,1} là vị nhóm nhân với phần tử đơn vị là 1
Ví dụ 1.2 Với vị nhóm M bất kỳ, ta trang bị cấu trúc vị nhóm cho tập tất cả các tập
con 𝒫(M) của M bằng cách định nghĩa, với X, Y M,
tự đồng cấu
Một tương đẳng trên một vị nhóm M là một quan hệ tương đương trên M sao cho với mọi m,m' M, u,v M
Trang 7m m' mod umv = um'v mod
Nếu : M N là một đồng cấu vị nhóm thì quan hệ (hạt nhân) trên ,
cho bởi m m' mod (m) = (m’) là một tương đẳng trên M Ngược lại, nếu
là một tương đẳng trên vị nhóm M, tập thương M/ với phép toán [x] [y] =
[xy], ở đó [x] ký hiệu lớp tương đương theo chứa x , là một vị nhóm thương của M với tương đẳng và ta có đồng cấu tự nhiên
: M M/ cho bởi
[m] = [m] với mọi m M
Trang 8w = (a 1 , a 2 , , a n ), a i A Tập tất cả các từ trên bảng chữ A đƣợc ký hiệu là A *
và đƣợc trang bị phép nhân (tích) ghép có tính chất kết hợp
(a1,a2, ,a n )(b1,b2, ,b m )= (a1,a2, ,a n ,b1,b2, ,b m )
Vì vậy, để thuận tiện ta viết
w = a1,a2, ,a n thay cho w = (a1,a2, ,a n ) Một phần tử a A đƣợc gọi là một chữ cái Từ rỗng
đƣợc ký hiệu là đóng vai trò là phần tử đơn vị trong phép nhân ghép Do đó, tập
A * có cấu trúc vị nhóm và A * đƣợc gọi là vị nhóm tự do trên A Tập tất cả các từ khác rỗng trên A đƣợc ký hiệu là A +
Ta có A + = A * - {}
Độ dài |w| của từ w = (a1,a2, ,a n ) với a i A là n Quy ƣớc || = 0 Ánh xạ w
|w| là một đồng cấu từ A * đến vị nhóm cộng Với n 0, ta ký hiệu
A <n = {w A * | |w| < n - 1}
và
An = { w A * ||w| n}
Đặc biệt, A <0 = và A0 = {}
Một từ w A * là một khúc con của một từ X A * nếu tồn tại u,v A * sao cho
x = uwv Quan hệ ―là một khúc con của‖ là một quan hệ thứ tự bộ phận trên A * Một khúc con w của x là khúc con thực sự nếu w ≠ x Một từ w A * là một khúc đầu (t.ƣ khúc đuôi) của một từ X A * nếu tồn tại một từ u A * sao cho X = wu (t.ƣ x = uw) Quan hệ ―là một khúc đầu của‖ (t.ƣ ―là một khúc đuôi của‖ ) cũng
là một quan hệ thứ tự bộ phận trên A *
Ta viết w ≤p x (t.ƣ w ≤s x) khi w là một khúc đầu (t.ƣ khúc đuôi) của x và w < p x (t.ƣ w < s x) khi w ≤p x và w ≠ x (t.ƣ w
≤s x và w ≠ x) Thứ tự này có tính chất cơ bản sau đây Nếu có từ x,
w ≤p x, w' ≤p x (t.ƣ w ≤s x, w' ≤s x), thì w và w' so sánh đƣợc với nhau, tức là
Trang 9w ≤p w' hoặc w' ≤p w (t.ư w ≤s w' hoặc w' ≤s w) Tập con X của A * được gọi là tập prefix nếu không có từ nào của X là khúc đầu thực sự của một từ khác trong X
Hai từ x, y A * được gọi là liên hợp nếu tồn tại các từ u, v sao cho X = uv, y =
vu (Xem Hình 1.1) Khi đó ta cũng gọi v là một overlap của x v à y
Hình 1.1 Một overlap của hai từ liên hợp x và y Một tập con của A *
được gọi là một ngôn ngữ trên A
Với một ngôn ngữ X thuộc A * , ta ký hiệu X * vị nhóm con sinh bởi X,
X* = { x1x2… x n | n ≥ 0, x i X } Tương tự, ta ký hiệu X + nửa nhóm con sinh bởi X ,
X + = { x1x2… x n | n ≥ 1, x i X }
Ta có
Một phân tích của một từ w A * theo các từ của X cho bởi đẳng thức w =
x1x2… x n , x i X ,i ≥ 1 Khi đó, ta cũng nói w có một X-phân tích Theo định nghĩa, mỗi từ w X * có ít nhất một X-phân tích Để dễ hình dung, ta thường biểu
diễn một X-phân tích w = x1x2… x n bằng hình sau
Hình 1.2 Một X-phân tích của từ w Cho X, Y A * là các ngôn ngữ Tích của X và Y, thương trái, thương phải của
w
y
Trang 10X bởi V là các ngôn ngữ được định nghĩa ở mục trước với vị nhóm M = A * Với u, v
M, ta sẽ viết uv thay cho u.v Khi đó
Trong phần này ta xem xét định nghĩa và một số tính chất quan trọng của
mã Trước hết ta nhắc lại khái niệm tích không nhập nhằng là cơ sở để xây dựng khái niệm mã
Cho A là một bảng chữ và X, Y A * là các ngôn ngữ Tích XY là không nhập nhằng nếu mỗi từ w XY có duy nhất một phân tích w = xy với x X, y Y
Định nghĩa 1.1 Giả sử A là một bảng chữ hữu hạn Tập X A + là mã trên A nếu với mọi n,m ≥ 1 và với mọi x1,x2, …, x n , y1,y2, ,y m X nếu có
x1x2 … x n = y1y2 … y m thì khi đó
n = m và x i = y i với i = 1, ,n
Cho X A * là một ngôn ngữ Từ định nghĩa của mã ta suy ra các tính chất sau
Tính chất 1.2 X là mã nếu mỗi từ w A * (t.ư w X *) có nhiều nhất (t.ư chỉ có
duy nhất) một X-phân tích
Tính chất 1.3 X là mã khi và chỉ khi X- 1X X * (X*)-1 = {ε}
Ví dụ 1.4 Ngôn ngữ X = {ab, abb, bb} trên bảng chữ A = {a, b} là mã Thật vậy, giả sử X không là mã Khi đó tồn tại một từ w X + có độ dài tối tiểu thừa nhận hai X-phân tích khác nhau,
w = x1x 2 … x n = y1y 2 … y m với x1 y 1
Trang 11( n , m ≥ 1 , x i, y i X ) Từ x1 y1 suy ra x1 là khúc đầu của y1 hoặc ngƣợc lại Giả
sử x1 là khúc đầu của y1 Với X nhƣ trên, ta có x1 = ab và y1 = abb Từ đó suy ra x2
= bb,y 2 = bb Vậy y1 = x1b , y1y2 = x1x2b Thực hiện chứng minh quy nạp theo k
≥ 1, ta có x k+1 = bb và y k+1 = bb Từ đó suy ra y1y 2 … y k+1 = x1x 2 … x k+1 với mọi k
≥ 1 Điều này có nghĩa là không thể có từ w hữu hạn thừa nhận hai X-phân tích
khác nhau, trái với giả thiết
Hình 1.3 Khởi đầu một phân tích kép của từ w
Ví dụ 1.5 Cho A = {a, b} và X = {b, abb, abbba, bbba, baabb} Ngôn ngữ X không là mã vì tồn tại từ w = abbbabbbaabb, w có hai X-phân tích khác nhau,
w = (abbba)(bbba)(abb) = (abb)(b)(abb)(baabb)
Định nghĩa mã theo cách sau đây cho phép ta diễn tả ý nghĩa của thuật ngữ mã
Mệnh đề 1.1 Nếu X A* là mã thì mỗi đồng cấu 𝛽: B* → A*
cảm sinh một song
ánh từ bảng chữ B đến X là đơn cấu Ngƣợc lại, nếu tồn tại một đơn cấu 𝛽: B* → A*
sao cho X = 𝛽( B ) , th ì X l à m ã
Một đơn cấu 𝛽: B * → A * với X = 𝛽( B ) đƣợc gọi là một đồng cấu mã đối với
X Mệnh đề 1.1 trình bày nghĩa gốc của thuật ngữ mã vì các từ của X mã hóa các chữ cái của bảng chữ B Thủ tục mã kết hợp một từ bản rõ b1b2 … b n (b i ∈ B) với một từ mã 𝛽( b1) … 𝛽( b n) bởi sử dụng đồng cấu mã 𝛽 Sự kiện 𝛽 là đơn cấu đảm bảo từ mã đƣợc giải mã theo một cách duy nhất thành từ bản rõ ban đầu
Trang 12Ta nhắc lại rằng một vị nhóm con M của A * là tự do khi và chỉ khi mọi m ∈ M- {} có duy nhất một phân tích trong X = (M - {})-(M- {})2 Mã X cảm sinh vị
nhóm con tự do M của A * đƣợc gọi là cơ sở của M Mối liên hệ giữa mã và vị nhóm
con sinh bởi mã đƣợc thiết lập qua các tính chất sau đây
Mệnh đề 1.3 Giả sử A là một bảng chữ Khi đó, mỗi vị nhóm con M của A* có một
tập sinh cực tiểu duy nhất X = (M- {})- (M - {})2
Ví dụ 1.5 Tập M = {a i , i ∈ ℕ, i ≠ 1} là một vị nhóm con của A * với A = {a, b} Cơ
sở của M là X = { a2
, a3} Tuy nhiên, M không phải là vị nhóm con tự do vì a6 ∈ M
có hai phân tích khác nhau trong X , a6 = a2 a2 a2 = a3.a3
Mệnh đề 1.2 Nếu M là một vị nhóm con tự do của A*, thì khi đó tập sinh cực tiểu
của M là mã Ngƣợc lại, nếu X A* là mã, thì vị nhóm con X* của A* là tự do có tập
x y x = y Hoặc X là prefix nếu X -1 X =
Ta có thể thấy rằng nếu X là tập prefix và chứa từ rỗng thì X = {1}
Ngƣợc lại với định nghĩa prefix ta có định nghĩa suffix Tập X đƣợc gọi là suffix nếu không có từ x nào trong X là khúc đuôi thật sự của từ y khác trong X Tập X đƣợc gọi là bifix nếu nó vừa là prefix, vừa là suffix
Ví dụ 1.6 Tập X = {abb, bb, bab} trên A = {a, b}, là tập prefix vì không tồn tại từ nào trong X có chứa thừa số bên trái cũng là từ trong X Tuy nhiên X không phải là
Trang 13suffix vì từ abb thuộc X có thừa số bên phải bb thuộc X Do đó X không phải là tập
Mệnh đề 1.3 Mọi tập prefix khác {1} đều là mã
Hoàn toàn tương tự, ta có mệnh đề với tập suffix
Mệnh đề 1.4 Với mọi tập con X A* thì ta có:
Trang 14Mệnh đề sau cho ta quan hệ giữa mã prefix với idian phải Mệnh đề này cho ta
phương pháp xây dựng mã prefix từ các từ trong A*
Chứng minh:
1 Từ X = L - LA+ ta có X L, kéo theo XA+ LA+, do đó
X XA+ X LA+ =
Vế đầu chứng tỏ X là prefix Để ý rằng L XA *
Thật vậy, xét u L, khi đó có hai khả năng: Nếu u X thì u XA*, còn nếu u
LA + thì u = u’w với w A + Do độ dài hữu hạn nên ta có u’XA*, vậy u XA*
Từ hệ thức L XA * nên ta có LA XA * Chiều ngược lại, do XL suy ra XA *
LA * Vậy XA*
= LA *
2 Giả sử x X Khi đó x = mu, với m M và u A * Tương tự m = x’v, với x’
X và v A * Từ đó x = x’uv Bởi vì X là prefix do đó ta có uv = 1 Vậy X M
Từ XA *
= MA * ta có XA * A = MA * A hay XA + = MA + Suy ra XM - MA + Thật
vậy, nếu ngược lại, cho m M - MA + khi đó m = xu, với x X và u A * Nếu u
1 thì xu XA + mà XA + = MA + , như thế m = xu MA + trái với giả thiết m M -
MA + Vậy u = 1 và x M - MA +
Tập X = L - LA + được gọi là tập khởi tạo hoặc cơ sở của Idian phải LA *
Hệ quả 1.4 Cho X và Y là các tập con Prefix của A * Nếu XA * = YA * thì X = Y
Ví dụ 1.8: Cho tập A = {a, b} và L = A *
aA * (tập các từ có chứa a) Khi đó
Trang 15X = L - LA + = b * a
Ví dụ 1.9: Cho tập A = {a, b} và L = A * ab (tập các từ kết thúc bằng ba) Khi đó X
= L - LA + = A*ab - A * abA + = b * a * ab Dễ thấy rằng X là tập prefix vì X là tập các từ kết thúc bằng ab nhưng không chứa chuỗi ab nào khác ở giữa
Ví dụ 1.10: Cho tập A = {a, b} và L = {aa, ba, aab, aaa, bba, bab} Khi đó
X = L - LA + = {aa, ba, bba} là tập prefix
Cũng như tập mã cực đại, tập con X của A * là tập prefix cực đại nếu nó prefix
và nó không bị chứa hoàn toàn trong một tập prefix khác của A * , tức là nếu với Y
A * là prefix và X Y X = Y
Dễ dàng nhận thấy tập {1} là prefix cực đại Mọi tập prefix cực đại khác với
{1} là mã Mọi tập mã cực đại có tính prefix đều là mã prefix cực đại
1.4.2 Biểu diễn hình học (cấu trúc cây) của mã prefix
Chúng ta xét biểu diễn hình học của mã nói chung và mã prefix nói riêng trên
2 hoặc 3 chữ cái Biểu diễn hình học cho ta mối liên hệ giữa mã và cấu trúc cây sao cho mỗi từ của mã tương ứng với một nút trên cây
Trước tiên ta xây dựng cây vô hạn cho tập A * như sau: Bảng chữ cái được sắp theo thứ tự các từ có cùng độ dài được sắp theo thứ tự từ điển (lexicography) Như
thế mỗi nút của cây tương ứng với một từ trong A* Từ có độ dài ngắn hơn nằm trước (nút cha) từ dài hơn, các từ có cùng độ dài được phân nhánh theo thứ tự từ
điển Nếu tồn tại nhánh đi từ u đến v khi và chỉ khi v = ua, với a là chữ cái nào đó của A Cấu trúc cây xây dựng như trên được gọi là biểu diễn chữ của A *
Ví dụ 1.11: Xây dựng cây cho A với A = {a, b} và A = {a, b, c}
Trang 16Hình 1.4 Biểu diễn của A = {a, b} và A = {a, b, c}
Cho tập X A*, ứng với một cây con bằng cách giữ lại các nút tương ứng với
các từ trong X cùng với các nút trên đường đi từ gốc đến nó Cây con thu được gọi
là biểu diễn chữ của X
Ví dụ 1.12: Cây biễu diễn tập của các tập X = {ab, bb, aab}
Hình 1.7 Biểu diễn của X = {a, b, ca, cbba, cbcc }
Hình 1.5 Biểu diễn của
X = {a, ba, baa} Hình 1.6 Biểu diễn của
X = {aa, ab, bb, baa}
Trang 17Hình 1.8 Biểu diễn của X = a*b
Dựa trên biểu diễn cây, ta nhận thấy một từ là thừa số bên trái thực sự của từ
khác nếu có nằm trên đường đi từ gốc đến từ thứ hai Như vậy, tập X là prefix khi
và chỉ khi trên cây biểu diễn chữ của X, mọi từ trong X là nút lá của cây Cách biễu diễn chữ giúp ta dễ dàng hình dung về tập X và có thể biễu diễn tập với nhiều phần
tử
Hình 1.9 Biểu diễn của X có 26 phần tử
Trang 181.5 Tiêu chuẩn kiểm định mã
Thuật toán kiểm định mã là một thuật toán cốt lõi và kinh điển trong lý thuyết
mã, cần thiết cho các nghiên cứu về mã truyền thống và các hình thức mã mới Trong phần này, ta nhắc lại thuật toán kinh điển Sardinas-Patterson
Cho một ngôn ngữ X A + , ta xem xét các tập phần dƣ U i kết hợp với X đƣợc
định nghĩa đệ quy nhƣ sau
Ví dụ 1.12 Cho A = {a, b} và X = {b, abb, abbba, bbba, baabb} Tập X không là
mã vì tồn tại từ w = abbbabbbaabb, w có hai phân tích khác nhau trong X,
w = (abbba)(bbba)(abb) = (abb)(b)(abb)(baabb)
Sử dụng thuật toán kiểm tra mã, ta có
U1 = {ba, aabb, ba}, U2 = {a, ba, abb}, U3 = {, a, ba, bb, bbba, abb}
Vì U3, suy ra X không là mã
Nhận xét 1.1 Giả sử V i (i 1), V1 V2 … A* là một dãy tăng bất kỳ sao
cho mọi tập V i cùng thỏa bởi một toàn cấu vị nhóm h : A * P,với P là một vị nhóm hữu hạn Khi đó tồn tại một dãy tăng K1 K2 … P sao cho V ¡ =h-1(K i ) với i = 1,2,… Dãy tăng này là hữu hạn và tổng số phần tử của nó không vƣợt quá Card(P) Nhận xét này cung cấp một kỹ thuật để ta xây dựng các tiêu chuẩn kiểm
định mã mới
1.6 Độ trễ giải mã
Khái niệm độ trễ giải mã đƣợc giới thiệu nhằm mở rộng các khái niệm của mã
(1.1)
Trang 19prefix cho trường hợp mã thông thường Ta biết rằng lớp mã prefix có độ trễ 0, do
đó mã có độ trễ giải mã giới nội là trường hợp tổng quát của mã prefix Ta nhắc lại
rằng ngôn ngữ X A * là mã prefix khi và chỉ khi X là mã và X là tập prefix Khái
niệm độ trễ giải mã được định nghĩa như sau
Định nghĩa 1.2 Giả sử X là một tập con của A+ Khi đó X được gọi là có độ trễ
giải mã hữu hạn nếu có một số nguyên d 0 sao cho
x,x’ X,y X d , u A * , xyu x’X * x=x’ (1.2)
Dễ thấy rằng nếu hệ thức (1.2) thoả mãn với d nào đó thì nó cũng đúng với mọi d' d Nếu X có độ trễ giải mã hữu hạn thì số nguyên nhỏ nhất thoả hệ thức (1.2) được gọi là độ trễ giải mã của X, số nguyên bất kỳ thỏa hệ thức (1.2) được gọi là độ trễ giải mã yếu của X
Ví dụ 1.13 Cho A = {a, b} Khi đó tập X = {ab, abb, baab} có độ trễ giải mã d = 1
và tập Y = {a, ab, b2} có độ trễ giải mã vô hạn
Ta có mệnh đề sau đây về mối quan hệ giữa mã và độ trễ giải mã
Mệnh đề 1.6 Cho X A * Nếu X có độ trễ giải mã hữu hạn thì X là mã
Ví dụ 1.14 Cho tập X như trong Ví dụ 1.13 Bằng định nghĩa, ta có thể kiểm tra tập
X là mã
Trang 20CHƯƠNG 2
LÝ THUYẾT ÔTÔMÁT 2.1 Ôtômát hữu hạn
Chúng ta sẽ tìm hiểu về một định nghĩa tổng quát nhất của ôtômát và sau đó
thu hẹp cho phù hợp với các ứng dụng của khoa học máy tính Một ôtômát được định nghĩa như là một hệ thống , trong đó năng lượng, vật chất hoặc thông tin được
biến đổi; được truyền đi và được sử dụng để thực hiện một số chức năng nào đó mà không cần có sự tham gia trực tiếp của con người Ví dụ như máy phô-tô-copy tự động, máy trả tiền tự động ATM,
Trong khoa học máy tính, thuật ngữ ôtômát có nghĩa là máy xử lý tự động trên
dữ liệu rời rạc Mỗi ôtômát được xem như là một cơ chế biến đổi thông tin gồm một bộ điều khiển, một kênh vào và một kênh ra
Hình 2.1 Mô hình của ôtômát rời rạc
Trong đó có các thành phần:
1 Đầu vào (input) Ở mỗi thời khoảng (rời rạc) t1, t2, , các dữ liệu vào I1, I2,
, là những số hữu hạn các giá trị từ bảng chữ cái A đầu vào
2 Đầu ra (Output) O1, O2, Om: các kết quả xử lý của hệ thống là các số hữu hạn các giá trị xác định kết quả đầu ra
3 Trạng thái Tại mỗi thời điểm, ôtômát có thể ở một trong các trạng thái
Trang 214 Quan hệ giữa các trạng thái Trạng thái tiếp theo của ôtômát phụ thuộc vào
hiện trạng và đầu vào hiện thời, nghĩa là được xác định phụ thuộc vào một hay nhiều trạng thái trước và dữ liệu hiện thời
5 Quan hệ kết quả Kết quả của ôtômát không những chỉ phụ thuộc vào các
hiện trạng mà còn phụ thuộc vào các đầu vào Như vậy, kết quả (đầu ra, output) của ôtômát được xác định theo đầu vào và các trạng thái thực hiện của nó
Ví dụ 2.1 Xét thanh ghi dịch chuyển như sau
Hình 2.2 Thanh ghi dịch chuyển 4 bit sử dụng D-flip flaps
Thanh ghi dịch chuyển trên còn được gọi là máy hữu hạn trạng thái có 24 = 16 trạng thái (0000, 0001, , 1111), một dãy vào và một dãy ra, bảng chữ cái vào (tín hiệu vào) A = {0, 1}và bảng chữ cái đầu ra (tín hiệu ra) O = {0, 1} Thanh ghi dịch chuyển 4 bit trên có thể được mô tả bởi ôtômát sau:
Hình 2.3 Máy hữu hạn trạng thái thực hiện thanh ghi dịch chuyển 4 bit
Nhận xét2.1 Hành vi của mọi máy tuần tự (các thao tác thực hiện tuần tự) đều có
thể biểu diễn được bằng một ôtômát
Sau đây chúng ta xét định nghĩa hình thức về ôtômát hữu hạn trạng thái gọi tắt
là ôtômát hữu hạn.Một ôtômát hữu hạn làm việc theo thời gian rời rạc như tất cả các mô hình tính toán chủ yếu Như vậy, ta có thể nói về thời điểm ―kế tiếp‖ khi
Ôtômát
q1, q2, … q16
D Q D Q D Q D Q
Trang 22―đặc tả‖ hoạt động của một ôtômát hữu hạn Một cách hình thức hơn, ôtômát được định nghĩa như sau
Định nghĩa 2.1 Ôtômát hữu hạn đơn định (gọi tắt là ôtômát hữu hạn), có thể biểu
diễn được bởi bộ 5 thành phần M = (A, Q, , q0, F), trong đó:
(i) A là tập hữu hạn khác rỗng các ký hiệu đầu vào (bảng chữ cái)
(ii) Q là tập hữu hạn khác rỗng các trạng thái,
(iii) là ánh xạ từ A × Q Q và được gọi là hàm chuyển trạng thái Hàm này mô
tả sự thay đổi trạng thái của ôtômát và thường được cho biết dưới dạng bảng chuyển trạng thái hay đồ thị chuyển trạng thái
(1) q 0 Q là trạng thái khởi đầu,
(2) F Q là tập các trạng thái kết thúc Tổng quát: | F| 1
Hình 2.4 Sơ đồ khối của ôtômát hữu hạn
Ôtômát hữu hạn trạng thái gồm các thành phần sau:
(i) Băng dữ liệu vào Băng dữ liệu vào được chia thành các ô, mỗi ô chứa
một ký tự từ bảng chữ cái A, trong đó ô đầu được đánh dấu cho sự bắt đầu bằng ©
và ô cuối dùng $ để đánh dấu kết thúc Khi không sử dụng các ô đánh dấu đó thì băng dữ liệu vào sẽ được xem như có độ dài vô hạn
Đầu đọc R Xâu được xử lý
Băng dữ liệu vào
Trang 23(ii) Đầu đọc R Mỗi lần đầu đọc chỉ xem xét một ô và có thể dịch qua
phải hoặc qua trái một ô Để đơn giản, chúng ta giả thiết đầu đọc chỉ dịch qua phải sau mỗi lần xử lý
(iii) Bộ điều khiển hữu hạn Bộ này điều khiển hoạt động của ôtômát mỗi khi đọc một dữ liệu vào Khi đọc một ký hiệu vào, ví dụ a, ở trạng thái q có thể cho
các kết quả sau:
(1) Đầu đọc R vẫn ở nguyên tại chỗ, không dịch chuyển,
(2) Chuyển sang trạng thái khác được xác định theo (q,a)
Ví dụ 2.2 Hệ thống thang máy của một toà nhà nhiều tầng có thể mô hình hóa như
là một ôtômát hữu hạn Thông tin vào gồm các yêu cầu đi lên, đi xuống tại mọi thời điểm khi người sử dụng có nhu cầu Trạng thái được xác định bởi thông tin về các yêu cầu vẫn chưa được đáp ứng (về những tầng cần đi tới từ bên trong thang máy, hay ở trên các tầng), về những vị trí hiện tại của thang máy (lên hay xuống) Trạng thái tiếp theo luôn được xác định bởi trạng thái hiện tại và thông tin vào Từ các trạng thái hiện tại cũng xác định được thông tin ra mô tả hành vi của hệ thống thang máy
Để hiểu được hoạt động của các ôtômát, chúng ta cần phải tìm hiểu các tính chất, đặc trưng của hàm chuyển trạng thái
2.1.1 Các tính chất của hàm chuyển trạng thái
Hàm chuyển trạng thái được xác định trong định nghĩa ôtômát hữu hạn là một ánh xạ xác định trên các cặp trạng thái và ký hiệu vào, do vậy không thể sử dụng trực tiếp để đoán nhận các xâu, mà phải mở rộng thành ánh xạ
Trang 24đổi khi có dữ liệu vào (2.1)
Chứng minh: Qui nạp theo |y|, nghĩa là theo số ký tự trong y
Cơ sở: Khi |y| = 1, y = a, thì (q, xa) = ((q, x), a) đúng theo tính chất (2.2b) Giả sử rằng (2.3) đúng với mọi xâu x và với những xâu y có n phần tử, |y| = n Khi xâu y có độ dài là n+1, ta có thể viết y = y1a, với | y1| = n Khi đó
(q, xy) = (q, xy1a) = (q, x1a), với x1 = xy i
Do vậy, tính chất (2.3) đúng với mọi xâu x, y
2.1.2 Các phương pháp biểu diễn ôtômát
Cho một ôtômát thực chất là chỉ cần cho biết hàm chuyển trạng thái của nó Hàm chuyển trạng thái có thể cho dưới dạng bảng chuyển trạng thái hoặc dưới dạng
đồ thị
A/ Phương pháp cho bảng chuyển trạng thái
Bảng cho trước một ôtômát có thể cho dưới dạng bảng chuyển trạng thái
Trang 25B/ Phương pháp biểu diễn bằng đồ thị
Bảng 2.1 Bảng chuyển trạng thái của M
qf
Trang 26Hàm chuyển trạng thái có thể biểu diễn dưới dạng đồ thị có hướng, trong đó
mỗi trạng thái là một đỉnh Nếu từ ký tự vào a A, và từ trạng thái q ôtômát chuyển sang trạng thái p((q, a) = p) thì sẽ có cung đi từ q đến p với nhãn là a Đỉnh ứng với trạng thái bắt đầu (q0) có mũi tên đến, những đỉnh ứng với các trạng
thái kết thúc (thuộc tập F) được khoanh trong vòng tròn kép, những đỉnh còn lại
được khoanh trong vòng tròn đơn
Ví dụ 2.4 Ôtômát hữu hạn có hàm chuyển trạng thái được xác định theo bảng ở ví
dụ 2.3 được biểu diễn bằng đồ thị như sau:
Hình 2.5 Biểu diễn đồ thị của ôtômát
2.1.3 Ngôn ngữ đoán nhận được của ôtômát
Định nghĩa 2.2 Một xâu X được đoán nhận bởi ôtômát hữu hạn M = (A, Q, , q0,
F) nếu (q0, x) = q, với q F, nghĩa là (q0, x) F
Định nghĩa 2.3 Tập tất cả các xâu (còn được gọi là ngôn ngữ) được đoán nhận bởi
ôtômát hữu hạn M = (A, Q, , q0, F), được ký hiệu là
Trang 27= (qh, 1) = (q0, ) = q0
Ví dụ 2.6 Xét ôtômát hữu hạn M được cho như ở hình sau
Hình 2.6 Biểu diễn đồ thị của ôtômát hữu hạn M cho trước
Dựa vào các tính chất và cách biểu diễn của hàm chuyển trạng thái trên đồ thị định hướng, chúng ta nhận thấy:
Một xâu (một từ) đoán nhận được bởi M là dãy các ký tự đầu vào (các nhãn
trên các cung) trên đường đi từ đỉnh bắt đầu đến một trạng thái kết thúc nào
đó
Ngôn ngữ đoán nhận được bởi M là tập tất cả các xâu được ghép từ các nhãn
trên tất cả các đường đi từ đỉnh bắt đầu đến các đỉnh kết thúc
Từ nhận xét trên, ta suy ra ngôn ngữ đoán nhận được bởi M sẽ là
T(M) = {a(ba) n a, b m | n 0, m > 0}
2.2 Ôtômát hữu hạn không đơn định
Chúng ta đã nghiên cứu những ôtômát mà từ một trạng thái (chưa kết thúc) và một ký tự vào thì trạng thái tiếp theo của chúng được xác định duy nhất Tiếp theo chúng ta xét trường hợp những ôtômát hữu hạn mà trạng thái tiếp theo như trên không xác định duy nhất
a
Trang 28Chúng ta xét ôtômát đƣợc cho bởi đồ thị chuyển trạng thái nhƣ Hình 2.7
Hình 2.7 Hệ biến đổi biểu diễn ôtômát hữu hạn không đơn định Khi ở trạng thái q0 và dữ liệu vào là 0, thì ôtômát chuyển đến trạng thái nào?
Theo hệ thống trên thì nó có thể hoặc chuyển đến ql hoặc quay vòng trở lại chính
q0 Nhƣ vậy, trạng thái tiếp theo của ôtômát không xác định duy nhất khi nhận dữ
liệu vào 0 Những ôtômát nhƣ vậy đƣợc gọi là ôtômát hữu hạn không đơn định
(không tất định)
Định nghĩa 2.4 Một ôtômát hữu hạn không đơn định, gọi tắt là ôtômát không đơn
định, là bộ 5 phần tử M = (A,Q, , q0, F), trong đó
(i) A là tập hữu hạn khác rỗng các ký hiệu vào (bảng chữ cái), với A Q ≠ ∅,
(ii) Q là tập hữu hạn khác rỗng các trạng thái,
(iii) là ánh xạ từ Q × A vào 2Q (tập tất cả các tập con của Q),
(iv) q0 Q là trạng thái khởi đầu,
(v) F Q là tập các trạng thái kết thúc Tổng quát thì |F| 1
Chúng ta nhận thấy sự khác nhau giữa đơn định (tất định) và không đơn định của ôtômát chỉ là ở hàm chuyển trạng thái Đối với ôtômát đơn định, kết quả của
0 1
Trang 29 chỉ là một trạng thái, là một phần tử của Q; còn đối với ôtômát không đơn định,
kết quả của hàm chuyển trạng thái là một tập con các trạng thái của Q
Tương tự như đối với ôtômát đơn định, hàm chuyển trạng thái được xác định trong định nghĩa ôtômát không đơn định là một ánh xạ xác định trên các cặp trạng thái và ký hiệu vào, do vậy không thể sử dụng trực tiếp để đoán nhận các xâu, mà phải mở rộng thành ánh xạ
(iv) S Q, a A, w A*, (S, aw) = ((S, a), w)
Định nghĩa 2.5 Xâu w A* đoán nhận được bởi một ÔTKĐĐ M nếu (q0, w) có
chứa một số (ít nhất một) trạng thái kết thúc
Ví dụ 2.7 Xét ôtômát không đơn định được biểu diễn bằng biểu đồ chuyển trạng
thái như hình Hình 2.8
(2.4) (2.5) (2.6)
(2.7)
Trang 30Dãy các trạng thái xác định bởi dãy vào 0100 được mô tả qua hàm chuyển trạng thái như sau:
Tương tự, dãy 0100 cũng chính là dãy của các nhãn trên đường đi từ q0, q0, q3,
q4, và kế thúc ở q4, nên nó được đoán nhận bởi M (Hình 2.8)
Từ đó, chúng ta có tập tất cả các từ đoán nhận bởi một ôtômát được định nghĩa như sau
Định nghĩa 2.6 Tập các xâu (từ) được M (đơn định hoặc không đơn định) đoán
nhận là tập tất cả các xâu dữ liệu (dãy các ký tự) đầu vào được đoán nhận bởi M; ký hiệu T(M)
T(M) = {w A * | (q 0 , w) F ≠∅}
Tập các xâu được đoán nhận (hay đoán nhận được) bởi một ôtômát thể hiện khả năng tính toán của hệ thống và mô tả hành vi của một ôtômát Tập đoán nhận
Trang 31được bởi một ôtômát thường còn được gọi là ngôn ngữ được đoán nhận bởi ôtômát
đó
2.3 Sự tương đương của ôtômát đơn định và không đơn định
Ở trên chúng ta đã phân biệt hai loại ôtômát đơn định và không đơn định Vấn
đề quan trọng là chúng có quan hệ với nhau như thế nào?, nghĩa là ngôn ngữ đoán nhận bởi ôtômát đơn định và không đơn định có quan hệ với nhau hay không? Một cách trực quan chúng ta nhận thấy:
Ôtômát đơn định có thể mô phỏng hành vi của ôtômát không đơn
định bằng cách gia tăng số các trạng thái Nói cách khác, ôtômát đơn định (A,
Q, , q0, F) có thể xem như ôtômát không đơn định (A, Q, ’, q0, F’) bằng
cách định nghĩa '(q, a) = {(q, a)}, nói cách khác ôtômát đơn định là trường
hợp đặc biệt của ôtômát không đơn định
Ôtômát không đơn định là tổng quát hơn, song có vẻ như không mạnh hơn, nghĩa là tập mà nó đoán nhận không nhiều hơn ôtômát đơn định Điều thứ hai được khẳng định bởi định lý sau
Định lý 2.1 Với mọi ôtômát không đơn định M luôn tồn tại ôtômát đơn định M'
tương đương theo nghĩa chúng đoán nhận cùng một tập dữ liệu, T(M) = T(M') Chứng minh: Giả sử ôtômát không đơn định M = (A, Q, , q0, F) đoán nhận L Chúng ta xây dựng một ôtômát đơn định M' = (A’, Q’, ’, q’0, F’) như sau:
Trang 32khởi động từ q0 và với một dữ liệu vào bất kỳ, ví dụ a, M có thể chuyển sang một
trong các trạng thái của (q0, a) Để khảo sát hoạt động của M khi xử lý a, chúng ta phải xét tất cả các trạng thái có thể đạt đƣợc khi nó xử lý a Vì thế các trạng thái của M' sẽ là các tập con của Q Khi M bắt đầu với q0, q0' đƣợc định nghĩa nhƣ trên
sẽ là trạng thái khởi đầu của M' Mặt khác xâu w T(M) = L nếu M đạt đến trạng thái kết thúc khi xử lý w Do vậy, trạng thái kết thúc của M' (phần tử của F') là tập con của Q và có chứa một số trạng thái kết thúc của M
Tiếp theo chúng ta định nghĩa ':
(q0, x) = {q1, q2, , qi} với mọi x trong A* (2.8)
Chúng ta chứng minh điều kiện cần của (2.8) qui nạp theo |x|
'(q0, y) = {pl, p2, , pk} (2.10)
Mặt khác, {r1, r2, ., r1} = (q0, ya) = ((q0, y), a) = ({p1, p2, …, pk}, a) Theo
Trang 33định nghĩa của ',
'({p1, p2, …, pk}, a) = {r1, r2, , r1} (2.11)
Do vậy, '(q0', x) = '(q0', ya) = '('(q0', y), a) = '({p1, p2, …, pk}, a)
= {r1, r2, , r1} theo (2.11)
Suy ra (2.9) được chứng minh với x = ya
Điều kiện đủ chứng minh tương tự
Từ đó suy ra, x ∈ L = T(M) khi và chỉ khi (q, x) chứa một trạng thái của F
Bởi vì (q 0 , x) chứa trạng thái thuộc F khi và chỉ khi '(q0', x) nằm trong F' Điều đó khẳng định x ∈ T(M) ↔ x ∈ T(M'), đồng nghĩa với việc M' cũng đoán nhận đúng L
Ví dụ 2.8 Xét ôtômát không đơn định M = ({q0 , q1}, {0, 1}, , q0, {q0}) với hàm chuyển trạng thái được xác định theo Bảng 2.2
Bảng 2.2 Bảng các trạng thái của M Xây dựng ôtômát đơn định tương đương M' theo định lý 2.1, có các thành phần:
Trang 34(iv) ' đƣợc định nghĩa nhƣ trong Bảng 2.3
Trong bảng chuyển trạng thái 2.3 trạng thái ∅ là không đạt đến đƣợc từ trạng
thái bắt đầu {q0} nên có thể loại bỏ đi Ngoài ra, để cho tiện lợi chúng ta có thể ký
hiệu lại tập các trạng thái, ví dụ s0 = {q0}, s1 = {q1}, s2 = {q0, q1} và Q' = { s0, s1,
s1} Khi đó, ôtômát có hàm chuyển trạng thái nhƣ trên sẽ đƣợc viết thành
Trang 35đơn định hóa)
Input: Cho trước ôtômát M = (A, Q, , q0, F) không đơn định
Output: Hàm chuyển trạng thái ' của ôtômát đơn định tương đương
, {a, b}, ', {q0}, F'), trong đó F' = {{q2}, {q 0 , q2}, {q1, q2}, {q0, q1, q2}} Thực hiện theo thuật toán 2.1 ta thu được ' như ở Bảng 2.6
Trang 36Bảng 2.6 Bảng các trạng thái của M '
2.4 Cực tiểu hoá ôtômát hữu hạn
Trong phần này chúng ta xét vấn đề tìm ôtômát có số trạng thái cực tiểu tương đương (cùng đoán nhận một ngôn ngữ) với ôtômát cho trước
Trên tập các trạng thái Q chúng ta định nghĩa một số quan hệ tương đương
Định nghĩa 2.7 Hai trạng thái q1 và q2 được gọi là tương đương, ký hiệu q1 ≅ q2, nếu cả hai (q1, x) và (q2, x) đều là những trạng thái kết thúc hoặc cả hai đều không kết thúc với mọi x ∈ A*
Số các xâu (từ) được xây dựng từ bảng ký tự vào A thường là khá lớn (có khi
là vô hạn), nhưng trong phần này chúng ta chỉ xét những trường hợp hữu hạn
Định nghĩa 2.8 Hai trạng thái q1 và q2 được gọi là k-tương đương ( k ≥ 0), ký hiệu
q1 ≅k q2, nếu cả hai (q1, x) và (q2, x) đều là những trạng thái kết thúc hoặc cả hai đều không kết thúc với mọi x ∈ A* có độ dài nhỏ hơn k
Hiển nhiên, hai trạng thái kết thúc hoặc hai trạng thái không kết thúc đều là 0- tương đương
Các quan hệ trên có một số tính chất như sau
Tính chất 2.3 Hai quan hệ ≅ và ≅ k là các quan hệ tương đương (có tính phản xạ, bắc cầu và đối xứng)
Trang 37Tính chất 2.4 Các lớp tương đương của hai quan hệ ≅ và ≅ k sẽ tạo ra hai phân hoạch π, πk của Q; các phần tử của πk là các lớp k-tương đương
Tính chất 2.5 Nếu q1 ≅ q2 thì q1 ≅ k q2, với mọi k ≥ 0
Tính chất 2.6 Nếu q1 ≅ (k+1 ) q2 thì q1 ≅ k q2
Tính chất 2.7 Tồn tại n để πn = πn+1
Mệnh đề sau sẽ là cơ sở để xây dựng ôtômát cực tiểu
Mệnh đề 2.2 Hai trạng thái q1 và q 2 được gọi là (k+1)- tương đương nếu
(a) Chúng là k-tương đương,
(b) (q1, a) và (q2, a) cũng là k-tương đương với mọi a ∈ A
Chứng minh: Chúng ta chứng minh bằng phản chứng Giả sử q1 và q2 không phải là
(k+1)-tương đương Khi đó tồn tại w = aw1 với độ dài k+1 sao cho (q1, aw1) là trạng thái kết thúc nhưng (q2, aw1) lại không phải là trạng thái kết thúc Như vậy,
(q1, aw1) = ((q1, a), w1) là trạng thái kết thúc và (q2, aw1) = ((q2, a), w1) không phải là trạng thái kết thúc Từ đó suy ra (q1, a) và (q2, a) không phải là k-
tương đương, mâu thuẫn với giả thiết (b)
Dựa vào các tính chất trên chúng ta có thể xây dựng các lớp (k+1)-tương đương khi biết các lớp k-tương đương trên tập các trạng thái và từ đó xây dựng
được thuật toán cực tiểu hoá ôtômát (có số trạng thái cực tiểu) tương đương với ôtômát cho trước
Thuật toán 2.2 Xây dựng ôtômát cực tiểu hoá
Input: Cho trước ôtômát M = (A, Q, , q0, F) thường là không đơn định
Output: Ôtômát đơn định và cực tiểu M' = (A, Q', ', q0', F')
1 Thiết lập phân hoạch π0 Theo định nghĩa 0-tương đương, π0 = {Q10, Q20},
trong đó Q 0 = F (tập các trạng thái kết thúc), Q 0 = Q – Q 0
Trang 382 Xây dựng πk+1 từ πk Xây dựng Qik, i = 1, 2, là các tập con của πk và là các
lớp (k+1)-tương đương q1 và q2 nằm trong Qik nếu chúng là (k+1) - tương đương
nghĩa là (q1, a) và (q2, a) là k-tương đương, với mọi a trong bảng chữ vào Điều
này xảy ra khi (q1, a) và (q2, a) nằm trong cùng lớp tương đương của πk Do vậy,
Qik là lớp (k+1)-tương đương Thực hiện như trên cho đến khi các tập con Qik tạo thành một phân hoạch πk+1 của Q mịn hơn πk
3 Lặp lại bước 2 để thiết lập πk với k = 1, 2, cho đến khi πk = πk+1
4 Xây dựng ôtômát cực tiểu Các trạng thái của ôtômát cực tiểu chính là các lớp tương đương được xác định như trong bước 3, đó là các phần tử của πk Bảng chuyển trạng thái thu được bằng cách thay trạng thái q bằng lớp tương đương tương
ứng [q]
Ví dụ 2.9 Xây dựng ôtômát cực tiểu tương đương với ôtômát có đồ thị chuyển
trạng thái như trong Hình 2.9
Hình 2.9 Đồ thị chuyển trạng thái của ví dụ 2.9
Từ đồ thị chuyển trạng thái ở hình 2.9 chúng ta có bảng chuyển trạng thái
a
b
Trang 39Bảng 2.7 Bảng các trạng thái của M Theo thuật toán trên ta có Q10 = {q3}, Q20 = { q0, q1, q2, q4, q5, q6, q7} và
π0 = {{q3},{ q0, q1, q2, q4, q5, q6, q7}}
Chúng ta xét tiếp quan hệ 1-tương đương để tính π1 Trước tiên ta có Q11
=
{q3} Dựa vào Bảng 2.7 chúng ta dễ kiểm tra được q0 là 1-tương đương với q1 q5, q6
vì (q0, t) và (qi, t), i = 1, 5, 6 và t = a, b là cùng kết thúc hoặc cùng không phải là trạng thái kết thúc Vậy Q21 = {q0, q1, q5, q6}
Tương tự ta có thể kiểm tra được q2 -tương đương với q4 và Q31 = {q2, q4}
Hiển nhiên còn lại Q41 = {q7} Từ đó chúng ta có
lớp 1-tương đương Kiểm tra ta thấy q1 là 2-tương đương với q5, nên Q32 = {q1, q5}
Tương tự q2 vẫn là 2-tương đương với q4, vì thế Q42 = {q2, q4} và còn lại Q52 = {q7}
Trang 40Vì π2 = π3, nên các lớp tương đương trong π2 sẽ làm cơ sở để xây dựng
ôtômát cực tiểu M' = (Q', {a, b}, ', q0', {q3}) Trong đó Q' = π2 = {{q3}, {q0, q6},
Bảng 2.8 Bảng các trạng thái của ôtômát cực tiểu
Hình 2.10 Ôtômát cực tiểu của ôtômát ở Hình 2.9
b