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

Automata 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 (494.55 KB, 50 trang )

Trang 47
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Chương 2
Ôtômát hữu hạn
2.1 Accepter hữu hạn đơn định
2.2 Accepter hữu hạn không đơn định
2.3 Sự tương đương giữa accepter hữu hạn đơn định và
accepter hữu hạn không đơn định
2.4 Rút gọn số trạng thái của một ôtômát hữu hạn
Trang 48
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Accepter hữu hạn đơn định

Định nghĩa 2.1
Một accepter hữu hạn đơn định (deterministic finite state
accepter) hay dfa được định nghĩa bởi bộ năm
M = (Q, Σ, δ, q
0
, 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).
Để chuyển trạng thái ôtômát dựa vào trạng thái hiện hành q ∈
Q nó đang ở vào và kí hiệu nhập a ∈Σnó đang đọc được, nó sẽ
chuyển sang trạng thái kế được định nghĩa sẵn trong δ.
Trang 49
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin


Accepter hữu hạn đơn định (tt)

q
0
∈ 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) (hay
còn được gọi là trạng thái chấp nhận).

Chú ý

Ôtômát hữu hạn không có bộ nhớ so với mô hình tổng quát.
Trang 50
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Hoạt động của một dfa

Hoạt động của một dfa

Tại thời điểm khởi đầu, nó được giả thiết ở trong trạng thái khởi
đầu q
0
, 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ệu ngõ
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 51
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Đồ thị chuyển trạng thái

Để biểu diễn một cách trực quan cho dfa người ta sử dụng
đồ thị chuyển trạng thái. Cách biểu diễn như sau.

Cá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.

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ỳ đỉnh nào

Các trạng thái kết thúc được vẽ bằng một vòng tròn đôi.
Trang 52
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Ví dụ

Cho dfa sau
M = (Q, Σ, δ, q0, F)
Q = {q
0
, q
1

, q
2
}, Σ = {0, 1}, F = {q
1
}, còn δ được cho bởi
δ(q
0
, 0) = q
0
, δ(q
0
, 1) = q
1
,
δ(q
1
, 0) = q
0
, δ(q
1
, 1) = q
2
,
δ(q
2
, 0) = q
2
, δ(q
2
, 1) = q

1
,

Đồ thị chuyển trạng thái tương ứng là
q
0
0
0
1
q
1
q
2
1
1
0
Trang 53
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Hàm chuyển trạng thái mở rộng

Hàm chuyển trạng thái mở rộng δ* được định nghĩa một
cách đệ qui như sau

δ*(q, λ) = q,

δ*(q, wa) = δ(δ*(q, w), a), ∀ q ∈ Q, w ∈Σ*, a ∈Σ.

Ví dụ

Nếu δ(q

0
, a) = q
1
, và δ(q
1
, b) = q
2
,

Thì δ*(q
0
, ab) = q
2

Chú ý

δ không có định nghĩa cho chuyển trạng thái rỗng, tức là không
định nghĩa cho δ(q, λ).
Trang 54
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Ngôn ngữ và dfa

Định nghĩa 2.2

Ngôn ngữ được chấp nhận bởi dfa M = (Q, Σ, δ, q
0
, F) là tập tất
cả các chuỗi trên Σ được chấp nhận bởi M.

L(M) = {w ∈Σ*: δ*(q

0
, w) ∈ F}.

Nhận xét:

= {w ∈Σ* : δ*(q
0
, w) ∉ F}.
()
ML
Trang 55
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Ví dụ

Ví dụ

Xét dfa M sau

Dfa trên chấp nhận ngôn ngữ sau
L(M) = {a
n
b : n ≥ 0}

Trạng thái bẫy (trap state): là trạng thái mà sau khi ôtômát đi
và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.

Định nghĩa trên cũng có thể mở rộng ra cho nhóm các trạng thái
bẫy kết thúc hay không kết thúc.

a, b
a, ba
b
q
0
q
1
q
2
Trang 56
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Định lý, bảng truyền

Định lý 2.1

Cho M = (Q, Σ, δ, q
0
, F) là một accepter hữu hạn đơn định, và
G
M
là đồ thị chuyển trạng thái tương ứng của nó. Thì ∀ q
i
, q
j

Q, 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
.

Bảng truyền - (transition table)

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ột (ô
tô đậm trên cột trong hình bên) biểu diễn cho ký hiệu nhập hiện
tại. Các điểm nhập (entry) trong bảng định nghĩa cho trạng thái
kế tiếp.
Trang 57
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Bảng truyền (tt)

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”.
q
2
q

2
q
2
q
2
q
2
q
1
q
1
q
0
q
0
ba
a, b
a, b
a
b
q
0
q
1
q
2
Trang 58
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Ví dụ


Tìm dfa chấp nhận ngôn ngữ

Tìm dfa M
1
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 M
2
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.
a
b
a, b
a, b
a
b
q
1
q
3
q
2
q
0
1
0, 1
1
0
1

0
0
λ 0 00
001
Trang 59
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Bài tập dfa

Tìm dfa chấp nhận ngôn ngữ

L
1
= {vwv
R
∈ {a, b}*: |v| = 2}

L
2
= {abab
n
: n ≥ 0} ∪ {aba
n
: n ≥ 0}

L
3
= {a
n
b
m

: (n+m) mod 2= 0}

L
4
= {w ∈ {a, b}*: n
a
(w) chẵn, n
b
(w) lẽ}

L
5
= {w ∈ {0, 1}*: giá trị thập phân của w chia hết cho 5}

L
6
= {w ∈ {a, b}*: số kí tự a trong chuỗi là một số lẽ}
Trang 60
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Ngôn ngữ chính qui

Định nghĩa 2.3

Một ngôn ngữ L được gọi là chính qui nếu và chỉ nếu tồn tại
một accepter hữu hạn đơn định M nào đó sao cho
L = L(M)

Ví dụ

Chứng minh rằng ngôn ngữ L= {awa : w ∈ {a,b}*} là chính

qui.
a
a, b
b
b
a
a
b
q
2
q
1
q
3
q
0
Trang 61
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Accepter hữu hạn không đơn định

Định nghĩa 2.4

Một accepter hữu hạn không đơn định (nondeterministic
finite state accepter) hay nfa được định nghĩa bằng bộ năm:
M = (Q , Σ, δ, q
0
, F )
trong đó Q, Σ, q
0
, F được định nghĩa như đối với accepter hữu

hạn đơn định còn δ được định nghĩa là:
δ : Q × (Σ∪{ λ}) → 2
Q

Nhận xét

Có hai khác biệt chính giữa định nghĩa này và định nghĩa của
một dfa.
Trang 62
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Accepter hữu hạn không đơn định (tt)

Nhận xét (tt)

Đối với nfa miền trị của δ là tập 2
Q
, vì vậy giá trị của nó không
còn là một phần tử đơn của Q, mà là một tập con của nó và đặc
biệt có thể là ∅, tức là có thể không có định nghĩa cho một δ(q,
a) nào đó. Người ta gọi trường hợp này là một cấu hình chết
(dead configuration), và có thể hình dung trong trường hợp
nà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
củ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
một ĐTCTT.
Trang 63

Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Ví dụ

Hàm chuyển trạng thái mở rộng

Định nghĩa 2.5

Cho một nfa, hàm chuyển trạng thái mở rộng được định nghĩa
sao cho δ*(q
i
, w) chứa q
j
nếu và chỉ nếu có một con đường
trong ĐTCTT đi từ q
i
đến q
j
mang nhãn w. Điều này đúng với
mọi q
i
, q
j
∈ Q và w ∈Σ*.
a
q
0
q
1
q
2

q
4
q
5
q
3
a
(a)
a
a
a
a
0, 1
1
q
0
q
1
q
2
0
λ
(b)
Trang 64
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Hàm chuyển trạng thái mở rộng

Ví dụ

δ*(q

1
, λ) = {q
1
, q
2
, q
0
}

δ*(q
2
, λ) = {q
2
, q
0
}

δ*(q
0
, a) = {q
1
, q
2
, q
0
}

δ*(q
1
, a) = {q

1
, q
2
, q
0
}

δ*(q
1
, b) = {q
2
, q
0
}
a
b, λ
λ
q
0
q
1
q
2
Trang 65
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Ngôn ngữ của nfa

Định nghĩa 2 .6

Ngôn ngữ được chấp nhận bởi nfa M = (Q, Σ, δ, q

0
, F), được
định nghĩa như là một tập tất cả các chuỗi được chấp nhận bởi
nfa trên. Một cách hình thức,
L(M) = {w ∈Σ*: δ*(q
0
, w) ∩ F

∅}.

Ví dụ

Ngôn ngữ được chấp nhận bởi ôtômát bên dưới là
L = {(10)
n
: n ≥ 0}
0, 1
1
q
0
q
1
q
2
0
λ
Trang 66
Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin
Cách tính δ*


Với T là một tập con của Q, ta định nghĩa

Người ta thường hiện thực cách tính các hàm này δ(q,
a), δ(T, a), δ*(q, λ), δ*(T, λ) lần lượt bằng các hàm
move(q, a), move(T, a), λ-closure(q), λ-closure(T) (λ-
closure đọc là bao đóng-λ)

δ*(q, a) = λ-closure(move(λ-closure(q), a))

δ*(T, a) = λ-closure(move(λ-closure(T)
() ()
U
Tq
aqaT

= ,, δδ
( ) ( )
U
Tq
aqaT

= ,,
*
δδ
( ) ( )
U
Tq
qT

= λδλδ ,,

*

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×