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

24
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva 1 od 24 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

Upload: kylee-bennett

Post on 03-Jan-2016

92 views

Category:

Documents


13 download

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

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

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 24

• Konstruirati gramatiku koja generira nizove iz jezika L.

Zadatak br. 30

L={w(a+b+c)* | nanb, nanc, nbnc}

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 24

• produciramo jednak broj A B i C

Zadatak br. 30

SABCS Aa

Bb

Cc

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 24

• uklonimo jedan znak

Zadatak br. 30

SABCS

SABT

TABT

UACUSACU

SBCV

VBCV

Aa

Bb

Cc

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 24

• uklonimo drugi znak

Zadatak br. 30

SABCS

SABT

TABT

TAX

TBY

UACUSACU

SBCVUAX

UCZ

VBCV

VBYVCZ

Aa

Bb

Cc

XAX

XYBY

YZCZ

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

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

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 24

Zadatak br. 31

Oblik nizova:

aibjckdiej i, j, k 1

#(a) = #(d)

#(b) = #(e)

#(c)

Ne generira prazni niz.

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

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

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 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.

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

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

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 24

• Konstruirati gramatiku koja generira nizove oblika 0n1n2n pri čemu je n0.

Zadatak br. 33

L={0n1n2n | n0}

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

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

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 24

Konstruirati konteksno ovisnu gramatiku koja generira nizove iz jezika L.

Zadatak br. 34

L={0n1n2n | n1}

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

Page 19: 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č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

Page 20: 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č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

Page 21: 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č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]

Page 22: 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č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]

Page 23: 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č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]

Page 24: 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č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