uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

18
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva 1 od 18 Uvod u teoriju računarstva http://www.fer.unizg.hr/predmet/utrz/ Zadaci za vježbu Priprema za međuispit Fakultet elektrotehnike i računarstva Sveučilište u Zagrebu

Upload: apu

Post on 05-Jan-2016

73 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

Page 1: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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

Page 2: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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

Page 3: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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} )

Page 4: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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,)

Page 5: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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, )

Page 6: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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, )

Page 7: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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

Page 8: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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,)

Page 9: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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)

Page 10: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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} )

Page 11: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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)

Page 12: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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

Page 13: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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

Page 14: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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,)

Page 15: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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 ]

Page 16: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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]

Page 17: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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]

Page 18: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

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