uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr
DESCRIPTION
Uvod u teoriju računarstva http://www.zemris.fer.hr/ predmeti / utr /. Zadaci za vje žbu Priprema za međuispit Fakultet elektrotehnike i računarstva Sveučilište u Zagrebu. Zadatak br. 25. Konstruirati potisni automat koji prihvaća nizove koje generira zadana gramatika. S xABy A zwA - PowerPoint PPT PresentationTRANSCRIPT
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva1 od 18
Uvod u teoriju računarstva
http://www.fer.unizg.hr/predmet/utrz/
Zadaci za vježbuPriprema za međuispit
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 18
• Iz potisnog automata M1 koji nizove prihvaća prihvatljivim stanjem konstruirati potisni automat M2 koji nizove prihvaća praznim stogom.
Zadatak br. 23
(q0,0,K)=(q0,NK) (q0,0,N)=(q0,NN) (q0,0,J)=(q0,)
(q0,1,K)=(q0,JK) (q0,1,N)=(q0,) (q0,1,J)=(q0,JJ)
(q0,2,K)=(q0,K) (q0,2,N)=(q0,N) (q0,2,J)=(q0,J)
(q0,,K)=(q1,K)
M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, {q1} )
Postupak konstrukcije PA M2 koji prihvaća praznim stogom:
a) PA M2 simulira rad PA M1
b) Ako PA M1 uđe u prihvatljivo stanje, PA M2 isprazni stog
c) Ako PA M1 isprazni stog, a ne uđe u prihvatljivo stanje,
PA M2 ne smije isprazniti stog
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva3 od 18
Zadatak br. 23
Postupak konstrukcije PA M2 koji prihvaća praznim stogom:
a) PA M2 simulira rad PA M1
’(q0,0,K)=(q0,NK) ’(q0,0,N)=(q0,NN) ’(q0,0,J)=(q0,)
’(q0,1,K)=(q0,JK) ’(q0,1,N)=(q0,) ’(q0,1,J)=(q0,JJ)
’(q0,2,K)=(q0,K) ’(q0,2,N)=(q0,N) ’(q0,2,J)=(q0,J)
’(q0,,K)=(q1,K)
Svi prijelazi PA M1 dodaju se u skup prijelaza PA M2
(q0,0,K)=(q0,NK) (q0,0,N)=(q0,NN) (q0,0,J)=(q0,)
(q0,1,K)=(q0,JK) (q0,1,N)=(q0,) (q0,1,J)=(q0,JJ)
(q0,2,K)=(q0,K) (q0,2,N)=(q0,N) (q0,2,J)=(q0,J)
(q0,,K)=(q1,K)
M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, {q1} )
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva4 od 18
Zadatak br. 23
Postupak konstrukcije PA M2 koji prihvaća praznim stogom:
b) Ako PA M1 uđe u prihvatljivo stanje, PA M2 isprazni stog
Skup stanja PA M2 proširuje se stanjem qE u kojem PA M2 prazni stog
bez čitanja ulaznih znakova
PA M2 prelazi u stanje qE bez čitanja ulaznih znakova samo ako PA M1
uđe u prihvatljivo stanje
M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, {q1} )
’(qE,,K)=(qE,)’(q1,,K)=(qE,)
’(qE,,J)=(qE,)’(q1,,J)=(qE,)
’(qE,,N)=(qE,)’(q1,,N)=(qE,)
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva5 od 18
Zadatak br. 23
Postupak konstrukcije PA M2 koji prihvaća praznim stogom:
c) Ako PA M1 isprazni stog, a ne uđe u prihvatljivo stanje,
PA M2 ne smije isprazniti stog
’(qP,,Z)=(q0,KZ)
Skup znakova stoga PA M2 proširuje se znakom Z kojeg PA M1
ne može skinuti sa stoga
Znak Z je početni znak stoga za PA M2
Skup stanja PA M2 proširuje se stanjem qP koje omogućuje
prelazak PA M2 u početnu konfiguraciju PA M1
M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, {q1} )
M2 = ( {qP,q0,q1,qE}, {0,1,2}, {N,J,K,Z}, qP, ’, Z, )
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva6 od 18
Zadatak br. 23
PA M2 koji prihvaća praznim stogom:
’(q0,0,K)=(q0,NK) ’(q0,0,N)=(q0,NN) ’(q0,0,J)=(q0,)
’(q0,1,K)=(q0,JK) ’(q0,1,N)=(q0,) ’(q0,1,J)=(q0,JJ)
’(q0,2,K)=(q0,K) ’(q0,2,N)=(q0,N) ’(q0,2,J)=(q0,J)
’(q0,,K)=(q1,K)
’(qP,,Z)=(q0,KZ)
’(qE,,K)=(qE,)’(q1,,K)=(qE,)
’(qE,,J)=(qE,)’(q1,,J)=(qE,)
’(qE,,N)=(qE,)’(q1,,N)=(qE,)
’(qE,,Z)=(qE,)’(q1,,Z)=(qE,)
M2 = ( {qP,q0,q1,qE}, {0,1,2}, {N,J,K,Z}, qP, ’, Z, )
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva7 od 18
• Iz potisnog automata M1 koji nizove prihvaća praznim stogom konstruirati potisni automat M2 koji nizove prihvaća prihvatljivim stanjem.
Zadatak br. 24
(q0,0,K)=(q0,NK) (q0,0,J)=(q0,NJ) (q0,0,N)=(q0,NN) (q1,0,N)=(q1,)
(q0,1,K)=(q0,JK) (q0,1,J)=(q0,JJ) (q0,1,N)=(q0,JN) (q1,1,J)=(q1,)
(q0,2,K)=(q1,) (q0,2,J)=(q1,J) (q0,2,N)=(q1,N) (q1,,K)=(q1,)
M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, )
Postupak konstrukcije PA M2 koji prihvaća prihvatljivim stanjem:
a) PA M2 simulira rad PA M1
b) Ako PA M1 isprazni stog, PA M2 ulazi u prihvatljivo stanje
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva8 od 18
Zadatak br. 24
Postupak konstrukcije PA M2 koji prihvaća prihvatljivim stanjem:
a) PA M2 simulira rad PA M1
Svi prijelazi PA M1 dodaju se u skup prijelaza PA M2
M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, )
(q0,0,K)=(q0,NK) (q0,0,J)=(q0,NJ) (q0,0,N)=(q0,NN) (q1,0,N)=(q1,)
(q0,1,K)=(q0,JK) (q0,1,J)=(q0,JJ) (q0,1,N)=(q0,JN) (q1,1,J)=(q1,)
(q0,2,K)=(q1,) (q0,2,J)=(q1,J) (q0,2,N)=(q1,N) (q1,,K)=(q1,)
’(q0,0,K)=(q0,NK) ’(q0,0,J)=(q0,NJ) ’(q0,0,N)=(q0,NN) ’(q1,0,N)=(q1,)
’(q0,1,K)=(q0,JK) ’(q0,1,J)=(q0,JJ) ’(q0,1,N)=(q0,JN) ’(q1,1,J)=(q1,)
’(q0,2,K)=(q1,) ’(q0,2,J)=(q1,J) ’(q0,2,N)=(q1,N) ’(q1,,K)=(q1,)
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva9 od 18
Zadatak br. 24
Postupak konstrukcije PA M2 koji prihvaća prihvatljivim stanjem:
b) Ako PA M1 isprazni stog, PA M2 ulazi u prihvatljivo stanje
Skup stanja PA M2 proširuje se prihvatljivim stanjem qF u koje PA M2 ulazi
bez čitanja ulaznih znakova samo ako PA M1 isprazni stog
Skup znakova stoga PA M2 proširuje se znakom Z koji je početni znak stoga
Ako se na vrhu stoga PA M2 nalazi znak Z, to znači da je PA M1
ispraznio stog
M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, )
’(q1,,Z)=(qF,Z)
’(q0,,Z)=(qF,Z)
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva10 od 18
Zadatak br. 24
Postupak konstrukcije PA M2 koji prihvaća prihvatljivim stanjem:
b) Ako PA M1 isprazni stog, PA M2 ulazi u prihvatljivo stanje
Skup stanja PA M2 proširuje se stanjem qP koje omogućuje prelazak PA M2
u početnu konfiguraciju PA M1
’(qP,,Z)=(q0,KZ)
M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, )
M2 = ( {qP,q0,q1,qF}, {0,1,2}, {N,J,K,Z}, qP, ’, Z, {qF} )
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva11 od 18
Zadatak br. 24
PA M2 koji prihvaća prihvatljivim stanjem:
’(qP,,Z)=(q0,KZ)
M2 = ( {qP,q0,q1,qF}, {0,1,2}, {N,J,K,Z}, qP, ’, Z, {qF} )
’(q0,0,K)=(q0,NK) ’(q0,0,J)=(q0,NJ) ’(q0,0,N)=(q0,NN) ’(q1,0,N)=(q1,)
’(q0,1,K)=(q0,JK) ’(q0,1,J)=(q0,JJ) ’(q0,1,N)=(q0,JN) ’(q1,1,J)=(q1,)
’(q0,2,K)=(q1,) ’(q0,2,J)=(q1,J) ’(q0,2,N)=(q1,N) ’(q1,,K)=(q1,)
’(q1,,Z)=(qF,Z)
’(q0,,Z)=(qF,Z)
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva12 od 18
• Konstruirati potisni automat koji prihvaća nizove koje generira zadana gramatika
Zadatak br. 25
CvB
CxA
C
BwC
Bv
B
SxABy
AzwA
A
Pripremni korak: Pretvorba gramatike u Greibachin normalni oblik
Prvo se izbace produkcije.
SxABy
AzwA
A BwC
Bv
B CvB
CxA
C
SxABy
AzwA
A BwC
Bw
Bv
B CvB
CxA
SxABy CxA
SxAy
AzwA
A BwC
Bw
Bv
CvB
Cv
SxABy CvB
SxBy Cv
SxAy CxA
Sxy Cx
AzwA
Azw
BwC
Bw
Bv
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva13 od 18
Zadatak br. 25Zamjena završnih znakova koji nisu na prvom mjestu s desne strane produkcija
SxABy
SxBy
SxAy
Sxy
AzwA
Azw
BwC
Bw
Bv
CvB
Cv
CxA
Cx
y
y
y
y
SxABD Dy
SxBD
SxAD
SxD
AzwA
Azw
BwC
Bw
Bv
CvB
Cv
CxA
Cx
w
SxABD Dy
SxBD Ew
SxAD
SxD
AzEA
AzE
BwC
Bw
Bv
CvB
Cv
CxA
Cx
w
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva14 od 18
Zadatak br. 25Izgradnja potisnog automata
SxABD
SxBD
SxAD
SxD
AzEA
AzE
BwC
Bw
Bv
CvB
Cv
CxA
Cx
Dy
Ew
G=(V,T,P,S) M=({q},,,,q,S,) pri tome vrijedi =T, =V te za Ab (q,b,A)=(q,)
(q,x,S)={(q,ABD),(q,BD),(q,AD),(q,D)}
(q,z,A)={(q,EA),(q,E)}
(q,w,B)={(q,C),(q,)}
(q,v,B)=(q,)
(q,v,C)={(q,B),(q,)}
(q,x,C)={(q,A),(q,)}
(q,y,D)=(q,)
(q,w,E)=(q,)
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva15 od 18
• Konstruirati konteksno neovisnu gramatiku koja generira nizove koje prihvaća zadani potisni automat M.
Zadatak br. 26
M=( {q0,q1}, {a,b,c}, {A,K}, , q0, K, )
(q0,b,K)=(q0,AK) (q0,a,A)=(q1,A)
(q1,,K)=(q1,) (q0,b,A)=(q0,AA)
(q1,c,A)=(q1,)
Da bi se gramatika mogla konstruirati, potisni automat mora prihvaćati praznim stogom
G=(V,T,P,S) pri tome je T=, a V={S}{[qiAqj] | qi,qjQ, A}
Uvodimo početne produkcije iz početnog nezavršnog znaka S
[ q0 K qi ], qiQ
S[ q0 K q0 ]
S[ q0 K q1 ]
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva16 od 18
Zadatak br. 26
Daljnji nezavršni znakovi i produkcije gramatike grade se na temelju prijelaza potisnog automata i sljedećeg pravila:
Za prijelaz (qj,a,X)=(qk,ABC...Z) uvode se sljedeći nezavršni znakovi i produkcije:
[qjXqe]a[qkAqf][qfBqg][qgCqh]...[qiZqe]. qe,qf,qg,qh,qiQ
Ako je |Q|=n i |ABC...Z|=m onda iz jednog prijelaza nastaje nm produkcijaposebni slučaj ako je m=0: (qj,a,X)=(qk,) [qjXqk]a, aT{}
[q0Kq0]b[q0Aq0][q0Kq0]
[q0Kq0]b[q0Aq1][q1Kq0]
Za prijelaz (q0,b,K)=(q0,AK) uvodimo:
[q0Kq1]b[q0Aq0][q0Kq1]
[q0Kq1]b[q0Aq1][q1Kq1]
Za prijelaz (q0,a,A)=(q1,A) uvodimo:
[q0Aq0]a[q1Aq0]
[q0Aq1]a[q1Aq1]
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva17 od 18
Zadatak br. 26
[q0Aq0]b[q0Aq0][q0Aq0]
[q0Aq0]b[q0Aq1][q1Aq0]
Za prijelaz (q0,b,A)=(q0,AA) uvodimo:
[q0Aq1]b[q0Aq0][q0Aq1]
[q0Aq1]b[q0Aq1][q1Aq1]
Za prijelaz (q1,c,A)=(q1,) uvodimo:
[q1Aq1]c
Za prijelaz (q1,,K)=(q1,) uvodimo:
[q1Kq1]
S[q0Kq0]
S[q0Kq1]
[q0Kq0]b[q0Aq0][q0Kq0]
[q0Kq0]b[q0Aq1][q1Kq0]
[q0Kq0]b[q0Aq0][q0Kq0]
[q0Kq0]b[q0Aq1][q1Kq0]
Dobivena gramatika:
[q0Aq0]a[q1Aq0]
[q0Aq1]a[q1Aq1]
[q0Aq0]b[q0Aq0][q0Aq0]
[q0Aq0]b[q0Aq1][q1Aq0]
[q0Aq1]b[q0Aq0][q0Aq1]
[q0Aq1]b[q0Aq1][q1Aq1]
[q1Aq1]c
[q1Kq1]
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva18 od 18
Zadatak br. 26Dobivena gramatika može imati mrtvih i nedohvatljivih nezavršnih znakova. Nakon izbacivanja mrtvih i nedohvatljivih nezavršnih znakova, gramatika sadrži produkcije:
S[q0Kq1]
[q0Kq1]b[q0Aq1][q1Kq1]
[q0Aq1]b[q0Aq1][q1Aq1]
[q0Aq1]a[q1Aq1]
[q1Aq1]c
[q1Kq1]Dobivena gramatika je čitljivija ako se izvrši preimenovanje nezavršnih znakova:
[q0Kq1]A [q0Aq1]B [q1Aq1]C [q1Kq1]D
S A
A bBD
B bBC
B aC
C c
D