Bài giảng Ngôn ngữ hình thức và ôtômát - Chương 1: Ngôn ngữ và văn phạm hình thức cung cấp cho người học các kiến thức: Bảng chữ cái – Từ – Ngôn ngữ, các phép toán trên từ, các phép toán trên ngôn ngữ, văn phạm hình thức, hai bài toán cơ bản về văn phạm. Mời các bạn cùng tham khảo.
Trang 1Ngôn ngữ hình thức và ôtômát
Chương 1 Ngôn ngữ và văn phạm hình thức
Nguyễn Thị Minh Huyền
Khoa Toán - Cơ - Tin học
Trường Đại học Khoa học Tự nhiên Hà Nội
Trang 25 Hai bài toán cơ bản về văn phạm
Bài toán phân tích
Bài toán tổng hợp
Trang 35 Hai bài toán cơ bản về văn phạm
Bài toán phân tích
Bài toán tổng hợp
Trang 45 Hai bài toán cơ bản về văn phạm
Bài toán phân tích
Bài toán tổng hợp
Trang 55 Hai bài toán cơ bản về văn phạm
Bài toán phân tích
Bài toán tổng hợp
Trang 65 Hai bài toán cơ bản về văn phạm
Bài toán phân tích
Bài toán tổng hợp
Trang 75 Hai bài toán cơ bản về văn phạm
Bài toán phân tích
Bài toán tổng hợp
Trang 8Bảng chữ cái
Định nghĩa: tập hữu hạn các phần tử, mỗi phần tử gọi là
một kí hiệu hay một chữ cái
Trang 9Bảng chữ cái
Định nghĩa: tập hữu hạn các phần tử, mỗi phần tử gọi là
một kí hiệu hay một chữ cái
Trang 10Từ trên bảng chữ cái Σ
chữ cái Σ, kí hiệu w = w1w2· · · w n
n được gọi là độ dài của từ w , kí hiệu |w |.
|w | a là số chữ cái a xuất hiện trong từ w
Từ có độ dài bằng 0 gọi là từ rỗng, kí hiệu
Trang 11Từ trên bảng chữ cái Σ
chữ cái Σ, kí hiệu w = w1w2· · · w n
n được gọi là độ dài của từ w , kí hiệu |w |.
Từ có độ dài bằng 0 gọi là từ rỗng, kí hiệu
Trang 12Từ trên bảng chữ cái Σ
chữ cái Σ, kí hiệu w = w1w2· · · w n
n được gọi là độ dài của từ w , kí hiệu |w |.
Từ có độ dài bằng 0 gọi là từ rỗng, kí hiệu
Trang 13Từ trên bảng chữ cái Σ
chữ cái Σ, kí hiệu w = w1w2· · · w n
n được gọi là độ dài của từ w , kí hiệu |w |.
Từ có độ dài bằng 0 gọi là từ rỗng, kí hiệu
Trang 14Từ trên bảng chữ cái Σ
chữ cái Σ, kí hiệu w = w1w2· · · w n
n được gọi là độ dài của từ w , kí hiệu |w |.
Từ có độ dài bằng 0 gọi là từ rỗng, kí hiệu
Trang 15Từ trên bảng chữ cái Σ
chữ cái Σ, kí hiệu w = w1w2· · · w n
n được gọi là độ dài của từ w , kí hiệu |w |.
Từ có độ dài bằng 0 gọi là từ rỗng, kí hiệu
Trang 16Ngôn ngữ trên bảng chữ cái Σ
Trang 17Ngôn ngữ trên bảng chữ cái Σ
Trang 18Ngôn ngữ trên bảng chữ cái Σ
Trang 19Ngôn ngữ trên bảng chữ cái Σ
Trang 20Ngôn ngữ trên bảng chữ cái Σ
Trang 21Ngôn ngữ trên bảng chữ cái Σ
Trang 22Ngôn ngữ trên bảng chữ cái Σ
Trang 235 Hai bài toán cơ bản về văn phạm
Bài toán phân tích
Bài toán tổng hợp
Trang 24Tích ghép
Định nghĩa: Cho 2 từ u = u1· · · u m , v = v1· · · v n trên bảng
chữ cái Σ Tích ghép của 2 từ w = u · v = uv là phép kết nối các chữ cái trong từ v vào ngay sau các chữ cái trong
Trang 25Tích ghép
Định nghĩa: Cho 2 từ u = u1· · · u m , v = v1· · · v n trên bảng
chữ cái Σ Tích ghép của 2 từ w = u · v = uv là phép kết nối các chữ cái trong từ v vào ngay sau các chữ cái trong
Trang 26Tích ghép
Định nghĩa: Cho 2 từ u = u1· · · u m , v = v1· · · v n trên bảng
chữ cái Σ Tích ghép của 2 từ w = u · v = uv là phép kết nối các chữ cái trong từ v vào ngay sau các chữ cái trong
Trang 27Tích ghép
Định nghĩa: Cho 2 từ u = u1· · · u m , v = v1· · · v n trên bảng
chữ cái Σ Tích ghép của 2 từ w = u · v = uv là phép kết nối các chữ cái trong từ v vào ngay sau các chữ cái trong
Trang 28Tích ghép
Định nghĩa: Cho 2 từ u = u1· · · u m , v = v1· · · v n trên bảng
chữ cái Σ Tích ghép của 2 từ w = u · v = uv là phép kết nối các chữ cái trong từ v vào ngay sau các chữ cái trong
Trang 29Tích ghép
Định nghĩa: Cho 2 từ u = u1· · · u m , v = v1· · · v n trên bảng
chữ cái Σ Tích ghép của 2 từ w = u · v = uv là phép kết nối các chữ cái trong từ v vào ngay sau các chữ cái trong
Trang 30Tích ghép
Định nghĩa: Cho 2 từ u = u1· · · u m , v = v1· · · v n trên bảng
chữ cái Σ Tích ghép của 2 từ w = u · v = uv là phép kết nối các chữ cái trong từ v vào ngay sau các chữ cái trong
Trang 31Tích ghép
Định nghĩa: Cho 2 từ u = u1· · · u m , v = v1· · · v n trên bảng
chữ cái Σ Tích ghép của 2 từ w = u · v = uv là phép kết nối các chữ cái trong từ v vào ngay sau các chữ cái trong
Trang 32Tích ghép
Định nghĩa: Cho 2 từ u = u1· · · u m , v = v1· · · v n trên bảng
chữ cái Σ Tích ghép của 2 từ w = u · v = uv là phép kết nối các chữ cái trong từ v vào ngay sau các chữ cái trong
Trang 33Phép chia
Định nghĩa
Chia trái (\):u\w=u−1w = v nếu ∃v : w = uv
Chia phải (/):w/v =wv−1=u nếu ∃u : w = uv
Tính chất
Phép chia trái (phải) vô nghĩa khi u (v ) không phải là tiền tố (hậu tố) của từ w
Chia cho từ rỗng: \w=w / =w
Chia cho bản thân của từ:w\w =w /w =
Độ dài của thương: |u\w | + |u| = |w |, | w/v | + |v | = |w |
Trang 34Phép chia
Định nghĩa
Chia trái (\):u\w=u−1w = v nếu ∃v : w = uv
Chia phải (/):w/v =wv−1=u nếu ∃u : w = uv
Tính chất
Phép chia trái (phải) vô nghĩa khi u (v ) không phải là tiền tố (hậu tố) của từ w
Chia cho từ rỗng: \w=w / =w
Chia cho bản thân của từ:w\w =w /w =
Độ dài của thương: |u\w | + |u| = |w |, | w/v | + |v | = |w |
Trang 35Phép chia
Định nghĩa
Chia trái (\):u\w=u−1w = v nếu ∃v : w = uv
Chia phải (/):w/v =wv−1=u nếu ∃u : w = uv
Tính chất
Phép chia trái (phải) vô nghĩa khi u (v ) không phải là tiền tố (hậu tố) của từ w
Chia cho từ rỗng: \w=w / =w
Chia cho bản thân của từ:w\w =w /w =
Độ dài của thương: |u\w | + |u| = |w |, | w/v | + |v | = |w |
Trang 36Phép chia
Định nghĩa
Chia trái (\):u\w=u−1w = v nếu ∃v : w = uv
Chia phải (/):w/v =wv−1=u nếu ∃u : w = uv
Tính chất
Phép chia trái (phải) vô nghĩa khi u (v ) không phải là tiền tố (hậu tố) của từ w
Chia cho từ rỗng: \w=w / =w
Chia cho bản thân của từ:w\w =w /w =
Độ dài của thương: |u\w | + |u| = |w |, | w/v | + |v | = |w |
Trang 37Phép chia
Định nghĩa
Chia trái (\):u\w=u−1w = v nếu ∃v : w = uv
Chia phải (/):w/v =wv−1=u nếu ∃u : w = uv
Tính chất
Phép chia trái (phải) vô nghĩa khi u (v ) không phải là tiền tố (hậu tố) của từ w
Chia cho từ rỗng: \w=w / =w
Chia cho bản thân của từ:w\w =w /w =
Độ dài của thương: |u\w | + |u| = |w |, | w/v | + |v | = |w |
Trang 38Phép chia
Định nghĩa
Chia trái (\):u\w=u−1w = v nếu ∃v : w = uv
Chia phải (/):w/v =wv−1=u nếu ∃u : w = uv
Tính chất
Phép chia trái (phải) vô nghĩa khi u (v ) không phải là tiền tố (hậu tố) của từ w
Chia cho từ rỗng: \w=w / =w
Chia cho bản thân của từ:w\w =w /w =
Độ dài của thương: |u\w | + |u| = |w |, | w/v | + |v | = |w |
Trang 39Phép chia
Định nghĩa
Chia trái (\):u\w=u−1w = v nếu ∃v : w = uv
Chia phải (/):w/v =wv−1=u nếu ∃u : w = uv
Tính chất
Phép chia trái (phải) vô nghĩa khi u (v ) không phải là tiền tố (hậu tố) của từ w
Chia cho từ rỗng: \w=w / =w
Chia cho bản thân của từ:w\w =w /w =
Độ dài của thương: |u\w | + |u| = |w |, | w/v | + |v | = |w |
Trang 40Phép chia
Định nghĩa
Chia trái (\):u\w=u−1w = v nếu ∃v : w = uv
Chia phải (/):w/v =wv−1=u nếu ∃u : w = uv
Tính chất
Phép chia trái (phải) vô nghĩa khi u (v ) không phải là tiền tố (hậu tố) của từ w
Chia cho từ rỗng: \w=w / =w
Chia cho bản thân của từ:w\w =w /w =
Độ dài của thương: |u\w | + |u| = |w |, | w/v | + |v | = |w |
Trang 41Phép soi gương (lấy từ ngược)
Trang 42Phép soi gương (lấy từ ngược)
Trang 43Phép soi gương (lấy từ ngược)
Trang 445 Hai bài toán cơ bản về văn phạm
Bài toán phân tích
Bài toán tổng hợp
Trang 58Lặp, lặp cắt
n=0 L n Ngôn ngữ lặp cắt của L là L+ =S∞
n=1 L n
Ví dụ: L = {0, 1} trên bảng chữ cái Σ = {0, 1}, (Σ2)∗
So sánh L∗ và L+
Trang 62Chia trái, chia phải
Trang 63Chia trái, chia phải
Trang 64Chia trái, chia phải
Trang 65Chia trái, chia phải
Trang 66Chia trái, chia phải
Trang 67Chia trái, chia phải
Trang 68Chia trái, chia phải
Trang 69Chia trái, chia phải
Trang 70Soi gương (lấy ngôn ngữ ngược)
Trang 71Soi gương (lấy ngôn ngữ ngược)
Trang 72Soi gương (lấy ngôn ngữ ngược)
Trang 73Soi gương (lấy ngôn ngữ ngược)
Trang 74Soi gương (lấy ngôn ngữ ngược)
Trang 75Soi gương (lấy ngôn ngữ ngược)
Trang 76Soi gương (lấy ngôn ngữ ngược)
Trang 775 Hai bài toán cơ bản về văn phạm
Bài toán phân tích
Bài toán tổng hợp
Trang 78Một số ngôn ngữ không xây dựng được bằng 2 phương
pháp trên: ngôn ngữ không quyết định được
Trang 79Một số ngôn ngữ không xây dựng được bằng 2 phương
pháp trên: ngôn ngữ không quyết định được
Trang 80Một số ngôn ngữ không xây dựng được bằng 2 phương
pháp trên: ngôn ngữ không quyết định được
Trang 81Một số ngôn ngữ không xây dựng được bằng 2 phương
pháp trên: ngôn ngữ không quyết định được
Trang 82Một số ngôn ngữ không xây dựng được bằng 2 phương
pháp trên: ngôn ngữ không quyết định được
Trang 83Định nghĩa văn phạm
Ý nghĩa: Mô tả một ngôn ngữ bằng cách liệt kê tập từ
vựng, tập các quy tắc cú pháp để tạo ra câu
Định nghĩa hình thức: Văn phạm là một bộ bốn
G = (Σ, V , σ, P), trong đó:
Σ là bảng chữ cái chính, còn gọi là tập kí hiệu kết thúc
V là bảng chữ cái phụ, còn gọi là tập kí hiệu không kết hay
tập biến, V ∩ Σ = ∅
σ ∈V là tiên đề (biến khởi tạo)
P là tập các quy tắc sinh có dạng α → β, → / ∈ Σ ∪ V ,
α ∈ (Σ ∪V )+, β ∈ (Σ ∪ V )∗
Trang 84Định nghĩa văn phạm
Ý nghĩa: Mô tả một ngôn ngữ bằng cách liệt kê tập từ
vựng, tập các quy tắc cú pháp để tạo ra câu
Định nghĩa hình thức: Văn phạm là một bộ bốn
G = (Σ, V , σ, P), trong đó:
Σ là bảng chữ cái chính, còn gọi là tập kí hiệu kết thúc
V là bảng chữ cái phụ, còn gọi là tập kí hiệu không kết hay tập biến, V ∩ Σ = ∅
σ ∈V là tiên đề (biến khởi tạo)
P là tập các quy tắc sinh có dạng α → β, → / ∈ Σ ∪ V ,
α ∈ (Σ ∪V )+, β ∈ (Σ ∪ V )∗
Trang 85Định nghĩa văn phạm
Ý nghĩa: Mô tả một ngôn ngữ bằng cách liệt kê tập từ
vựng, tập các quy tắc cú pháp để tạo ra câu
Định nghĩa hình thức: Văn phạm là một bộ bốn
G = (Σ, V , σ, P), trong đó:
Σ là bảng chữ cái chính, còn gọi là tập kí hiệu kết thúc
V là bảng chữ cái phụ, còn gọi là tập kí hiệu không kết hay tập biến, V ∩ Σ = ∅
σ ∈V là tiên đề (biến khởi tạo)
P là tập các quy tắc sinh có dạng α → β, → / ∈ Σ ∪ V ,
α ∈ (Σ ∪V )+, β ∈ (Σ ∪ V )∗
Trang 86Định nghĩa văn phạm
Ý nghĩa: Mô tả một ngôn ngữ bằng cách liệt kê tập từ
vựng, tập các quy tắc cú pháp để tạo ra câu
Định nghĩa hình thức: Văn phạm là một bộ bốn
G = (Σ, V , σ, P), trong đó:
Σ là bảng chữ cái chính, còn gọi là tập kí hiệu kết thúc
V là bảng chữ cái phụ, còn gọi là tập kí hiệu không kết hay tập biến, V ∩ Σ = ∅
σ ∈V là tiên đề (biến khởi tạo)
P là tập các quy tắc sinh có dạng α → β, → / ∈ Σ ∪ V ,
α ∈ (Σ ∪V )+, β ∈ (Σ ∪ V )∗
Trang 87Định nghĩa văn phạm
Ý nghĩa: Mô tả một ngôn ngữ bằng cách liệt kê tập từ
vựng, tập các quy tắc cú pháp để tạo ra câu
Định nghĩa hình thức: Văn phạm là một bộ bốn
G = (Σ, V , σ, P), trong đó:
Σ là bảng chữ cái chính, còn gọi là tập kí hiệu kết thúc
V là bảng chữ cái phụ, còn gọi là tập kí hiệu không kết hay tập biến, V ∩ Σ = ∅
σ ∈V là tiên đề (biến khởi tạo)
P là tập các quy tắc sinh có dạng α → β, → / ∈ Σ ∪ V ,
α ∈ (Σ ∪V )+, β ∈ (Σ ∪ V )∗
Trang 88Định nghĩa văn phạm
Ý nghĩa: Mô tả một ngôn ngữ bằng cách liệt kê tập từ
vựng, tập các quy tắc cú pháp để tạo ra câu
Định nghĩa hình thức: Văn phạm là một bộ bốn
G = (Σ, V , σ, P), trong đó:
Σ là bảng chữ cái chính, còn gọi là tập kí hiệu kết thúc
V là bảng chữ cái phụ, còn gọi là tập kí hiệu không kết hay tập biến, V ∩ Σ = ∅
σ ∈V là tiên đề (biến khởi tạo)
P là tập các quy tắc sinh có dạng α → β, → / ∈ Σ ∪ V ,
α ∈ (Σ ∪V )+, β ∈ (Σ ∪ V )∗
Trang 90Dẫn xuất
x → γ ∈ P sao cho α = uxv và β = uγv
Quan hệ dẫn ⇒∗là bao đóng bắc cầu của quan hệ dẫn
trực tiếp ⇒
Dẫn xuất n bước: α0⇒ α1⇒ ⇒ αn
Trang 91Dẫn xuất
x → γ ∈ P sao cho α = uxv và β = uγv
trực tiếp ⇒
Dẫn xuất n bước: α0⇒ α1⇒ ⇒ αn
Trang 92Dẫn xuất
x → γ ∈ P sao cho α = uxv và β = uγv
trực tiếp ⇒
Trang 93Ngôn ngữ sinh bởi văn phạm
Cho văn phạm G = (Σ, V , σ, P) Ngôn ngữ L sinh bởi văn phạm G là tập tất cả các từ trên bảng chữ cái Σ dẫn được
Trang 94Ngôn ngữ sinh bởi văn phạm
Cho văn phạm G = (Σ, V , σ, P) Ngôn ngữ L sinh bởi văn phạm G là tập tất cả các từ trên bảng chữ cái Σ dẫn được
Trang 95Ngôn ngữ sinh bởi văn phạm
Cho văn phạm G = (Σ, V , σ, P) Ngôn ngữ L sinh bởi văn phạm G là tập tất cả các từ trên bảng chữ cái Σ dẫn được
Trang 96Phân lớp văn phạm của Chomsky (1)
A, B ∈ V , x, y ∈ Σ∗
Quy tắc tuyến tính trái (phải): có dạng A → a hoặc A → hoặc A → Ba (A → aB), A, B ∈ V , a ∈ Σ
Trang 97Phân lớp văn phạm của Chomsky (1)
A, B ∈ V , x, y ∈ Σ∗
Quy tắc tuyến tính trái (phải): có dạng A → a hoặc A → hoặc A → Ba (A → aB), A, B ∈ V , a ∈ Σ
Trang 98Phân lớp văn phạm của Chomsky (1)
Trang 99Phân lớp văn phạm của Chomsky (1)
Trang 100Phân lớp văn phạm của Chomsky (1)
Trang 101Phân lớp văn phạm của Chomsky (2)
Trang 102Phân lớp văn phạm của Chomsky (2)
Trang 103Phân lớp văn phạm của Chomsky (2)
Trang 104Phân lớp văn phạm của Chomsky (2)
Trang 105Phân lớp văn phạm của Chomsky (2)
Trang 1065 Hai bài toán cơ bản về văn phạm
Bài toán phân tích
Bài toán tổng hợp
Trang 107Bài toán phân tích
Cho một văn phạm hình thức Xác định ngôn ngữ sinh bởivăn phạm đó
Trang 108Bài tập
Tìm các ngôn ngữ sinh bởi các văn phạm có tập quy tắcnhư sau
1 S → aA (1), A → aA (2), A → bB (3), B → bB (4), B → cC (5), B → c (6), C → cC (7), C → c (8)
2 S → aSb (1), S → ab (2)
3 S → aSBC (1), S → aBC (2), aB → ab (3), bB → bb (4),
CB → BC (5), bC → bc (6), cC → cc (7)
Trang 109Bài tập
Tìm các ngôn ngữ sinh bởi các văn phạm có tập quy tắcnhư sau
1 S → aA (1), A → aA (2), A → bB (3), B → bB (4), B → cC (5), B → c (6), C → cC (7), C → c (8)
2 S → aSb (1), S → ab (2)
3 S → aSBC (1), S → aBC (2), aB → ab (3), bB → bb (4),
CB → BC (5), bC → bc (6), cC → cc (7)
Trang 110Bài tập
Tìm các ngôn ngữ sinh bởi các văn phạm có tập quy tắcnhư sau
1 S → aA (1), A → aA (2), A → bB (3), B → bB (4), B → cC (5), B → c (6), C → cC (7), C → c (8)
2 S → aSb (1), S → ab (2)
3 S → aSBC (1), S → aBC (2), aB → ab (3), bB → bb (4),
CB → BC (5), bC → bc (6), cC → cc (7)
Trang 111Bài toán tổng hợp
Cho một ngôn ngữ Xây dựng văn phạm sinh ngôn ngữ đó
Trang 122Bài tập bổ sung
Xây dựng văn phạm tuyến tính trái sinh tập các tên