Chương 1. Đại cương về ngôn ngữ và biểu diễn ngôn ngữ

Download Report

Transcript Chương 1. Đại cương về ngôn ngữ và biểu diễn ngôn ngữ

NGÔN NGỮ HÌNH THỨC
GV: Nguyễn Thị Hồng
Email: [email protected]
Giới thiệu môn học




Số tín chỉ: 3
Chuyên cần: nghỉ quá 20 % số buổi Cấm thi
Điểm giữa kì: 2 bài
 Kiểm tra viết
 Bài tập nhóm
 Điểm giữa kì <3  Cấm thi
Thi hết học phần: Thi viết
Chương 1
ĐẠI CƯƠNG VỀ NGÔN NGỮ VÀ
BIỂU DIỄN NGÔN NGỮ
Nội dung
I.
II.
III.
IV.
Nhắc lại một số kiến thức toán liên quan
Khái niệm chung về ngôn ngữ
Hệ viết lại và vấn đề biểu diễn ngôn ngữ
Văn phạm
I. Một số kiến thức toán liên quan

Tập hợp


Kí hiệu: A, B, C, …
Cách cho:
- Liệt kê: A={0, 2, 4, 6, 8}
- Chỉ ra tính chất của phần tử: B={x/x là số chẵn}
Tập hợp

Các phép toán trên tập hợp:
• Hợp: AB={x/xA hoặc xB}
• Giao: AB={x/xA và xB}
• Hiệu: A\B={x/xA và xB}
• Tích Đề-các A×B={(a,b)/aA và bB}
A
• Lũy thừa 2 hay (A) là tập mọi tập con của A
Tập hợp

Tập đếm được:
 Khái niệm: Một tập hợp được gọi là đếm được nếu
tồn tại một song ánh từ tập đó vào tập N số tự nhiên
VD: Tập số chẵn, tập số nguyên
 Định lý: Tập hợp các tập con của một tập hợp đếm
được là không đếm được
Quan hệ



Định nghĩa: Cho hai tập hợp A và B. Ta gọi quan hệ(hai
ngôi) giữa A và B là tập hợp các cặp có thứ tự (a,b) sao cho
aA và bB. R A×B
Kí hiệu: R(a,b) R ta viết aRb
Tính chất: R={(a,a)|a A} là quan hệ đồng nhất trên A
 Phản xạ: nếu a A: aRa
 Bắc cầu (truyền ứng): a, b, c A: aRb và bRc kéo theo
aRc
 Đối xứng: a, b A: aRb kéo theo bRa.
 R là phản đối xứng nếu a, b A: aRb và bRa kéo theo
a=b
Quan hệ





Quan hệ phản xạ và truyền ứng  quan hệ tiền thứ tự
Quan hệ tiền thứ tự đối xứng  quan hệ tương đương
Quan hệ tiền thứ tự phản đối xứng  quan hệ thứ tự bộ
phận
Quan hệ thứ tự bộ phận sao cho a, bA: aRb hoặc bRa
quan hệ thứ tự toàn phần
VD: quan hệ <, ≤, =, đồng dư modun m là các các quan hệ
có tính chất gì?
Quan hệ…

Bao đóng của quan hệ:
 Bao đóng truyền ứng (phản xạ, đối xứng) của quan
hệ R trên tập A là tập nhỏ nhất chứa quan hệ đã
cho mà có tính chất truyền ứng (phản xạ, đối
xứng)
 Ví dụ:
 Cho quan hệ R={(x1,x1); (x1,x2); (x2,x3)}
 Quan hệ R xác định trên A={x1, x2, x3}
 Bao đóng phản xạ của R:
{(x1,x1); (x1,x2); (x2,x3); (x2,x2); (x3,x3)}
Đồ thị
Định nghĩa:Đồ thị G=(V, E) trong đó:
- V là một tập hữu hạn các đỉnh hay nút
- E là tập hợp các cặp đỉnh (cạnh)
 Ví dụ: G=(V,E) trong đó:
- V={1,2,3,4,5,6}
- E={(1,2), (1,5), (2,3), (2,5),
(3,4), (4,5), (4,6) }

Đồ thị …


Đồ thị có hướng: G=(V,E) trong đó E là cặp đỉnh có thứ tự
(cung)
Cây: là đồ thị có hướng có một nút là Gốc, các nút cha, nút con
Phép chứng minh quy nạp

Phép chứng minh quy nạp:
 Quy nạp theo biến nào?
 Cơ sở quy nạp: P(0)
 Giả thiết quy nạp: P(n-1) kéo theo P(n)
II. Ngôn ngữ





Bộ chữ
Xâu
Các phép toán trên xâu
Ngôn ngữ
Các phép toán trên ngôn ngữ
Một số ví dụ

Ví dụ 1: ngôn ngữ Tiếng Việt
 Tập hợp các từ Tiếng Việt: “Tôi”, “bạn”, “chơi”, “ăn”,
…
 Tập hợp các câu Tiếng Việt có nghĩa được xây dựng
từ các từ Tiếng Việt:
“Tôi ăn cơm”
“Tôi đi ngủ”
 Các câu gồm hữu hạn các từ Tiếng Việt không có
nghĩa thì không thuộc ngôn ngữ Tiếng Việt
Một số ví dụ

Ví dụ 2: Ngôn ngữ lập trình Pascal:
 Từ các kí hiệu cơ sở: chu số(0, …,9), chữ cái (a,
…,z), các kí hiệu đặc biệt (#, &, …)
 Các từ tố được xây dựng từ các kí hiệu cơ sở:
BEGIN, END, Return, :=, …
 Không phải tất cả các từ được xây dựng từ các kí
hiệu cơ sở đều là từ tố.
Một số ví dụ

Nhận xét:
 Một ngôn ngữ (tự nhiên hoặc nhân tạo) đều gồm: tập
hợp hữu hạn các đối tượng sơ đẳng (từ Tiếng Việt, các
kí hiệu cơ sở) và từ các đối tượng này xây dựng được
các đơn vị mang nghĩa (câu, từ tố)
 Như vậy, nghiên cứu ngôn ngữ phải đề cập đến:
 Quy tắc tạo lập đơn vị mang nghĩa từ các đối tượng
sơ đẳng
 Phương pháp xác định nghĩa của các câu
Ngôn ngữ


Bộ chữ (bảng chữ): là tập hữu hạn các kí hiệu(chữ,
kí tự). Số phần tử của bộ chữ V kí hiệu là #V
Ví dụ:
 Ngôn ngữ Tiếng Việt: bộ chữ là các từ Tiếng Việt.
 Ngôn ngữ các từ tố Pascal: bộ chữ là các kí hiệu cơ sở:
chữ cái, chữ số, kí hiệu đặc biệt.
II. Ngôn ngữ


Xâu (từ, câu): trên bộ chữ V là một dãy các kí hiệu trong V
viết liên liền nhau.
Ví dụ: Cho V là {0,1}

Xâu: 00101 là xâu trên bộ chữ V
0 0001  không là xâu trên V
10a001 không là xâu trên V
Xâu…




Chiều dài xâu: là số kí hiệu trong xâu
Xâu rỗng là xâu có chiều dài là 0. Kí hiệu:ε(hoặc )
Xâu con là một phần của xâu.
Ví dụ: xâu w=abc có các xâu con là ε, a, b, c, ab, bc,
abc.
Cho bộ chữ V, Kí hiệu: V* là tập các xâu trên V, V+ là
tập các xâu không rỗng trên V
Xâu …
Tiền tố: của một xâu là xâu con ở đầu xâu
 Hậu tố: của một xâu là xâu con ở cuối xâu
Ví dụ: w=abcd
 Tiền tố: ε, a, ab, abc, abcd
Hậu tố: ε, d, cd, bcd, abcd

Xâu …

Một số quy ước: Cho bộ chữ V
n
 V (nN) là tập hợp các xâu trên V có độ dài n
0
 V ={}: xâu rỗng là xâu trên mọi bộ chữ;
1
 V =V: các xâu có độ dài 1 là đồng nhất với các kí
hiệu
 V* là tập hợp tất cả các xâu trên V.
V*= U Vi (i≥0)
+
 V là tập các xâu không rỗng trên V
V+= U Vi (i>0)
Các phép toán trên xâu


Ghép tiếp (tích ghép): là kết nối hai xâu x và y thành xâu
xy.
Nếu x= a1a2…an, y= b1b2…bm thì x.y= c1c2…cn+m
(ci=ai với i=1, …,n và cn+i=bi với i=1, …,m)
Ví dụ: xâu x=abc, y=bca
 Kết quả ghép tiếp là xâu xy=abcbca
Đảo ngược: là viết xâu theo thứ tự ngược lại. Kí hiệu: đảo
ngược của xâu u là xâu uR
Ví dụ: u=abcde
Xâu đảo ngược là xâu uR=edcba
Định nghĩa ngôn ngữ

Định nghĩa:
 Ta gọi ngôn ngữ trên bộ chữ V là một tập hợp bất kì
các xâu trên V.
 , {} là ngôn ngữ trên bộ chữ bất kì
 V* là tập tất cả các xâu trên V kể cả 
+
 V là tập tất cả các xâu trên V không kể 
*
 L là ngôn ngữ trên V nếu LV
 ,{ε}, V1, V2, …, V* là ngôn ngữ trên V
Định nghĩa ngôn ngữ

Ví dụ: V={a,b}. Các ngôn ngữ trên V
 , {} là ngôn ngữ trên V
1
 V ={a, b} là ngôn ngữ gồm các xâu độ dài 1 trên V
2
 V = {aa, ab, bb, ba} là ngôn ngữ gồm các xâu độ
dài 2 trên V
*
 V ={ε, a, b, ab, aab, abb, aaa, …}
 L={a, b, ab} là ngôn ngữ trên V
Các phép toán trên ngôn ngữ


Ghép tiếp(tích ghép): Cho hai ngôn ngữ L1 và L2, ghép
tiếp của ngôn ngữ L1 và L2:
L1L2={xy|xL1, yL2}
Đảo ngược: là ngôn ngữ có được bằng cách đảo ngược
tất cả các xâu của ngôn ngữ đó:
LR={wR, w L}
Các phép toán trên ngôn ngữ


Lũy thừa nguyên:
0
 L ={ε}
i
i-1 (với i=1,2,3, …)
 L =L.L
Ghép lặp * và +:
0
1
2
 L*=L L L …
+
1
2
 L =L L …
III. Hệ viết lại và vấn đề biểu diễn ngôn ngữ

Biểu diễn ngôn ngữ:
 Cách 1: liệt kệ các phần tử của ngôn ngữ (ngôn ngữ
là hữu hạn)
 Cách 2: Chỉ ra các tính chất của phần tử
- Cho cơ chế sản sinh ra các xâu thuộc ngôn ngữ
(văn phạm)
- Cho cơ chế đoán nhận các xâu thuộc ngôn ngữ
(Ôtômát)
Hệ viết lại

Định nghĩa:
 Là một bộ đôi W=(V,P) trong đó:
- V là một bộ chữ
- P là tập hữu hạn các cặp xâu trên V có dạng (,)
 Mỗi cặp (,) được gọi là một quy tắc viết lại (nếu
gặp xâu  thì ta có thể thay thế bằng xâu )
 Cặp (,) có thể viết dưới dạng: , được gọi là
một sản xuất
 Nếu 1, 2, …, k thì ta viết:
1|2|…|k
Hệ viết lại

Suy dẫn trực tiếp: Cho hệ viết lại W=(V, P), x,y V*
x suy dẫn trực tiếp ra y nếu tồn tại các xâu u, , , v
sao cho:
x=uv
 y=uv
  là một sản xuất trong P


Kí hiệu: x=>y hoặc x=>y
w
Hệ viết lại


Suy dẫn (dẫn xuất): Cho hệ viết lại W=(V, P), x,y
V*, y được dẫn xuất từ x (x là đầu, y là đích) nếu tồn
tại các xâu 1, 2, 3, …k sao cho:
 x= 1
 y= k
 i =>i+1 là suy dẫn trực tiếp
Kí hiệu: x=>*y hoặc x=>*y
w
Hệ viết lại…


Ví dụ: Cho hệ viết lại sau:
 V={0, 1, +}
 P={0+00, 0+11, 1+01, 1+10}
Các suy dẫn trong hệ này:
 0+0+1+1 => 0+1+1 => 1+1 => 0
 0+0+1+1 => 0+1+1 => 0+0 => 0
Hệ viết lại…

Định lý hợp suy dẫn:
Cho hệ viết lại (V, P) và cho u1, …un , v, …vn là các
xâu trong V*.
Nếu: u1 =>* v1
…
un =>* vn
Thì: u1…un => * v1 …vn
IV.Văn phạm

Định nghĩa: là một bộ bốn G=(, , P, S) trong đó:
  là bộ chữ kết thúc (tập kí hiệu kết thúc)
  là bộ chữ không kết thúc (tập kí hiệu không kết
thúc)
 S   là kí hiệu bắt đầu
 P là tập các sản xuất
 ,  là hai bộ chữ rời nhau, V=  là bộ chữ của
văn phạm
IV.Văn phạm

Ví dụ: Cho văn phạm
G=({S,A,B}, {a,b}, S, P) trong đó P:
SaAS|bBS|ε
AaaA|b
BbbA|a
Văn phạm

Ví dụ: Văn phạm Tiếng Việt
 <Câu><Chủ ngữ><vị ngữ>
 <Chủ ngữ> <danh từ>|<tên>
 <vị ngữ> <động từ>
 <danh từ> ”bố”| “mẹ”| “gà”| “bò”| …
 <Tên> ”Minh”| ”Hà”| ”Hồng”| “Lan”…
 <động từ>”Ăn”| “ngủ”| “chơi”…
Văn phạm

Ví dụ: Văn phạm ngôn ngữ lập trình Pascal
 <Tên><Chữ cái>|<Tên><Chữ cái>|<Tên><Chữ
số>|<Tên> _
 <Chữ cái>a|…|z|A|…|Z
 <Chữ số>0|…|9
Văn phạm

Ngôn ngữ sinh bởi văn phạm:
*
 L(G)={x*|S=> px}
 L(G) là tập tất cả các xâu gồm toàn kí hiệu kết thúc
được suy dẫn ra từ kí hiệu bắt đầu
 Hai văn phạm được gọi là tương đương nếu chúng
sản sinh ra cùng một ngông ngữ:
G tương đương G’ L(G)=L(G’)
Văn phạm

Phân loại văn phạm:
 Văn phạm loại 0 (văn phạm ngữ cấu): văn phạm
tổng quát
 Văn phạm loại 1 (Văn phạm cảm ngữ cảnh): mọi
quy tắc có dạng:
A w (, V*; A, wV+)
 Văn phạm loại 2 (văn phạm phi ngữ cảnh) mọi quy
tắc có dạng:
 Aw (A, wV*)
 Aε là sản xuất ε; AB(B ) là sản xuất đơn
Văn phạm …


Ví dụ 2: Cho văn phạm G=({a,b},{},S,P) trong đó
P gồm các sản xuất:
 SaS|Sb|
Ngôn ngữ được sinh bởi văn phạm:
n m
 L={a b | n,m≥0}
 Ngôn ngữ được sinh bởi văn phạm L là ngôn ngữ
gồm các kí hiệu a và b trong đó các kí hiệu a đứng
trước các kí hiệu b.
Phân loại văn phạm …

Văn phạm loại 3: (Văn phạm chính quy)
 văn phạm tuyến tính (VPTT) phải nếu quy tắc có
một trong hai dạng sau:
 AwB (A, B , w*)
 Aw (A, w*)
 Nếu |w|≤1VPTT phải đơn
 Văn phạm tuyến tính trái nếu quy tắc có một trong
hai dạng sau:
 ABw (A, B , w*)
 Aw (A, w*)
 Nếu |w|≤1VPTT trái đơn
Văn phạm loại 3…



Định lý: Cho VPTT phải G. Tồn tại một VPTT phải
đơn G’ tương đương với G
Định lý: Cho VPTT trái G. Tồn tại một VPTT trái đơn
G’ tương đương với G
Định lý: Cho VPTT phải G. Tồn tại một VPTT trái G’
tương đương với G
Văn phạm loại 3 …

Bài toán: Cho VPTT phải G, tìm VPTT phải đơn G’
tương đương G.
Văn phạm

Một ngôn ngữ được gọi là đệ quy kể được, cảm ngữ
cảnh, phi ngữ cảnh, chính quy nếu có một văn phạm
tổng quát, cảm ngữ cảnh, phi ngữ cảnh, chính quy
phải sinh ra nó