1. Trang chủ
  2. » Biểu Mẫu - Văn Bản

Chuong 6

18 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

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 313,79 KB

Nội dung

[r]

(1)

Trang

Lý thuyết Ơtơmát & NNHT - Khoa Công NghệThông Tin

Chương Đơn gin hóa VPPNC và dng chun

6.1 Các phương pháp đểbiến đổi văn phạm 6.2 Hai dạng chuẩn quan trọng

6.3 Giải thuật thành viên cho văn phạm phi ngữ cảnh

Các phương pháp để biến đổi văn phm

„ Chuỗi trống đóng vai trò đặc biệt nhiều định lý chứng minh, thường cần có sựchú ý đặc biệt cho „ Nếu L∋ λthì biểu diễn L= L1∪{λ} với L1= L– {λ} Nếu

G1= (V1, T, S1, P1) văn phạm biểu diễn cho L1thì

G= (V1∪{S}, T, S, P1∪{SS1| λ}) văn phạm biểu diễn cho L

„ Trong chương này, xem xét NNPNC không chứa λ

(2)

Trang

Lý thuyết Ơtơmát & NNHT - Khoa Công NghệThông Tin

„ Định lý 6.1

„ Cho G= (V, T, S, P) VPPNC GiảsửPcó chứa luật sinh

Ax1Bx2

trong đóA, Blà biến khác

By1| y2| | yn

là tập tất cảcác luật sinh Pmà cóBởvếtrái

Cho G1= (V, T, S, P1) VP xây dựng cách xóa

Ax1Bx2

từP, thêm vào nó

Ax1y1x2| x1y2x2| | x1ynx2

Thì

L(G) = L(G1)

Ví d

„ Xét văn phạm G= ({A, B}, {a, b}, A, P) với luật sinh Aa| aA| bBc,

BabA| b

Sau thay thếbiến Bta nhận VP tương đương sau Aa| aA| babAc| bbc,

BabA| b

„ Chuỗi abbccó dẫn xuất GvàG1lần lượt sau: AaAabBcabbc

AaAabbc

(3)

Trang

Lý thuyết Ơtơmát & NNHT - Khoa Công NghệThông Tin

Loi b đệ qui trái „ Đị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 làA), thành hai tập riêng biệt

AAx1| Ax2| | Axn (6.2)

Ay1| y2| | ym (6.3)

với xi, yi∈(V ∪T)*, vàAkhông prefix bất kỳyinào Xét G1= (V ∪{Z}, T, S, P1), đóZVP1nhận cách thay luật sinh Pcó dạng (6.2 ) (6.3)

Ayi| yiZ, i= 1, 2, , m,

Zxi| xiZ, i= 1, 2, , n, Thì

L(G) = L(G1)

Loi b đệ qui trái (tt) „ Chứng minh

„ Các dạng câu màA sinh văn phạm Gcó dạng: A A(x1+ x2+ + xn)* ⇒yi(x1+ x2+ + xn)* Các dạng câu có thểđược sinh G1bằng cách ý Z có thểsinh dạng câu có dạng

Z (x1+ x2+ + xn)(x1+ x2+ + xn)* màAyi| yiZnên

A yi(x1+ x2+ + xn)* Vì L(G) = L(G1)

„ Ghi chú

„ Các luật sinh đệqui-trái chỉlà trường hợp đặc biệt đệ qui-trái văn phạm nhưđược phát biểu sau

„ Một văn phạm gọi đệqui-trái có biến Anào mà nóA Ax

* ⇒

* ⇒

* ⇒

*

(4)

Trang

Lý thuyết Ơtơmát & NNHT - Khoa Cơng NghệThơng Tin

„ Sửdụng Định lý 6.2 đểloại bỏcác luật sinh đệqui-trái khỏi VP AAa| aBc| λ BBb| ba

„ Áp dụng định lý cho biến A ta tập luật sinh sau:

AaBc | λ| aBcZ| Z BBb| ba

Za| aZ

„ Áp dụng định lý lần lần cho biến B ta tập luật sinh kết quảcuối sau:

AaBc| aBcZ| Z| λ Bba| baY

Za| aZ Yb| bY

„ Nhận xét

„ Việc loại bỏcác luật sinh đệqui-trái đưa biến VP kết quảcó thểlà "đơn giản" đáng kểso với VP gốc cách tổng quát sẽcó nhiều biến luật sinh

Lut sinh vô dng „ Định nghĩa 6.1:

„ Cho G= (V, T, S, P) VPPNC Một biến A∈V được gọi làkhảdụng nếu chỉnếu có chuỗi w∈L(G)

cho S xAy w,

với x, y∈(V∪T)* Bằng lời, biến khảdụng

nếu xuất dẫn xuất Một biến mà khơng khảdụng gọi làvơ dụng.Một luật sinh gọi vơ dụng có chứa bất kỳbiến vô dụng

„ Các dạng vô dụng

„ Vô dụng loại 1: A wT* „ Vô dụng loại 2: S xAy

*

⇒ ⇒*

* ⇒

(5)

Trang

Lý thuyết Ơtơmát & NNHT - Khoa Cơng NghệThơng Tin

Loi b các lut sinh vô dng „ Định lý 6.3

„ Cho G= (V, T, S, P) VPPNC, ∃một VP tương đương G0 = (V0, T, S, P0) mà không chứa bất kỳbiến vô dụng

„ Chứng minh

„ Loại bỏcác biến luật sinh vô dụng loại

Tạo văn phạm G1= (V1, T, S, P1) với V1là tập biến khơng vơ dụng loại Ta tìm V1 sau:

1 Khởi tạo V1= ∅

2 Lặp lại bước sau khơng cịn biến thêm vào V1

„ Đối với AVmà có luật sinh Ax, x(V1T)*,

thì thêm Avào V1

3 Loại khỏi Pcác luật sinh có chứa biến ∉V1, ta P1

Loi b các lut sinh vô dng (tt)

„ Đểloại tiếp biến luật sinh vô dụng loại ta dựa vào G1vừa cóởtrên 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 quảG0 „ Đồthịphụ thuộc (dependency graph)

„ Là đồthịcó đỉnh biểu diễn biến, cạnh nối hai đỉnh AvàBkhi chỉkhi có luật sinh dạng

AxBy „ Ví dụ

„ Loại bỏcác biến luật sinh vô dụng khỏi văn phạm G= ({S, A, B, C}, {a, b}, S, P), với tập luật sinh Plà:

S →aS | A | C B →aa

A →a C →aCb

(6)

Trang 11

Lý thuyết Ơtơmát & NNHT - Khoa Cơng NghệThông Tin

„ Loại bỏcác biến vô dụng loại ta

V1= {S, A, B}và tập luật sinh P1

SaS | A

Aa

Baa

„ Loại bỏcác biến vô dụng loại ta văn phạm kết

SaS | A

Aa

„ Nhận xét

„ Nếu thay đổi thứtựloại bỏ(loại bỏcác biến luật sinh vô dụng loại trước) sẽkhơng loại bỏđược tất cảcác biến luật sinh vơ dụng chỉbằng lần ví dụsau cho thấy

S aS | A | C A a

B aa C aCb

S A B

Ví d (tt)

„ Xét văn phạm sau

SaSb | ab | A AaAB Bb

„ Nếu loại bỏcác biến luật sinh vô dụng loại trước ta thấy văn phạm không thay đổi tất cảcác biến đạt tới từS Sau đó loại bỏtiếp biến luật sinh vơ dụng loại ta sẽđược văn phạm sau:

SaSb | ab | A Bb

(7)

Trang 13

Lý thuyết Ơtơmát & NNHT - Khoa Cơng NghệThơng Tin

Loi b lut sinh-λ „ Định nghĩa 6.2

„ Bất kỳluật sinh VPPNC có dạng A→λ

được gọi luật sinh-λ Bất kỳbiến Anào mà

A λ

là có thểthì gọi khảtrống (nullable) „ Định lý 6.4

„ Cho Glà VPPNC bất kỳ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-λ „ Chứng minh:

Bước 1

„ Tìm tập VNtất cảcác biến khảtrống Gbằng bước sau *

Loi b lut sinh-λ Đối với luật sinh A →λ, đưa Avào VN

2 Lặp lại bước sau khơng cịn biến thêm vào VN

„ Đối với luật sinh BA1A2…An, màA1, A2, AnVN

thì đặt Bvào VN Bước 2

„ Sau có tập VNta xây dựng tập luật sinh sau

„ Ứng với luật sinh có dạng A→x1x2…xm, m≥ 1, xiVT, đặt luật sinh vào với luật sinh

(8)

Trang 15

Lý thuyết Ơtơmát & NNHT - Khoa Công NghệThông Tin

„ Loại bỏcác luật sinh-λcủa văn phạm sau:

SABaC CD | λ

ABC Dd

Bb | λ

„ VìB→λvàC→λsuy BvàClà biến khảtrống „ VìABCnên suy Acũng biến khảtrống Ngồi

khơng cịn biến khác khảtrống

„ Theo Bước ta xây dựng tập luật sinh tương đương sau:

SABaC | BaC | AaC | ABa | aC | Aa | Ba | a ABC | B | C

Bb CD Dd

Loi b lut sinh đơn v

„ Định nghĩa 6.3

„ Bất kỳluật sinh VPPNC có dạng AB

trong đóA, BV được gọi luật sinh-đơn vị „ Định lý 6.5

„ Cho G= (V, T, S, P) VPPNC bất kỳkhơng có luật sinh-λ, tồn VPPNC G1= (V1, T, S, P1) mà khơng có bất

kỳluật sinh đơn vịnào tương đương với G1 „ Chứng minh

1 Đặt vào P1tất cảcác luật sinh không đơn vịcủa P Đối với biến Atìm tất cảcác biến BmàA B(*)

„Điều thực cách vẽđồthịphụthuộc cho G cạnh

nối đỉnh ABkhi chỉkhi có luật sinh-đơn vịAB Hai biến A

(9)

Trang 17

Lý thuyết Ơtơmát & NNHT - Khoa Cơng NghệThơng Tin

Ví d

3 Đối với A, Bthõa (*) thêm vào P1các luật sinh Ay1| y2| | yn

với B→y1| y2| | ynlà luật sinh khơng đơn vịcủa B „ Ví dụ

„ Loại bỏcác luật sinh đơn vị cho VP sau

SAa | B BA | bb Aa | bc | B

Trước hết, đặt luật sinh không đơn vịvào P1

SAa Aa | bc Bbb

S A B

TừĐTPT ta đưa thêm luật sinh sau vào

Sa | bc | bb Abb Ba | bc

Ví d (tt)

„ Kết quảta có văn phạm tương đương sau khơng có luật sinh

đơn vị

SAa | a | bc | bb Aa | bc | bb Bbb | a | bc

„ Định lý 6.6

„ Cho Llà NNPNC không chứa λ, tồn VPPNC sinh Lmà không chứa bất kỳluật sinh vô dụng, luật sinh-λ, hay luật sinh-đơn vịnào

„ Chứng minh:

B1 Loại bỏluật sinh-λ B2 Loại bỏluật sinh đơn vị

(10)

Trang 19

Lý thuyết Ơtơmát & NNHT - Khoa Cơng NghệThơng Tin

1.Loại bỏbiến vơ dụng loại có thểsinh biến vô dụng loại 2.Việc loại bỏbiến vô dụng loại không sinh biến vô dụng

loại

3.Văn phạm khơng có luật sinh đơn vịthì việc loại bỏluật sinh-λ có thểsinh luật sinh-đơn vị

4.Văn phạm khơng có luật sinh-λthì việc loại bỏluật sinh-đơn vị

không thểsinh luật sinh-λmới

5.Loại bỏluật sinh-λcó thểsinh biến vơ dụng loại 6.Loại bỏluật sinh-đơn vịcó thểsinh biến vơ dụng loại 7.Văn phạm khơng có luật sinh-λ, luật sinh-đơn vịthì việc loại bỏ

các luật sinh vô dụng loại 1, loại không sinh thêm

luật sinh-λvà luật sinh-đơn vịnào

Dng chun Chomsky „ Định nghĩa 6.4

„ Một VPPNC thuộc dạng chuẩn Chomsky luật sinh có dạng

ABC, hoặc Aa

trong đóA, B, CV, cịn aT. „ Định lý 6.7

„ Bất kỳVPPNC G= (V, T, S, P) với λ ∉L(G) đều có văn phạm tương đương G1= (V1, T, S, P1) có dạng chuẩn Chomsky

„ Chứng minh

(11)

Trang 21

Lý thuyết Ơtơmát & NNHT - Khoa Công NghệThông Tin

Th tc: 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→avào P1

2.Đối với luật sinh A→x1x2 xnvới n≥2, xi∈(V∪T) thì 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 P1các luật sinh Baa. 4.Sau thực bước 2, ứng với luật sinh A→C1C2

Cnn = đặ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:

AC1D1 D1 → D1D2 Dn-2 →M Cn-1Cn

Ví d

„ Hãy biến đổi VP sau thành VP có dạng chuẩn Chomsky

Sa | ABa Aaab Bb | Ac

Sa Bb SABXa AXaXaXb BAXc Xaa Xbb Xcc

SAD1 D1→BXa AXaD2 D2→XaXb

Bước

Bước

Bướ c

Bước

Sa|AD1

D1→BXa AXaD2 D2→XaXb Bb |AXc Xaa Xbb

(12)

Trang 23

Lý thuyết Ơtơmát & NNHT - Khoa Cơng NghệThông Tin

„ Định nghĩa 6.5

„ Một VPPNC thuộc dạng chuẩn Greibach luật sinh có dạng

Aax đóaTcịn x∈V*.

„ Định lý 6.8

„ Đối với VPPNC Gvới λ ∉L(G), tồn văn phạm tương đương dạng chuẩn Greibach

„ Chứng minh

„ Không tính tổng qt giảsửGkhơng có luật sinh-vơ dụng, luật sinh-đơn vịvà luật sinh-λ Ta xây dựng văn phạm có dạng chuẩn Greibach thủtục sau

Th tc: G-to-GGreibach

„ Input: G= (V, T, S, P) với λ ∉L(G)

„ Output: G1= (V1, T, S, P1) có dạng chuẩn Greibach 1.Đánh sốthứtựcho biến chẳng hạn làA1,A2, An 2.Dùng Định lý 6.1 6.2 đểviết lại VP cho luật sinh có

một ba dạng sau

„ Điều thực cách sửdụng Định lý 6.1 6.2 cho biến Aitheo thứtựi đi từ 1, 2, đến n sau „ Giảsửxét luật sinh biến Ai Nếu có luật sinh AiAjxi

> jthìthay Aj đầubằng vếphải nó, làm

khi luật sinh Aicó dạng AiAjx, i ≤j Đến loại đệ

qui trái cho Aithì luật sinh sẽcó dạng nhưđã nêu aTxi∈(V∪T)* Zilà biến AiAjxj, i< j

(13)

Trang 25

Lý thuyết Ơtơmát & NNHT - Khoa Công NghệThông Tin

Th tc: G-to-GGreibach (tt)

3.Sau thực bước 2, tất cảcác luật sinh Anphải có dạng Anaxn

„ Thay An đầu vếphải luật sinhbằng vếphải Kết quảcác luật sinh An-1có dạng

An-1→axn-1

„ Tương tựthay thếAn-1 đầu vếphải luật sinhbằng vếphải Và thực A1

4.Thay kí hiệu kết thúc, chẳng hạn a, không đầu vếphải biến đại diện, chẳng hạn Xa,đồng thời thêm vào luật sinh Xaa.

„ Ví dụ

„ Biến đổi VP sau thành VP có dạng chuẩn Greibach

SSBb | Ab A Sb | Ba BSa | b

Ví d

SSBb | Ab A Sb | Ba BSa | b

B2→S0a | b

S0→A1b | A1bZ0 (1) Z0→B2b | B2bZ0 (2) A1→A1bb | A1bZ0b | B2a

B2→B2aba | B2aZ1ba | B2abZ0a |

B2aZ1bZ0a | b B2→A1ba | A1bZ0a | b B2→b | bZ2 (5)

Z2→aba | aZ1ba | abZ0a |

aZ1bZ0a | abaZ2| aZ1baZ2|

abZ aZ | aZ bZ aZ (6) S0→S0B2b | A1b

A1→S0b | B2a

Loại đệqui trái Thay

Loại đệqui trái

Thay

Loại đệqui trái Thay

(14)

Trang 27

Lý thuyết Ơtơmát & NNHT - Khoa Công NghệThông Tin

S0→A1b | A1bZ0 (1) B2→b | bZ3 (5)

Thay

S0→bab | bZ2ab | baZ1b |

bZ2aZ1b | babZ0| bZ2abZ0|

baZ1bZ0| bZ2aZ1bZ0 (8) Z0→bb | bZ2b | bbZ0|bZ2bZ0(9) Z0→B2b | B2bZ0 (2)

Thay

Thay

A1→B2a | B2aZ1 (3) A1→ba | bZ2a | baZ1|bZ2aZ1(7)

Ví d (tt)

S0→bab | bZ2ab | baZ1b | bZ2aZ1b | babZ0| bZ2abZ0| baZ1bZ0| bZ2aZ1bZ0(8)

A1→ba | bZ2a | baZ1|bZ2aZ1 (7)

B2→b | bZ3 (5)

Z0→bb | bZ2b | bbZ0|bZ2bZ0 (9)

Z1→bb | bZ0b | bbZ1| bZ0bZ1 (4)

Z2→aba | aZ1ba | abZ0a | aZ1bZ0a | abaZ2|aZ1baZ2| abZ0aZ2| aZ1bZ0aZ2 (6) Thay kí hiệu kết thúc không đầu biến đại diện

SbXY | bZ2XY | bXZ1Y | bZ2XZ1Y | bXYZ0| bZ2XYZ0| bXZ1YZ0| bZ2XZ1YZ0 AbX | bZ2X | bXZ1|bZ2XZ1

Bb | bZ3

Z0→bY | bZ2Y | bYZ0|bZ2YZ0 Z1→bY | bZ0Y | bYZ1| bZ0YZ1

Z2→aYX | aZ1YX | aYZ0X | aZ1YZ0X | aYXZ2| aZ1YXZ2| aYZ0XZ2| aZ1YZ0XZ2 Xa

(15)

Trang 29

Lý thuyết Ôtômát & NNHT - Khoa Công NghệThông Tin

Gii thut thành viên cho VPPNC „ Giải thuật CYK (J.Cocke, D.H.Younger, T.Kasami)

„ Input: Văn phạm Chomsky G= (V, T, S, P) Chuỗi w= a1a2…an

„ Output: “Yes” + DXTNhoặc “No” „ Chúng ta định nghĩa chuỗi

wij= ai aj, „ Và tập V

Vij= {A∈V: A wij},

„ Đểý w= w1n, w ∈L(G) chỉkhi S∈V1n

„ Vậy đểbiết w cóL(G) hay khơng tính V1nvà xem S V1nhay khơng.

* ⇒

Gii thut CYK

„ A ∈Viinếu chỉnếu Acó luật sinh A→ai „ Vậy, Viicó thểđược tính ∀i, ≤in.

„ Nếu B wik(⇔BVik), C w(k+1)j(⇔CV(k+1)j) đồng thời A→BCthìA wij(⇔AVij) ∀ik, k< j

„ Vij= k{i, i+1, , j– 1}{A: ABC, với B Vik, C V(k+1)j} „ Q trình tính tập Vij

„ V11, V22, ,Vnn „ V12, V23, ,V(n-1)n „ V13, V24, ,V(n-2)n „

„ V1n

*

⇒ ⇒*

(16)

Trang 31

Lý thuyết Ơtơmát & NNHT - Khoa Công NghệThông Tin

„ Sửdụng giải thuật CYK đểPTCP chuỗi w= aabbbtrên Gsau

SAB (1)

ABB| a (2, 3) BAB| b (4, 5) „ Ta ców=a a b b b

1

„ V11= {A}, V22= {A}, V33= {B}, V44= {B}, V55= {B}, „ V12= ∅, V23= {S, B}, V34= {A}, V45= {A},

„ V13= {S, B}, V24= {A}, V35= {S, B}, „ V14= {A}, V25= {S, B},

„ V15= {S, B} SV15wL(G)

Ví d (tt)

„ Đểtìm dẫn xuất cho w, phải tìm cách “lưu vết”

„ V11= {A( a)}, V22= {A( a)}, V33= {B( b)}, V44= {B( b)}, V55= {B( b)},

„ V12= ∅, V23= {S( A22B33), B( A22B33)}, V34= {A( B33B44)}, V45= {A( B44B55)},

„ V13= {S( A11B23), B( A11B23)}, V24= {A( B23B44)}, V35= {S( A34B55), B( A34B55)},

„ V14= {A( B13B44)}, V25= {S( A22B35, A24B55), B( A22B35, A24B55)},

„ V15= {S( A11B25, A14B55), B( A11B25, A14B55)}

SAB (1)

ABB| a (2, 3)

BAB| b (4, 5)

w=a a b b b

1

5 → → → →

→ →4

2

→ →2

1

→ →4 →2

1

→ →4

2

→ →1 →1

4

→ →4

1

(17)

Trang 33

Lý thuyết Ơtơmát & NNHT - Khoa Cơng NghệThơng Tin

Ví d (tt)

„ Kết quảcó DXTN sau:

(1)S A11B25 aB25 aA22B35 aaB35 aaA34B55 aaB33B44B55 aabbb (DXTN: 134342555)

(2)S A11B25 aB25 aA24B55 aB23B44B55 aA22B33B44B55 aabbb (DXTN: 134243555)

(3)S A14B55 B13B44B55 A11B23B44B55 aB23B44B55 aA22B33B44B55 aabbb (DXTN: 124343555)

SAB (1)

ABB| a (2, 3)

BAB| b (4, 5)

w=a a b b b

1

1

⇒ ⇒3 ⇒4 ⇒3 ⇒4 ⇒2

5 , , 5⇒

⇒ ⇒3 ⇒4 ⇒2 ⇒4

5 , , , 3⇒

⇒ ⇒2 ⇒4 ⇒3 ⇒4

5 , , , 3⇒

Ví d (tt)

„ CDX tương ứng:

SAB (1)

ABB| a (2, 3)

BAB| b (4, 5)

w=a a b b b

1 S

A11 B25

a A22 B35

a A34 B55

b B33 B44

b b

S

A11 B25

a A24 B55

b

B23 B44

b A22 B33

b a S B55 A14 b B44 B13 b B23 A11

a A22 B33

(18)

Trang 35

Lý thuyết Ơtơmát & NNHT - Khoa Cơng NghệThơng Tin

„ Dùng giải thuật CYK PTCP chuỗi sau w1= abab, w2=

abaatrên VP G1, G2 tương ứng

G1 G2

SAB⏐BB (1, 2) SAB (1)

Ngày đăng: 23/05/2021, 20:26

w