Upload
kylee-bennett
View
92
Download
13
Embed Size (px)
DESCRIPTION
Uvod u teoriju računarstva http://www.zemris.fer.hr/ predmeti / utr /. Zadaci za vje žbu Priprema za zavr š ni ispit Fakultet elektrotehnike i računarstva Sveučilište u Zagrebu. Zadatak br. 3 0. Konstruirati gramatiku koja generira nizove iz jezika L. - PowerPoint PPT Presentation
Citation preview
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva1 od 24
Uvod u teoriju računarstva
http://www.zemris.fer.hr/predmeti/utr/
Zadaci za vježbuPriprema za završni ispit
Fakultet elektrotehnike i računarstva
Sveučilište u Zagrebu
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva2 od 24
• Konstruirati gramatiku koja generira nizove iz jezika L.
Zadatak br. 30
L={w(a+b+c)* | nanb, nanc, nbnc}
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva3 od 24
• produciramo jednak broj A B i C
Zadatak br. 30
SABCS Aa
Bb
Cc
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva4 od 24
• uklonimo jedan znak
Zadatak br. 30
SABCS
SABT
TABT
UACUSACU
SBCV
VBCV
Aa
Bb
Cc
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva5 od 24
• uklonimo drugi znak
Zadatak br. 30
SABCS
SABT
TABT
TAX
TBY
UACUSACU
SBCVUAX
UCZ
VBCV
VBYVCZ
Aa
Bb
Cc
XAX
XYBY
YZCZ
Z
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva6 od 24
• dodajemo permutacije znakova
Zadatak br. 30
SABCS
SABT
TABT
TAX
TBY
UACUSACU
SBCVUAX
UCZ
VBCV
VBYVCZ
ABBA
ACCA
BCCB
BAAB
CAAC
CBBC
Aa
Bb
Cc
XAX
XYBY
YZCZ
Z
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva7 od 24
• Konstruirati gramatiku koja generira nizove oblika aibjckdiej pri čemu su i, j, k 1.
Zadatak br. 31
Gramatika neograničenih produkcija:
G = (V, T, P, S)
Oblik produkcija:
, nizovi završnih i nezavršnih znakova
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva8 od 24
Zadatak br. 31
Oblik nizova:
aibjckdiej i, j, k 1
#(a) = #(d)
#(b) = #(e)
#(c)
Ne generira prazni niz.
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva9 od 24
Zadatak br. 31
Konstrukcija gramatike:
S a A b B c C d e
S a b c d e
S a b c d e
A a A D
A
B b B E
B
C c C
C
V = { A, B, C, D, E, S }
T = { a, b, c, d, e }
S početni nezavršni znak
D b b D E c c E
D c c D E d d E
D d d d E e e e
aibjckdiej
a a A D b B c C d e A
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva10 od 24
aaADbBcCde
Zadatak br. 31
Primjer generiranja niza aabbccddee:
S
A a A D A
B b B E B
C c C C
D b b D E c c E D c c D E d d E D d d d E e e e
S a A b B c C d e
aAbBcCde aAbBcCde aaADbBcCde aaADbBcCde aaDbBcCde aaDbBcCde aaDbbBEcCde aaDbbBEcCde aaDbbBEcCde aaDbbEcCde aaDbbEcCde aaDbbEccCde aaDbbEccCde aaDbbEccCde aaDbbEccde aaDbbEccde aaDbbcEcde aaDbbcEcde aaDbbcEcde aaDbbccEde aaDbbccEde aaDbbccEde aaDbbccdEe aaDbbccdEe aaDbbccdEe aaDbbccdee aaDbbccdee aaDbbccdee aabDbccdee aabDbccdee aabDbccdee aabbDccdee aabbDccdee aabbDccdee aabbcDcdee aabbcDcdee aabbcDcdee aabbccDdee aabbccDdee aabbccDdee aabbccddee aabbccddee
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva11 od 24
• Pretvoriti zadanu gramatiku s neograničenim produkcijama u kontekstno ovisnu gramatiku.
Zadatak br. 32
A a A D A
B b B E B
C c C C
D b b D E c c E D c c D E d d E D d d d E e e e
S a A b B c C d e
Postupak pretvorbe:
Svi nezavršni znakovi moraju biti grupirani
s nekim završnim znakom.
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva12 od 24
Zadatak br. 32
A a A D A
B b B E B
C c C C
D b b D E c c E D c c D E d d E D d d d E e e e
S a A b B c C d e
Produkcije kontekstno ovisne gramatike:
• , || ||, • 1 A 2 1 2 ,
S [aA] [bB] [cC] d e S [aA] [bB] [cC] d e a [aAD] b [bBE] c [cC] d e
[aAD] b [aA] [Db]
a [aAD] b [bBE] c [cC] d e a [aA] [Db] [bBE] c [cC] d e a [aA] [Db] [bBE] c [cC] d e
[bBE] c [bB] [Ec]
a [aA] [Db] [bB] [Ec] [cC] d e
[aA] a [bB] b
[cC] c
S [aA] [bB] [cC] d e
[aA] a [aAD] [bB] b [bBE]
[cC] c[cC]
a [aA] [Db] [bB] [Ec] [cC] d e a a [Db] b [Ec] c d e
[Db] [bD] [bD] b b [Db] [bD] c b [Dc] [Dc] [cD]
[cD] c c [Dc] [cD] d c d d
[dE] d d [Ed] [dE] e d e e
[Ec] [cE] [cE] c c [Ec] [cE] d c [Ed] [Ed] [dE]
a a b b c c d d e e
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva13 od 24
Zadatak br. 32Rješenje:
[aAD] b [aA] [Db] [bBE] c [bB] [Ec]
[aA] a [bB] b [cC] c
S [aA] [bB] [cC] d e
[aA] a [aAD] [bB] b [bBE] [cC] c[cC]
[Db] [bD]
[bD] b b [Db]
[bD] c b [Dc]
[Dc] [cD]
[cD] c c [Dc]
[cD] d c d d
[dE] d d [Ed]
[dE] e d e e
[Ec] [cE]
[cE] c c [Ec]
[cE] d c [Ed]
[Ed] [dE]
Kraće rješenje: postupak se provede samo za prazne nezavršne znakove
D b b D E c c E D c c D E d d E D d d d E e e e
[aA] a [aA] D
[bB] b [bB] E
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva14 od 24
• Konstruirati gramatiku koja generira nizove oblika 0n1n2n pri čemu je n0.
Zadatak br. 33
L={0n1n2n | n0}
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva15 od 24
0 A 1 2
Zadatak br. 33
• n = 0 (trivijalni slučaj)
gramatika neograničenih produkcija
• n = 1
A0AB
AB111C
C11C
C222
S
S0A12
S
0 1 2
S
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva16 od 24
0 A 1 2
Zadatak br. 33
• n = 4
3) A0AB
4) A5) B111C
6) C11C
7) C222
1) S0A12
2) S
0 0 A B 1 2
S
0 0 0 A B B 1 2
0 0 0 0 A B B B 1 2
0 0 0 0 B B B 1 2
0 0 0 0 B B 1 1 C 2
0 0 0 0 B 1 1 C 1 C 2
0 0 0 0 1 1 C 1 C 1 C 2
0 0 0 0 1 1 C 1 1 C C 2
0 0 0 0 1 1 1 C 1 C C 2
0 0 0 0 1 1 1 1 C C C 2
0 0 0 0 1 1 1 1 C C 2 2
0 0 0 0 1 1 1 1 C 2 2 2
0 0 0 0 1 1 1 1 2 2 2 2
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva17 od 24
Konstruirati konteksno ovisnu gramatiku koja generira nizove iz jezika L.
Zadatak br. 34
L={0n1n2n | n1}
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva18 od 24
Zadatak br. 34SAX
A0AB
A0B
BX12
B11B
B2122
A X
0 A B X
0 0 A B B X
0 0 0 A B B B X
0 0 0 0 B B B B X
0 0 0 0 B B B 1 2
S
0 0 0 0 B B 1 B 2
0 0 0 0 B 1 B B 2
0 0 0 0 1 B B B 2
0 0 0 0 1 B B 1 2 2
0 0 0 0 1 B 1 B 2 2
0 0 0 0 1 1 B B 2 2
0 0 0 0 1 1 B 1 2 2 2
0 0 0 0 1 1 1 B 2 2 2
0 0 0 0 1 1 1 1 2 2 2 2
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva19 od 24
Konstruirati gramatiku koja generira nizove iz jezika koji prihvaća TS M.
Zadatak br. 35
TS M=({q0,q1,q2,q3,q4,q5,qP},{0,1},{0,1,B},,q0,B,qP
)
q0
q1
q2
q3
q4
q5
1 B0
q1, B, R q2, B, R
-
-
-
-
q5, 0, L q5, 1, L q0, B, R
q5, B, L
q5, B, L
q2, 1, R q4, B, L q2, 0, R
q1, 0, R q1, 1, R q3, B, L
qP, B, R
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva20 od 24
q0
q1
q2
q3
q4
q5
1 B0
q1, B, R q2, B, R
-
-
-
-
q5, 0, L q5, 1, L q0, B, R
q5, B, L
q5, B, L
q2, 1, R q4, B, L q2, 0, R
q1, 0, R q1, 1, R q3, B, L
qP, B, R
Početne produkcije:
A1q0A2
A2[0,0]A2
A2[1,1]A2
A2A3
A3[,B]A3
A3
za prijelaz (q0,0)=(q1,B,R):
q0[0,0][0,B]q1
za prijelaz (q0,1)=(q2,B,R):
q0[1,1][1,B]q2
za prijelaz (q0,B)=(qP,B,R):
q0[0,B][0,B]qP
q0[1,B][1,B]qP
q0[,B][,B]qP
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva21 od 24
q0
q1
q2
q3
q4
q5
1 B0
q1, B, R q2, B, R
-
-
-
-
q5, 0, L q5, 1, L q0, B, R
q5, B, L
q5, B, L
q2, 1, R q4, B, L q2, 0, R
q1, 0, R q1, 1, R q3, B, L
qP, B, R za prijelaz (q1,0)=(q1,0,R):
q0[0,0][0,B]q1
za prijelaz (q1,1)=(q1,1,R):
q0[1,1][1,B]q2
za prijelaz (q1,B)=(q3,B,L):
[0,0]q1[0,B]q3[0,0][0,B]
[0,0]q1[1,B]q3[0,0][1,B]
[0,0]q1[,B]q3[0,0][,B]
[1,1]q1[0,B]q3[1,1][0,B]
[1,1]q1[1,B]q3[1,1][1,B]
[1,1]q1[,B]q3[1,1][,B]
[0,B]q1[0,B]q3[0,B][0,B]
[0,B]q1[1,B]q3[0,B][1,B]
[0,B]q1[,B]q3[0,B][,B]
[1,B]q1[0,B]q3[1,B][0,B]
[1,B]q1[1,B]q3[1,B][1,B]
[1,B]q1[,B]q3[1,B][,B]
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva22 od 24
q0
q1
q2
q3
q4
q5
1 B0
q1, B, R q2, B, R
-
-
-
-
q5, 0, L q5, 1, L q0, B, R
q5, B, L
q5, B, L
q2, 1, R q4, B, L q2, 0, R
q1, 0, R q1, 1, R q3, B, L
qP, B, R za prijelaz (q2,0)=(q2,0,R):
q2[0,0][0,0]q2
za prijelaz (q2,1)=(q2,1,R):
q2[1,1][1,1]q2
za prijelaz (q2,B)=(q4,B,L):
[0,0]q2[0,B]q4[0,0][0,B]
[0,0]q2[1,B]q4[0,0][1,B]
[0,0]q2[,B]q4[0,0][,B]
[1,1]q2[0,B]q4[1,1][0,B]
[1,1]q2[1,B]q4[1,1][1,B]
[1,1]q2[,B]q4[1,1][,B]
[0,B]q2[0,B]q4[0,B][0,B]
[0,B]q2[1,B]q4[0,B][1,B]
[0,B]q2[,B]q4[0,B][,B]
[1,B]q2[0,B]q4[1,B][0,B]
[1,B]q2[1,B]q4[1,B][1,B]
[1,B]q2[,B]q4[1,B][,B]
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva23 od 24
q0
q1
q2
q3
q4
q5
1 B0
q1, B, R q2, B, R
-
-
-
-
q5, 0, L q5, 1, L q0, B, R
q5, B, L
q5, B, L
q2, 1, R q4, B, L q2, 0, R
q1, 0, R q1, 1, R q3, B, L
qP, B, R za prijelaz (q3,0)=(q5,B,L):
[0,0]q3[0,0]q5[0,0][0,B]
[1,1]q3[0,0]q5[1,1][0,B]
[0,B]q3[0,0]q5[0,B][0,B]
[1,B]q3[0,0]q5[1,B][0,B]
za prijelaz (q4,1)=(q5,B,L):
[0,0]q4[1,1]q5[0,0][1,B]
[1,1]q4[1,1]q5[1,1][1,B]
[0,B]q4[1,1]q5[0,B][1,B]
[1,B]q4[1,1]q5[1,B][1,B]
za prijelaz (q5,0)=(q5,0,L):
[0,0]q5[0,0]q5[0,0][0,0]
[1,1]q5[0,0]q5[1,1][0,0]
[0,B]q5[0,0]q5[0,B][0,0]
[1,B]q5[0,0]q5[1,B][0,0]
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva24 od 24
q0
q1
q2
q3
q4
q5
1 B0
q1, B, R q2, B, R
-
-
-
-
q5, 0, L q5, 1, L q0, B, R
q5, B, L
q5, B, L
q2, 1, R q4, B, L q2, 0, R
q1, 0, R q1, 1, R q3, B, L
qP, B, R
za prijelaz (q5,1)=(q5,1,L):
[0,0]q5[1,1]q5[0,0][1,1]
[1,1]q5[1,1]q5[1,1][1,1]
[0,B]q5[1,1]q5[0,B][1,1]
[1,B]q5[1,1]q5[1,B][1,1]
za prijelaz (q5,B)=(q0,B,R):
q5[0,B][0,B]q0
q5[1,B][1,B]q0
završni prijelazi za prihvaćanje niza:
[0,B]qPqP0qP
[1,B]qPqP1qP
[,B]qPqP
qP[0,B]qP0qP
qP[1,B]qP1qP
qP[,B]qP
qP