Biểu thức chính quiRegular Expression - RE FA là những máy ảo nhận dạng ngôn ngữ, trong khi RE mô tả ngôn ngữ như biểu thức đại số Ứng dụng: 1.. Xây dựng biểu thức chính qui Dạng c
Trang 11.1 Toán tử của biểu thức chính qui
1.2 Xây dựng biểu thức chính qui
1.3 Độ ưu tiên của các toán tử
2 Định lý của Kleene
2.1 Chuyển FA sang biểu thức chính qui
2.2 Chuyển biểu thức chính qui sang FA
2.3 Định lý Kleen
Trang 2Biểu thức chính qui(Regular Expression - RE)
FA là những máy ảo nhận dạng ngôn ngữ, trong khi RE mô tả ngôn ngữ như biểu thức đại số
Ứng dụng:
1 Các lệnh tìm kiếm chuỗi
2 Các bộ phát sinh bộ phân tích từ vựng
Ngôn ngữ L: Tập các chuỗi thỏa điều kiện:
- Hoặc một số 0 theo sau bởi nhiều số 1
- Hoặc một số 1 theo sau bởi nhiều số 0
RE biểu diễn ngôn ngữ L:
Toán tử của RE
Ba toán tử trên RE
Trang 3{xy | x L và y M}
Tập các chuỗi hình thành từ việc nối của
không/nhiều chuỗi thuộc L.
Trang 4Xây dựng biểu thức chính qui
Dạng cơ sở của biểu thức đại số là hằng số
và/hoặc biến Những biểu thức phức tạp hơn được xây dựng bằng cách áp dụng các toán tử trên những biểu thức đã được xây dựng
RE cũng được xây dựng tương tự
Nếu RE E là hợp lệ thì tồn tại ngôn ngữ L(E) mà
E biểu diễn.
Bước qui nạp: Gồm 4 phần
1. Hằng ε và Ø là RE
2. Nếu a là một ký hiệu bất kỳ thì a là RE:
Bước cơ sở: Bao gồm 2 phần:
Nếu E và F là RE thì E + F là RE:
Nếu E và F là RE thì EF là RE:
Trang 5Bước qui nạp: Để có những chuỗi bao gồm
không/nhiều chuỗi con 01, ta sử dụng RE (01)*
Tuy nhiên, L((01)*) không phải là ngôn ngữ cần
tìm
Cách 1: Xây dựng thêm 3 RE :
Trang 6Cách 2:
- Muốn không/có số 1 đứng đầu
- Muốn không/có số 0 đứng sau
Độ ưu tiên của các toán tử
Trang 8Tính tương đương giữa RE, DFA, ε–NFA và NFA.
Từ DFA đến RE: Khái niệm
Xây dựng RE chấp nhận ngôn ngữ của DFA khá phức tạp
RE sẽ mô tả tập các chuỗi mà mỗi ký hiệu trong
chuỗi là nhãn một đường truyền trong sơ đồ
truyền của DFA
Trang 9RE xây dựng từ DFA thông qua qui nạp:
Khi các đường truyền đến được mọi trạng thái những RE phát sinh biểu diễn tất cả các đường truyền có thể
Định lý 3.1: Mọi ngôn ngữ chính qui (nghĩa là
ngôn ngữ được chấp nhận bởi FA nào đó) đều
có thể được mô tả bởi RE.
Chứng minh:
Xây dựng tập RE, mô tả các đường truyền (mở
rộng dần) trên sơ đồ truyền của DFA A.
Trang 10Một đường truyền biểu diễn bởi Rij(k)
Trục tung biểu diễn trạng thái, trục hoành thể hiện
từng bước đi của đường truyền
1
n
i
j k
Phương pháp qui nạp, dựa trên giá trị của k [0, n],
được sử dụng để xây dựng biểu thức Rij(k),
Bước cơ sở: k = 0
Trang 11- Nếu tồn tại đường truyền
- Nếu không tồn tại đường truyền
Trang 12Bước qui nạp: Giả sử tồn tại đường truyền từ
trạng thái i sang j với điều kiện mọi trạng thái bên
trong được đánh số k
1 Đường truyền đi qua trạng thái k ít nhất một lần.
) 1
Trang 13* ) 1 ( ) 1 ( )
1 ( )
kj
k kk
k ik
k ij
k
R
Trang 14Ví dụ: Chuyển DFA trong hình trên thành RE
DFA này chấp nhận tất cả các chuỗi có ít nhất một số 0
Trang 15Bước qui nạp: Xây dựng các RE phức tạp hơn.
Luật xây dựng Rij(1) dựa vào Định lý 3.1:
(ε + 1) + (ε + 1)(ε + 1)*(ε + 1)
R11(1)
Rút gọnThay thế trực tiếp
Dựa vào bảng của các Rij(0), ta có:
Trang 17Chuyển DFA sang RE bằng loại bỏ trạng thái
Phương pháp xây dựng RE: Loại bỏ trạng thái
Giả sử tồn tại đường truyền: q → s → p.
Hủy s
Trang 19Chiến lược xây dựng RE từ FA
1 Với mỗi trạng thái chấp nhận q: Loại bỏ dần
Trang 22Chuyển RE sang FA
Mọi ngôn ngữ L = L(R) của RE R cũng là ngôn
ngữ L = L(E) của ε–NFA E xác định.
Bước cơ sở:
Bước qui nạp:
Tất cả những automata được xây dựng sẽ là
ε–NFA có duy nhất một trạng thái chấp nhận
Định lý 3.2: Mọi ngôn ngữ được định nghĩa
bởi RE thì cũng được định nghĩa bởi FA và như vậy, nó là ngôn ngữ chính qui.
Chứng minh:
Trang 24(a)
Trang 25i Đi trực tiếp
Đường truyền chấp nhận chuỗi
ii Từ trạng thái bắt đầu chung
→ Tất cả các chuỗi thuộc ngôn ngữ
R ε
ε
(c)
Trang 28Các luật đại số trên RE
Khi chuyển từ DFA sang RE, xuất hiện yêu cầu rút gọn RE
Thông qua tập luật đại số trên RE
Ví dụ: Luật giao hoán của phép cộng: 1 + 2 = 2 + 1
RE cũng có những thao tác tương tự biểu thức đại số
Trang 29Luật giao hoán và kết hợp
Luật giao hoán của phép hội:
Luật kết hợp của phép hội:
Luật kết hợp của phép nối:
Đồng nhất thức và giá trị triệt tiêu
Trang 30Ø là giá trị triệt tiêu đối với phép nối.
Các luật phân phối
Trang 32Khảo sát các luật mở rộng trên RE
Những luật được trình bày ở trên chỉ là một
phần trong vô số các luật về RE có thể tìm ra
Tính đúng của luật có thể được chỉ ra bằng cách
chứng minh dấu bằng giữa hai ngôn ngữ được
mô tả bởi hai biểu thức tương ứng
Kỹ thuật này phù hợp với những toán tử dùng