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
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
Nội dung
1. Bảng chữ cái – Từ – Ngôn ngữ
2. Các phép toán trên từ
3. Các phép toán trên ngôn ngữ
4. Văn phạm hình thức
5. 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
Ch1. NN&VP hình thức
1 / 30
Nội dung
1. Bảng chữ cái – Từ – Ngôn ngữ
2. Các phép toán trên từ
3. Các phép toán trên ngôn ngữ
4. Văn phạm hình thức
5. 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
Ch1. NN&VP hình thức
1 / 30
Nội dung
1. Bảng chữ cái – Từ – Ngôn ngữ
2. Các phép toán trên từ
3. Các phép toán trên ngôn ngữ
4. Văn phạm hình thức
5. 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
Ch1. NN&VP hình thức
1 / 30
Nội dung
1. Bảng chữ cái – Từ – Ngôn ngữ
2. Các phép toán trên từ
3. Các phép toán trên ngôn ngữ
4. Văn phạm hình thức
5. 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
Ch1. NN&VP hình thức
1 / 30
Nội dung
1. Bảng chữ cái – Từ – Ngôn ngữ
2. Các phép toán trên từ
3. Các phép toán trên ngôn ngữ
4. Văn phạm hình thức
5. 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
Ch1. NN&VP hình thức
1 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Nội dung
1. Bảng chữ cái – Từ – Ngôn ngữ
2. Các phép toán trên từ
3. Các phép toán trên ngôn ngữ
4. Văn phạm hình thức
5. 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
Ch1. NN&VP hình thức
2 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Bả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
Kí hiệu Σ
Ví dụ:
Σ1 = {0, 1}
Σ2 = {a, b, c, ..., z}
Σ3 = {0, 1, ..., 9, +, −, ∗, /, (, )}
Σ4 = {a, am, I, student, teacher }
Ch1. NN&VP hình thức
3 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Bả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
Kí hiệu Σ
Ví dụ:
Σ1 = {0, 1}
Σ2 = {a, b, c, ..., z}
Σ3 = {0, 1, ..., 9, +, −, ∗, /, (, )}
Σ4 = {a, am, I, student, teacher }
Ch1. NN&VP hình thức
3 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Từ trên bảng chữ cái Σ
Từ w: chuỗi hữu hạn các chữ cái w1 , w2 , · · · , wn trên bảng
chữ cái Σ, kí hiệu w = w1 w2 · · · wn .
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 .
Σ∗ = Tập tất cả các từ trên bảng chữ cái Σ, kể cả từ rỗng
Σ+ = Σ∗ \{ }
Ví dụ
w1 = 010, w2 = student, w3 = 4 + 5, w4 = I am a student
Σ∗1 = { , 0, 1, 00, 01, 10, 11, 000, 001, · · · }
Σ+
1 = {0, 1, 00, 01, 10, 11, 000, 001, · · · }
Ch1. NN&VP hình thức
4 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Từ trên bảng chữ cái Σ
Từ w: chuỗi hữu hạn các chữ cái w1 , w2 , · · · , wn trên bảng
chữ cái Σ, kí hiệu w = w1 w2 · · · wn .
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 .
Σ∗ = Tập tất cả các từ trên bảng chữ cái Σ, kể cả từ rỗng
Σ+ = Σ∗ \{ }
Ví dụ
w1 = 010, w2 = student, w3 = 4 + 5, w4 = I am a student
Σ∗1 = { , 0, 1, 00, 01, 10, 11, 000, 001, · · · }
Σ+
1 = {0, 1, 00, 01, 10, 11, 000, 001, · · · }
Ch1. NN&VP hình thức
4 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Từ trên bảng chữ cái Σ
Từ w: chuỗi hữu hạn các chữ cái w1 , w2 , · · · , wn trên bảng
chữ cái Σ, kí hiệu w = w1 w2 · · · wn .
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 .
Σ∗ = Tập tất cả các từ trên bảng chữ cái Σ, kể cả từ rỗng
Σ+ = Σ∗ \{ }
Ví dụ
w1 = 010, w2 = student, w3 = 4 + 5, w4 = I am a student
Σ∗1 = { , 0, 1, 00, 01, 10, 11, 000, 001, · · · }
Σ+
1 = {0, 1, 00, 01, 10, 11, 000, 001, · · · }
Ch1. NN&VP hình thức
4 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Từ trên bảng chữ cái Σ
Từ w: chuỗi hữu hạn các chữ cái w1 , w2 , · · · , wn trên bảng
chữ cái Σ, kí hiệu w = w1 w2 · · · wn .
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 .
Σ∗ = Tập tất cả các từ trên bảng chữ cái Σ, kể cả từ rỗng
Σ+ = Σ∗ \{ }
Ví dụ
w1 = 010, w2 = student, w3 = 4 + 5, w4 = I am a student
Σ∗1 = { , 0, 1, 00, 01, 10, 11, 000, 001, · · · }
Σ+
1 = {0, 1, 00, 01, 10, 11, 000, 001, · · · }
Ch1. NN&VP hình thức
4 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Từ trên bảng chữ cái Σ
Từ w: chuỗi hữu hạn các chữ cái w1 , w2 , · · · , wn trên bảng
chữ cái Σ, kí hiệu w = w1 w2 · · · wn .
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 .
Σ∗ = Tập tất cả các từ trên bảng chữ cái Σ, kể cả từ rỗng
Σ+ = Σ∗ \{ }
Ví dụ
w1 = 010, w2 = student, w3 = 4 + 5, w4 = I am a student
Σ∗1 = { , 0, 1, 00, 01, 10, 11, 000, 001, · · · }
Σ+
1 = {0, 1, 00, 01, 10, 11, 000, 001, · · · }
Ch1. NN&VP hình thức
4 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Từ trên bảng chữ cái Σ
Từ w: chuỗi hữu hạn các chữ cái w1 , w2 , · · · , wn trên bảng
chữ cái Σ, kí hiệu w = w1 w2 · · · wn .
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 .
Σ∗ = Tập tất cả các từ trên bảng chữ cái Σ, kể cả từ rỗng
Σ+ = Σ∗ \{ }
Ví dụ
w1 = 010, w2 = student, w3 = 4 + 5, w4 = I am a student
Σ∗1 = { , 0, 1, 00, 01, 10, 11, 000, 001, · · · }
Σ+
1 = {0, 1, 00, 01, 10, 11, 000, 001, · · · }
Ch1. NN&VP hình thức
4 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Ngôn ngữ trên bảng chữ cái Σ
Tập con bất kì của Σ∗
Ngôn ngữ rỗng: tập rỗng ∅
⇒ phân biệt với { }
Ví dụ
L1 = {w ∈ Σ∗1 ||w| = 2}
L2 = {w ∈ Σ∗2 ||w| ≤ 80}
L3 = {w ∈ Σ∗3 |w biểu diễn biểu thức số học }
L4 = {w ∈ Σ∗4 |w = I am a student hoặc w =
I am a teacher }
Ch1. NN&VP hình thức
5 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Ngôn ngữ trên bảng chữ cái Σ
Tập con bất kì của Σ∗
Ngôn ngữ rỗng: tập rỗng ∅
⇒ phân biệt với { }
Ví dụ
L1 = {w ∈ Σ∗1 ||w| = 2}
L2 = {w ∈ Σ∗2 ||w| ≤ 80}
L3 = {w ∈ Σ∗3 |w biểu diễn biểu thức số học }
L4 = {w ∈ Σ∗4 |w = I am a student hoặc w =
I am a teacher }
Ch1. NN&VP hình thức
5 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Ngôn ngữ trên bảng chữ cái Σ
Tập con bất kì của Σ∗
Ngôn ngữ rỗng: tập rỗng ∅
⇒ phân biệt với { }
Ví dụ
L1 = {w ∈ Σ∗1 ||w| = 2}
L2 = {w ∈ Σ∗2 ||w| ≤ 80}
L3 = {w ∈ Σ∗3 |w biểu diễn biểu thức số học }
L4 = {w ∈ Σ∗4 |w = I am a student hoặc w =
I am a teacher }
Ch1. NN&VP hình thức
5 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Ngôn ngữ trên bảng chữ cái Σ
Tập con bất kì của Σ∗
Ngôn ngữ rỗng: tập rỗng ∅
⇒ phân biệt với { }
Ví dụ
L1 = {w ∈ Σ∗1 ||w| = 2}
L2 = {w ∈ Σ∗2 ||w| ≤ 80}
L3 = {w ∈ Σ∗3 |w biểu diễn biểu thức số học }
L4 = {w ∈ Σ∗4 |w = I am a student hoặc w =
I am a teacher }
Ch1. NN&VP hình thức
5 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Ngôn ngữ trên bảng chữ cái Σ
Tập con bất kì của Σ∗
Ngôn ngữ rỗng: tập rỗng ∅
⇒ phân biệt với { }
Ví dụ
L1 = {w ∈ Σ∗1 ||w| = 2}
L2 = {w ∈ Σ∗2 ||w| ≤ 80}
L3 = {w ∈ Σ∗3 |w biểu diễn biểu thức số học }
L4 = {w ∈ Σ∗4 |w = I am a student hoặc w =
I am a teacher }
Ch1. NN&VP hình thức
5 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Ngôn ngữ trên bảng chữ cái Σ
Tập con bất kì của Σ∗
Ngôn ngữ rỗng: tập rỗng ∅
⇒ phân biệt với { }
Ví dụ
L1 = {w ∈ Σ∗1 ||w| = 2}
L2 = {w ∈ Σ∗2 ||w| ≤ 80}
L3 = {w ∈ Σ∗3 |w biểu diễn biểu thức số học }
L4 = {w ∈ Σ∗4 |w = I am a student hoặc w =
I am a teacher }
Ch1. NN&VP hình thức
5 / 30
Bảng chữ cái – Từ – Ngôn ngữ
Ngôn ngữ trên bảng chữ cái Σ
Tập con bất kì của Σ∗
Ngôn ngữ rỗng: tập rỗng ∅
⇒ phân biệt với { }
Ví dụ
L1 = {w ∈ Σ∗1 ||w| = 2}
L2 = {w ∈ Σ∗2 ||w| ≤ 80}
L3 = {w ∈ Σ∗3 |w biểu diễn biểu thức số học }
L4 = {w ∈ Σ∗4 |w = I am a student hoặc w =
I am a teacher }
Ch1. NN&VP hình thức
5 / 30
Các phép toán trên từ
Nội dung
1. Bảng chữ cái – Từ – Ngôn ngữ
2. Các phép toán trên từ
3. Các phép toán trên ngôn ngữ
4. Văn phạm hình thức
5. 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
Ch1. NN&VP hình thức
6 / 30
Các phép toán trên từ
Tích ghép
Định nghĩa: Cho 2 từ u = u1 · · · um , v = v1 · · · vn 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
từ u: w = u1 · · · um v1 · · · vn .
Tính chất:
Từ rỗng là phần tử đơn vị: w = · w = w · ∀w ∈ Σ∗
Không giao hoán
Kết hợp: u(wv) = (uw)v
|uv| = |u| + |v|
Luỹ thừa: Kí hiệu u 0 = , u 1 = u, u n = u n−1 · u với n là số
tự nhiên > 1
Từ con (nhân tử): x là từ con của y trên bảng chữ cái Σ
nếu ∃u, v ∈ Σ∗ : y = u · x · v.
Phần đầu (tiền tố), phần cuối (hậu tố): x là tiền tố (hậu tố)
của y trên bảng chữ cái Σ nếu
∃v(u) ∈ Σ∗ : y = x · v(y = u · x).
Ch1. NN&VP hình thức
7 / 30
Các phép toán trên từ
Tích ghép
Định nghĩa: Cho 2 từ u = u1 · · · um , v = v1 · · · vn 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
từ u: w = u1 · · · um v1 · · · vn .
Tính chất:
Từ rỗng là phần tử đơn vị: w = · w = w · ∀w ∈ Σ∗
Không giao hoán
Kết hợp: u(wv) = (uw)v
|uv| = |u| + |v|
Luỹ thừa: Kí hiệu u 0 = , u 1 = u, u n = u n−1 · u với n là số
tự nhiên > 1
Từ con (nhân tử): x là từ con của y trên bảng chữ cái Σ
nếu ∃u, v ∈ Σ∗ : y = u · x · v.
Phần đầu (tiền tố), phần cuối (hậu tố): x là tiền tố (hậu tố)
của y trên bảng chữ cái Σ nếu
∃v(u) ∈ Σ∗ : y = x · v(y = u · x).
Ch1. NN&VP hình thức
7 / 30