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

Bài giảng Ngôn ngữ hình thức và ôtômát: Chương 1 - Nguyễn Thị Minh Huyề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 (457.9 KB, 122 trang )

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


×