1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lý thuyết tính toán: Bài 06 - Nguyễn Ngọc Tú

23 6 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Mời các bạn cùng tìm hiểu biến đổi văn phạm; hai dạng chuẩn quan trọng; giải thuật thành viên cho văn phạm phi ngữ cảnh được trình bày cụ thể trong Bài giảng Lý thuyết tính toán: Bài 06 - Ngôn ngữ phi ngữ cảnh và dạng chuẩn.

LÝ THUYẾT TÍNH TỐN INTRODUCTION TO COMPUTATION THEORY (FORMAL LANGUAGES & AUTOMATA) Bài 06 Ngôn ngữ phi ngữ cảnh Dạng chuẩn Sử dụng slides tác giả: Hồ Văn Quân + Nick Hopper TIN331 GV: Nguyễn Ngọc Tú Tu.NguyenNgoc@hoasen.edu.vn Nội dung    Biến đổi văn phạm Hai dạng chuẩn quan trọng Giải thuật thành viên cho văn phạm phi ngữ cảnh Biến đổi văn phạm  Nếu L ∋ λ biểu diễn L = L1 ∪ λ với L1 = L - λ Nếu   G1 = (V1, T, S1, P1)  G = (V1 ∪ {S}, T, S, P1 ∪ {S → S1 | λ}) Biến đổi văn phạm – quy tắc  Định lý 6.1  Cho G = (V, T, S, P) VPPNC Giả sử P có chứa luật sinh A → x1Bx2 A, B biến khác  B → y1 | y2 | | yn tập tất luật sinh P mà có B vế trái   Cho G1= (V, T, S, P1) VP xây dựng cách xóa A → x1Bx2 từ P, thêm vào  A → x1y1x2 | x1y2x2| | x1ynx2 Thì  L(G) = L(G1)  E.x  Xét văn phạm G = ({A, B}, {a, b}, A, P) với luật sinh A → a | aA | bBc,  B → abA | b   Sau thay biến B ta nhận VP tương đương sau A → a | aA | babAc | bbc,  B → abA | b   Chuỗi abbc có dẫn xuất G G1 sau: A ⇒ aA ⇒ abBc ⇒ abbc  A ⇒ aA ⇒ abbc  Biến đổi văn phạm – quy tắc  Định lý 6.2 (Loại bỏ đệ qui trái)  Cho G = (V, T, S, P) VPPNC Chia tập luật sinh mà vế trái chúng biến cho (chẳng hạn A), thành hai tập riêng biệt A → Ax1 | Ax2 | | Axn (6.2)  A → y1 | y2 | | ym (6.3) với xi, yi ∈ (V ∪ T)*, A không prefix yi   Xét G1 = (V ∪ {Z}, T, S, P1), Z ∉ V P1 nhận cách thay luật sinh P có dạng (6.2) (6.3) A → yi | yiZ, i = 1, 2, , m,  Z → xi | xiZ, i = 1, 2, , n,   Thì  L(G) = L(G1)  Chứng minh  Các A dạng câu mà A sinh văn phạm G có dạng: A(x1 + x2 + + xn)* ⇒ yi(x1 + x2 + + xn)* dạng câu sinh G1 cách ý Z sinh dạng câu có dạng  Các Z (x1 + x2 + + xn)(x1 + x2 + + xn)* ⇒  mà A → A  Vì yi | yiZ nên yi(x1 + x2 + + xn)* ⇒ L(G) = L(G1) E.x  Sử dụng Định lý 6.2 để loại bỏ luật sinh đệ qui-trái khỏi VP   A → Aa | aBc | λ Áp dụng định lý cho biến A ta tập luật sinh sau: A → aBc | λ | aBcZ | Z  Z → a | aZ   B → Bb | ba B → Bb | ba Áp dụng định lý lần lần cho biến B ta tập luật sinh kết cuối sau: A → aBc | aBcZ | Z | λ  Z → a | aZ  B → ba | baY Y → b | bY Biến đổi văn phạm – Luật sinh vô dụng  Định nghĩa 6.1:  Cho G = (V, T, S, P) VPPNC biến A ∈ V gọi khả dụng có chuỗi w ∈ L(G) cho  S ⇒ xAy⇒ w, với x, y ∈ (V ∪ T)*  biến khả dụng xuất dẫn xuất Một biến mà khơng khả dụng gọi vơ dụng Một luật sinh gọi vơ dụng có chứa biến vô dụng  Một Biến đổi văn phạm – Luật sinh vô dụng  Định lý 6.3   Cho G = (V, T, S, P) VPPNC, ∃ VP tương đương G0 = (V0, T, S, P0) mà không chứa biến vô dụng Chứng minh Loại bỏ biến luật sinh vô dụng loại  Tạo văn phạm G1 = (V1, T, S, P1) với V1 tập biến khơng vơ dụng loại Ta tìm V1 sau:  Khởi tạo V1 = ∅  Lặp lại bước sau khơng cịn biến thêm vào V1    Đối với A ∈ V mà có luật sinh A → x, x ∈ (V1∪T)*, thêm A vào V1 Loại khỏi P luật sinh có chứa biến ∉ V1, ta P1 Biến đổi văn phạm – Luật sinh vô dụng   Để loại tiếp biến luật sinh vô dụng loại ta dựa vào G1 vừa có vẽ đồ thị phụ thuộc cho nó, sau tìm tập biến không đạt tới từ S Loại biến luật sinh liên quan đến khỏi G1 ta văn phạm kết G0 Đồ thị phụ thuộc (dependency graph) Là đồ thị có đỉnh biểu diễn biến, cạnh nối hai đỉnh A B có luật sinh dạng  A → xBy  A B E.x  Loại bỏ biến luật sinh vô dụng khỏi văn phạm = ({S, A, B, C}, {a, b}, S, P), với tập luật sinh P là:  S → aS | A | C B → aa A→ a C → aCb G V1 = {S, A, B} tập luật sinh P1 S → aS | A A→a B → aa S A S → aS | A A→a B Biến đổi văn phạm – Loại bỏ luật sinh  Định nghĩa 6.2  Bất kỳ luật sinh VPPNC có dạng A→ λ  gọi luật sinh-λ Bất kỳ biến A mà   gọi khả trống (nullable) Định lý 6.4 G VPPNC mà L(G) khơng chứa λ, tồn văn phạm G0 tương đương mà khơng có chứa luật sinh-λ  Cho Biến đổi văn phạm – Loại bỏ luật sinh  Chứng minh:  Bước    Tìm tập VN tất biến khả trống G bước sau Đối với luật sinh A → λ, đưa A vào VN Lặp lại bước sau không biến thêm vào VN   Đối với luật sinh B → A1A2 … An, mà A1, A2, An ∈ VN đặt B vào V N Bước   Sau có tập VN ta xây dựng tập luật sinh sau Ứng với luật sinh có dạng A → x1x2 … xm, m ≥ 1, xi ∈ V ∪ T, đặt luật sinh vào với luật sinh sinh cách thay biến khả trống λ tổ hợp có thể, ngoại trừ tất xi khả trống khơng đặt luật sinh A → λ vào P0 G0 E.x  Loại bỏ luật sinh-λ văn phạm sau: S → ABaC  A → BC     C→D|λ D→d B→b|λ Vì B → λ C → λ  B C biến khả trống Vì A → BC A biến khả trống Theo Bước ta xây dựng tập luật sinh tương đương sau: S → ABaC | BaC | AaC | Aba | aC | Aa | Ba | a  A → BC | B | C B→b C→D D→d  Biến đổi văn phạm – Loại bỏ luật sinh  Định nghĩa 6.3 Bất kỳ luật sinh VPPNC có dạng  A→B  A, B ∈ V gọi luật sinh-đơn vị   Định lý 6.5  Cho G = (V, T, S, P) VPPNC khơng có luật sinh-λ, tồn VPPNC G1 = (V1, T, S, P1) mà luật sinh đơn vị tương đương với G1  Chứng minh Đặt vào P1 tất luật sinh không đơn vị P  Đối với biến A tìm tất biến B mà A B (*) ⇒    Điều thực cách vẽ đồ thị phụ thuộc cho G cạnh nối đỉnh A B có luật sinh-đơn vị A → B Hai biến A B thỏa (*) có đường đồ thị từ A đến B Đối với A, B thõa (*) thêm vào P1 luật sinh A → y1 | y2 | | yn  với B → y1 | y2 | | yn luật sinh không đơn vị B  E.x  Loại bỏ luật sinh đơn vị cho VP sau S → Aa | B  B → A | bb  A → a | bc | B  S A B S → Aa | a | bc | bb A → a | bc | bb B → bb | a | bc Đặt luật sinh không đơn vị vào P1 S → Aa A → a | bc B → bb Từ ĐTPT S → a | bc | bb A → bb B → a | bc Biến đổi văn phạm – Loại bỏ luật sinh  Định lý 6.6   Cho L NNPNC không chứa λ, tồn VPPNC sinh L mà không chứa luật sinh vô dụng, luật sinhλ, hay luật sinh-đơn vị Chứng minh: B1 Loại bỏ luật sinh-λ  B2 Loại bỏ luật sinh đơn vị  B3 Loại bỏ luật sinh vô dụng loại 1, vô dụng loại  Hai dạng chuẩn quan trọng  Một VPPNC thuộc dạng chuẩn Chomsky luật sinh có dạng A → BC,  A→a A, B, C ∈ V, cịn a ∈ T   Định lý 6.7  Bất kỳ VPPNC G = (V, T, S, P) với λ ∉ L(G) có văn phạm tương đương G1 = (V1, T, S, P1) có dạng chuẩn Chomsky Dạng chuẩn – G-to-GChomsky       Input: G = (V, T, S, P) với λ ∉ L(G) Output: G1 = (V1, T, S, P1) có dạng chuẩn Chomsky 1.Đặt luật sinh A → a vào P1 2.Đối với luật sinh A → x1x2 xn với n ≥ 2, xi ∈ (V ∪ T) thay kí hiệu kết thúc, chẳng hạn xk = a, biến đại diện Ba, tạo thành luật sinh trung gian A → C1C2 Cn 3.Ứng với biến đại diện Ba đặt vào P1 luật sinh Ba → a 4.Sau thực bước 2, ứng với luật sinh A → C1C2 Cn mà n = đặt vào P1 Ngược lại ứng với n > ta giới thiệu biến D1, D2, đưa vào luật sinh sau:     A → C1D1 D1 → D1 D2 Dn-2 → Cn-1Cn E.x S→a B→b S → a | ABa A → aab B → b | Ac S → ABXa A → XaXaXb B → AXc Xa → a Xb → b Xc → c S → AD1 D1 → BXa A → XaD2 D2 → XaXb S → a | AD1 D1 → BXa A → XaD2 D2 → XaXb B → b | AXc Xa → a Xb → b Xc → c ... yi(x1 + x2 + + xn)* ⇒ L(G) = L(G1) E.x  Sử dụng Định lý 6.2 để loại bỏ luật sinh đệ qui-trái khỏi VP   A → Aa | aBc | λ Áp dụng định lý cho biến A ta tập luật sinh sau: A → aBc | λ | aBcZ... dạng A→ λ  gọi luật sinh-λ Bất kỳ biến A mà   gọi khả trống (nullable) Định lý 6.4 G VPPNC mà L(G) khơng chứa λ, tồn văn phạm G0 tương đương mà khơng có chứa luật sinh-λ  Cho Biến đổi văn phạm... Bất kỳ luật sinh VPPNC có dạng  A→B  A, B ∈ V gọi luật sinh-đơn vị   Định lý 6.5  Cho G = (V, T, S, P) VPPNC khơng có luật sinh-λ, tồn VPPNC G1 = (V1, T, S, P1) mà khơng có luật sinh đơn

Ngày đăng: 08/05/2021, 18:17

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w