1. Trang chủ
  2. » Khoa Học Tự Nhiên

Chương 9: ôtômat pushdown và văn phạm phi ngữ cảnh

4 712 9
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ôtômat Pushdown Và Văn Phạm Phi Ngữ Cảnh
Trường học Trường Đại Học
Thể loại Bài viết
Định dạng
Số trang 4
Dung lượng 72 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

văn phạm phi ngữ cảnh Như ta đã biết một ngôn ngữ có thể được sinh bởi nhiều văn phạm khác nhau, trong đó có những văn phạm chứa những kí hiệu thừa, hoặc các qui tắc không giúp gì cho vi

Trang 1

Chương 9 ôtômat pushdown và văn phạm phi ngữ cảnh

I văn phạm phi ngữ cảnh

Như ta đã biết một ngôn ngữ có thể được sinh bởi nhiều văn phạm khác nhau, trong đó có những văn phạm chứa những kí hiệu thừa, hoặc các qui tắc không giúp gì cho việc sinh ngôn ngữ Hiển nhiên các qui tắc như vậy sẽ làm mất thời gian cho quá trình sinh, do vậy ta cần loại các kí hiệu

và qui tắc thừa đó ra khỏi văn phạm Tức cần giản lược văn phạm đến mức gọn nhất có thể

1 Giản lược văn phạm phi ngữ cảnh

Đ

ịnh nghĩa 1 :

 Kí hiệu A   được gọi là kí hiệu vô sinh nếu không tồn tại   * để A |- , ngược lại là kí hiệu hữu sinh

 Kí hiệu A   được gọi là không đến được nếu từ I không dẫn được đến nó, tức không xảy ra I |- , trong đó  chứa A, ngược lại ta gọi A là đến được

 Kí hiệu A   được gọi là kí hiệu thừa nếu nó là kí hiệu vô sinh hoặc không đến được

 Một qui tắc A   được gọi là -qui tắc

 Một qui tắc A  B được gọi là qui tắc đơn

VÝ dô 1 : Cho tập R = {I  aA | B, A  aAb | , B  cC, D  aB }, khi đó B, C là kí hiệu vô

sinh, D là kí hiệu vô sinh và không đến được còn A   là một -qui tắc

§Þnh lý 1 Đối với một ngôn ngữ phi ngữ cảnh L   bất kỳ, ta luôn luôn xây

dựng được một văn phạm phi ngữ cảnh G không chứa kí hiệu thừa sao cho

L(G) = L

Chøng minh :

Để chứng minh ta lần lượt trình bày cách thức loại kí hiệu vô sinh và không đến được mà ngôn ngữ được sinh bởi văn phạm vẫn không thay đổi Giả thiết ngôn ngữ L được sinh bởi văn phạm phi ngữ cảnh G = <, , I, R>, ta xây dựng G’ = <’, ’, I’, R’> mà trong nó không chứa kí hiệu thừa

i Loại kí hiệu vô sinh :

Nhiệm vụ ở đây thay vì tìm kí hiệu vô sinh trong  để loại, ta sẽ xây dựng lại từng bước tập ’ chỉ gồm toàn các kí hiệu hữu sinh, tức ’  , và A  ’ nếu   * : A |-  Thuật toán được bắt đầu từ ’ = , bổ sung dần từng bước các kí hiệu hữu sinh của  vào ’ bằng cách khảo sát từng luật dẫn trong R Thuật toán dừng khi tất cả các luật trong R đã được xét hết

Trang 2

Thuật toán tìm kí hiệu hữu sinh (xem thuật toán sau) :

Proc Tạo_’ {

’ = ; loop = true;

while (R   and loop) { loop = false;

R = R \ { r } ; loop = true;

break;

} }

}

Sau đó trên tập ’ đã xây dựng ta xây dựng tiếp R’

’ = ;

Repeat

lấy r  R có dạng A  X 1 X 2 … Xm với Xi    ’, i.

nếu có : R = R \ {r}; ’ =   {A}

Until không có;

VÝ dô 2 : R = I  IA | a

A  bB

B  aA

 ’ = {I} và R’ = {I  a}

VÝ dô 3 : R = I  AB | CA

B  BC | AB

A  a

C  aB | b

 ’ = {I, A, C} và R’ = {I  CA, A  a, C  b}

ii Loại kí hiệu không đ ến đư ợc : Tương tự trên ta sẽ xây dựng dần tập ’ và ’ chứa các kí hiệu đến được như sau :

’ = {I}, ’ = 

Lặp : Xét tất cả các luật dạng A  , với A  ’ (ví dụ đầu tiên A là I) Bổ sung các kí hiệu phụ trong  vào ’ và kí hiệu kết thúc vào ’ Dừng khi hết luật trong R

Tiếp theo xây dựng lại R’

Trang 3

’ = {I};};

Repeat

lấy r  R có dạng A  X 1 X 2 … Xm với A  ’.

nếu có : R = R \ {r}; ’ =   {Xi | Xi  } ; Until không có;

Xây dựng lại ’ và R’ trên cơ sở ’

VÝ dô 4 : R = { I  AB | a, A  B, C  D}

’ = {I}

I  AB  ’ = {I, A, B}

R’ = {I  AB | a, A  B}

§Þnh lý 2 Đối với một ngôn ngữ phi ngữ cảnh L   bất kỳ, ta luôn luôn xây

dựng được một văn phạm phi ngữ cảnh G không chứa -qui tắc sao cho : L(G)

= L\ {}

Chøng minh :

Để chứng minh ta trình bày cách thức loại -qui tắc mà ngôn ngữ được sinh bởi văn phạm vẫn không thay đổi Giả thiết ngôn ngữ L được sinh bởi văn phạm phi ngữ cảnh G = <, , I, R>, ta xây dựng G’ = <’, ’, I’, R’> mà trong nó không chứa kí hiệu thừa

Duyệt từng qui tắc dạng A  , loại qui tắc khỏi R và thay bằng qui tắc mới bằng cách : thay A bởi  (loại A) trong mọi qui tắc có chứa A ở vế phải Mỗi vị trí của A sẽ sinh ra một qui tắc mới Qui tắc gốc vẫn giữ lại

Repeat

lấy r  R có dạng A   ; nếu có : { R = R \ {r}; while (r’  R có dạng   A’) R = R  {   ’} ; Until không có;

VÝ dô 5 : R = { I  AB, A  aA, B  bB, A  , B  }

I  AB I  AB | I  A * I  AB | I  A | B |  I  AB | I  A | B

B  bB B  bB | B  b B  bB | B  b B  bB | B  b

A   * A  

* B  

§Þnh lý 3 Đối với một ngôn ngữ phi ngữ cảnh L   bất kỳ, ta luôn luôn xây

dựng được một văn phạm phi ngữ cảnh G không chứa kí hiệu qui tắc đơn sao

Trang 4

cho L(G) = L.

Chøng minh :

Không mất tính tổng quát ta giả thiết ngôn ngữ L được sinh bởi văn phạm phi ngữ cảnh G = <,

, I, R> không có kí hiệu thừa, ta xây dựng G’ = <’, ’, I’, R’> mà trong nó không chứa qui tắc đơn sao cho L(G’) = L

repeat

lấy r  R có dạng A  B ; nếu có : { R = R \ {r}; while (r’  R có dạng B   1 |  2 | … |  k ) R = R  { A 

 1 |  2 | … |  k } ; Until không có;

VÝ dô 6 : R =

I  IA | AB I  IA | AB

B  a | AIB B  a | AIB

VÝ dô 7 : R =

I  IA | A I  IA | A I  IA | AB | a

A  AB | B A  AB | a A  AB | a

§Þnh lý 4 Đối với một ngôn ngữ phi ngữ cảnh L   bất kỳ, ta luôn luôn xây

dựng được một văn phạm phi ngữ cảnh G không chứa kí hiệu thừa, -qui tắc và

qui tắc đơn sao cho L(G) = L

I văn phạm chuẩn chomsky

Ngày đăng: 06/09/2013, 10:50

TỪ KHÓA LIÊN QUAN

w