Các khái niệm ttu được gọi là tiếp đầu ngữ của w v được gọi lá tiếp vĩ ngữ của w Là số kí hiệu trong chuỗi, và được kí hiệu là |w| Là chuỗi không có kí hiệu nào, thường được kí hiệu là λ
Trang 1Trường Đại học Bách khoa Khoa Công Nghệ Thông Tin
Giảng Viên: Hồ Văn QuânE-mail: hcquan@dit.hcmut.edu.vnWeb site: http://www.dit.hcmut.edu.vn/~hcquan/student.htm
Trang 2Chương 8 Các tính chất của ngôn ngữ phi ngữ cảnh
Chương 9 Máy Turing
Trang 3Trang 2
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 4Trang 3
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 5Làm bài tập lớn cộng điểm (không bắt buộc)
Nộp bài tập lớn và báo cáo vào cuối học kỳ
Cộng tối đa 2 điểm
Trang 4
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 6Trang 5
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
n
Trang 71.3 Ba khái niệm cơ bản
Trang 8Các mô hình tính toán tự động
Định nghĩa
Phân loại ngôn ngữ
Quan hệ với ôtômát
Ứng dụng vào việc xây dựng các ngôn ngữ lập trình
Trang 7
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 10Ba khái niệm cơ bản
Trang 12Chúng ta cần xây dựng một định nghĩa toán học cho khái
Trang 14Với Σ = {a, b}, thì abab và aaabbba là các chuỗi trên Σ.
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 16Các khái niệm (tt)
u được gọi là tiếp đầu ngữ của w
v được gọi lá tiếp vĩ ngữ của w
Là số kí hiệu trong chuỗi, và được kí hiệu là |w|
Là chuỗi không có kí hiệu nào, thường được kí hiệu là λ
Trang 14
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 17w là một chuỗi thì w n là một chuỗi nhận được bằng cách kế
t nối
chuỗi w với chính nó n lần
= 1L3
Trang 18laàn Trang 15
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Σ* là tập tất cả các chuỗi trên Σ kể cả chuỗi trống
Σ+ là tập tất cả các chuỗi trên Σ ngoại trừ chuỗi trống
Σ* = Σ+ ∪{λ} ; Σ+ = Σ* - {λ}
Σ thì hữu hạn còn Σ+ và Σ * là vô hạn đếm được
Trang 20Tập {a, aa, aab} là một ngôn ngữ trên Σ Nó là một ngôn ngữ
hữu hạn
Tập L = {a n b n : n ≥ 0} cũng là một ngôn ngữ trên Σ Nó làmột
ngôn ngữ vô hạn
Trang 17
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Bù của ngôn ngữ L trên bảng chữ cái Σ, được kí hiệu là:
L = Σ* - L
Trang 21Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
L
=
123 LL L
Trang 22Cho L = {a n b n : n ≥ 0}, thì
L2 = {a n b n a m b m : n ≥ 0 , m ≥ 0}
Kí hiệu là L* và được định nghĩa là
Trang 23Cho đoạn văn phạm tiếng Anh sau
<sentence> →<noun phrase><predicate>,
<noun phrase>→<article><noun>,
<predicate> →<verb>,
<article> →a | the,
<noun> →boy | dog,
<verb> →runs | walks,
Trang 20
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 24Định nghĩa văn phạm
Các câu “a boy runs” và “the dog walks” là có "dạng
Văn phạm G được định nghĩa như là một bộ bốn
G = (V, T, S, P)
được gọi là các biến (variable),
T: tập các kí hiệu kết thúc (terminal symbol),
S ∈ V: được gọi là biến khởi đầu (start variable), đôi khi còn
P: tập hữu hạn các luật sinh (production),
Trang 26biểu thị các kí hiệu kết thúc (terminal).
Trang 27Các kí tự chữ hoa X, Y, Z biểu thị các kí hiệu có thể là terminal
Trang 28Dẫn xuất trực tiếp (directly derive), ⇒
Cho luật sinh x →y và chuỗi w = uxv
Luật sinh trên có thể áp dụng tới chuỗi w. Khi áp dụng ta sẽnhận được chuỗi mới
Trang 29Ngôn ngữ được sinh ra bởi văn phạm
*Nếu w1 ⇒w2 ⇒ ⇒w n thì ta nói w1 dẫn xuất ra w n vàviết
*Nếu có ít nhất một luật sinh phải được áp dụng chúng ta viết:
+
Cho G = (V, T, S, P) là một văn phạm, thì tập:
*được gọi là ngôn ngữ được sinh ra bởi G.
Trang 30Trang 25
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Nếu w ∈ L(G) thì phải tồn tại dãy dẫn xuất:
S ⇒w1 ⇒w2 ⇒ ⇒w n ⇒w
Dãy này được gọi là một sự dẫn xuất câu của w.
Dãy S, w1, w2,… , w n được gọi là các dạng câu của sự dẫnxuất
Câu w cũng được xem là một dạng câu đặc biệt
Cho văn phạm
Trang 31là một dãy dẫn xuất.Vì vậy có thể viết
Trang 32Trang 27
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Ngôn ngữ L1 bao gồm các chuỗi từ khóa begin, end của ngôn
ngữ Pascal Các chuỗi biểu diễn cấu trúc lồng nhau của cáccặp
từ khóa này trong các chương trình trên ngôn ngữ Pascal
Trang 33Ngôn ngữ L2 bao gồm tập các danh hiệu của Pascal.
Ngôn ngữ L1 và L2 ở trang trên
Trang 35Ôtômát, dịch nghĩa là máy tự động, là thiết bị có thể tự thựchiện công việc mà không cần sự can thiệp của con người.
Nó hoạt động dựa trên một số quy tắc và dựa vào các quy tắcnày con người lập trình cho nó hoạt động theo ý muốn củamình
Máy tính số ngày nay chính là một máy tự động điển hình vàmạnh nhất hiện nay
Trang 30
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 37được nội dung của nó Nó được chia thành các ô (cells,
squares), mỗi ô giữ được một kí hiệu
Cơ cấu nhập (input mechanism): là bộ phận có thể đọc input
file từ trái sang phải, một kí tự tại một thời điểm Nó cũngcó
thể dò tìm được điểm kết thúc của chuỗi nhập (eof, #)
Bộ nhớ tạm (temporary storage): là thiết bị bao gồm một số
Trang 38không giới hạn các ô nhớ (cell), mỗi ô có thể giữ một kí hi
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Đơn vị điều khiển (control unit): mỗi ôtômát có một đơn vị
điều khiển, cái mà có thể ở trong một trạng thái bất kỳ trong
Trang 39một số hữu hạn các trạng thái nội, và có thể chuyển đổi trạng
thái trong một kiểu được định nghĩa sẵn nào đó
Một ôtômát được giả thiết là hoạt động trong một khung t hời
gian rời rạc (discrete time frame)
Tại một thời điểm bất kỳ đã cho, đơn vị điều khiển đang ởtrong
một trạng thái nội (internal state) nào đó, và cơ cấu nhập là
đang quét (scanning) một kí hiệu cụ thể nào đó trên inputfile
Trang 33
Trang 40Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trạng thái nội của đơn vị điều khiển tại thời điểm kế tiếp được
xác định bởi trạng thái kế (next state) hay bởi hàm chuyển trạng thái (transition function)
Trong suốt quá trình chuyển trạng thái từ khoảng thời giannày
đến khoảng thời gian kế, kết quả (output) có thể được sinhra
và thông tin trong bộ nhớ lưu trữ có thể được thay đổi
Trang 42nhập hiện hành được quét, và thông tin hiện hành trong bộnhớ
Trang 43vị trí của cơ cấu nhập trên thiết bị nhập (hay nói cách khácôtômát đang đọc đến kí hiệu nào của thiết bị nhập), và nộidung
Trang 44Phđn loại ôtômât
g:
Ôtômât đơn định (deterministic automata): lă ôtômât trong
đó mỗi di chuyển (move) được xâc định duy nhất bởi cấu hình
hiện tại Sự duy nhất năy thể hiện tính đơn định
Ôtômât không đơn định (non-deterministic automata): lẵtômât mă tại mỗi thời điểm nó có một văi khả năng lựa chọn
để di chuyển Việc có một văi khả năng lựa chọn thể hiện tính
không đơn định
Trang 45Trang 37
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 47Cung cấp kiến thức nền tảng cho việc xây dựng các n gôn
Trang 493 Letter or digit
1 2
Trang 50Letter or digit
Trang 41
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Một văn phạm đơn giản của ngôn ngữ Pascal
[prog] ::= [prog header] [var part] [stat part]
[prog header] ::= program [id] ( input , output ) ;
[var part] ::= var [var dec list]
[stat part] ::= begin [stat list] end
[var dec list] ::= [var dec] | [var dec list] [var dec]
[var dec] ::= [id list] : [type] ;
Trang 51[stat list] ::= [stat] | [stat list] ; [stat]
[stat] ::= [assign stat]
[assign stat] ::= [id] := [expr]
Trang 42
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
[assign stat] ::= [id] := [expr]
[expr] ::= [operand] | [expr] [operator] [operand][type] ::= integer
[id list] ::= [id] | [id list] , [id]
[operand] ::= [id] | [number]
[id] ::= [letter] | [id] [letter] | [id] [digit]
Trang 53Xử lý ngôn ngữ tự nhiên: chú thích loại từ cho các từ, sửa lỗi
Trang 54Xét một bộ cộng nhị phân tuần tự hai số nguyên dương
b i 2i
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 56Chương 2 Ôtômát hữu hạn
Trang 57Trang 47
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Một accepter hữu hạn đơn định (deterministic finite stateaccepter) hay dfa được định nghĩa bởi bộ năm
M = (Q, Σ, δ, q0, F),
Q là một tập hữu hạn các trạng thái nội (internal states),
Σ là một tập hữu hạn các ký hiệu được gọi là bảng chữ cái ngõ
nhập (input alphabet),
δ: Q ×Σ →Q là hàm chuyển trạng thái (transition function)
Trang 58Để chuyển trạng thái ôtômát dựa vào trạng thái hiện hành
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
q0 ∈ Q là trạng thái khởi đầu (initial state),
F ⊆ Q là một tập các trạng thái kết thúc (final states) (haycòn được gọi là trạng thái chấp nhận).
Chú ý
Trang 59Ôtômát hữu hạn không có bộ nhớ so với mô hình tổng quát.
Trang 49
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 60Tại thời điểm khởi đầu, nó được giả thiết ở trong trạng thá
i khởi
đầu q0, với cơ cấu nhập (đầu đọc) của nó đang ở trên kí hiệu
đầu tiên bên trái của chuỗi nhập
Trong suốt mỗi lần di chuyển, cơ cấu nhập tiến về phía phải
một kí hiệu, như vậy mỗi lần di chuyển sẽ lấy một kí hiệungõ
nhập
Khi gặp kí hiệu kết thúc chuỗi, chuỗi là được chấp nhận
(accept) nếu ôtômát đang ở vào một trong các trạng thái k ết
thúc của nó Ngược lại thì có nghĩa là chuỗi bị từ chối
Trang 61Các đỉnh biểu diễn các trạng thái.
Các cạnh biểu diễn các chuyển trạng thái.
Các nhãn trên các đỉnh là tên các trạng thái.
Các nhãn trên các cạnh là giá trị hiện tại của kí hiệu nhập
Trang 62
Trạng thái khởi đầu sẽ được nhận biết bằng một mũi tên đi
vào không mang nhãn mà không xuất phát từ bất kỳ đỉnhnào
Các trạng thái kết thúc được vẽ bằng một vòng tròn đôi.
Trang 64cách đệ qui như sau
Trang 66vào sẽ không bao giờ thoát ra được.
Trạng thái bẫy có thể là trạng thái kết thúc hoặc không
q0 q1 q2
Trang 67Định nghĩa trên cũng có thể mở rộng ra cho nhóm các trạn
Trang 68Q, và w ∈ Σ+, δ*(q i, w) = q j nếu và chỉ nếu có trong G M một
con đường mang nhãn là w đi từ q i đến q j
Là bảng trong đó các nhãn của hàng (ô tô đậm trên hàng trong
hình bên) biểu diễn cho trạng thái hiện tại, còn nhãn của cộ
Trang 70b a, b
Bảng truyền gợi ý cho chúng ta một cấu trúc dữ liệu để môtả
cho ôtômát hữu hạn
Đồng thời cũng gợi ý cho chúng ta rằng một dfa có thể dễdàng
được hiện thực thành một chương trình máy tính; chẳng hạn
bằng một dãy các phát biểu “if”
Trang 57
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
q0 q1 q2
Trang 71Ví dụ
Tìm dfa M1 chấp nhận tập tất cả các chuỗi trên Σ = {a, b} được
bắt đầu bằng chuỗi ab.
Tìm dfa M2 chấp nhận tập tất cả các chuỗi trên Σ = {0, 1},ngoại trừ những chuỗi chứa chuỗi con 001
q0
a b
1
00
λ 0 00 001
1
Trang 72L5 = {w ∈ {0, 1}*: giá trị thập phân của w chia hết cho 5}
L6 = {w ∈ {a, b}*: số kí tự a trong chuỗi là một số lẽ}
Trang 74Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Một accepter hữu hạn không đơn định (nondeterministicfinite state accepter) hay nfa được định nghĩa bằng bộ năm:
M = (Q , Σ, δ, q0, F )
Trang 75trong đó Q, Σ, q0, F được định nghĩa như đối với accepterhữu
hạn đơn định còn δ được định nghĩa là:
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
)
Trang 76này ôtômát dừng lại, không hoạt động nữa.
Thứ hai định nghĩa này cho phép λ như là một đối số thứ hai
Trang 77của δ Điều này có nghĩa là nfa có thể thực hiện một sự chuyển
trạng thái mà không cần phải lấy vào một kí hiệu nhập nào.Tương tự như dfa, một nfa cũng có thể được biểu diễn bằng
ng th ái m ở rộ
Trang 78mọi q i, q j ∈ Q và w ∈ Σ*.
Trang 63
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 80Ngôn ngữ của nfa
Trang 81λTrang 65
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 82a), δ (T, a), δ *(q, λ ), δ *(T, λ ) lần lượt bằng các hà m
move(q, a), move(T , a), λ
Trang 83q0
λ
a a
q1
q4
λλ
Trang 67
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
δ*(q0, a) = λ-closure(move(λ-closure(q0), a))
Trang 84Một định nghĩa khác về dfa - dfa mở rộng
Một dfa là một trường hợp đặc biệt của một nfa trong đó
Không có chuyển trạng thái-rỗng,
Đối với mỗi trạng thái q và một kí hiệu nhập a, có tối đa một cạnh chuyển trạng thái đi ra khỏi q và có nhãn là a.
Về bản chất định nghĩa này và định nghĩa trước đây là tương
đương nhau (cùng định nghĩa tính đơn định của dfa) Nó chỉ
khác định nghĩa thứ nhất ở chỗ cho phép khả năng không có
một sự chuyển trạng thái đối với một cặp trạng thái và kí hiệu
nhập Trong trường hợp này thì ta xem như nó rơi vào mộttrạng thái bẫy không kết thúc mà trạng thái này không đượcvẽ
ra
Trang 86chúng cùng chấp nhận một ngôn ngữ như nhau.
Vậy dfa mở rộng và dfa dfa đầy đủ theo định nghĩa ban đầ
Trang 87nhau Chẳng hạn, chuỗi abbbaabba chứa một “run” của b có
chiều dài 3, một “run” của a có chiều dài 2 và một “run” củ
a b
có chiều dài 2 Tìm các nfa và dfa cho mỗi ngôn ngữ sau trên
{a, b}.
L2 = {w: w không chứa “run” nào có chiều dài nhỏ hơn 3}
L3 = {w: mỗi “run” của a có chiều dài hoặc 2 hoặc 3}
L4 = {w ∈ {0, 1}*: mỗi chuỗi con bốn kí hiệu có tối đa haikí
hiệu 0}
Trang 70
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
00
Trang 88Sư tương đương giữa hai ôtômát
Hai accepter được gọi là tương đương nhau nếu chúng cùngchấp nhận một ngôn ngữ như nhau
Dfa và nfa sau là tương đương nhau vì cùng chấp nhận ngônngữ {(10)n: n ≥ 0}
0,11
q0 q1 q2 q 0 1
Trang 89Trang 71
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 90một dfa tương đương với nó.
Hãy xây dựng dfa
tương đương với
nfa bên
b
a
q0 q1 q2
Trang 91Trang 72
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Xây dựng dfa bằng cách mô phỏng lại quá
trình chấp nhận một chuỗi bất kỳ của nfa
Trang 92Trạng thái kết thúc của nfa là
a
{q1, q2}trạng thái mà có chứa trạng thái
Trang 93không đơn định M N = (Q N, Σ, δN, q0, F N), thì tồn tại một
accepter hữu hạn đơn định M D = (Q D, Σ, δD, {q0}, F D) sao cho
Trang 94B1 Tạo một đồ thị G D với đỉnh khởi đầu là tập δN *(q0, λ).B2 Lặp lại các bước B3 đến B6 cho đến khi không còn cạnhnào
thiếu
B3 Lấy một đỉnh bất kỳ {q i, q j, … , q k} của G D mà có một cạnh
còn chưa được định nghĩa đối với một a nào đó ∈ Σ
và gán nhãn cho nó bằng a.
B7 Mỗi trạng thái của G D mà nhãn của nó chứa một q f bất k
ỳ ∈
Trang 100Trang 79
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 1011 q3
1
0, 11
0 0, 1
Trang 80
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
)
Trang 102Trong hình (a) có một trạng thái đặc biệt, trạng thái q5, nólà
trạng thái không đạt tới được từ trạng thái khởi đầu, ngườita
gọi nó là trạng thái không đạt tới được
Là trạng thái mà không tồn tại con đường đi từ trạng thái khởi
Trang 103Trang 81
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 104Khái niệm giống nhau được định nghĩa tổng quát dựa trênviệc:
với mọi chuỗi nếu xuất phát từ hai trạng thái này thì kết q
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 105hay ngược lại thì p và q được gọi là phân biệt được
(distinguishable) hay khác nhau bởi chuỗi w.
Trạng thái kết thúc và không kết thúc không thể giống nhau
Trang 106Trang 83
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Quan hệ giống nhau là một quan hệ tương đương.
Vì vậy quan hệ này sẽ phân hoạch tập trạng thái Q thành cáctập con rời nhau, mỗi tập con bao gồm các trạng thái giốngnhau
Trang 108Input: Các cặp trạng thái, gồm (|Q| ×(|Q| -1)/2) cặp, củadfa
Trang 109ngược lại, đánh dấu cặp (p, q) là phân biệt được Các cặptrạng thái được đánh dấu ở bước này sẽ được ghi là đánhdấu
ở bước số 0 (gọi là bước cơ bản)
Lặp lại bước B3 cho đến khi không còn cặp nào không đ ược
đánh dấu trước đó được đánh dấu ở bước này.
B3 Đối với mọi cặp (p, q) chưa được đánh dấu và mọi a ∈ ∑,
tính δ(p, a) = p a và δ(q, a) = q a Nếu cặp (p a, q a) đã được
đánh dấu là phân biệt được ở lần lặp trước đó, thì đánh dấu
(p, q) là phân biệt được Các cặp được đánh dấu ở bướcnày
Trang 110sẽ được ghi là được đánh dấu ở bước thứ i nếu đây là lầnthứ
i băng qua vòng lặp.Trang 86
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 111Cặp trạng thái q i và q j là phân biệt được bằng chuỗi có độ dài
n, nếu và chỉ nếu có các chuyển trạng thái
Trang 112Khi băng qua vòng lặp trong bướclần thứ n, thủ tục s
Trang 113Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Trang 114B2 Đối với mỗi tập {q i, q j, … , q k} các trạng thái không phân biệt
được, tạo ra một trạng thái có nhãn ij … k cho M
0
∧
tìm các tập mà q r và q p thuộc về Nếu q r ∈ {q i, q j, … , q k} và q p ∈
{q l, q m, … , q n}, thì thêm vào δ quy tắc δ ( ij … k, a) = lm … n.
q0 là trạng thái của mà nhãn của nó có chứaB5. F là tập tất cả các trạng thái mà nhãn của nó chứa i sao cho q i ∈ F.